verner_inec
(usa Debian)
Enviado em 10/09/2013 - 18:21h
Segue o firewall completo para análise, mesmo eu tentando abrir as portas quando faço um scan por sites sempre mostra a porta fechada
Preciso saber qual regra se adapta melhor e em que posição colocar, desde já agradeço pois já coloquei varias que achei na net e até agora nada de liberar.
#!/bin/sh
echo ""
uname -s -r -m -o
firewall_start(){
echo ""
echo " Iniciando as regras do firewall.............."
echo ""
echo "Definindo Politica Padrão....................."
echo ""
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
echo " Limpando as Regras Anteriores..............[OK]"
echo ""
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t filter -F
iptables -t nat -F
iptables -t mangle -F
iptables -t raw -F
echo " Carregando os módulos do firewall..........[OK]"
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ip_queue
modprobe ip_tables
modprobe ipt_LOG
modprobe ipt_MARK
modprobe ipt_MASQUERADE
modprobe ipt_REDIRECT
modprobe ipt_REJECT
modprobe ipt_TCPMSS
modprobe ipt_TOS
modprobe ipt_limit
modprobe ipt_mac
modprobe ipt_mark
modprobe ipt_multiport
modprobe ipt_owner
modprobe ipt_state
modprobe ipt_tcpmss
modprobe ipt_tos
modprobe iptable_filter
modprobe iptable_mangle
modprobe iptable_nat
#Declaraçao de variaveis de configuraçao do firewall
IF_NET="net0" #interface de saida para rede externa
IF_ACAD="red0" #interface da rede academica e dhcp
IF_ADM="red0:0" #interface da rede administrativa
IF_EXT="net0:0" #interface externa
IP_NET="10.1.1.3" #ip da interface externa do servidor
IP_ACAD="192.168.0.0/24" #ip de rede academica
IP_ADM="192.168.1.0/24" #ip de rede administrativa
IP_EXT="xxx.xxx.xxx.xx" #ip externo
PORTAS="20,21,25,53,110,465,993" # lista de portas a ser liberadas
echo "Alterando prioridade dos pacotes ToS.....[OK]"
iptables -t mangle -A OUTPUT -o $IF_NET -p tcp -m multiport --dports $PORTAS -j TOS --set-tos 0x10
echo " liberando acesso interno da rede........[OK]"
iptables -A INPUT -p tcp --syn -s $IP_ACAD -j ACCEPT
iptables -A INPUT -p tcp --syn -s $IP_ADM -j ACCEPT
iptables -A OUTPUT -p tcp --syn -s $IP_ACAD -j ACCEPT
iptables -A OUTPUT -p tcp --syn -s $IP_ADM -j ACCEPT
iptables -A FORWARD -p tcp --syn -s $IP_ACAD -j ACCEPT
iptables -A FORWARD -p tcp --syn -s $IP_ADM -j ACCEPT
echo "liberando conexões previamente aceitas....[OK]"
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "Liberando acesso externo ao apache e ftp..[OK]"
iptables -A INPUT -p tcp -s 0/0 --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --dport 21 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
echo " Liberando portas conhecidas..............[OK]"
iptables -t nat -A POSTROUTING -o $IF_NET -p tcp -m multiport --dports $PORTAS -j MASQUERADE
iptables -t nat -A POSTROUTING -o $IF_NET -p udp -m multiport --dports $PORTAS -j MASQUERADE
#liberando samba na rede
iptables -A INPUT -i $IF_ADM -p udp --dport 138 -j ACCEPT
iptables -A INPUT -i $IF_ADM -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -i $IF_ACAD -p udp --dport 137 -j ACCEPT
iptables -A INPUT -i $IF_ACAD -p udp --dport 138 -j ACCEPT
iptables -A INPUT -i $IF_ACAD -p tcp --dport 139 -j ACCEPT
#Liberando DNS
iptables -A INPUT -p tcp -s $IP_ACAD --dport 53 -j ACCEPT
iptables -A INPUT -p udp -s $IP_ACAD --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp -s $IP_ACAD --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp -s $IP_ACAD --dport 53 -j ACCEPT
iptables -A FORWARD -p tcp -s $IP_ACAD --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s $IP_ACAD --dport 53 -j ACCEPT
iptables -A INPUT -p tcp -s $IP_ADM --dport 53 -j ACCEPT
iptables -A INPUT -p udp -s $IP_ADM --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp -s $IP_ADM --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp -s $IP_ADM --dport 53 -j ACCEPT
iptables -A FORWARD -p tcp -s $IP_ADM --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s $IP_ADM --dport 53 -j ACCEPT
iptables -A INPUT -p tcp -s $IP_NET --dport 53 -j ACCEPT
iptables -A INPUT -p udp -s $IP_NET --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp -s $IP_NET --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp -s $IP_NET --dport 53 -j ACCEPT
iptables -A FORWARD -p tcp -s $IP_NET --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s $IP_NET --dport 53 -j ACCEPT
echo "Ativando o IP forwared................[OK]"
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "Protegendo contra Pings (ignorando)...........[OK]"
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo " Protegendo contra IP spoofing..........[OK]"
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
echo " Protegendo contra diversos ataques.......[OK]"
echo 1 > /proc/sys/net/ipv4/conf/all/accept_source_route
echo " Protegendo contra bogus responses......[OK]"
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo " Protegendo contra IP synflood......[OK]"
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
echo " Protegendo contra ICMP Broadcasting......[OK]"
echo > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo " Protegendo contra alteração de rota.......[OK]"
iptables -A INPUT -p udp --dport 33435:33525 -j LOG --log-prefix "_BLOCKED_:"
echo "Protegendo contra tracerout........[OK]"
iptables -A INPUT -p udp --dport 33435:33525 -j DROP
echo " Protegendo contra portscanners, ping of death, ataques DoS, etc...[OK]"
iptables -A INPUT -m state --state INVALID -j LOG --log-prefix "_BLOCKED_"
iptables -A INPUT -m state --state INVALID -j DROP
echo " Fechando portas UDP 1:1024.......[OK]"
iptables -A INPUT -p udp --dport 1:1024 -j LOG --log-prefix "_BLOCKED_UDP_:"
iptables -A INPUT -p udp --dport 1:1024 -j DROP
echo " Permitindo apenas conexoes e respostas iniciadas pela maquina.....[OK]"
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
echo " Liberando a interface loopback............[OK]"
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
echo "Bloqueando qualquer conexão que não tenha sido permitida acima.....[OK]"
#iptables -A INPUT -p tcp --syn -j LOG --log-prefix "_BLOCKED_:"
#iptables -A INPUT -p tcp --syn -j DROP
echo "Firewall em operação.......[OK]"
sleep 1
}
firewall_stop(){
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
}
case "$1" in
"start")
firewall_start
;;
"stop")
firewall_stop
echo "Desativando todas as Regras do Firewall......[OK]"
sleep 1
;;
"status")
echo -e "===================Table Filter================";
iptables -t filter -L -n
echo -e "===================Table Nat===================";
iptables -t nat -L -n
echo -e "===================Table Mangle================";
iptables -t mangle -L -n
echo -e "===================Table Raw===================";
iptables -t raw -L -n
;;
"restart")
echo "Reativando todas as Regras do Firewall...........[OK]"
sleep 1
firewall_stop; firewall_start
;;
*)
iptables -L -n
esac