[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Script Firewall
From: |
xxoin |
Subject: |
Re: Script Firewall |
Date: |
Thu, 04 Nov 2004 14:56:48 -0000 |
User-agent: |
eGroups-EW/0.82 |
Aí vai o que uso num computador pessoal, se lhe interessar o que
utilizo num ambiente corporativo me avise...
Algumas regras output estão explícitas para o caso de se desejar mudar
a política para output. O mesmo para a tabela nat...
Os logs estão indo para /var/log/messages
_____ script_FW-início __________
#!/bin/bash
echo "Lendo variáveis..."
echo "Por favor aguarde."
sleep 2
echo
echo "Limpando a tela."
clear
# Identificando variáveis:
#-------------------------
# Módulo iptables:
iptables=/usr/sbin/iptables
# Interfaces:
eth_int=eth0
eth_ext=ppp0
# Iniciando função "start":
# ************************
FW_start(){
# Zerando regras:
$iptables -F
$iptables -t nat -F
$iptables -X
#=============================================================
# Estabelecendo política padrão:
#-------------------------------
$iptables -P INPUT DROP
$iptables -P FORWARD DROP
$iptables -P OUTPUT ACCEPT
$iptables -t nat -P PREROUTING ACCEPT
$iptables -t nat -P POSTROUTING ACCEPT
$iptables -t nat -P OUTPUT ACCEPT
#==============================================================
# Regras genéricas de proteção:
#------------------------------
# Protegendo de pacotes ping:
$iptables -A FORWARD -p icmp --icmp-type echo-request -j DROP
# Protegendo contra Ping of Death:
$iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit
1/s -j ACCEPT
# Protegendo contra Port Scan (nmap & cia):
$iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit
--limit 1/s -j ACCEPT
# Protegendo contra Syn Flood:
$iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
# Negando pings:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
# Contra ataque "icmp flooding" (broadcasts):
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Contra mensagens de icmp_redirects:
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# Para evitar o desvio de pacotes:
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# Evitar o repasse de pacotes falsificados:
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
# Evitar syn flood (syn cookies):
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#===========================================================
# Regras administrativas:
#------------------------
# LOOPBACK:
$iptables -A INPUT -i lo -j ACCEPT
$iptables -A OUTPUT -o lo -j ACCEPT
# Libera ping para o FW:
$iptables -A OUTPUT -p icmp -j ACCEPT
#-----------------> Regras FW > Internet:
# Libera conexões estabilizadas e com estas relacionadas (já iniciadas):
$iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Libera o Proxy/FW para resolver DNS (usar --dport 53 ou domain):
$iptables -A OUTPUT -p UDP --dport 53 -o $eth_ext -j ACCEPT
# Libera navegação para o FW aos protocolos http/https/ftp:
$iptables -A OUTPUT -d 201.2.0.1 -o $eth_ext -j ACCEPT
$iptables -A OUTPUT -p tcp --dport 80 -o $eth_ext -j ACCEPT
$iptables -A OUTPUT -p tcp --dport 443 -o $eth_ext -j ACCEPT
$iptables -A OUTPUT -p tcp --dport 20 -o $eth_ext -j ACCEPT
$iptables -A OUTPUT -p tcp --dport 21 -o $eth_ext -j ACCEPT
# Mascarando as conexões:
$iptables -t nat -A POSTROUTING -o $eth_ext -d 0/0 -j MASQUERADE
# ----> Logando tentativas de conexao na placa externa:
$iptables -A INPUT -i $eth_ext -m state --state NEW,INVALID -j LOG
--log-prefix "TENTATIVA_EXT"
$iptables -A INPUT -i $eth_ext -m state --state NEW,INVALID -j DROP
# Logando outras tentativas de conexão:
$iptables -A INPUT -p tcp --syn -j LOG --log-prefix "OUTRAS_TENTATIVAS"
$iptables -A INPUT -p tcp --syn -j DROP
# Fechando função "start":
# ***********************
}
#
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
# Iniciando função "stop":
# ***********************
FW_stop(){
# Dando um "flushing" e abrindo tudo:
$iptables -F
$iptables -t nat -F
$iptables -X
$iptables -P INPUT ACCEPT
$iptables -P FORWARD ACCEPT
$iptables -P OUTPUT ACCEPT
$iptables -t nat -P PREROUTING ACCEPT
$iptables -t nat -P POSTROUTING ACCEPT
$iptables -t nat -P OUTPUT ACCEPT
# Fechando função "stop":
# **********************
}
#
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
# Iniciando função "restart":
# **************************
FW_restart(){
FW_stop
FW_start
# Finalizando função "restart":
# ****************************
}
#
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
# Mensagens na tela:
# *****************
case "$1" in
"start")
FW_start
echo "O FW está sendo ativado..."
sleep 2
echo "O FW foi ativado com sucesso!"
;;
"stop")
FW_stop
echo "O FW está sendo desativado..."
sleep 1
echo "O FW foi DESATIVADO!"
echo ' ===================='
echo ' Mostrando tabelas:'
echo ' ===================='
echo
echo 'Tabela FILTER'
echo '*************'
iptables -L -n
echo
echo 'Tabela NAT'
echo '**********'
iptables -t nat -L
echo
;;
"restart")
FW_restart
echo "O FW está sendo desativado..."
sleep 1
echo "O FW está sendo reativado..."
sleep 2
echo "O FW foi ativado com sucesso!"
;;
*)
iptables -L -n |less
esac
________ Final do script_FW ____________
_______
Xxoin
_________________________________________________________
--- Em address@hidden, Esdras <klapzin@y...> escreveu
> Salve Lista,
>
> Alguem teria um modelo de script de firewall start stop pra colocar no
> init.d ?
> nao precisa ter muitas regras configuradas só preciso de um modelo pra
> me basear numa programação.
>
> Esdras
- Script Firewall, Esdras, 2004/11/04
- Re: Script Firewall,
xxoin <=
- Re: [shell-script] Re: Script Firewall, Edinaldo de Souza Revoredo Junior, 2004/11/05
- Re: Script Firewall, xxoin, 2004/11/05
- [shell-script] ddOs, ., 2004/11/16
- Re: [shell-script] ddOs, Ataliba Teixeira, 2004/11/17
- Re: [shell-script] ddOs Para: Ataliba Teixeixa, ., 2004/11/17
- Re: [shell-script] ddOs Para: Ataliba Teixeixa, Ataliba Teixeira, 2004/11/21
Re: [shell-script] Script Firewall, Enaldo Sousa Leite, 2004/11/04