User Tools

Site Tools


wikiv3:scriptsimples

Script de firewall no Debian

A primeira coisa que precisamos fazer é liberar o repasse de pacotes entre as interfaces de rede, no kernel:

# vim /etc/sysctl.conf
[...]
net.ipv4.ip_forward=1
[...]

Releia:

# sysctl -p
net.ipv4.ip_forward = 1

Adicione o cabeçalho para inicialização durante o boot:

# head /etc/init.d/ssh > /etc/init.d/firewall

Conceda a permissão de execução para o script:

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

Script de gerenciamento completo:

# cat /etc/init.d/firewall 
firewall.sh
#!/bin/bash
 
### BEGIN INIT INFO
# Provides:		firewall
# Required-Start:	$remote_fs $syslog
# Required-Stop:	$remote_fs $syslog
# Default-Start:	2 3 4 5
# Default-Stop:		0 1 6
# Short-Description:	Firewal
### END INIT INFO
 
case $1 in
 
stop)
 
	# Definindo Politica ACCEPT - ACEITA TUDO
	iptables -t filter -P OUTPUT ACCEPT
	iptables -t filter -P INPUT ACCEPT
	iptables -t filter -P FORWARD ACCEPT
 
	# Limpar as Regras de todas as tableas
	iptables -t filter -F
	iptables -t nat -F
	iptables -t mangle -F
	iptables -t raw -F
	iptables -t security -F
 
	# Bloquear a passagem de pacotes pelo kernel
	echo 0 > /proc/sys/net/ipv4/ip_forward
	echo -e "[\033[0;32m ok\033[m ] Stopping Security Firewall"
 
;;
 
 
start)
	$0 stop
	sleep 0.5
	echo -e "[\033[0;32m ok\033[m ] Starting Security Firewall"
	# liberar a passagem de pacotes pelo kernel
	echo 1 > /proc/sys/net/ipv4/ip_forward
 
	# Iniciando as Regras
	bash /etc/firewall/rules
;;
 
restart)
	$0 start
;;
 
*)
	echo 'POR FAVOR USE "stop|start|restart"'
;;
 
esac

Arquivo com as regras:

# cat /etc/firewall/rules
rule.sh
#!/bin/bash
 
WAN=eth1
 
iptables -F
iptables -t nat -F
iptables -t mangle -F
 
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P INPUT ACCEPT
 
iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE

Para que ele seja iniciado junto com sistema quando a máquina for ligada, podemos colocar o “script”nos níveis de execução:

# insserv -d firewall
# ls -l /etc/rc2.d/
wikiv3/scriptsimples.txt · Last modified: by 127.0.0.1