Crie seu próprio firewall com iptables usando este script simples

Passei algum tempo pensando em duas coisas sobre o iptables: a maioria dos que procuram esses tutoriais são iniciantes e, em segundo lugar, muitos já estão procurando por algo bastante simples e já elaborado.

Este exemplo é para um servidor web, mas você pode facilmente adicionar mais regras e adaptá-las às suas necessidades.

Quando você vê "x" mudar para o seu IP


#!/bin/bash

# Limpamos tabelas iptables -F iptables -X # Limpamos NAT iptables -t nat -F iptables -t nat -X # tabela mangle para coisas como PPPoE, PPP e ATM iptables -t mangle -F iptables -t mangle -X # Políticas Acho que esta é a melhor maneira para iniciantes e # ainda não é ruim, vou explicar a saída (saída) porque são conexões de saída #, a entrada descartamos tudo e nenhum servidor deve encaminhar. iptables -P INPUT DROP iptables -P SAÍDA ACEITAR iptables -P FORWARD DROP #Intranet LAN intranet = eth0 #Extranet wan extranet = eth1 # Manter estado. Tudo que já está conectado (estabelecido) é deixado assim: iptables -A INPUT -m estado --state ESTABLISHED, RELACIONADO -j ACCEPT # Loop device. iptables -A INPUT -i lo -j ACEITAR # http, https, não especificamos a interface porque # queremos que seja toda iptables -A INPUT -p tcp --dport 80 -j ACEITAR iptables -A INPUT -p tcp - dport 443 -j ACEITAR # ssh apenas internamente e a partir desta faixa de iptables do ip -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet --dport 7659 -j ACEITAR # monitoramento por exemplo se eles têm zabbix ou algum outro serviço snmp iptables -A ENTRADA -p tcp -s 192.168.xx / 24 -i $ intranet --dport 10050 -j ACEITAR # icmp, ping bem depende de você iptables -A ENTRADA -p icmp -s 192.168.xx / 24 - i $ intranet -j ACEITAR #mysql com postgres é a porta 5432 iptables -A INPUT -p tcp -s 192.168.xx --sport 3306 -i $ intranet -j ACEITAR #sendmail bueeeh se quiser enviar algum correio #iptables -A SAÍDA -p tcp --dport 25 -j ACEITAR # Anti-SPOOFING 09/07/2014 # SERVER_IP = "190.xxx" # IP do servidor - o ip wan real do seu servidor LAN_RANGE = "192.168.xx / 21" # intervalo de LAN da sua rede ou vlan # Ip's que nunca devem entrar na extranet,é usar um pouco de # lógica se tivermos uma interface puramente WAN, ela nunca deve inserir # tráfego do tipo LAN através dessa interface SPOOF_IPS = "0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0 / 16 "# Ação padrão - a ser executada quando qualquer regra corresponder a ACTION =" DROP "# Pacotes com o mesmo ip do meu servidor através do wan iptables -A INPUT -i $ extranet -s $ SERVER_IP -j $ ACTION # iptables -A OUTPUT -o $ extranet -s $ SERVER_IP -j $ ACTION # Pacotes com o intervalo de LAN para o wan, coloco assim no caso de você ter # alguma rede em particular, mas isso é redundante com a seguinte # regra dentro do loop " para "iptables -A INPUT -i $ extranet -s $ LAN_RANGE -j $ ACTION iptables -A OUTPUT -o $ extranet -s $ LAN_RANGE -j $ ACTION ## Todas as redes SPOOF não permitidas pelo wan para ip em $ SPOOF_IPS do iptables -A INPUT -i $ extranet -s $ ip -j $ ACTION iptables -A OUTPUT -o $ extranet -s $ ip -j $ ACTION concluído

Como sempre aguardo seus comentários, fiquem ligados neste blog, obrigado