slackit-ml
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Slackit.org] PuCCiO'S Firewall - Beta 0.1 is out!


From: Vincenzo 'PuCCiO' Ciaglia
Subject: [Slackit.org] PuCCiO'S Firewall - Beta 0.1 is out!
Date: Fri, 2 May 2003 15:44:00 +0200
User-agent: KMail/1.5

Buon di'...come avevo promesso a "dwarf" e "khazad-dum" ecco a voi il firewall 
che, ieri, mi sono divertito a creare. Powered by IPTABLES...ovvio! Ve lo ho 
allegato in formato TXT, salvatelo come uno shell script e state appost! ;)

Ora vi incollo il codice e cerco di spiegare ogni riga.......

--------------------------------------------------------------------------
#############################################
#### FIREWALLING WITH IPTABLES by PuCCiO ####
######## tested for spine-group.org #########
######## tested for pucciolab.org ##########
######## tested for slackit.org ############
############### Beta Version ###############
############################################

iptables -P INPUT DROP
iptables -F
iptables -X
iptables -t nat -A PREROUTING -i ppp0 -s 127.0.0.0/8 -j DROP
iptables -t nat -A PREROUTING -i ppp0 -s 192.168.0.0/16 -j DROP
iptables -t nat -A PREROUTING -i ppp0 -d ! $IP -j DROP

## La prima istruzione scarta tutti i pacchetti che dicono di provenire da 
127.x.x.x perché questi pacchetti viaggiano solo sull'interfaccia lo. La 
seconda elimina tutti quelli che dicono di provenire della rete locale; 
poiché sono nell'interfaccia ppp0 (il modem) sono sicuramente contraffatti. 
La terza istruzione scarta tutti i pacchetti che non sono diretti a noi ##

### BETA 0.1 ###
iptables -t nat -A PREROUTING -i ppp0 -m unclean -j DROP
iptables -N ppp_in
iptables -N services

## Con queste due istruzioni abbiamo creato due catene che ci serviranno per 
migliorare la facilità di manutenzione del codice. ##

iptables -N conn_state
iptables -N flags
iptables -N blocked

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i ppp0 -j ppp_in

## Con la prima istruzione abbiamo istruito iptables affinché lasci passare 
tutti i pacchetti local-to-local, ovvero quelli generati localmente con 
destinazione 127.0.0.1. La seconda dirotta tutti pacchetti provenienti 
dall'interfaccia ppp0 sulla catena ppp_in che abbiamo creato in precedenza. 
##

iptables -A conn_state -m state --state INVALID -j DROP
iptables -A conn_state -m state --state RELATED,ESTABLISHED -j ACCEPT

# La prima istruzione prevede che i pacchetti che non appartengono a nessuna 
connessione e non sono dei SYN vengano immediatamente scartati.La seconda 
accetta subito i pacchetti le cui connessioni o sono già stabilite o che 
fanno riferimento a connessioni già stabilite. #

iptables -A tcp_flags -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A tcp_flags -p tcp --tcp-flags ALL ALL -j DROP
iptables -A tcp_flags -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
iptables -A tcp_flags -p tcp --tcp-flags ALL NONE -j DROP
iptables -A tcp_flags -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A tcp_flags -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A tcp_flags -p tcp --tcp-flags FIN FIN -j DROP

# Con queste righe ho bloccato, o almeno ho tentato, di bloccare ogni sorta di 
Nmap possibile alla mia macchina. Queste rigano bloccano gli scan Xmas tree 
di nmap; tutte le altre versioni dell' Xmas Tree, il Syn+Rst, e per finire il  
Syn+Fin .

iptables -A services -j DROP

# non voglio che nessun pacchetto transiti sulla mia macchina che non sia 
esplicitamente inviato a me #

iptables -A ppp_in -j blocked
iptables -A ppp_in -j conn_state
iptables -A ppp_in -j flags

# Blocca i pacchetti che stanno transitando sulla mia macchina e fa passare 
solo quelli che fanno parte di una connessione già stabilita in precedenza #

iptables -A ppp_in -p tcp --dport 1:1024 -j services
iptables -A ppp_in -p udp --dport 1:1024 -j services

# Tutti i pacchetti diretti verso le porte inferiori alla 1024 il controllo 
viene passato alla catena services.# 

iptables -A ppp_in -p icmp --icmp-type ! echo-request -j ACCEPT

## In questo modo non facciamo passare tutti i pacchetti ICMP (protocollo di 
controllo), tranne le "echo-request", ovvero i ping. ##

iptables -A ppp_in -p tcp --sport 20 -j ACCEPT
iptables -A ppp_in -p tcp --dport 6699 -j ACCEPT

############# FINE FIREWALL ###########
Per finire editate il file "/etc/hosts.deny" e inserite un bel "ALL:ALL" in 
modo da filtrare anche inetd.... (suggerimento di ZiaBice)

Bhè ho finito! Il mio firewall non è un gran che ma sto lavorando per 
migliorarlo, magari fare una versione stabile in C ;)..

Saluti
Vincenzo 'PuCCiO' Ciaglia
The Italian Linux Project
http://www.pucciolab.org
Working for SlackIT.OrG

Attachment: firewall.txt
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]