Compartilhamento de conexão
Publicado por Isaque Vieira de Sousa Alves (última atualização em 08/01/2010)
[ Hits: 6.443 ]
Homepage: www.isaquealves.com
Esse script é o principal script de minha rede wifi. Ele integra, entre outras coisas, um servidor Squid com natacl e diversas regras de firewall.
A maioria das regras foi construída graças a dicas e artigos de outros membros do VOL. Não é demais agradecer ao membro Elgio por todo o compartilhamento de conhecimento que realiza no portal.
#!/bin/bash
IPTABLES="/sbin/iptables"
# Interface da Internet:
IFNET="eth1"
# Interface da rede local
IFLOCAL="eth0"
iniciar(){
echo "Iniciando firewall de compartilhamento..."
echo "Definindo politica padrao como DROP..."
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP #Drop all icmp echo requests
iptables -A INPUT -m state --state INVALID -j DROP #Define DROP as default policy of netfilter
iptables -A FORWARD -i eth0 -s ! 192.168.2.0/24 -j DROP #Drop all trafic intended to be interpreted link a syn flood atack Thanks to elgio www.vivaolinux.com.br/~elgio
iptables -A INPUT -s 192.168.2.0/24 -p tcp --dport 111 -j DROP
iptables -A INPUT -s 192.168.2.0/24 -p tcp --dport 2049 -j DROP
#iptables -A FORWARD -i $IFLOCAL -j DROP
#iptables -A FORWARD -o $IFLOCAL -j DROP
sleep 1
echo "Habilitando trafego nas interfaces loopback e localnet(eth0)..."
iptables -A INPUT -i $IFLOCAL -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
sleep 1
echo "Fixando definicoes de compartilhamento: Forward e filter"
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
sleep 1
echo "Ativando NatACL Daemon..."
NatACL
sleep 1
echo "Abrindo SSH apenas para os macs listados..."
iptables -A INPUT -i eth1 -p tcp --destination-port 22 -m mac --mac-source 00:13:d4:7f:96:7d -j ACCEPT
iptables -A INPUT -i eth+ -p tcp --destination-port 22 -m mac --mac-source 00:13:d4:8e:99:f6 -j ACCEPT
sleep 1
echo "Liberando portas: 80, 53, 443 para todos os hosts..."
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 --syn -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 --syn -j ACCEPT
sleep 1
echo "Liberando portas: 111(NFS), 2049(NFS), 514(syslog), 67-68 (DHCP)..."
iptables -A INPUT -s 192.168.254.0/24 -p tcp --dport 111 -j ACCEPT #Libera NFS para a rede 192.168.254.0/24
iptables -A INPUT -s 192.168.254.0/24 -p tcp --dport 2049 -j ACCEPT # //--------//-----------//---------
iptables -A INPUT -s 192.168.2.254 -p tcp --dport 514 -j ACCEPT #Open communication port with syslog of the AP
iptables -A INPUT -i eth0 -p tcp --dport 67 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 68 -j ACCEPT
sleep 1
echo "Ativando registro (logging) de acessos ao VNC e SSH..."
iptables -A INPUT -p tcp --dport 5900 -j LOG --log-prefix="VNC(Alt Port):" #Register all the VNC traffic
iptables -A INPUT -p tcp --dport 5800 -j LOG --log-prefix="VNC:" #===//============//
iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix="ACESSO VIA SSH:" #Register all the SSH
sleep 1
echo "Mascarando interface de internet..."
iptables -t nat -A POSTROUTING -o $IFNET -j MASQUERADE # Postrouting in eth1
sleep 1
echo "Outras regras de Prerouting e forwarding..."
iptables -t nat -A PREROUTING -p tcp -d 200.201.0.0/16 -j ACCEPT #Conectividade Social
iptables -A FORWARD -p tcp -d 200.201.0.0/16 -j ACCEPT #Conectividade Social
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128 #Redirect trafic direct to squid proxy
iptables -t nat -A PREROUTING -p tcp -d 209.85.141.85 -j ACCEPT
iptables -A FORWARD -p tcp -s 209.85.193.99 -d 192.168.2.0/24 -jACCEPT
iptables -A FORWARD -p tcp -d 209.85.141.85 -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/24 -p tcp --dport 1863 -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/24 -d 65.54.179.192 -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/24 -p tcp --dport 1863 -j REJECT
iptables -A INPUT -p tcp --dport 3128 -j DROP #iptables -A FORWARD -s 192.168.2.0/24 -d loginnet.passport.com -j REJECT
echo "Vedando possibilidades de brute-force na porta do ssh..."
iptables -A INPUT -i eth0 -p tcp --dport 22 --tcp-flags SYN,RST,ACK SYN -m recent --set --name SSH # Aceita de um mesmo IP somente 4 requests por minuto
iptables -A INPUT -i eth0 -p tcp --dport 22 --tcp-flags SYN,RST,ACK SYN -m recent --update --seconds 60 --hitcount 4 --name SSH -j REJECT # mesmo tendo passado pela regra acima (4 por minuto), aceita somente 30 por dia
iptables -A INPUT -i eth0 -p tcp --dport 22 --tcp-flags SYN,RST,ACK SYN -m recent --set --name SSH2
iptables -A INPUT -i eth0 -p tcp --dport 22 --tcp-flags SYN,RST,ACK SYN -m recent --update --seconds 86400 --hitcount 20 --name SSH2 -j REJECT
iptables -A INPUT -i eth0 -p tcp --dport 3306 -j ACCEPT #libera acesso na rede local ao servidor mysql
sleep 1
echo "Firewall Ativo."
}
parar(){
echo "Parando daemon NatACL..."
for i in $(seq 9)
do
echo -n ". "
sleep 1
done
killall NatACL
echo "\nNatACL finalizado."
echo "limpando as regras de Firewall..."
iptables -F
iptables -F -t nat
iptables -X -t nat
iptables -X
sleep 2
echo "Redefinindo o padrão como ACCEPT"
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
sleep 2
echo "Firewall finalizado."
}
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "Use os parâmetros restart, start ou stop"
esac
Liberação do servidor DNS no firewall
instalado automatico do nagio 3.3.1 no debian 6
Configurando um Servidor de Nomes no CL10 apenas respondendo algumas perguntas...
POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - CRIANDO USUÁRIOS A PARTIR DE ARQUIVO
Nenhum comentário foi encontrado.
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
O Abismo entre o Código e o Chão: Saltos Tecnológicos e a Exclusão Estrutural no Brasil
Utilizando a Ferramenta xcheckrestart no Void Linux
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Como compilar kernel no Linux Mint
Abrir um arquivo URL pelo Clipper (9)
Seno, Coseno, Tangente em CLIPPER (1)
Inserir uma URL num arquvo pelo Ubuntu (CLIPPER) (0)
VMWare Player não conecta na rede nem consigo intercambiar arquivos (1)









