henriquebh
(usa Debian)
Enviado em 11/07/2010 - 12:18h
Galera, boa tarde.
Montei meu firewall baseado em informacoes do VOL e no livro Servidores Linux de Carlos Morimoto.
Bem, meus script ficou assim.
E eu preciso liberar 5 maquinas a navegarem com um proxy externo CAPS UFMG.
Dai minha necessidade de que essas maquinas naveguem fora do proxy interno.
Help!
#!/bin/bash
iniciar(){
# Abre para uma faixa de endereços da rede local
iptables -A INPUT -p tcp --syn -s 192.168.2.0/255.255.255.0 -j ACCEPT
# Compartilha a conexão:
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
echo "Ativação do compartilhamento da interface eth1 'OK'..."
# Proxy transparente:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
echo "Ativação do proxy transparente 'OK'..."
# Abre portas (inclusivo para a Internet)
iptables -A INPUT -p tcp --destination-port 21 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 110 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 465 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 995 -j ACCEPT
# Fecha portas (inclusivo para a Internet)
iptables -A INPUT -p tcp --destination-port 2535 -j DROP
iptables -A INPUT -p tcp --destination-port 138 -j DROP
iptables -A OUTPUT -p tcp --destination-port 138 -j DROP
iptables -A INPUT -p tcp --destination-port 139 -j DROP
iptables -A OUTPUT -p tcp --destination-port 139 -j DROP
# Fechando as portas do SSH pra fora
iptables -A INPUT -p tcp --dport 2756 -m iprange --src-range 192.168.2.0-192.168.2.255 -j ACCEPT
# Ignora pings
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
# Protege contra synflood
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
# Desabilita o suporte a source routed packets
echo "0" > /proc/sys/net/ipv4/conf/eth0/accept_source_route
echo "0" > /proc/sys/net/ipv4/conf/eth1/accept_source_route
# Proteção contra ICMP Broadcasting
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Permite conexões na interface de rede local e na porta 22:
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Regras básicas de firewall:
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
iptables -A INPUT -p tcp --syn -j DROP
# Abre para a interface de loopback.
iptables -A INPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
# Bloqueia qualquer conexão que não tenha sido permitida acima
iptables -A INPUT -p tcp --syn -j DROP
# Bloqueia as portas UDP de 0 a 1023:
iptables -A INPUT -p udp --dport 0:1023 -j DROP
echo "Ativação de regras de firewall e compartilhamento 'OK'..."
}
parar(){
iptables -F
iptables -t nat -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
echo 0 > /proc/sys/net/ipv4/ip_forward
echo "Desativação de regras de firewall e compartilhamento 'OK'..."
}
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "Indique um dos parâmetros de configuração 'start' ou 'stop' ou 'restart'"
esac