saitam
(usa Slackware)
Enviado em 04/05/2012 - 23:16h
guners escreveu:
ele está em bridge
as regras do iptables estão todas limpas, é uma maquina virtual,
alguma ideia?
Ah, máquina virtual, então em adaptador de redes (caso seja VirtualBox)
No adaptador1 deixe como NAT (receberá do dhcp do modem Ex:(10.x.x.x)
No adaptador2 deixe como bridge (define um ip static
Ex: (192.168.1.x)
em outra vm ou host aponta o gw o ip do segundo adaptador2 (nesse caso)
#!/bin/bash
#Função: Regras Iptables de configuração do Firewall
#eth0=internet e eth1=rede local
#Variáveis
ifaceExt="eth0" #acesso internet
ifaceInt="eth1" #acesso intranet(rede interna)
LAN="192.168.1.0/24" #rede local
#carrega módulos
/sbin/modprobe ip_nat
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_queue
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe iptable_mangle
/sbin/modprobe ipt_state
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_multiport
/sbin/modprobe ipt_mac
/sbin/modprobe ipt_string
start(){
echo "Firewall iniciando..............................[OK]";
#limpa as regras
iptables -F
iptables -X
iptables -Z
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
iptables -t mangle -F
iptables -t mangle -X
iptables -t mangle -Z
#política padrão
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
#Permite pacotes transmitidos através da interface de loopback(localhost)
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#políticas chain INPUT
iptables -A INPUT -p udp -dport 3128 -j ACCEPT #Squid
#políticas chain OUTPUT
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT #HTTP
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT #HTTPS
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT#DNS TCP
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT #DNS UDP
iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT #SMTP
iptables -A OUTPUT -p tcp --dport 3128 -j ACCEPT #Squid
#políticas chain FORWARD
#regra libera da rede interna para rede externa para as portas #20,21,25,110,143,449,587,993,3389
iptables -A FORWARD -i $ifaceInt -s $LAN -o $ifaceExt -m multiport -p tcp --dport 20,21,25,110,143,443,587,993,3389 -j ACCEPT
iptables -A FORWARD -i $ifaceInt -s $LAN -o $ifaceExt -p udp 53 -j ACCEP
iptables -A FORWARD -i $ifaceInt -s $LAN -o $ifaceExt -p icmp -j ACCEP
iptables -A FORWARD -i $ifaceInt -s $LAN -o $ifaceExt -p icmp -j ACCEP
#Compartilha a conexão, disponível na interface eth0:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s $LAN -o $ifaceExt -j MASQUERADE
echo "Compartilhamento da rede ativo......................[OK]";
##Permitindo e filtrando conexões estabelecidas --statefull
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#Proxy Squid
iptables -t nat -A PREROUTING -s $LAN -i $ifaceInt -p tcp --dport 80 -j REDIRECT --to-port 3128
#Protege contra synflood
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
#Protege contra ping na máquina
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
#Proteção contra ICMP Broadcasting
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
#Proteção contra ataques DoS
iptables -A INPUT -m state -state INVALID -j DROP
iptables -A OUTPUT -p tcp ! -tcp-flags SYN,RST,ACK,SYN -m state -state NEW -j DROP
#Proteção contra IP Spoofing
iptables -A INPUT -s $LAN -i $ifaceExt -j DROP
for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo "1" > $i
done
#Bloqueia tudo que não foi especificado acima:
iptables -A INPUT -p tcp -syn -j DROP
}
stop(){
#limpa as regras
iptables -F
iptables -X
iptables -Z
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
iptables -t mangle -F
iptables -t mangle -X
iptables -t mangle -Z
#política padrão
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
#Compartilha a conexão, disponível na interface eth0:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s $LAN -o $ifaceExt -j MASQUERADE
echo "Compartilhamento da rede ativo......................[OK]";
#Permitindo e filtrando conexões estabelecidas --statefull
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "Firewall desativado!...............................[OK]";
}
case "$1" in
"start") start ;;
"stop") stop ;;
"restart") stop; start
;;
*)
echo "Use parâmetros start|stop|restart"
;;
esac
Adapte o script para o seu caso...