Postado originalmente por
osney
CARA DA UMA OLHADA NESSAS REGRAS ESSE É UM EXEMPLO DE UM DOS FIREWALL MAIS SEGUROS QUE EU JÁ FIZ.
#! /bin/bash
########################################
# Descrição: Inicializaçao do Firewall #
# #
# Data de criação: 17/01/2003 #
# Nome do Processo: Iptables #
# Autor: Osney Osmar da Silva Santos #
# Cargo: Analista de Suporte #
########################################
REDE="IP DA REDE" # EX. 10.10.10.0/24
# DEFINIÇÕES PERSONALIZADAS IPTABLES
IPT=/usr/sbin/iptables
# IPS DA REDE # AQUI VOCÊ PODE COLOCAR ALGUNS IPS DA SUA REDE PARA PERSONALIZAR EX. JOAO="10.10.10.10"
# CARREGANDO MODULOS IPTABLES
MOD=/sbin/modprobe
$MOD ip_conntrack
$MOD ip_conntrack_ftp
$MOD ipt_LOG
$MOD iptable_nat
$MOD ip_nat_ftp
# HABILITANDO IP_FORWAR
echo 1 > /proc/sys/net/ipv4/ip_forward
# ZERA REGRAS
$IPT -t filter -F
$IPT -t filter -Z
$IPT -t filter -X
$IPT -t nat -F
$IPT -t nat -Z
$IPT -t nat -X
# DEFINE POLÍTICAS NAT
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
# DEFINE POLÍTICA DE INPUT, OUTPUT E FORWARD # ISSO É SUPER SEGURO
$IPT -t filter -P INPUT DROP
$IPT -t filter -P OUTPUT ACCEPT
$IPT -t filter -P FORWARD DROP
# REGRAS NAT
$IPT -t nat -A POSTROUTING -s $REDE -o eth1 -j SNAT --to IPINTERNET
# REGRAS DE LOG
#$IPT -A INPUT -i ! eth0 -p icmp ! --icmp-type 8 -m limit --limit 1/s -j LOG --log-level 7 --log-prefix " [ICMP Negado] - "
#$IPT -A INPUT -p tcp -i ! eth0 --dport 21 -j LOG --log-level 7 --log-prefix " [FTP Negado] - "
#$IPT -A INPUT -p tcp -i ! eth0 --dport 22 -j LOG --log-level 7 --log-prefix " [SSH Aceito] - "
#$IPT -A INPUT -p tcp -i ! eth0 --dport 23 -j LOG --log-level 7 --log-prefix " [TELNET Negado] - "
#$IPT -A INPUT -p tcp -i ! eth0 --dport 25 -j LOG --log-level 7 --log-prefix " [SMTP Negado] - "
#$IPT -A INPUT -p tcp -i ! eth0 --dport 53 -j LOG --log-level 7 --log-prefix " [DNS Negado] - "
#$IPT -A INPUT -p tcp -i ! eth0 --dport 80 -j LOG --log-level 7 --log-prefix " [HTTP Negado] - "
#$IPT -A INPUT -p tcp -i ! eth0 --dport 110 -j LOG --log-level 7 --log-prefix " [POP3 Negado] - "
#$IPT -A FORWARD -m unclean -i ! eth0 -j LOG --log-level 7 --log-prefix " [PACOTE SUJO Negado] - "
# LIBERA COMUNICAÇÃO DA INTERFACE DE LOOPBACK
$IPT -A INPUT -i lo -j ACCEPT
# ACEITA CONEXÕES JA EXISTENTES
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# REGRAS DE FTP (21)
$IPT -A FORWARD -s IP -p tcp --dport 21 -j ACCEPT # LIBERA FTP PARA DETERMINADO IP
# REGRAS DE SSH (22)
$IPT -A INPUT -s IP -p tcp --dport 22 -j ACCEPT # LIBERA SSH PARA DETERMINADO IP
# REGRAS DE TELNET (23)
$IPT -A FORWARD -s IP -p tcp --dport 23 -j ACCEPT # LIBERA TELNET PARA DETERMINADO IP
# REGRAS DE EMAIL (25,110)
$IPT -A FORWARD -s IP -p tcp --dport 25 -j ACCEPT # LIBERA SMTP PARA DETERMINADO IP
$IPT -A FORWARD -d IP -p tcp --dport 25 -j ACCEPT # LIBERA VOLTA DE SMTP PARA DETERMINADO IP
$IPT -t nat -A PREROUTING -i PLACA DE IP INTERNET -p tcp --dport 25 -j DNAT --to IP # LIBERA DNAT PELA ETH0 OU ETH1 PARA SMTP E ENVIA PARA O SERVIDOR
$IPT -A FORWARD -s IP -p tcp --dport 110 -j ACCEPT # LIBERA POP PARA DETERMINADO IP
# REGRAS DE DNS (53)
$IPT -A FORWARD -s IP -p tcp --dport 53 -j ACCEPT # LIBERA DNS PARA DETERMINADO IP TCP
$IPT -A FORWARD -s IP -p udp --dport 53 -j ACCEPT # LIBERA DNS PARA DETERMINADO IP UDP
# REGRAS DE HTTP (80,85,443)
$IPT -A FORWARD -s IP -p tcp --dport 80 -j ACCEPT # LIBERA HTTP PARA DETERMINADO IP
$IPT -A FORWARD -s IP -p tcp --dport 443 -j ACCEPT # LIBERA HTTPS PARA DETERMINADO IP
# REGRAS DE PORTAS ALTAS
$IPT -A FORWARD -s IP -p tcp --dport 1024: -j ACCEPT # LIBRA AS PORTAS DE 1024 ATÉ 65000 PARA DETERMINADO IP
$IPT -A FORWARD -s IP -p tcp --dport 30005 -j ACCEPT # LIBERA SOMENTE A PORTA 30005 PARA DETERMINADO IP
NAS REGRAS DE E-MAIL É QUE VOCÊ PODE ENCONTRAR A SOLUÇÃO PARA SEU PROBLEMA. DA UMA OLHA E SUBSTITUA PARA AS PORTAS QUE VOCÊ PROCISA É O MESMO CONCEITO SÓ QUE EU FIZ PARA E-MAIL.