Iptables (rc.firewall)

Configuração intermediária de Firewall

Categoria: Segurança

Software: Iptables

[ Hits: 10.928 ]

Por: Guilherme Maia


Parâmetros de conf:

Mude aqui pelo IP e máscara de sua rede:

ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up

Em eth1 você colocará qual placa de rede será sua rede interna:

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Obs.: Este firewall serve apenas para compartilhamento da net, falta por exemplo redirecionamento de proxy.

Para permitir executá-lo (padrão Slackware):

# chmod +x /etc/rc.d/rc.firewall

Quando quiser colocar ele na inicialização automática:

kedit /etc/rc.d/rc.local

Adicionando a linha:

/etc/rc.d/rc.firewall start


#!/bin/bash

#Configuraçao do Iptables
echo by: Guilherme

firewall_start(){

echo [Definindo IP do servidor]
ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up

#Compartilhamento 
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
echo Compartilhamento Ativado

# Liberar portas
# SSH:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# DNS:
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
# HTTP e HTTPS:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
#FTP
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
#WEBMIN
iptables -A INPUT -p tcp --dport 10000 -j ACCEPT
echo Liberando portas

#Bloqueia as portas UDP de 0 a 1024 
iptables -A INPUT -p udp --dport 0:1024 -j DROP

# Bloqueia as Demais portas 
iptables -A INPUT -p tcp --syn -j DROP
echo Bloqueando Portas
 
# Ignora pings
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

# Proteção contra IP spoofing
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter

# Protege contra synflood
echo "1" > /proc/sys/net/ipv4/tcp_syncookies

# Proteção contra ICMP Broadcasting 
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
 
# Bloqueia traceroute
iptables -A INPUT -p udp --dport 33435:33525 -j DROP
 
# Proteções diversas contra portscanners, ping of death, ataques DoS, etc.
iptables -A INPUT -m state --state INVALID -j DROP

#Log`s de Acessos
#TELNET
iptables -A INPUT -p tcp --dport 23 -i eth1 -j LOG --log-level 6 --log-prefix "FIREWALL: telnet: "
#FTP
iptables -A INPUT -p tcp --dport 21 -i eth1 -j LOG --log-level 6 --log-prefix "FIREWALL: ftp: "
#SSH
iptables -A INPUT -p tcp --dport 80 -i eth1 -j LOG --log-level 6 --log-prefix "FIREWALL: http: "
echo Log´s Ativado
 
# Abre para a interface de loopback.
iptables -A INPUT -i lo -j ACCEPT

 
echo "O Firewall está sendo carregado..."
sleep 1
echo "Tudo pronto!"
sleep 1
}
firewall_stop(){
iptables -F
iptables -X
iptables -P INPUT   ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT  ACCEPT
}
 
case "$1" in
 "start")
firewall_start
        ;;
 "stop")
        firewall_stop
echo "O firewall está sendo desativado"
sleep 2
echo "ok."
        ;;
  "restart")
echo "O firewall está sendo reiniciado"
sleep 1
echo "ok."
        firewall_stop; firewall_start
        ;;
      *)
        iptables -L -n
esac
  


Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário

  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts