- iptables..
+ Responder ao Tópico
-
iptables..
:toim: Distro : Slackware 10
Após ler muito material na internet, fiz o script abaixo, mas ele não funciona ( não consigo navegar na internet, nem quem acessa o ip fixo e redirecionado para o ip da rede interna que tem o serviço ).
O rc.ip_forward esta ativado pois consegue-se pingar dos dois lados da rede.
Para testar o acesso externo ao vnc e terminal, liguei a placa de rede que tem ip web a outra maquina via cabo cross-over com um ip valido da web mesma mascara e nao fucionou , mas consigo pingar a rede interna.
Obrigado
Antonio Carlos
Script de Firewall
#!/bin/sh
#
#
# Variaveis de Ambiente onde :
#
# ETH_WEB = eth com ip fixo da internet;
# ETH_INT = eth da rede interna;
# IP_WEB = IP visivel a Internet
# IP_INT = IP do firewal na rede Interna, Gateway da Rede
# REDE_LOCAL = Faixa de IP da Rede Interna e Mascara
#
ETH_WEB="eth0"
ETH_INT="eth1"
IP_WEB="200.152.123.87"
IP_INT="192.168.0.250"
REDE_LOCAL="192.168.0.0/255.255.255.0"
# Limpando as tabelas
iptables -F
iptables -X
iptables -t nat -F
iptabels -t nat -X
# Politica de Acesso
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
# redirecionamento de pacotes, coloquei mas no slck o rc.ip_forward eh 755
echo "1" >/proc/sys/net/ipv4/ip_forward
# liberando o loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state -state ESTABLISHED,RELATED -j ACCEPT
# liberando o que vier da rede local
iptables -A INPUT -s $REDE_LOCAL -i $ETH_INT -j ACCEPT
# Liberacao de PING (ICMP) na Interface Externa com certa limitacao
iptables -A INPUT -i $ETH_WEB -p icmp -m limit --limit 2/s -j ACCEPT
# Liberacao de Portas de Servico com destino a porta web vindo da endereço web
iptables -A INPUT -i $ETH_WEB -s 0/0 -p tcp --dport 21 -j ACCEPT #liberando ftp
iptables -A INPUT -i $ETH_WEB -s 0/0 -p tcp --dport 22 -j ACCEPT #liberando ssh
iptables -A INPUT -i $ETH_WEB -s 0/0 -p tcp --dport 23 -j ACCEPT #liberando telnet
iptables -A INPUT -i $ETH_WEB -s 0/0 -p tcp --dport 3389 -j ACCEPT #liberando terminal service
iptables -A INPUT -i $ETH_WEB -s 0/0 -p tcp --dport 5900 -j ACCEPT #liberando vnc
# Qualquer outro tipo de trafego aceito, creio ser necessario para a rede interna
iptables -A INPUT -i $ETH_WEB -j ACCEPT
# Redirecionando da porta 80 para o squid , fazendo proxy transparente
iptables -t nat -A PREROUTING -p tcp -i $ETH_INT --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -p udp -i $ETH_INT --dport 80 -j REDIRECT --to-port 3128
# redirecionamento de portas para um host interno
iptables -t nat -A PREROUTING -p tcp -i $ETH_WEB --dport 3389 -j DNAT --to 192.168.0.200:3398
iptables -t nat -A PREROUTING -p tcp -i $ETH_WEB --dport 5900 -j DNAT --to 192.168.0.1:5900
# fazendo o ip masquerade
iptables -t nat -A POSTROUTING -o $ETH_WEB -j MASQUERADE
-
Re: HELP POR FAVOR, iptables
Cara vou tentar ajudar !!!
A funçao desse micro e so gateway de internet ??? So vai repassar a internet pros outros micros ??? Ou vai rodar algum serviço em especifico ???
Posta ai mais detalhes que tentamos arrumar seu script !!!
Valeu !!!
-
iptables..
Ele será Gateway para a rede interna permitindo o acesso a internet e serviços de email.
Deverá fazer encaminhamento para a rede interna de requisicoes do terminal service (3389) e ultra-vnc (5900)que chega a porta wan.
Proxy transparente para que seja restringido o acesso dos usuarios a determinados sites e messenger.
Possivelmente rodará o servidor SAMBA.
Os serviços de telnet e Ftp estarão ativos e devem poder ser acessados externamente.
Creio que isso é tudo.
OBRIGADÃO por sua ajuda
-
Re: HELP POR FAVOR, iptables
Bem vamos la entao ver se eu consigo te ajudar !!!
Primeiramente nao sei como foram seus passos para construçao desse script vou passar como normalmente eu faço
Crio um arquivo chamado firewall dentro de /etc e la coloco as regras, logo apos torno executavel
#chmod +x /etc/firewall
Depois para que sempre que se inicie o micro as regras estejam ativas jogo esse caminho dentro do rc.local
E dentro de /etc levanto as regras ./firewall
Bem vamos ao script !!!
Script de Firewall
#!/bin/sh
#
# Ativa roteamento via kernel
echo "1" >/proc/sys/net/ipv4/ip_forward
# Limpando as tabelas
iptables -F
iptables -X
iptables -t nat -F
iptabels -t nat -X
# Politica de Acesso
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# Toda regra reincidente ou estabelecida nao sera lida novamente
iptables -A INPUT -m state -state ESTABLISHED,RELATED -j ACCEPT
# liberando o loopback
iptables -A INPUT -i lo -j ACCEPT
# liberando o que vier da rede local
iptables -A INPUT -s $REDE_LOCAL -i $ETH_INT -j ACCEPT
# Liberacao de PING (ICMP) na Interface Externa com certa limitacao
iptables -A INPUT -i $ETH_WEB -p icmp -m limit --limit 2/s -j ACCEPT
# Abre algumas portas
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 23 -j ACCEPT
iptables -A INPUT -p tcp --dport 3389 -j ACCEPT
iptables -A INPUT -p tcp --dport 5900 -j ACCEPT
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT
# redirecionamento de portas para um host interno
iptables -t nat -A PREROUTING -p tcp -i $ETH_WEB --dport 3389 -j DNAT --to 192.168.0.200:3398
iptables -t nat -A PREROUTING -p tcp -i $ETH_WEB --dport 5900 -j DNAT --to 192.168.0.1:5900
# Redirecionando da porta 80 para o squid , fazendo proxy transparente
iptables -t nat -A PREROUTING -p tcp -i $ETH_INT --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -p udp -i $ETH_INT --dport 80 -j REDIRECT --to-port 3128
# fazendo o ip masquerade
iptables -t nat -A POSTROUTING -o $ETH_WEB -j MASQUERADE
Amigo dessa maneira que coloquei deve funcionar o unico problema e vc usar muito INPUT em suas regras, o que eu te aconselho e usar FORWARD da uma boa lida na internet em relaçao a isso e altera deacordo com suas necessidades, uso minha politica padrao DROP e nunca tive que abrir portas pro pessoal poder coectar o VNC mas enfim !!!
Qualquer coisa posta ai !!!
Valeu !!!
-
iptables..
Eu li um pouquinho mais na internet sob sua recomendacao no INPUT e alterei o script , vc poderia verificar se é isso que vc estava dizendo por favor :
#!/bin/sh
#
#
# Variaveis de Ambiente onde :
#
# ETH_WEB = eth com ip fixo da internet;
# ETH_INT = eth da rede interna;
# IP_WEB = IP visivel a Internet
# IP_INT = IP do firewal na rede Interna, Gateway da Rede
# REDE_LOCAL = Faixa de IP da Rede Interna e Mascara
#
ETH_WEB="eth0"
ETH_INT="eth1"
IP_WEB="200.152.123.87"
IP_INT="192.168.0.250"
REDE_LOCAL="192.168.0.0/255.255.255.0"
# Ativa roteamento via kernel
echo "1" >/proc/sys/net/ipv4/ip_forward
#Carregando os modulos, vi em uma lista que mesmo estando compilado ao kernell se nao chamar nao funciona
modprobe iptable_nat
# Limpando as tabelas
iptables -F
iptables -X
iptables -t nat -F
iptabels -t nat -X
# Politica de Acesso
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# Toda regra reincidente ou estabelecida nao sera lida novamente
iptables -A INPUT -m state -state ESTABLISHED,RELATED -j ACCEPT
# liberando o loopback
iptables -A INPUT -i lo -j ACCEPT
# liberando o que vier da rede local , Eu creio que pelas forward colocadas abaixo eu devo desabiliatar aqui
# iptables -A INPUT -s $REDE_LOCAL -i $ETH_INT -j ACCEPT
# Liberacao de PING (ICMP) na Interface Externa com certa limitacao
iptables -A INPUT -i $ETH_WEB -p icmp -m limit --limit 2/s -j ACCEPT
# Abre algumas portas ( mudei isso levando em conta seu comentário )
#iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#iptables -A INPUT -p tcp --dport 23 -j ACCEPT
#iptables -A INPUT -p tcp --dport 3389 -j ACCEPT
#iptables -A INPUT -p tcp --dport 5900 -j ACCEPT
#iptables -A INPUT -p tcp --dport 3128 -j ACCEPT
iptables -A FORWARD -p tcp -s $REDE_LOCAL --dport 21 -j ACCEPT
iptables -A FORWARD -p tcp -s 0/0 --sport 21 -j ACCEPT
iptables -A FORWARD -p tcp -s $REDE_LOCAL --dport 22 -j ACCEPT
iptables -A FORWARD -p tcp -s 0/0 --sport 22 -j ACCEPT
iptables -A FORWARD -p tcp -s $REDE_LOCAL --dport 25 -j ACCEPT
iptables -A FORWARD -p tcp -s 0/0 --sport 25 -j ACCEPT
iptables -A FORWARD -p udp -s $REDE_LOCAL --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s 0/0 --sport 53 -j ACCEPT
iptables -A FORWARD -p tcp -s $REDE_LOCAL --dport 110 -j ACCEPT
iptables -A FORWARD -p tcp -s 0/0 --sport 110 -j ACCEPT
iptables -A FORWARD -p tcp -s $REDE_LOCAL --dport 3128 -j ACCEPT
iptables -A FORWARD -p tcp -s 0/0 --sport 3128 -j ACCEPT
iptables -A FORWARD -p tcp -s $REDE_LOCAL --dport 3389 -j ACCEPT
iptables -A FORWARD -p tcp -s 0/0 --sport 33890 -j ACCEPT
iptables -A FORWARD -p tcp -s $REDE_LOCAL --dport 5900 -j ACCEPT
iptables -A FORWARD -p tcp -s 0/0 --sport 5900 -j ACCEPT
# redirecionamento de portas para um host interno
iptables -t nat -A PREROUTING -p tcp -i $ETH_WEB --dport 3389 -j DNAT --to 192.168.0.200:3398
iptables -t nat -A PREROUTING -p tcp -i $ETH_WEB --dport 5900 -j DNAT --to 192.168.0.1:5900
# Redirecionando da porta 80 para o squid , fazendo proxy transparente
iptables -t nat -A PREROUTING -p tcp -i $ETH_INT --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -p udp -i $ETH_INT --dport 80 -j REDIRECT --to-port 3128
# fazendo o ip masquerade
iptables -t nat -A POSTROUTING -o $ETH_WEB -j MASQUERADE
-
iptables..
Kra eu tive esse problema + so q na verdade eram as rotas que deveriam ser modificadas, pois a minha conexão era via modem ADSL, tenta ai quem sabe se num e isso...
#route del default
#route add default ppp0
tenta ai e qualquer coisa posta os resultados...