Iptables com nat, prioridade de pacotes e bloqueio de portas
Publicado por tiago cesar de lima (última atualização em 08/07/2010)
[ Hits: 12.989 ]
Boas pessoal. Esse é meu primeiro firewall e gostaria da opinião de vocês.
Meu cenário é uma empresa com até 25 funcionários. A intenção do iptables é fazer nat, prioridade de pacotes e bloqueio de portas. Os bloqueios a sites vou deixar com o Squid mais pra frente.
Abraços!
#!/bin/sh #Script Firewall. #Desenvolvido por Tiago Cesar de Lima com ajuda de vários artigos do VOL echo "Bom dia Sentinela. E hora de Acordar" sleep 1 echo "Limpa todas as regras" sleep 1 iptables -t filter -F iptables -t nat -F iptables -t mangle -F echo "Exclui chains criadas" sleep 1 iptables -t filter -X iptables -t nat -X iptables -t mangle -X echo "Zera contador" sleep 1 iptables -t filter -Z iptables -t nat -Z iptables -t mangle -Z echo "Ativando trafego loopback" sleep 1 iptables -A INPUT -i lo -j ACCEPT echo "Ativando módulo NAT" sleep 1 /sbin/modprobe iptable_nat echo "Realizando NAT" echo "Todo pacote transmitido pela rede eth0 sairá com um mesmo IP" sleep 1 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE echo "Ativando IP Forward (Redirecionamento)" echo 1 > /proc/sys/net/ipv4/ip_forward sleep 1 echo "Prevencao a ataques diversos" echo "Ligando proteção para SYN flood. Deve ser feita em todos os servidores" sleep 1 echo 1 > /proc/sys/net/ipv4/tcp_syncookies echo "Prevencaoo a Ping da Morte" sleep 1 iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT echo "Desabilitando resposta de Ping pela internet" sleep 1 iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -j DROP iptables -A FORWARD -i eth0 -p icmp --icmp-type echo-request -j DROP echo "Descartando pacotes suspeitos ou danificados" sleep 1 #iptables -A FORWARD -m unclean -j DROP #iptables -A INPUT -m unclean -j DROP #Essa fica para os especialistas me ajudarem!! echo "Scanners Ocultos (Shealt Scan)" sleep 1 iptables -A INPUT -p tcp --tcp-flags SYN, ACK -m limit --limit 1/s -j ACCEPT iptables -A INPUT -p tcp --tcp-flags SYN, ACK -j DROP echo "Toda requisição que vier da rede interna sera aceita" sleep 1 iptables -A INPUT -i eth1 -p tcp --syn -s 192.168.0.0/24 -j ACCEPT echo "Toda requisição que vier da rede wireless será aceita" sleep 1 iptables -A INPUT -i eth2 -p tcp --syn -s 192.168.1.0/24 -j ACCEPT echo "Não-roteamento de pacotes da interface eth2 (Wireless) para eth1 (Rede Interna)" sleep 1 # Rede 192.168.0.0 --> Rede Fisica (Cabeada) # Rede 192.168.1.0 --> Rede Wireless iptables -A FORWARD -s 192.168.1.0/24 -d 192.168.0.0/24 -j REJECT iptables -A FORWARD -s 192.168.0.0/24 -d 192.168.1.0/24 -j REJECT echo 'OK, você conseguiu fazer o NAT, mas ainda precisa' echo "liberar algumas coisinhas certo? " sleep 1 echo "Liberando portas de acesso:" sleep 1 echo "Porta SSH (39800) e gravando logs" sleep 1 # Roteador de Casa iptables -A INPUT -p tcp --dport 39800 -m-mac --mac-source xx:xx:xx:xx:xx:xx -j LOG --log-level 6 --log-prefix "ssh_h" iptables -A INPUT -p tcp --dport 39800 -m mac --mac-source xx:xx:xx:xx:xx:xx -j ACCEPT echo "Placa de rede eth0" sleep 1 iptables -A INPUT -p tcp --dport 39800 -m mac --mac-source xx:xx:xx:xx:xx:xx -j LOG --log-level 6 --log-prefix "ssh_e" iptables -A INPUT -p tcp --dport 39800 -m mac --mac-source xx:xx:xx:xx:xx:xx -j ACCEPT echo "Placa de Rede Wireless" sleep 1 iptables -A INPUT -p tcp --dport 39800 -m mac --mac-source xx:xx:xx:xx:xx:xx -j LOG --log-level 6 --log-prefix "ssh_w" iptables -A INPUT -p tcp --dport 39800 -m mac --mac-source xx:xx:xx:xx:xx:xx -j ACCEPT echo "Porta 80 (http) e 443 (https)" sleep 1 iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT echo "NAT para Squid" sleep 1 iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128 iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 3128 echo "Porta 21 (ftp)" sleep 1 iptables -A INPUT -p tcp --dport 21 -j ACCEPT echo "Liberando Porta 25 (smtp) e fazendo NAT para provedor de e-mail (porta smtp padrão 26)" sleep 1 iptables -A INPUT -p tcp --dport 25 -j ACCEPT iptables -t nat -A PREROUTING -p tcp --dport 25 -j REDIRECT --to-port 26 echo "Porta 110 (pop)" sleep 1 iptables -A INPUT -p tcp --dport 110 -j ACCEPT #Liberando Porta RDP (3989) e fazendo Redirecionamento do Protocolo para o Host #iptables -t nat -A PREROUTING -p tcp --dport 39897 -i eth0 -m mac --mac-source xx:xx:xx:xx:xx:xx -j DNAT --to-destination 192.168.0.302:3989 #iptables -t nat -A PREROUTING -p tcp --dport 39898 -i eth0 -m mac --mac-source xx:xx:xx:xx:xx:xx -j DNAT --to-destination 192.168.0.301:3989 #iptables -t nat -A PREROUTING -p tcp --dport 39899 -i eth0 -m mac --mac-source xx:xx:xx:xx:xx:xx -j DNAT --to-destination 192.168.0.300:3989 ####Prioridade de serviços #### echo "Muito bem, agora vamos dar prioridade aos servicos, afinal de" echo "contas, e muito mais importante falar com a mamae no telefone do" echo "que ficar baixando filminhos nao e ?" sleep 1 echo "Definindo Espera Mínima a pacotes VoiP --> preciso pegar as configurações" sleep 1 iptables -t mangle -A PREROUTING -d meuprovedorvoip.com.br -j ACCEPT iptables -t mangle -A FORWARD -d meuprovedorvoip.com.br -j ACCEPT iptables -t mangle -A PREROUTING -d meuprovedorvoip.com.br -j TOS --set-tos 16 iptables -t mangle -A FORWARD -d meuprovedorvoip.com.br -j TOS --set-tos 16 iptables -t mangle -A PREROUTING -p udp --dport xxxx -j ACCEPT iptables -t mangle -A FORWARD -p udp --dport xxxx -j ACCEPT iptables -t mangle -A PREROUTING -p udp --sport xxxx -j TOS --set-tos 16 iptables -t mangle -A FORWARD -p udp --sport xxxx -j TOS --set-tos 16 iptables -t mangle -A PREROUTING -p udp --sport xxxx -j ACCEPT iptables -t mangle -A FORWARD -p udp --sport xxxx -j ACCEPT iptables -t mangle -A PREROUTING -p udp --dport xxxx -j TOS --set-tos 16 iptables -t mangle -A FORWARD -p udp --dport xxxx -j TOS --set-tos 16 echo "Definindo Maximo Processamento a pacotes http e https" sleep 1 iptables -t mangle -A PREROUTING -p tcp --sport 80 -j TOS --set-tos 8 iptables -t mangle -A FORWARD -p tcp --sport 80 -j TOS --set-tos 8 iptables -t mangle -A PREROUTING -p tcp --dport 80 -j TOS --set-tos 8 iptables -t mangle -A FORWARD -p tcp --dport 80 -j TOS --set-tos 8 iptables -t mangle -A PREROUTING -p tcp --sport 443 -j TOS --set-tos 8 iptables -t mangle -A FORWARD -p tcp --sport 443 -j TOS --set-tos 8 iptables -t mangle -A PREROUTING -p tcp --dport 443 -j TOS --set-tos 8 iptables -t mangle -A FORWARD -p tcp --dport 443 -j TOS --set-tos 8 echo "Definindo Maxima Confiança a e-mails (SMTP e POP3)" sleep 1 iptables -t mangle -A PREROUTING -p tcp --dport 110 -j TOS --set-tos 4 iptables -t mangle -A FORWARD -p tcp --dport 110 -j TOS --set-tos 4 iptables -t mangle -A PREROUTING -p tcp --sport 110 -j TOS --set-tos 4 iptables -t mangle -A FORWARD -p tcp --sport 110 -j TOS --set-tos 4 iptables -t mangle -A PREROUTING -p tcp --sport 26 -j TOS --set-tos 4 iptables -t mangle -A FORWARD -p tcp --sport 26 -j TOS --set-tos 4 iptables -t mangle -A PREROUTING -p tcp --dport 26 -j TOS --set-tos 4 iptables -t mangle -A FORWARD -p tcp --dport 26 -j TOS --set-tos 4 echo "Definindo Custo Minimo a downloads" sleep 1 iptables -t mangle -A PREROUTING -p tcp --sport 21 -j TOS --set-tos 2 iptables -t mangle -A FORWARD -p tcp --sport 21 -j TOS --set-tos 2 iptables -t mangle -A PREROUTING -p tcp --dport 21 -j TOS --set-tos 2 iptables -t mangle -A FORWARD -p tcp --dport 21 -j TOS --set-tos 2 echo "Bloqueando tudo" iptables -A INPUT -j DROP iptables -A FORWARD -j DROP echo "-------->> Sentinela Ativo: Iptables On <<--------" sleep 2
Criar backup do Diretorio /home
Arquivo que instala o Lazarus 1.0
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Kernel Linux 5.15.0-131.141 (6)
Não consigo cadastrar nenhuma conta online (3)
O que esta havendo com o mercado de ti? (5)