Sugestões para script firewall [RESOLVIDO]

1. Sugestões para script firewall [RESOLVIDO]

Andre chagas ramos
andre_ramos

(usa openSUSE)

Enviado em 06/11/2009 - 10:30h

Bom Dia!

Configurei um firewall e gostaria de opinioes e criticas dos amigos sobre o meu scripts, regras de proteçoes, se falta algo para melhorar, e as regras para manter as coneçoes ja estabelecidas para nao parar, e preciso deixar ACCEPT, qual o certo.

segue o script abaixo

iniciar () {

# Compatilhamento da conexao
IPTABLES=/usr/sbin/iptables
echo 1 > /proc/sys/net/ipv4/ip_forward

# Carregamento de Modulos
modprobe ip_nat_ftp
modprobe iptable_nat
modprobe ip_tables
modprobe ip_conntrack
modprobe ipt_MASQUERADE
modprobe ip_conntrack_ftp

# Limpando as regras
$IPTABLES -F
$IPTABLES -Z
$IPTABLES -t nat -F
$IPTABLES -t mangle -F

# Mascaramento da rede para acesso externo
$IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE

echo "Ativando compatilhamento!"

# Politicas de acesso geral
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP

# Aceita todo o trafego vindo do loopback e indo pro loopback
$IPTABLES -t filter -A INPUT -i lo -j ACCEPT

########################################################
################ Protecoes contra ataques ##############
########################################################

# Protecao contra o ping da morte
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -m limit --limit 20/m -j ACCEPT
$IPTABLES -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 20/m -j ACCEPT

# Protecao contra port scanners avancados ex: nmap
#$IPTABLES -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit 20/m -j ACCEPT

# Bloqueando tracertroute
$IPTABLES -A INPUT -p udp -s 0/0 -i eth0 --dport 33435:33525 -j REJECT

# Protecao contra ataques
$IPTABLES -A INPUT -m state --state INVALID -j REJECT

##########################################################

# Redirecionando o trafego para a porta 3128
$IPTABLES -t nat -A PREROUTING -i eth1 -p tcp -d ! 200.201.174.207 --dport 80 -j REDIRECT --to-port 3128

# Manter conexoes ja estabelecidas para nao parar
$IPTABLES -A INPUT -i! eth1 -j ACCEPT
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -m state --state RELATED,ESTABLISHED,NEW -j ACCEPT

# Regras para liberar o outlook
$IPTABLES -A FORWARD -p udp -s 10.1.1.0/8 -d 200.175.182.139 --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s 200.175.182.139 --sport 53 -d 10.1.1.0/8 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s 10.1.1.0/8 -d 200.175.5.139 --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s 200.175.5.139 --sport 53 -d 10.1.1.0/8 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -s 10.1.1.0/8 --dport 25 -j ACCEPT # SMTP
$IPTABLES -A FORWARD -p tcp -s 10.1.1.0/8 --dport 110 -j ACCEPT # POP3
$IPTABLES -A FORWARD -p tcp -s 10.1.1.0/8 --sport 25 -j ACCEPT # SMTP
$IPTABLES -A FORWARD -p tcp -s 10.1.1.0/8 --sport 110 -j ACCEPT # POP3

# Regras para liberar o FTP
$IPTABLES -A INPUT -p tcp -s 10.1.1.0/8 --dport 20 -j ACCEPT # FTP
$IPTABLES -A INPUT -p tcp -s 10.1.1.0/8 --dport 21 -j ACCEPT # FTP
$IPTABLES -A INPUT -p tcp -s 10.1.1.0/8 --sport 20 -j ACCEPT # FTP
$IPTABLES -A INPUT -p tcp -s 10.1.1.0/8 --sport 21 -j ACCEPT # FTP

# INPUT # Pacotes que entram na rede
$IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT # SSH
$IPTABLES -A INPUT -p tcp --dport 3128 -j ACCEPT # SQUID
$IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT # HTTP
$IPTABLES -A INPUT -p tcp --dport 443 -j ACCEPT # HTTPS
#$IPTABLES -A INPUT -p tcp --dport 500 -j ACCEPT # HTTP OPOPULAR

# FORWARD # Pacotes que circulam na rede
$IPTABLES -A FORWARD -p tcp --dport 22 -j ACCEPT # SSH
$IPTABLES -A FORWARD -p tcp --dport 8333 -j ACCEPT # HTTP
$IPTABLES -A FORWARD -p tcp --dport 443 -j ACCEPT # HTTPS
$IPTABLES -A FORWARD -s 10.1.1.0/8 -j ACCEPT

$IPTABLES -t nat -A POSTROUTING -j MASQUERADE
#--------------------------------------------------------------------------------------

echo "Firewall Ativado"
}

