Por favor ajuda com firewall/masquerade/terminalservice/vnc
:(
Pessoal, li muita coisa na rede sobre iptables e no slack10 estou tentando implementar o script abaixo. Mas não funciona a navegação na internet nem o acesso da internet a algumas maquinas da rede interna. Como já vi que sozinho não vou resolver ( cabeça quente ) peço por favor a ajuda.
Importante o rc.ip_forward esta ativado pois consegue-se pingar dos dois lados da rede. Para saber se o acesso as maquinas internas da rede via vnc/terminal service funcionava, liquei 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
Por favor ajuda com firewall/masquerade/terminalservice/vnc
Tente mudar estas configurações abaixo e vê se resolve,
No meu servidor elas funcionam, pode ser isto:
#liberando o trafego local (loopback)
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#liberando rede interna
iptables -A INPUT -i ETH_INT-s $REDE_LOCAL -j ACCEPT
iptables -A FORWARD -i ETH_INT -s $REDE_LOCAL -d 0/0 -j ACCEPT
Alexandre Zanelato - azanelato
Por favor ajuda com firewall/masquerade/terminalservice/vnc
Ah, outra coisa na politica padrão acho melhor assim:
#definindo politica padrao
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
Acho sempre melhor bloquear tudo e somente liberar o
que será usado, mesmo na tabela NAT, procure não
deixar ACCEPT.
Alexandre Zanelato - azanelato
Por favor ajuda com firewall/masquerade/terminalservice/vnc
alimasilva, é pelas suas regras, tem algumas coisas estranhas, por exemplo, vc bloqueia as entradas para seu servidor e depois no final vc libera elas, bom apesar de estar bem documentado suas regras, a dica postada anteriormente para bloquear o Forward e ir liberando é muito bom, minha dica é a seguinte não bloquei as entradas para o servidor que já forem de uma conexão já solicitada, por exemplo de sua rede interna, um estação chama o browser www.uol.com.br certo sua rede interna está liberada para conectar na porta de seu Firewall, mas na hora que o pacote retorna do host www.uol.com.br, ele é bloqueado, por que o seu firewall, bloqueia o acesso externo. Faz o seguinte não bloqueia o não use a regra "input -j DROP" deixe ACCEPT mesmo, mas bloqueia qualquer tentativa de primeira conexão com o servidor que vir da rede externa, assim só as suas máquinas internas podem conectar no seu servidor e os pacotes que retornarem como no exemplo assim que eu lhe dei, o firewall vai identificar que não é uma primeira conexão mas sim uma conexão já estabelecida, estou postando uma regra abaixo, de uma lida nela e altere e acresente as suas regras #!/bin/sh
iptables="/usr/local/sbin/iptables"
###Zera Regras
$iptables -F
$iptables -t nat -F
echo 1 > /proc/sys/net/ipv4/ip_forward
#----------------------------------------------------------------------------#
###Seguranca
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $f
done
#----------------------------------------------------------------------------#
###Configuracao FTP
/sbin/modprobe ip_conntrack_ftp ports=21,4021,2210
/sbin/modprobe ip_nat_ftp ports=21,4021,2210
#----------------------------------------------------------------------------#
###Mascaramento
$iptables -t nat -A POSTROUTING -o "Sua placa de rede web" -j SNAT --to "endereço ip Web"
#----------------------------------------------------------------------------#
###NAT
#----------------------------------------------------------------------------#
###Entradas
$iptables -A INPUT -i "Placa de Rede Web" -p ICMP -j DROP
$iptables -A INPUT -i "Placa de Rede Web" -p TCP --syn -j DROP
##Essa regra acima que eu te falei
#----------------------------------------------------------------------------#
##Acessos
$iptables -A FORWARD -s "endereço ip rede interna" -j ACCEPT
#----------------------------------------------------------------------------#
##Default
iptables -A FORWARD -j DROP ##Aqui vc bloqueia os encaminhamentos