Este script mostra de forma prática como usar o IPTABLES para fazer NAT (Network Address Translation) e MASQUERADE.
Para que este script funcione corretamente, é necessário que tu tenhas um kernel devidamente configurado para dar suporte ao IPTABLES.
[3] Comentário enviado por Apocalipse em 21/10/2003 - 12:46h
Eu soh tenho uma placa de rede aqui na minha máquina (eth0 no CL9). Eu queria saber se tem como eu configurar numa boa o IP-Masq e o NAT. Outra coisa que eu queria saber é como que eu configuro o kernel devidamente para poder rodar o IPTABLES....
[5] Comentário enviado por lordello em 23/10/2003 - 23:25h
Esse conf funfa em todas as distros com IPTABLES?
Funfa no Slack9.1?
Sempre quis um script desse, acho que toda distro deveria prover esse tipo de coisa...
Falow!
[6] Comentário enviado por boo em 05/11/2003 - 19:35h
tipo, esse script funciona em qualquer maquina que tenha o IPTABLES 1.2.7a ou superior (nao sei se ele funciona com versoes mais antigas).
Praqueles que tem o iptables em um outro lugar que não no /usr/sbin/ , basta mudar a variavel IPT !
troquem ela por IPT=`which iptables`
E, finalmente, SIM você pode usar esse script apenas com uma placa de rede, entretanto não tem como fazer NAT apenas com uma placa (na real ateh tem, mas nao faz muito sentido).
[7] Comentário enviado por boo em 05/11/2003 - 20:39h
Vou dar uma breve, rápida e porca explicação de como configurar o kernel pra usar o iptables com tudo...
Eu presumo que você saiba reconfigurar seu kernel... Senão souber, favor consulte a seção Kernel na parte de artigos do site (http://www.vivaolinux.com.br/artigos/verSubCategoria.php?codigo=9).
Bem, vai em 'Networking options', lá habilite 'Network packet filtering (replaces ipchains)' e depois entre na sub-seção 'IP: Netfilter Configuration --->', nesta sub-seção HABILITE TUDO !
Depois disso salve as configurções do seu kernel, compile e seja um cara feliz com seu novo firewall :D
[9] Comentário enviado por boo em 05/02/2004 - 19:34h
primeiro copia esse script pra /etc/rc.d/rc.firewall (pode ser qualquer outro lugar, mas coloca aqui pra ficar tudo padrãozinho), depois o que tu tem que fazer eh colocar a chamada para esse script la no /etc/rc.d/rc.local...
faz isso com o comando:
[10] Comentário enviado por jcms_eng em 17/03/2004 - 15:14h
Uso red rat com iptables e squid tudo funciona quase perfeito.
uso um server windows 2000 com exchange, ate ai ok, navego mas nao consigo mandar mensagens externas via o server linux, as mensagens ficam retidas neste servidor, o que mas devo emplementar para funcionar para que inicie o processo de envio via estes.
devo emplementar no squid ou no iptables algo mais.
echo "Setting up firewall rules: "
/etc/firewall.init
echo
fi # if EXTERNAL
fi # if DHCP
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
if [ -f /proc/sys/net/ipv4/conf/all/rp_filter ] ; then
echo "Enabling anti spoofing: "
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo -n " $f "
echo 1 > $f
done
else
echo "Anti spoofing is not available, the author of this floppy spoofed, mail him."
fi
#
# No umask so it ends up with 600 with both dhcp and PPPoE
# I'm lazy and place it here.
chmod 644 /etc/resolv.conf
#
# DHCP Daemon and DNS Cache.
#
p=`pidof dnsmasq`
if [ "${DHCP_DAEMON}" = "y" ];
then
/etc/udhcpd.conf.sh
udhcpd
[ $p ] || dnsmasq -i ${INSIDE_DEV}
else
if [ "${DNSMASQ}" = "y" ];
then
[ $p ] || dnsmasq -i ${INSIDE_DEV}
fi
fi
#!/bin/sh
# Firewall setup.
#
# This is a conversion of the ipchains/ipmasqadm based firewall.ini
# from the 1.x series of floppyfw, it's pretty simple and the
# corresponding ipchains rules are kept for references.
#
# Setting up iptables
#
. /etc/config
#
# Do you want to do port forwaring to an internal server?
# Set the server IP here and sort out the port stuff later in this file.
#
SERVER_IP=10.10.1.2
#
# Stopping forwarding (this script may be run during normal uptime because
# for re-lease of HDCP or demand dialing / PPPoE.
#
echo "0" > /proc/sys/net/ipv4/ip_forward
#
# Overriding the /etc/config and adding additional information.
#
. /etc/outside.info
. /etc/inside.info
#
# Brad suggested this:
# And he suggested to check and maybe change the formatting.
# We'll do that later.
#
echo "Starting firewall with the following config:"
echo
echo " Inside Outside"
echo " Network: ${INSIDE_NETWORK} ${OUTSIDE_NETWORK}"
echo " Device: ${INSIDE_DEVICE} ${OUTSIDE_DEVICE}"
echo "IP Address: ${INSIDE_IP} ${OUTSIDE_IP}"
echo " Netmask: ${INSIDE_NETMASK} ${OUTSIDE_NETMASK}"
echo " Broadcast: ${INSIDE_BROADCAST} ${OUTSIDE_BROADCAST}"
echo " Gateway: [None Set] ${OUTSIDE_GATEWAY}"
echo
#
# Flushing the chains.
#
iptables -F
iptables -t nat -F
iptables -X
iptables -Z # zero all counters
#
# Policy for chains DROP everything
#
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#
# Good old masquerading.
#
iptables -t nat -A POSTROUTING -o ${OUTSIDE_DEVICE} -j MASQUERADE
#
# Forwarding outside ports to an internal server.
# This used to be the ipchains / ipmasqadm portfw commad.
#
#
# Keep state.
#
iptables -A FORWARD -m state --state NEW -i ${INSIDE_DEVICE} -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state NEW,INVALID -i ${OUTSIDE_DEVICE} -j DROP
#
# This is mainly for PPPoE usage but it won't hurt anyway so we'll just
# keep it here.
#
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
#
# We don't like the NetBIOS and Samba leaking..
#
iptables -t nat -A PREROUTING -p TCP -i ${INSIDE_DEVICE} --dport 135:139 -j DROP
iptables -t nat -A PREROUTING -p UDP -i ${INSIDE_DEVICE} --dport 137:139 -j DROP
iptables -t nat -A PREROUTING -p TCP -i ${INSIDE_DEVICE} --dport 445 -j DROP
iptables -t nat -A PREROUTING -p UDP -i ${INSIDE_DEVICE} --dport 445 -j DROP
#
# We would like to ask for names from our floppyfw box
#
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Ping and friends.
iptables -A OUTPUT -p icmp -j ACCEPT # to both sides.
iptables -A INPUT -p icmp -j ACCEPT
# And also, DHCP, but we can basically accept anything from the inside.
iptables -A INPUT -i ${INSIDE_DEVICE} -j ACCEPT
iptables -A OUTPUT -o ${INSIDE_DEVICE} -j ACCEPT
#
# If the user wants to have the fake identd running, the identd has to
# be able to answer.
#
if [ ${FAKEIDENT} ]
then
iptables -A INPUT -p TCP --dport 113 -i ${OUTSIDE_DEVICE} -j ACCEPT
fi
#
# And, some attempt to get interactive sesions a bit more interactive
# under load:
#
iptables -A PREROUTING -t mangle -p tcp --sport ssh -j TOS --set-tos Minimize-Delay
iptables -A PREROUTING -t mangle -p tcp --sport ftp -j TOS --set-tos Minimize-Delay
iptables -A PREROUTING -t mangle -p tcp --sport ftp-data -j TOS --set-tos Maximize-Throughput
#
# Finally, list what we have
#
#
iptables -L
# If broken DNS:
#iptables -L -n
#
# This enables dynamic IP address following
#
echo 7 > /proc/sys/net/ipv4/ip_dynaddr
#
# Rules set, we can enable forwarding in the kernel.
#
echo "Enabling IP forwarding."
bom, esses sao os arquivos de configuracao do syslinux. um configura a rede o outro o fire.
eu tenho algumas duvidas em relacao a configuracao...
a rede ta assim...
o servidor DC e exchange - 192.168.0.4
mascara de subrede: 255.255.255.0
ip de broadcast: 192,168.0.255
ip interno do firewall: 192.168.0.8
ip externo do firewall: 200.x.x.x
placa de recebimento- eth0
placa de entrega- eth1
o ip externo do firewall é fixo!
quem conseguir configurar os 2 scripts acima eu agradeco!
agradeco desde ja !
[12] Comentário enviado por janiel em 08/04/2004 - 16:32h
Olá Boo, bem eu tenho um servidor funcionando perfeitamente com o iptables, plenamente configurado em NAT. Possuindo duas placas de rede uma externa com ip válido e outa interna com IP inválido, tudo bem até aí, mas estou apanhando para saber como faço para criar outra rede interna só que com IPs válidos e reconhecidos na Internet. Venho a adiantar que, já criei uma outra placa virtual na eth0 (rede interna), com IP válido, sendo que consigo de fora (da internet), enxergar os IPs válidos tanto da eth1 (placa externa) como o novo IP que criei na eth0 (placa interna), mas dái não consigo enxergar outro IP válido configurado em um micro na rede interna, esse ligado diretamente na eth0 (placa interna). Por favor preciso de ajuda, ficarei muito agradecido.....
[13] Comentário enviado por rogerhot1 em 21/09/2004 - 15:58h
Bom, eu preciso saber como faço para habilitar as portas 1723, 900, 3299 e 8001 para um Ip específico ( 192.168.0.220 ).
Assim, somente a máquina que utilizar este ip é que conseguirá utilizar as portas solicitadas. Abaixo segue o script atual de meu rc.firewall:
[17] Comentário enviado por candiao em 11/04/2005 - 20:31h
Olá Pessoal !
Alguém poderia me ajudar, e o seguinte gostaria de colocarum firewal em minha lan somente para filtrar skype, msn e p2p. ok compilei com suporte p2p e tal. Mas estou em dúvida e o seguinte:
----host 10.0.1.50--->>> eth0|Firewall|eth1<<<---Roteador
: : : : :
gateway do host 10.0.1.1 10.0.1.2 10.0.1.3
10.0.1.1 : :
gw gw
10.0.1.3 10.0.1.3
Esta máquina vai apenas filtrar o trafego pro roteador e ele encaminha os pacotes ok. e vou precisar usar postrouting, prerountig ou masquerade ? Estou em duvida como repassar os pacotes para eth1 e tal .. fiz os teste assim mas ..meu sever mail não consigo conectar e tambem minha web ... alguem poderia me dar uma luz ... estou em uma lan e vou sair para web via roteador ok ... mas outro roteador não este este so encaminha.
Obrigado.
[19] Comentário enviado por osvaldocpd em 10/05/2006 - 09:09h
Bom dia pessoal, tenho uma micro com duas placas de rede preciso configurar esse micro para ser o roteador de internet ou seja compartilhar a internet usando esse micro como roteador.
Prociso tambem acessar esse micro remotamente usando o protocolo SSH. Como faço essa configuração para ter um acesso seguro
[20] Comentário enviado por komodo em 21/08/2006 - 09:30h
Opa,
Verifique também com estão setados os endereços IP, o firewall será o gateway das redes. Então as estações da rede A terão que ser configuradas como tendo o ip da placa A no firewall com sendo o gateway da rede e assim também na Rede B mas usando o endereço da placa B no firewall.
Verifique também os ips que estão sendo usados nas redes, devem ser de redes diferentes para que haja o roteamento.
[22] Comentário enviado por maregito em 08/10/2006 - 19:21h
Olá !
Olha eu tenho meu pc que se conecta a net por um modem, e tem o pc de meus filhos que se seconecta ao meu por uma placa de rede os dois pcs estão ligados por um cabo cross over, como faço para comapartilhar a conexão?
tenho de uzar todo este script.
PS eu não sei muita coisa de progamação, tem como fazer um script simples?
[23] Comentário enviado por dsimoneli em 13/11/2006 - 12:28h
ola estou uma uma dificuldae aqui tenho debian instalado na minha maquina com 2 palcas de rede a eth0 conecta a modem speed stream sendo q nesse modem eu rotei e coloquei um ip 192.168.0.1 na maquina debian eth0 o ip e 192.168.0.2/24 agora tenho a eth1 uma outra plca de rede no debian q jogo pra um roteador wireless para conectar meu leptop o ip da eth1 e 192.168.1.1 mais nao consigo conectar a internet no leptop como faço o q preciso
[27] Comentário enviado por Diorque em 28/10/2007 - 14:08h
como ficaria minha ligação fisica com cabos UTP do meu firewall ETH0 para moden Adsl, e do meu firewall ETH1 para switch? onde irei usar cros ou normal?
_________
| |
--------- | | ______
|modem|--------| firewall |------------|switch|
--------- ------------ ---------
hehe não ficou bem desenhado não mas acho que da pra simbolizar.
obrigado.
[29] Comentário enviado por meganet em 03/05/2008 - 23:44h
pessoal eu eu sou novato no linux mas estes comandos serve pra faser um compartilhamento de internet
me desculpem pela a pergunta nao conheço os comandos ainda
[34] Comentário enviado por tico-tico em 20/04/2009 - 16:56h
coloquei teu firewall para rodar aqui.. so que preciso fazer uma regra para conexao remota
ex: toda conexao que vim de fora o firewall vai redirecionar para o ip do terminal service ..
[37] Comentário enviado por ton.work em 23/08/2010 - 14:52h
No meu da os seguintes erros:
/etc/init.d/firewall: line 27: -t: command not found
/etc/init.d/firewall: line 28: -t: command not found
/etc/init.d/firewall: line 29: -t: command not found
/etc/init.d/firewall: line 30: -t: command not found
/etc/init.d/firewall: line 31: -t: command not found
/etc/init.d/firewall: line 32: -t: command not found
/etc/init.d/firewall: line 33: -t: command not found
/etc/init.d/firewall: line 34: -t: command not found
/etc/init.d/firewall: line 35: -t: command not found
/etc/init.d/firewall: line 36: -t: command not found
/etc/init.d/firewall: line 37: -t: command not found
/etc/init.d/firewall: line 40: -N: command not found
/etc/init.d/firewall: line 41: -A: command not found
/etc/init.d/firewall: line 42: -A: command not found
/etc/init.d/firewall: line 43: -A: command not found
/etc/init.d/firewall: line 44: -A: command not found
/etc/init.d/firewall: line 45: -A: command not found
/etc/init.d/firewall: line 46: -A: command not found
/etc/init.d/firewall: line 47: -A: command not found
/etc/init.d/firewall: line 48: -A: command not found
/etc/init.d/firewall: line 51: -t: command not found
/etc/init.d/firewall: line 54: -t: command not found
/etc/init.d/firewall: line 55: -t: command not found
/etc/init.d/firewall: line 56: -t: command not found
/etc/init.d/firewall: line 58: -t: command not found
/etc/init.d/firewall: line 61: -t: command not found
/etc/init.d/firewall: line 64: -t: command not found
/etc/init.d/firewall: line 65: -t: command not found
/etc/init.d/firewall: line 68: -A: command not found
/etc/init.d/firewall: line 69: -A: command not found
[40] Comentário enviado por cleisson1210 em 30/05/2011 - 16:14h
Galera, presciso de duas ajudinha.
Primeira= Aki na empresa tem 4 Servidores Servidor DB, AD, FW e TS.
o FW é i FireWall aki da empresa que eu dou suporte, eu nao sei muita coisa de linux nen fui eu que mintei o FireWall mas gostaria que
voçes min dissesem como eu posso por para o Servidor TS ter acesso livre a internet sem ter nenhum block quero que ele nao passe pelo
squid para ele ter total liberdade sobre a internet.
Segunda Duvida.
Eu quero libera uma porta TCP aqui mas como tem servidor linux nao sei como se faz essa alteracao por favor min ajuden