parar(){

echo "Regras de firewall e compartilhamento desativados"
iptables -F
iptables -t nat -F
iptables -t mangle -F
}

case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar;;
*)echo "Use os paramentros start ou stop"
esac



  


2. Re: Sugestões para script firewall [RESOLVIDO]

Jefferson Diego
Diede

(usa Debian)

Enviado em 06/11/2009 - 13:13h

Vamos lá, seu firewall está com regras meio que excludentes:



$IPTABLES -P FORWARD DROP
$IPTABLES -A FORWARD -m state --state RELATED,ESTABLISHED,NEW -j ACCEPT

Sua política padrão na FORWARD é DROP, mas na regra seguinte você permite tudo (as possibilidades de state são RELATED, ESTABLISHED, NEW e INVALID, ou seja, exceto um pacote mal formado, todo o resto será permitido)

Se você já permitiu tudo pelo state, não precisa destas regras abaixo:

# Regras para liberar o outlook
$IPTABLES -A FORWARD -p udp -s 10.1.1.0/8 -d 200.175.182.139 --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s 200.175.182.139 --sport 53 -d 10.1.1.0/8 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s 10.1.1.0/8 -d 200.175.5.139 --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s 200.175.5.139 --sport 53 -d 10.1.1.0/8 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -s 10.1.1.0/8 --dport 25 -j ACCEPT # SMTP
$IPTABLES -A FORWARD -p tcp -s 10.1.1.0/8 --dport 110 -j ACCEPT # POP3
$IPTABLES -A FORWARD -p tcp -s 10.1.1.0/8 --sport 25 -j ACCEPT # SMTP
$IPTABLES -A FORWARD -p tcp -s 10.1.1.0/8 --sport 110 -j ACCEPT # POP3



Bem, seu firewall não tem uma proteção muito boa para spoofing. Nada impede alguém da web de lançar um DoS spoofando o IP para 10.x.x.x.
E... por questões de segurança, é melhor que a regra MASQUERADE seja a última...
Eu recomendo algo assim:


