
- Dúvida iptables
+ Responder ao Tópico
-
-
Re: Dúvida iptables
Bem, pelo o que eu entendi em seu script ele verifica a conexão, marca ela e manda para o link correspondente, o que você pode fazer é melhor uma pouco sua segurança, segue um pequeno script que uso em um servidor de Banco de dados da minha rede interna, nele não tem o mascaramento das interfaces, mas é bem fácil de entende-lo
----------------------------------------------------------------------------------------------
#!/bin/sh
# chkconfig: 345 99 10
# description: Firewall
#"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
#"| Script de Firewall - IPTABLES"
#"| Uso: firewall start|stop|restart|status"
#"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
#Declaração de variaveis
PATH=/sbin:/bin:/usr/sbin:/usr/bin
IPTABLES="/sbin/iptables"
PROGRAMA="/etc/init.d/firewall"
#portas liberadas e bloqueadas
PORTSLIB="/etc/configuracao_firewall/portslib"
PORTSBLO="/etc/configuracao_firewall/portsblo"
#Interfaces de Rede
LAN=eth1
#WAN=eth0
REDE="192.168.0.0/24"
# Os diversos módulos do iptables são chamdos através do modprobe
modprobe ip_tables
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_LOG
modprobe ipt_REJECT
modprobe ipt_MASQUERADE
modprobe ipt_state
modprobe ipt_multiport
modprobe iptable_mangle
modprobe ipt_tos
modprobe ipt_limit
modprobe ipt_mark
modprobe ipt_MARK
case "$1" in
start)
#mensagem de inicialização
echo "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
echo "| Script de Firewall - IPTABLES"
echo "| Uso: firewall start|stop|restart|status"
echo "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
echo
echo "=========================================================|"
echo "|:INICIANDO A CONFIGURACAO DO FIREWALL NETFILTER ATRAVES:|"
echo "|: DO IPTABLES :|"
echo "=========================================================|"
$IPTABLES -F
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD
$IPTABLES -t mangle -F
$IPTABLES -t nat -F
$IPTABLES -X
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP
# ativar o redirecionamento no arquivo ip_forward
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "Ativado o redirecionamento no arquivo ip_forward"
echo "ON .................................................[ OK ]"
#habilitando o fluxo interno entre os processos
$IPTABLES -I INPUT -i lo -j ACCEPT
$IPTABLES -I OUTPUT -o lo -j ACCEPT
echo "Ativado o fluxo interno entre os processos"
echo "ON .................................................[ OK ]"
#Ativa os logs para as portas princiais do servidor
for i in `cat $PORTSLIB`; do
$IPTABLES -A INPUT -p tcp --dport $i -j LOG --log-prefix " Acesso a porta: $i INPUT "
$IPTABLES -A FORWARD -p tcp --dport $i -j LOG --log-prefix " Acesso a porta $i FORWARD "
done
#liberar as portas principais do servidor
for i in `cat $PORTSLIB`; do
$IPTABLES -A INPUT -p tcp --dport $i -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport $i -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport $i -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 3306 -j ACCEPT
$IPTABLES -A FORWARD -p udp --dport 3306 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --sport 3306 -j ACCEPT
done
$IPTABLES -I INPUT -m state --state ESTABLISHED -j ACCEPT
$IPTABLES -I INPUT -m state --state RELATED -j ACCEPT
$IPTABLES -I OUTPUT -p icmp -o $WAN -j ACCEPT
$IPTABLES -I INPUT -p icmp -j ACCEPT
echo "Ativado as portas abertas para estabelecer conexoes"
echo "Ativado a liberacao das portas principais do servidor $HOSTNAME"
echo "ON .................................................[ OK ]"
#Bloqueio ping da morte
echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_all
$IPTABLES -N PING-MORTE
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j PING-MORTE
$IPTABLES -A PING-MORTE -m limit --limit 1/s --limit-burst 4 -j RETURN
$IPTABLES -A PING-MORTE -j DROP
echo "Ativado o bloqueio a tentativa de ataque do tipo ping da morte"
echo "ON .................................................[ OK ]"
#bloquear ataque do tipo SYN-FLOOD
echo "0" > /proc/sys/net/ipv4/tcp_syncookies
$IPTABLES -N syn-flood
$IPTABLES -A INPUT -i $WAN -p tcp --syn -j syn-flood
$IPTABLES -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
$IPTABLES -A syn-flood -j DROP
echo "Ativado o bloqueio a tentativa de ataque do tipo SYN-FLOOD"
echo "ON .................................................[ OK ]"
#Bloqueio de ataque ssh de força bruta
$IPTABLES -N SSH-BRUT-FORCE
$IPTABLES -A INPUT -i $WAN -p tcp --dport 22 -j SSH-BRUT-FORCE
$IPTABLES -A INPUT -i $LAN -p tcp --dport 22 -j SSH-BRUT-FORCE
$IPTABLES -A SSH-BRUT-FORCE -m limit --limit 1/s --limit-burst 4 -j RETURN
$IPTABLES -A SSH-BRUT-FORCE -j DROP
echo "Ativado o bloqueio a tentativa de ataque do tipo SSH-BRUT-FORCE"
echo "ON .................................................[ OK ]"
#Bloqueio de portas
#for i in `cat $PORTSBLO`; do
#$IPTABLES -A INPUT -p tcp -i $WAN --dport $i -j DROP
#$IPTABLES -A INPUT -p udp -i $WAN --dport $i -j DROP
#$IPTABLES -A FORWARD -p tcp --dport $i -j DROP
#done
#bloqueio Anti-Spoofings
$IPTABLES -A INPUT -s 10.0.0.0/8 -i $WAN -j DROP
$IPTABLES -A INPUT -s 127.0.0.0/8 -i $WAN -j DROP
$IPTABLES -A INPUT -s 172.16.0.0/12 -i $WAN -j DROP
$IPTABLES -A INPUT -s 192.168.1.0/16 -i $WAN -j DROP
echo "Ativado o bloqueio de tentativa de ataque do tipo Anti-spoofings"
echo "ON .................................................[ OK ]"
#Bloqueio de scanners ocultos (Shealt Scan)
$IPTABLES -A FORWARD -p tcp --tcp-flags SYN,ACK, FIN, -m limit --limit 1/s -j ACCEPT
echo "Bloqueado scanners ocultos"
echo "ON .................................................[ OK ]"
echo
echo "==========================================================|"
echo "::TERMINADA A CONFIGURACAO DO FIREWALL NETFILTER ATRAVES::|"
echo ":: DO IPTABLES ::|"
echo "==========================================================|"
echo "FIREWALL ATIVADO - SISTEMA PREPARADO"
;;
stop)
$IPTABLES -F
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD
$IPTABLES -t mangle -F
$IPTABLES -t nat -F
$IPTABLES -X
$IPTABLES -Z
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
echo "FIREWALL DESCARREGADO - SISTEMA LIBERADO"
;;
restart)
$PROGRAMA stop
$PROGRAMA start
;;
status)
echo ""
echo "Listando a tabela Filter..."
echo "******************************************************************************************************"
$IPTABLES -t filter -L -v -n
echo ""
echo ""
echo "Listando a Tabela NAT..."
echo "******************************************************************************************************"
$IPTABLES -t nat -L -v -n
echo ""
echo ""
echo "Listando a Tabela Mangle"
echo "******************************************************************************************************"
$IPTABLES -t mangle -L -v -n
;;
*)
echo "Use: $N {start|stop|restart|status}" >&2
echo -e "\033[01;31mATENCAO";tput sgr0
echo "Voce nao colocou nenhum argumento ou algum conhecido, entao por padrao sera dado em 5 segundos um restart no firewall"
sleep 5
$PROGRAMA restart
exit 1
esac
exit 0
-
Re: Dúvida iptables
Ta faltando uma regra de todos os pacotes respectivo link sair pelo mesmo gateway
Et tbm o ip_forward conforme script do colega