Firewall com Iptable - rc.Firewall
Publicado por Thalles Leonel 09/04/2008
[ Hits: 5.896 ]
Este script mostra de forma simples e prática como usar o IPTables para fazer NAT e masquerade. Também traz dicas de como redirecionar a navegação para Squid (proxy).
Ajuste os seguintes campos conforme sua rede:
R_EXTERNA=
R_INTERNA=
LAN=
Se tiver sugestões para melhoria deste, por favor registre no campo de comentários.
# rc.firewall.sh Linux Firewall - Versao 1.0rc02 # Criado por Thalles Leonel - thallesleonel@yahoo.com.br # Interface Rede - EXTERNA R_EXTERNA="eth0"; # Interface rede - INTERNA R_INTERNA="eth1"; # Definicao Rede Interna LAN="10.0.0.0/24" fw_start() { # Mensagem Inicial echo "######################################################" echo "# rc.firewall Linux Firewall - Versao 1.0rc02 #" echo "# Criado por Thalles Leonel #" echo "######################################################" # Carregando Modulos Iptables modprobe ip_tables modprobe iptable_filter modprobe iptable_mangle modprobe iptable_nat modprobe ipt_MASQUERADE echo "#--> Carregando Modulos Iptables ..............[ OK ]#" # Impedindo Alterar rota echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects echo "#--> Carregando Anti-Redirects ................[ OK ]#" # Impedindo Anti-Source_Route echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route echo "#--> Carregando Anti-Source_route .............[ OK ]#" # Protegendo contra responses bogus echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses echo "#--> Carregando Anti-Bugus_response ...........[ OK ]#" # Protecao contra ataques de syn flood (inicio da conexao TCP). Tenta conter ataques de DoS. echo 1 > /proc/sys/net/ipv4/tcp_syncookies echo "#--> Carregando Protecao DoS ..................[ OK ]#" # Carregando roteamento dinamico echo 1 > /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv4/ip_dynaddr echo "#--> Carregando Roteamento Dinamico ...........[ OK ]#" # Politicas Padrões iptables -t filter -P OUTPUT ACCEPT iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT iptables -t mangle -P PREROUTING ACCEPT iptables -t mangle -P POSTROUTING ACCEPT iptables -t mangle -P OUTPUT ACCEPT iptables -t mangle -P INPUT ACCEPT iptables -t mangle -P FORWARD ACCEPT echo "#--> Carregando Politicas Padroes .............[ OK ]#" # Cria Chain com regras de Seguranca iptables -N BLOCK iptables -A BLOCK -p icmp --icmp-type echo-request -j DROP iptables -A BLOCK -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT iptables -A BLOCK -p tcp -m limit --limit 1/s -j ACCEPT iptables -A BLOCK -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 1/s -j ACCEPT iptables -A BLOCK -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A BLOCK -j LOG --log-prefix "FW_ALERT: " iptables -A BLOCK -j DROP echo "#--> Carregando Chain com Regras de Seguranca .[ OK ]#" # Muda a prioridade dos pacotes (Type Of Service) para agilizar as coisas iptables -t mangle -A OUTPUT -o $R_EXTERNA -p tcp -m multiport --dports 4662,22,80,3128,5500,5900,6667 -j TOS --set-tos 0x10 echo "#--> Carregando QOS ...........................[ OK ]#" # Regras para redirecionar Portas # Porta 80 para o Squid 3128 iptables -t nat -A PREROUTING -i $R_INTERNA -p tcp --dport 80 -j REDIRECT --to-port 3128 echo "#--> Redirecionando Navegacao Web para Squid ..[ OK ]#" iptables -t nat -A PREROUTING -i $R_EXTERNA -p tcp --dport 4662 -j DNAT --to-dest 10.0.0.58 iptables -t nat -A PREROUTING -i $R_EXTERNA -p udp --dport 4672 -j DNAT --to-dest 10.0.0.58 iptables -t nat -A PREROUTING -i $R_EXTERNA -p tcp --dport 3389 -j DNAT --to-dest 10.0.0.2 iptables -t nat -A PREROUTING -i $R_EXTERNA -p tcp --dport 5500 -j DNAT --to-dest 10.0.0.5:5500 echo "#--> Redirecionando Portas do UltraVNC ........[ OK ]#" # Libera todo o trafego local iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i $R_INTERNA -j ACCEPT iptables -A FORWARD -i $R_INTERNA -j ACCEPT echo "#--> Liberando Acesso Interno .................[ OK ]#" # Libera so FSSH, WEB, UltraVNC e Webmin iptables -A INPUT -i $R_EXTERNA -p tcp --dport 21 -j ACCEPT iptables -A INPUT -i $R_EXTERNA -p tcp --dport 22 -j ACCEPT iptables -A INPUT -i $R_EXTERNA -p tcp --dport 80 -j ACCEPT iptables -A INPUT -i $R_EXTERNA -p tcp --dport 3128 -j ACCEPT iptables -A INPUT -i $R_EXTERNA -p tcp --dport 5500 -j ACCEPT iptables -A INPUT -i $R_EXTERNA -p tcp --syn -j DROP echo "#--> Liberando Acesso Externo .................[ OK ]#" # Libera a conexao para a rede interna iptables -t nat -A POSTROUTING -s $LAN -j MASQUERADE echo "#--> Liberando Conexao Rede Interna ...........[ OK ]#" echo "######################################################" echo "" } fw_stop() { echo "" iptables -t filter -P INPUT ACCEPT iptables -t filter -P FORWARD ACCEPT iptables -t filter -P OUTPUT ACCEPT iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT iptables -t mangle -P PREROUTING ACCEPT iptables -t mangle -P POSTROUTING ACCEPT iptables -t mangle -P OUTPUT ACCEPT iptables -t mangle -P INPUT ACCEPT iptables -t mangle -P FORWARD ACCEPT iptables -t filter -F iptables -t nat -F iptables -t mangle -F iptables -t filter -X iptables -t nat -X iptables -t mangle -X iptables -t filter -Z iptables -t nat -Z iptables -t mangle -Z echo "######################################################" echo "#--> Desativando / Limpando Firewall ..........[ OK ]#" echo "######################################################" echo "" } fw_usage() { echo echo "#--> $0 (start | stop | restart | clear)" echo echo "#--> start - Ativa o rc.Firewall.sh" echo "#--> stop - Desativa o rc.Firewall.sh" echo "#--> restart - Reativa o rc.Firewall.sh" echo "#--> clear - Limpa os contatores" } fw_clear() { iptables -t filter -Z iptables -t nat -Z iptables -t mangle -Z } case $1 in start) fw_stop; fw_start; ;; stop) fw_stop; ;; restart) fw_start; ;; clear) fw_clear; ;; *) fw_usage; exit; ;; esac
Firewall com iproute2 para 2 links com ip fixo
Tornando seu Ubuntu uma distro para testes de intrusão
Backup, restore e leitura de log com Dialog
Nenhum coment�rio foi encontrado.
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Debian 13 Trixie para Iniciantes
Convertendo pacotes DEB que usam ZSTD (Padrão Novo) para XZ (Padrão Antigo)
Ubuntu com problemas no áudio (2)
Debian 13 "trixie&... lançado! (44)
Rust é o "C da nossa geração"? (3)
Gerenciador de arquivos é finalizado ao abrir pasta específica (2)