#! /bin/bash
iniciar () {

# Compatilhamento da conexao
IPTABLES=/usr/sbin/iptables
echo 1 > /proc/sys/net/ipv4/ip_forward

# Carregamento de Modulos
modprobe ip_nat_ftp
modprobe iptable_nat
modprobe ip_tables
modprobe ip_conntrack
modprobe ipt_MASQUERADE
modprobe ip_conntrack_ftp

# Limpando as regras
$IPTABLES -F
$IPTABLES -Z
$IPTABLES -t nat -F
$IPTABLES -t mangle -F

echo "Ativando compatilhamento!"

# Politicas de acesso geral
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP

# Aceita todo o trafego vindo do loopback e indo pro loopback
$IPTABLES -t filter -A INPUT -i lo -j ACCEPT

########################################################
################ Protecoes contra ataques ##############
########################################################

# Protecao contra o ping da morte
#PS: Ping da morte não é bloqueado pelo tempo entre um e outro. Essa regra seria uma regra fuleira contra um DoS (mas, não funcionaria corretamente). Ping da morte não afeta mais máquinas há pelo menos uns 10 anos
#$IPTABLES -A INPUT -p icmp --icmp-type echo-request -m limit --limit 20/m -j ACCEPT
#$IPTABLES -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 20/m -j ACCEPT

#PS: Seu INPUT já é DROP... não precisa desta regra...
# Bloqueando tracertroute
#$IPTABLES -A INPUT -p udp -s 0/0 -i eth0 --dport 33435:33525 -j REJECT

#PS: Invalid não é necessariamente um ataque... e REJECT não ajuda se for, pois a cada pacote sua máquina responderá com um ICMP, o que não ajuda em nada. DROP é melhor neste caso
# Protecao contra ataques
#$IPTABLES -A INPUT -m state --state INVALID -j REJECT
$IPTABLES -A INPUT -m state --state INVALID -j DROP

##########################################################

# Redirecionando o trafego para a porta 3128
$IPTABLES -t nat -A PREROUTING -i eth1 -p tcp -d ! 200.201.174.207 --dport 80 -j REDIRECT --to-port 3128

# Manter conexoes ja estabelecidas para nao parar
#Não entendi. Afinal eth1 é a interface da web ou rede interna??? Na regra acima (da caixa federal), presumi que eth1 fosse a rede interna, mas se o é, por que aceitar tudo menos ela na regra abaixo?
$IPTABLES -A INPUT -i! eth1 -j ACCEPT
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#Habilitar o NEW habilita tudo...
#$IPTABLES -A FORWARD -m state --state RELATED,ESTABLISHED,NEW -j ACCEPT
$IPTABLES -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

# Regras para liberar o outlook
$IPTABLES -A FORWARD -p udp -s 10.1.1.0/8 -d 200.175.182.139 --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s 200.175.182.139 --sport 53 -d 10.1.1.0/8 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s 10.1.1.0/8 -d 200.175.5.139 --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s 200.175.5.139 --sport 53 -d 10.1.1.0/8 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -s 10.1.1.0/8 --dport 25 -j ACCEPT # SMTP
$IPTABLES -A FORWARD -p tcp -s 10.1.1.0/8 --dport 110 -j ACCEPT # POP3
#Quem responde com sport 25/110 é o servidor (SMTP ou POP3). Você só precisa desta regra se houver um servidor SMTP/POP na faixa 10.1.1.0/8
#$IPTABLES -A FORWARD -p tcp -s 10.1.1.0/8 --sport 25 -j ACCEPT # SMTP
#$IPTABLES -A FORWARD -p tcp -s 10.1.1.0/8 --sport 110 -j ACCEPT # POP3

# Regras para liberar o FTP
$IPTABLES -A INPUT -p tcp -s 10.1.1.0/8 --dport 20 -j ACCEPT # FTP
$IPTABLES -A INPUT -p tcp -s 10.1.1.0/8 --dport 21 -j ACCEPT # FTP
#Quem responde com sport 20/21 é só o servidor... você não precisa destas regras se não tiver um servidor FTP na faixa 10.1.1.0/8
#$IPTABLES -A INPUT -p tcp -s 10.1.1.0/8 --sport 20 -j ACCEPT # FTP
#$IPTABLES -A INPUT -p tcp -s 10.1.1.0/8 --sport 21 -j ACCEPT # FTP

# INPUT # Pacotes que entram na rede
$IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT # SSH
$IPTABLES -A INPUT -p tcp --dport 3128 -j ACCEPT # SQUID
$IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT # HTTP
$IPTABLES -A INPUT -p tcp --dport 443 -j ACCEPT # HTTPS
#$IPTABLES -A INPUT -p tcp --dport 500 -j ACCEPT # HTTP OPOPULAR

# FORWARD # Pacotes que circulam na rede
$IPTABLES -A FORWARD -p tcp --dport 22 -j ACCEPT # SSH
$IPTABLES -A FORWARD -p tcp --dport 8333 -j ACCEPT # HTTP
$IPTABLES -A FORWARD -p tcp --dport 443 -j ACCEPT # HTTPS
$IPTABLES -A FORWARD -s 10.1.1.0/8 -j ACCEPT

#$IPTABLES -t nat -A POSTROUTING -j MASQUERADE


# Mascaramento da rede para acesso externo
$IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE






#--------------------------------------------------------------------------------------

echo "Firewall Ativado"
}

parar(){

echo "Regras de firewall e compartilhamento desativados"
iptables -F
iptables -t nat -F
iptables -t mangle -F
}

case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar;;
*)echo "Use os paramentros start ou stop"
esac






PS: eth1 é a interface da rede interna ou da web?
A resposta para esta pergunta pode, eventualmente implicar em mudanças na estrutura do firewall


3. Re: Sugestões para script firewall [RESOLVIDO]

Andre chagas ramos
andre_ramos

(usa openSUSE)

