duker
(usa Ubuntu)
Enviado em 19/12/2011 - 15:08h
Boa tarde a todos sou iniciante no iptables, e fui montando esse script com base no script atual e pesquisas na internet, mas ao rodá-lo fico sem acesso à internet e a única coisa que tentei fazer com ele foi colocar política padrão DROP na INPUT e FORWARD, liberar o messenger (acho q a porta é a 1863 mas posso estar errado) e o skype na 2494 mas ao rodá-lo fico sem acesso web tanto na rede local quanto na rede wifi, por favor o que posso estar fazendo de errado, me ajudem na análise desse script.
Obs: Tem como eu ver quais as portas atualmente usadas nessa máquina para conexão da rede interna com a internet essa máquina tb roda o squid.
Obs2: a variável IP_NET tem meu ip na internet e coloquei aqui no tópico um fictício
#!/bin/bash
#Definindo Variaveis
HOSTNAME="srvfw"
ETH_NET="eth0"
ETH_LOC="eth1"
ETH_WIFI="eth2"
IP_NET="222.222.222.222"
IP_LOC="192.168.1.254"
NET_LOC="192.168.1.0/24"
NET_WIFI="172.16.0.0/16"
TS="192.168.1.252"
SRVCAM="192.168.1.251"
DIGISTAR="192.168.1.8"
ATA1="192.168.1.11"
ATA2="192.168.1.12"
ATA3="192.168.1.13"
limpar(){
# Limpando todas as regras do firewall
echo -n -e "\e[31;1m Limpando regras do firewall... "
echo "0" > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -t nat -F
iptables -t mangle -F
# Zera todos os contadores das Tabelas
iptables -Z
echo -e "\e[32;1m feito."
}
iniciar(){
echo -n -e "\e[31;1m Aplicando firewall... "
# Determina politica padrao do Firewall
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# Habilitando o ip_forward
echo "1" > /proc/sys/net/ipv4/ip_forward
## REGRAS DAS CONEXOES ENTRE FIREWALL E INTERNET
#Liberando serviços para rede local
#ssh
iptables -A INPUT -s $NET_LOC -p tcp --dport 22 -j ACCEPT
#apache
iptables -A INPUT -i $ETH_LOC -p tcp --dport 80 -j ACCEPT
#squid
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT
#email
iptables -A FORWARD -p tcp -o $ETH_NET -d 0/0 --dport 995 -j ACCEPT
iptables -A FORWARD -p tcp -o $ETH_NET -d 0/0 --dport 465 -j ACCEPT
iptables -A FORWARD -p tcp -o $ETH_NET -d 0/0 --dport 587 -j ACCEPT
iptables -A FORWARD -p tcp -o $ETH_NET -d 0/0 --dport 993 -j ACCEPT
#Regra do Proxy transparente
iptables -t nat -A PREROUTING -i $ETH_WIFI -p tcp --dport 80 -j REDIRECT --to-port 3128
#Transparência para requisições dos diretores
#aqui (em /etc/squiddir/diretores) tenho uma lista dos mac dos notebooks da diretoria e gostaria que eles acessem de forma transparente
while read line
do
iptables -A FORWARD -m mac --mac-source $line -p tcp --dport 443 -j ACCEPT
iptables -t nat -A PREROUTING -m mac --mac-source $line -p tcp --dport 80 -j REDIRECT --to-port 3128
done < /etc/squiddir/diretores
#Mascaramento de ip
iptables -t nat -A POSTROUTING -j MASQUERADE
#Liberando o uso Messenger (essas portas estão corretas?)
iptables -A FORWARD -p tcp --dport 1863 -j ACCEPT
iptables -A FORWARD -p tcp --dport 5190 -j ACCEPT
#Regra do Skype (VER LAYER 7)
iptables -A FORWARD -p tcp --dport 2494 -j ACCEPT
#Redirecionamento de portas
## TS
iptables -t nat -A PREROUTING -p tcp --dport 3389 -i $ETH_NET -j DNAT --to-destination $TS
#Cameras
iptables -t nat -A PREROUTING -p tcp --dport 7000 -i $ETH_NET -j DNAT --to-destination $SRVCAM
iptables -t nat -A PREROUTING -p tcp --dport 4550 -i $ETH_NET -j DNAT --to-destination $SRVCAM
iptables -t nat -A PREROUTING -p tcp --dport 5550 -i $ETH_NET -j DNAT --to-destination $SRVCAM
#DIGISTAR
iptables -A FORWARD -s $DIGISTAR -j ACCEPT
iptables -A FORWARD -d $DIGISTAR -j ACCEPT
#ATA - IP
iptables -A FORWARD -d $ATA1 -j ACCEPT
iptables -A FORWARD -s $ATA1 -j ACCEPT
iptables -A FORWARD -d $ATA2 -j ACCEPT
iptables -A FORWARD -s $ATA2 -j ACCEPT
iptables -A FORWARD -d $ATA3 -j ACCEPT
iptables -A FORWARD -s $ATA3 -j ACCEPT
#Liberando porta TrendMicro
iptables -A FORWARD -p tcp --dport 19796 -j ACCEPT
echo -e "\e[32;1m feito."
}
case $1 in
start)
limpar
echo ""
iniciar
;;
stop)
limpar
;;
restart)
limpar
echo ""
iniciar
;;
status)
echo -e "\e[40;33;1m TABELA FILTER (PADRAO)"
echo -e "\e[40;37;0m"
iptables -vL -n
echo ""
echo -e "\e[40;33;1m TABELA NAT"
echo -e "\e[40;37;0m"
iptables -t nat -vL -n
echo ""
echo -e "\e[40;33;1m TABELA MANGLE"
echo -e "\e[40;37;0m"
iptables -t mangle -vL -n
;;
*)
echo $"USAR: $0 { start | stop | restart | status }"
;;
esac
exit $?