Olá Galera,
Formatei meu servidor linux e agora eu estou com um problema com meu script de firewall no Red Hat 9, ele não está fazendo o nat com o script que eu montei, agora se eu adicionar uma regra so pra ele fazer o nat sem bloquear portas ele compartilha a net. Então estou pedindo uma ajuda ai para alguem ver se eu fiz algo de errado no meu script segue ele abaixo:
Código :#!/bin/bash # description: Firewall do sistem (criado Giuliano) IP_EXT="200.x.x.x" IF_EXT="eth0" IP_INT="192.168.0.1" IF_INT="eth1" REDE_INT="192.168.0.0/24" BRO_INT="192.168.0.255" # Ativa o Roteamento no Linux echo 1 > /proc/sys/net/ipv4/ip_forward # Zera as regras do Firewall iptables -F iptables -F -t nat # Carrega os modulos do FTP. modprobe ip_tables modprobe iptable_filter modprobe iptable_nat modprobe ip_nat_ftp modprobe ip_conntrack modprobe ip_conntrack_ftp ##### Define as politicas padroes ##### iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP ####################### Liberando as portas que serao usadas ################### # Bloqueia pacotes invalidos iptables -A INPUT -m state --state INVALID -j DROP iptables -A OUTPUT -m state --state INVALID -j DROP iptables -A FORWARD -m state --state INVALID -j DROP # Permite respostas iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # Trafego da propria maquina iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -i lo -j ACCEPT iptables -A INPUT -s $IP_INT -d $IP_INT -i $IF_INT -j ACCEPT iptables -A INPUT -s $IP_EXT -d $IP_EXT -i $IF_EXT -j ACCEPT iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -o lo -j ACCEPT iptables -A OUTPUT -s $IP_INT -d $IP_INT -o $IF_INT -j ACCEPT iptables -A OUTPUT -s $IP_EXT -d $IP_EXT -o $IF_EXT -j ACCEPT # Nega ping do mundo externo iptables -A INPUT -p icmp --icmp-type echo-request -s ! $REDE_INT -i $IF_EXT -d $IP_EXT -j DROP # Permite o resto do ICMP iptables -A INPUT -p icmp -j ACCEPT iptables -A OUTPUT -p icmp -j ACCEPT iptables -A FORWARD -p icmp -s $REDE_INT -i $IF_INT -o $IF_EXT -j ACCEPT # DHCP Local iptables -A INPUT -p udp -i $IF_INT --dport 67 -j ACCEPT # DNS Local iptables -A INPUT -p udp -s $REDE_INT -i $IF_INT -d $IP_INT --dport 53 -j ACCEPT iptables -A OUTPUT -p udp -s $IP_EXT -o $IF_EXT --dport 53 -j ACCEPT ### Apache (HTTP) ### # "Lan --> Apache Local (HTTP)" # iptables -A INPUT -p tcp -s $REDE_INT -i $IF_INT -d $IP_INT --dport 80 -j ACCEPT iptables -A INPUT -p tcp -s $REDE_INT -i $IF_INT -d $IP_EXT --dport 80 -j ACCEPT # "Lan --> Apache Local (HTTPS)" # iptables -A INPUT -p tcp -s $REDE_INT -i $IF_INT -d $IP_INT --dport 443 -j ACCEPT iptables -A INPUT -p tcp -s $REDE_INT -i $IF_INT -d $IP_EXT --dport 443 -j ACCEPT # "Mundo --> Apache Local (HTTP)" # iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 80 -j ACCEPT iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 80 -j ACCEPT iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 80 -j ACCEPT # "Mundo --> Apache Local (HTTPS)" # iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 443 -j ACCEPT iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 443 -j ACCEPT iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 443 -j ACCEPT # SAMBA iptables -A INPUT -p tcp -s $REDE_INT -i $IF_INT -d $IP_INT --dport 139 -j ACCEPT iptables -A INPUT -p udp -s $REDE_INT -i $IF_INT -d $IP_INT -m multiport --dport 137,138 -j ACCEPT iptables -A INPUT -p udp -s $BRO_INT -i $IF_INT -d $IP_INT -m multiport --dport 137,138 -j ACCEPT iptables -A OUTPUT -p tcp -s $IP_INT -o $IF_INT --dport 139 -j ACCEPT iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 139 -j ACCEPT iptables -A OUTPUT -p udp -s $IP_INT -o $IF_INT -m multiport --dport 137,138,139 -j ACCEPT iptables -A OUTPUT -p udp -s $IP_EXT -o $IF_EXT -m multiport --dport 137,138,139 -j ACCEPT # SQUID iptables -A INPUT -p tcp -s $REDE_INT -i $IF_INT -d $IP_INT --dport 3128 -j ACCEPT ### FTP ### # Local # iptables -A INPUT -p tcp -s $REDE_INT -i $IF_INT -d $IP_INT -m multiport --dport 20,21 -j ACCEPT # Mundo # iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT -m multiport --dport 20,21 -j ACCEPT iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT -m multiport --dport 20,21 -j ACCEPT iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT -m multiport --dport 20,21 -j ACCEPT ### SSH ### # Local # iptables -A INPUT -p tcp -s $REDE_INT -i $IF_INT -d $IP_INT --dport 22 -j ACCEPT iptables -A INPUT -p tcp -s $REDE_INT -i $IF_INT -d $IP_INT --dport 7500 -j ACCEPT # Mundo # iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 22 -j ACCEPT iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 7500 -j ACCEPT iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 9000 -j ACCEPT iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 22 -j ACCEPT iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 7500 -j ACCEPT iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 9000 -j ACCEPT iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 22 -j ACCEPT iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 7500 -j ACCEPT iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 9000 -j ACCEPT ### POP3 ### # Local # iptables -A INPUT -p tcp -s $REDE_INT -i $IF_INT -d $IP_INT --dport 110 -j ACCEPT # Mundo # iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 110 -j ACCEPT iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 110 -j ACCEPT iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 110 -j ACCEPT ### SMTP ### # Local # iptables -A INPUT -p tcp -s $REDE_INT -i $IF_INT -d $IP_INT --dport 25 -j ACCEPT # Mundo # iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 25 -j ACCEPT iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 25 -j ACCEPT iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 25 -j ACCEPT ### Transferencia de DNS ### iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 53 -j ACCEPT iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 53 -j ACCEPT # SQL SERVER # iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 1433 -j ACCEPT iptables -A INPUT -p udp -i $IF_EXT -d $IP_EXT --dport 1433 -j ACCEPT iptables -A INPUT -p udp -i $IF_EXT -d $IP_EXT --dport 1434 -j ACCEPT iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 3306 -j ACCEPT iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 156 -j ACCEPT iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 1433 -j ACCEPT iptables -A OUTPUT -p udp -s $IP_EXT -o $IF_EXT --dport 1433 -j ACCEPT iptables -A OUTPUT -p udp -s $IP_EXT -o $IF_EXT --dport 1434 -j ACCEPT iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 3306 -j ACCEPT iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 156 -j ACCEPT iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 1433 -j ACCEPT iptables -A FORWARD -p udp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 1433 -j ACCEPT iptables -A FORWARD -p udp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 1434 -j ACCEPT iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 3306 -j ACCEPT iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 156 -j ACCEPT # MSN Messenger # iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 1863 -j ACCEPT iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 1863 -j ACCEPT iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 1863 -j ACCEPT # MSN Messenger Comera Digital # iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 5100 -j ACCEPT iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 5100 -j ACCEPT iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 5100 -j ACCEPT # Faz Log do que sobrou. iptables -A INPUT -j LOG --log-prefix "ENTRADA: " --log-level 6 iptables -A OUTPUT -j LOG --log-prefix "SAIDA: " --log-level 6 iptables -A FORWARD -i $IF_INT -o $IF_EXT -j LOG --log-prefix "Lan-->Mundo: " --log-level 6 iptables -A FORWARD -s $REDE_INT -i $IF_INT -o $IF_EXT -j LOG --log-prefix "Lan-->Mundo: " --log-level 6 # Fazendo NAT da Lan para o Mundo. iptables -A POSTROUTING -t nat -s $REDE_INT -o $IF_EXT -d ! $REDE_INT -j MASQUERADE # Tira o log da tela echo "0" > /proc/sys/net/ipv4/conf/all/log_martians
Aguardo uma resposta.
Grato, Giuliano