Enviado em 06/11/2009 - 14:56h

Caro amigo! Agradeço pelas dicas pois sou iniciante em linux e é o primeiro firewall que estou montando,

primeiro eth1 e a rede interna

segundo vc disse que estarei sem segurança em spoofing, vc pode me ajudar com regras para esta segurança e vc pode me mostrar outras seguranças que posso aplicar neste firewall?

terceiro nao e preciso colocar a regra do ping da morte isso

quarta ao retirar as regras de manter as coneções para nao parar o skype e o msn nao funcionam mais oque sera que pode ser?
A regra e esta: $IPTABLES -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

quinto se eu retirar esta regra $IPTABLES -A INPUT -i! eth1 -j ACCEPT a intener nao acessa mas o skype e o msn funciona.porque sera


grato


4. Considerações:

Jefferson Diego
Diede

(usa Debian)

Enviado em 07/11/2009 - 09:40h

Não compensa usar estas regras que dizem proteger contra ping da morte por dois motivos:
1. Elas não fazem o correto. Ping da morte é um ataque de pacotes grandes, não pacotes contínuos. Com esta regra "-p icmp --icmp-type echo-request -m limit --limit 20/m -j ACCEPT" nada impede de alguém mandar 20 pings da morte por segundo....
2. Todos os sistemas já tem proteção contra ele. Afinal, é um bug de quase 10 anos. Compensa mais se proteger contra ameaças reais/recentes, como o Conficker ou outros.

A regra "$IPTABLES -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT", você tem que deixá-la. Sem ela, apenas o primeiro pacote de cada conexão é aceito na tabela-chain-condição em questão.
Este regra diz "Aceite todos os pacotes relacionados ou inerentes à conexões que vêm de outras maquinas e usam a minha para acessar a internet". O que você não pode é adicionar o state NEW, pois daí a regra significaria "Aceite qualquer pacote que usar minha máquina para acessar a internet". (Seria como contratar um segurança e dizer: "Ei, pode deixar todo mundo entrar, independente do que for!)


Quanto a proteção contra spoofing, você terá um mínimo dela se especificar a interface em cada regra, ou se no inicio da chain bloquear os IP's que não perteçam à interface (como por exemplo IP's privados vindos da interface da internet).



#! /bin/bash
NETWORK=eth1
WEB=eth0
iniciar () {

# Limpando as regras
$IPTABLES -F
$IPTABLES -Z
$IPTABLES -t nat -F
$IPTABLES -t mangle -F


#Padrão: Permite compartilhamento da Net:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROP

#Bloqueia pacotes intencionalmente mal-formados:
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

#Evitando SYN-Flood"
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

# Carregamento de Modulos
modprobe ip_nat_ftp
modprobe iptable_nat
modprobe ip_tables
modprobe ip_conntrack
modprobe ipt_MASQUERADE
modprobe ip_conntrack_ftp

# Aceita todo o trafego vindo do loopback.
iptables -t filter -A INPUT -i lo -j ACCEPT

########################################################
################ Protecoes contra ataques ##############
########################################################
iptables -A INPUT -m state --state INVALID -j DROP
#Edite aqui, se sua rede não for 192.168.0.x
iptables -A INPUT -i $NETWORK -s ! 192.168.0.0/24 -j DROP

##########################################################

# Redirecionando o trafego para a porta 3128
$IPTABLES -t nat -A PREROUTING -i $NETWORK -p tcp -d ! 200.201.174.207 --dport 80 -j REDIRECT --to-port 3128
$IPTABLES -A INPUT -i eth1 -j ACCEPT

# Regras para liberar o outlook
$IPTABLES -A FORWARD -p udp -s 10.1.1.0/8 -d 200.175.182.139 --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s 200.175.182.139 --sport 53 -d 10.1.1.0/8 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s 10.1.1.0/8 -d 200.175.5.139 --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s 200.175.5.139 --sport 53 -d 10.1.1.0/8 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -s 10.1.1.0/8 --dport 25 -j ACCEPT # SMTP
$IPTABLES -A FORWARD -p tcp -s 10.1.1.0/8 --dport 110 -j ACCEPT # POP3

# Regras para liberar o FTP
$IPTABLES -A INPUT -i $NETWORK -p tcp -s 10.1.1.0/8 --dport 20 -j ACCEPT # FTP
$IPTABLES -A INPUT -i $NETWORK -p tcp -s 10.1.1.0/8 --dport 21 -j ACCEPT # FTP

# INPUT # Pacotes que entram na rede
$IPTABLES -A INPUT -i $NETWORK -p tcp --dport 22 -j ACCEPT # SSH
$IPTABLES -A INPUT -i $NETWORK -p tcp --dport 3128 -j ACCEPT # SQUID
$IPTABLES -A INPUT -i $NETWORK -p tcp --dport 80 -j ACCEPT # HTTP
$IPTABLES -A INPUT -i $NETWORK -p tcp --dport 443 -j ACCEPT # HTTPS

# FORWARD # Pacotes que circulam na rede
$IPTABLES -A FORWARD -i $NETWORK -p tcp --dport 22 -j ACCEPT # SSH
$IPTABLES -A FORWARD -i $NETWORK -p tcp --dport 8333 -j ACCEPT # HTTP
$IPTABLES -A FORWARD -i $NETWORK -p tcp --dport 443 -j ACCEPT # HTTPS
$IPTABLES -A FORWARD -i $NETWORK -s 10.1.1.0/8 -j ACCEPT


# Mascaramento da rede para acesso externo
$IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE






#--------------------------------------------------------------------------------------

echo "Firewall Ativado"
}

