[Top][All Lists]
[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
firewall.txt
Description: Text document
- [Slackit.org] PuCCiO'S Firewall - Beta 0.1 is out!,
Vincenzo 'PuCCiO' Ciaglia <=