parar(){

echo "Regras de firewall e compartilhamento desativados"
iptables -F
iptables -t nat -F
iptables -t mangle -F
}

case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar;;
*)echo "Use os paramentros start ou stop"
esac


5. Re: Sugestões para script firewall [RESOLVIDO]

Andre chagas ramos
andre_ramos

(usa openSUSE)

Enviado em 09/11/2009 - 09:21h

Kara muito obrigado mais uma vez pela ajuda.

Mas tenho 2 perguntas:

1 pergunta:
Em Bloqueia pacotes intencionamente mal-formados que vc me passou ha duas regras que se colocar da erro ao start o firewall. elas estao abaixo no script comentadas ( a regra e esta mesmo ou será que esta com algum erro)

2 pergunta:
Em Redirecionando o trafego para a porta 3128 para que serve a regra descrita abaixo
$IPTABLES -A INPUT -i eth1 -j ACCEPT

obs: segue abaixo o script formatado com vc me passou, poderia dar mais uma olhada e verificar se falta algo.

Agradeço pela ajuda

IPTABLES=/usr/sbin/iptables
NETWORK=eth1
WEB=eth0

iniciar () {

# Limpando as regras
$IPTABLES -F
$IPTABLES -Z
$IPTABLES -t nat -F
$IPTABLES -t mangle -F

# Compatilhamento da conexao
echo 1 > /proc/sys/net/ipv4/ip_forward

echo "Ativando compatilhamento!"

# Politicas de acesso geral
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP

# Manter conexoes ja estabelecidas para nao parar
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -m state --state INVALID -j DROP

# Bloqueia pacotes intencionamente mal-formados
$IPTABLES -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
#$IPTABLES -A INPUT -P tcp --tcp-flags SYN,RST SYN,RST -j DROP
#$IPTALBES -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

# Evitando SYN_Flood
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

# Carregamento de Modulos
modprobe ip_nat_ftp
modprobe iptable_nat
modprobe ip_tables
modprobe ip_conntrack
modprobe ipt_MASQUERADE
modprobe ip_conntrack_ftp

# Aceita todo o trafego vindo do loopback e indo pro loopback
$IPTABLES -t filter -A INPUT -i lo -j ACCEPT

# Protecoes contra ataques #
$IPTABLES -A INPUT -m state --state INVALID -j DROP
$IPTABLES -A INPUT -i $NETWORK -s ! 10.1.1.0/8 -j DROP

# Redirecionando o trafego para a porta 3128
$IPTABLES -t nat -A PREROUTING -i $NETWORK -p tcp -d ! 200.201.174.207 --dport 80 -j REDIRECT --to-port 3128
$IPTABLES -A INPUT -i eth1 -j ACCEPT

# Regras para liberar o outlook
$IPTABLES -A FORWARD -p udp -s 10.1.1.0/8 -d 200.175.182.139 --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s 200.175.182.139 --sport 53 -d 10.1.1.0/8 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s 10.1.1.0/8 -d 200.175.5.139 --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s 200.175.5.139 --sport 53 -d 10.1.1.0/8 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -s 10.1.1.0/8 --dport 25 -j ACCEPT # SMTP
$IPTABLES -A FORWARD -p tcp -s 10.1.1.0/8 --dport 110 -j ACCEPT # POP3

# Regras para liberar o FTP
$IPTABLES -A INPUT -i $NETWORK -p tcp -s 10.1.1.0/8 --dport 20 -j ACCEPT # FTP
$IPTABLES -A INPUT -i $NETWORK -p tcp -s 10.1.1.0/8 --dport 21 -j ACCEPT # FTP

# INPUT # Pacotes que entram na rede
$IPTABLES -A INPUT -i $NETWORK -p tcp --dport 22 -j ACCEPT # SSH
$IPTABLES -A INPUT -i $NETWORK -p tcp --dport 80 -j ACCEPT # HTTP
$IPTABLES -A INPUT -i $NETWORK -p tcp --dport 443 -j ACCEPT # HTTPS

# FORWARD # Pacotes que circulam na rede
$IPTABLES -A FORWARD -i $NETWORK -p tcp --dport 22 -j ACCEPT # SSH
$IPTABLES -A FORWARD -i $NETWORK -p tcp --dport 8333 -j ACCEPT # HTTP
$IPTABLES -A FORWARD -i $NETWORK -p tcp --dport 443 -j ACCEPT # HTTPS
$IPTABLES -A FORWARD -i $NETWORK -s 10.1.1.0/8 -j ACCEPT

# Mascaramento da rede para acesso externo
$IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE

#--------------------------------------------------------------------------------------

echo "Firewall Ativado"
}

parar(){

echo "Regras de firewall e compartilhamento desativados"
iptables -F
iptables -t nat -F
iptables -t mangle -F
}

case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar;;
*)echo "Use os paramentros start ou stop"
esac



6. Re: Sugestões para script firewall [RESOLVIDO]

Jefferson Diego
Diede

(usa Debian)

Enviado em 09/11/2009 - 10:24h

"$IPTABLES -A INPUT -i eth1 -j ACCEPT"
Esta regra server para dizer que você aceita tudo que vier da rede internet com intenção de usar serviços em sua máquina.

E... eu errei nesta parte:
# Bloqueia pacotes intencionamente mal-formados
$IPTABLES -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -P tcp --tcp-flags SYN,RST SYN,RST -j DROP

Na terceira regra, o "-P" (deveria ser "-p") está em maiúsculo, mas deveria ser minúsculo.
Este foi o erro que vi... qual é a segunda regra que dá erro?


7. Re: Sugestões para script firewall [RESOLVIDO]

Luciano Gomes
lucianopqd

(usa Ubuntu)

Enviado em 09/11/2009 - 10:31h

Faz o seguinte, a maneira mais simples e com certeza a mais segura de todas é:

1º - DROPAR tudo
2º - ACCEPT apenas o que de fato vc vai usar.

Pronto, segue essa linha de raciocínio que vc nao vai ter problema.


8. Re: Sugestões para script firewall [RESOLVIDO]

Andre chagas ramos
andre_ramos

(usa openSUSE)

Enviado em 09/11/2009 - 10:44h

a outra regra que da erro e a debaixo

$IPTABLES -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

SUBSTITUI O P POR p E FUNCIONOU AGORA SO FALTA ESSA REGRA DE CIMA

VOU COLOCAR TAMBEM NA POLITICA GERAL A OPÇAO OUTPUT COM DROP, FICA MAIS SEGURA CERTO.



9. Re: Sugestões para script firewall [RESOLVIDO]

10. Re: Sugestões para script firewall [RESOLVIDO]

Jefferson Diego
Diede

(usa Debian)

Enviado em 09/11/2009 - 12:22h

Não vejo porque por DROP na OUTPUT (seria como ter um segurança que pede idendificação para você SAIR da sua casa...)
Agora, quanto a regra, ela está ok....
Tente digitá-la manualmente num terminal (sudo iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP)



  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts