[PIU' CHE RISOLTO :) ] iptables - creazione rc.firewall

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da conraid »

sardylan ha scritto:Ottima cosa!!! Grazie mille Conraid!! Dopo mi spulcio bene gli help :)

P.S. Il fatto di aver inserito tutto in un unico file è un mio "modo di fare"... Praticamente dando chmod -x rc.local ottengo una slackware pulita (nei limiti del possibile)... :)
ma questo va bene, ma ip_forward esiste già, non devi crearlo
e se lo script lo chiami rc.firewall (e prevedi una regola di start e stop) non devi nemmeno richiamarlo da rc.local, ci pensa già rc.inet2 a richiamare entrambi gli script
E la Slackware è ancora più "pulita" :-)

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da danix »

se faccio delle modifiche al file rc.firewall poi come faccio a renderle effettive?? Ho provato a stoppare e riavviare lo script ma poi la connessione sul laptop andava giù inesorabilmente... l'unica soluzione che ho trovato valida è stata riavviare il server...


Come devo fare??
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
sardylan
Linux 3.x
Linux 3.x
Messaggi: 993
Iscritto il: mar 24 apr 2007, 9:21
Nome Cognome: Luca Cireddu
Slackware: current 64bits
Kernel: 3.16
Desktop: KDE 4.14
Distribuzione: Debian - CLFS
Località: Cagliari
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da sardylan »

Il firewall non si stoppa e non si avvia!!
Il fatto di aver messo start e stop è solo una comodità!!
Per applicare le nuove modifiche, ti conviene creare un file rc.firewall che contenga TUTTE le regole necessarie... Inizi con la cancellazione delle catene e delle regole, e poi inizi a ricostruire tutto!!
Se modifichi una riga, rieseguendo lo script con il parametro start, questo inizierà a ricostruire tutto quanto, usando le nuove modifiche... In quesot modo non hai bisogno di riavviare!!

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da danix »

ciao sardylan, avevo fatto questa domanda prima che mi dicessi queste stesse cose in irc :D , comunque anche lanciando nuovamente rc.firewall succede che sul laptop non riesco più a navigare... non so perchè... dal server riesco ad uscire in rete, ma dal laptop no... ho provato a riavviare rc.inet1, ho controllato l'ip_forward ed era tutto a posto, dal laptop riuscivo a pingare il server ma non ad uscire in rete... dopo il reboot va tutto a posto...


PS tanto per inciso ancora non riesco a rendere visibile il server dalla rete...
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
maxmo
Linux 2.x
Linux 2.x
Messaggi: 336
Iscritto il: lun 28 feb 2005, 0:00
Slackware: 14.1
Kernel: 3.10.17-smp
Desktop: xface

Re: iptables - creazione rc.firewall

Messaggio da maxmo »

messaggio cancellato
Ultima modifica di maxmo il ven 20 mar 2009, 23:21, modificato 1 volta in totale.

Avatar utente
JohnnyMnemonic
Staff
Staff
Messaggi: 2733
Iscritto il: dom 5 set 2004, 0:00
Nome Cognome: Giuseppe Palmiotto
Slackware: 14.0
Kernel: 3.5.5-thanatos
Località: Bologna
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da JohnnyMnemonic »

Offtopic: Ragazzi, una domandina, dove posso iniziare a studiarmi qualcosa per capire come usare iptables?

Avatar utente
navajo
Staff
Staff
Messaggi: 3884
Iscritto il: gio 8 gen 2004, 0:00
Nome Cognome: Massimiliano
Slackware: 13.37 (x86_64)
Kernel: 2.6.37.6
Desktop: KDE 4.7.0 (Alien)
Località: Roma

Re: iptables - creazione rc.firewall

Messaggio da navajo »

JohnnyMnemonic ha scritto:Offtopic: Ragazzi, una domandina, dove posso iniziare a studiarmi qualcosa per capire come usare iptables?
Io trovo molto facile e ben fatta la guida di openskill:
http://www.manuali.net/manuali/linux/li ... ables.html

Edit:
il sito di netfilter ha delle documentazioni anche in Italiano:
http://www.netfilter.org/documentation/index.html

Avatar utente
MAT
Linux 4.x
Linux 4.x
Messaggi: 1242
Iscritto il: mer 9 mar 2005, 0:00
Nome Cognome: Matteo Magni
Kernel: 2.6.20
Desktop: Fluxbox
Distribuzione: Gentoo
Località: Vignola, Modena

Re: iptables - creazione rc.firewall

Messaggio da MAT »

JohnnyMnemonic ha scritto:Offtopic: Ragazzi, una domandina, dove posso iniziare a studiarmi qualcosa per capire come usare iptables?
Devi avere innanzitutto un po' di basi di reti: gli stack ISO/OSI e TCP/IP, le classi di indirizzi IPv4, subnetting, NAT, ... Poi googla parecchio. Io 2 anni fa ho anche preso un bel libro "Designing and Implementing Linux Firewalls and QoS Using Netfilter, Iproute2, NAT and 17-filter", a mio parere molto ben fatto.

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da conraid »

danix ha scritto:se faccio delle modifiche al file rc.firewall poi come faccio a renderle effettive?? Ho provato a stoppare e riavviare lo script ma poi la connessione sul laptop andava giù inesorabilmente... l'unica soluzione che ho trovato valida è stata riavviare il server...


Come devo fare??
C'è qualche problema nelle regole se fa così, pensa che io ho uno script rc.nat che avvio solamente quando voglio il forwarding ed il nat (succede raramente), e carico e scarico le regole anche più volte nella stessa sessione.

Secondo me devi partire da poche regole base e da li costruire il resto. Per fare una cosa come quella che vuoi fare trovi delle regole anche in rc.modules
Tu invece parti già con configurazioni "strane", come ti ho detto alcune regole nella tua situazione non le capisco proprio. Ma non sono esperto di queste cose e mi fermo qui

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da danix »

grazie del consiglio conraid, oggi pomeriggio credo proprio che farò così... l'unica cosa che mi preoccupa è il fatto di essere connesso al server tramite ssh, non vorrei auto-sbattermi fuori...
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da conraid »

danix ha scritto:grazie del consiglio conraid, oggi pomeriggio credo proprio che farò così... l'unica cosa che mi preoccupa è il fatto di essere connesso al server tramite ssh, non vorrei auto-sbattermi fuori...
Fai in modo che per tutta la durata del test di default parte con tutto aperto dalla LAN, poi tu apri, chiudi, etc...
Così se rimani chiuso fuori... riavvii.
Per riavviare attacca una tastiera al pc, anche se senza monitor, e tramite CTRL+ALT+CANC riavvia senza forzarlo dal tasto di poweroff.

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da danix »

per i riavvii non c'è problema, ho impostato tramite acpi il tasto di spegnimento per richiamare shutdown -h now :D
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da danix »

Codice: Seleziona tutto

#!/bin/bash

IPT_CMD="/usr/sbin/iptables"
SW_VERB="-v"
IF_LAN="eth0"
IF_WAN="ppp0"
IF_INT="eth1"

firewall_init() {
	echo "0" > /proc/sys/net/ipv4/ip_forward
	$IPT_CMD -F $SW_VERB
	$IPT_CMD -t nat -F $SW_VERB
	$IPT_CMD -t mangle -F $SW_VERB
	$IPT_CMD -X $SW_VERB
	$IPT_CMD -t nat -X $SW_VERB
	$IPT_CMD -t mangle -X $SW_VERB
}

# lanciando lo script con start queste policy settano le chain a DROP, altrimenti settano tutto ad ACCEPT
firewall_policies() {
	$IPT_CMD -P INPUT $1 $SW_VERB
	$IPT_CMD -P OUTPUT $1 $SW_VERB
	$IPT_CMD -P FORWARD $1 $SW_VERB
}

# regole principali, accettano tutto il traffico da e per lo, da e per eth1 e quello da ppp0 solo se già richiesto
main_rules() {
	$IPT_CMD -A INPUT -i lo -j ACCEPT $SW_VERB
	$IPT_CMD -A INPUT -i $IF_INT -j ACCEPT $SW_VERB
	$IPT_CMD -A INPUT -i $IF_WAN -m state --state ESTABLISHED,RELATED -j ACCEPT $SW_VERB
	$IPT_CMD -A OUTPUT -o lo -j ACCEPT $SW_VERB
	$IPT_CMD -A OUTPUT -o $IF_INT -j ACCEPT $SW_VERB
	$IPT_CMD -A OUTPUT -o $IF_WAN -j ACCEPT $SW_VERB
}

# regole di forwarding
forwarding_rules() {
	$IPT_CMD -A FORWARD -i $IF_LAN -o $IF_INT -m state --state ESTABLISHED,RELATED -j ACCEPT $SW_VERB
	$IPT_CMD -A FORWARD -i $IF_INT -o $IF_LAN -j ACCEPT $SW_VERB
	# ABILITO IL MASQUERADING
	$IPT_CMD -t nat -A POSTROUTING -o $IF_LAN -j MASQUERADE $SW_VERB
}

# apertura porte
custom_rules() {
	$IPT_CMD -A INPUT -i $IF_INT -p tcp --dport 8022 -j ACCEPT $SW_VERB	# SSH sulla lan interna
	$IPT_CMD -A INPUT -i $IF_WAN -p tcp --dport 80 -j ACCEPT $SW_VERB	# HTTPD
	$IPT_CMD -A INPUT -i $IF_WAN -p udp --dport 27960 -j ACCEPT $SW_VERB	# URBAN TERROR
}

closing_rules() {
	$IPT_CMD -A INPUT -j DROP $SW_VERB
	$IPT_CMD -A OUTPUT -j DROP $SW_VERB
	$IPT_CMD -A FORWARD -j DROP $SW_VERB
	$IPT_CMD -Z $SW_VERB
	$IPT_CMD -t nat -Z $SW_VERB
	$IPT_CMD -t mangle -Z $SW_VERB
	sh /etc/rc.d/rc.ip_forward start
}



case "$1" in
	start)
		echo "Configuring firewall... "
		firewall_init
		firewall_policies DROP
		main_rules
		forwarding_rules
		custom_rules
		closing_rules
	;;
	stop)
		echo "Resetting firewall... "
		firewall_init
		firewall_policies ACCEPT
	;;
	status)
		if [ -r /tmp/firewall.out ];then
			rm /tmp/firewall.out
		else
			touch /tmp/firewall.out
		fi
		$IPT_CMD -L -n -v --line-numbers > /tmp/firewall.out
		echo >> /tmp/firewall.out
		$IPT_CMD -t nat -L -n -v --line-numbers >> /tmp/firewall.out
		less /tmp/firewall.out
		rm /tmp/firewall.out
	;;
	*)
		echo "Usage:  `basename $0`  start|stop|status"
		exit 1
	;;
esac
Questo è quello che avrei intenzione di usare... come vi sembra??
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
MAT
Linux 4.x
Linux 4.x
Messaggi: 1242
Iscritto il: mer 9 mar 2005, 0:00
Nome Cognome: Matteo Magni
Kernel: 2.6.20
Desktop: Fluxbox
Distribuzione: Gentoo
Località: Vignola, Modena

Re: iptables - creazione rc.firewall

Messaggio da MAT »

Nel firewall aziendale che ho buttato su (Gentoo + iptables) ho fatto anche una catena di regole che matchano pacchetti forgiati ad hoc, e che normalmente non dovrebbero mai arrivare:

Codice: Seleziona tutto

$IPT -N BADTCP
$IPT -A BADTCP -p tcp ! --syn -m state --state NEW -m limit --limit 6/minute --limit-burst 3 -j LOG --log-prefix 'NEWNOTSYN '
$IPT -A BADTCP -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A BADTCP -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -m limit --limit 6/minute --limit-burst 3 -j LOG --log-prefix 'BADTCP-RST '
$IPT -A BADTCP -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
Poi ho messo il riferimento alla catena in testa alla FORWARD:

Codice: Seleziona tutto

$IPT -A FORWARD -j BADTCP
Ho messo anche regole di antispoof, che male non fanno. Queste vanno messe ovviamente se si tratta di un firewall che fa anche NAT e che non separa due LAN.

Codice: Seleziona tutto

$IPT -A INPUT -i $WAN -s $CLASS_A -j LOG -m limit --limit 6/minute --limit-burst 3 --log-prefix 'CLASS_A-DROP
$IPT -A INPUT -i $WAN -s $CLASS_A -j DROP
$IPT -A INPUT -i $WAN -s $CLASS_B -j LOG -m limit --limit 6/minute --limit-burst 3 --log-prefix 'CLASS_B-DROP '
$IPT -A INPUT -i $WAN -s $CLASS_B -j DROP
$IPT -A INPUT -i $WAN -s $CLASS_C -j LOG -m limit --limit 6/minute --limit-burst 3 --log-prefix 'CLASS_C-DROP '
$IPT -A INPUT -i $WAN -s $CLASS_C -j DROP
$IPT -A INPUT -i $WAN -s $CLASS_D_MULTICAST -j LOG -m limit --limit 6/minute --limit-burst 3 --log-prefix 'CLASS_D-DROP '
$IPT -A INPUT -i $WAN -s $CLASS_D_MULTICAST -j DROP
$IPT -A INPUT -i $WAN -s $CLASS_E_RESERVED_NET -j LOG -m limit --limit 6/minute --limit-burst 3 --log-prefix 'CLASS_E-DROP '
$IPT -A INPUT -i $WAN -s $CLASS_E_RESERVED_NET -j DROP
$IPT -A INPUT -i $WAN -d $LOOPBACK -j DROP
dove

Codice: Seleziona tutto

LOOPBACK="127.0.0.0/8"
CLASS_A="10.0.0.0/8"
CLASS_B="172.16.0.0/12"
CLASS_C="192.168.0.0/16"
CLASS_D_MULTICAST="224.0.0.0/4"
CLASS_E_RESERVED_NET="240.0.0.0/5"
e $WAN fa riferimento all'interfaccia che dà verso il router su Internet (nel mio caso eth1).

Poi, in fondo prima dei DROP sulle catene INPUT, OUTPUT e FORWARD (che sono inutili se già le policy sono DROP), loggo i pacchetti che verranno droppati:

Codice: Seleziona tutto

$IPT -A FORWARD -i $LAN -j LOG -m limit --limit 6/minute --limit-burst 3 --log-prefix 'LAN-FORWARD-DROP '
$IPT -A FORWARD -i $WAN -j LOG -m limit --limit 6/minute --limit-burst 3 --log-prefix 'WAN-FORWARD-DROP '
$IPT -A INPUT -j LOG -m limit --limit 6/minute --limit-burst 3 --log-prefix 'INPUT-DROP '
P.S: ovviamente $IPT è /sbin/iptables

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da danix »

Ho creato un rc.firewall sul sito che mi ha consigliato conraid, questo è il contenuto (senza commenti):

Codice: Seleziona tutto





SYSCTL="/sbin/sysctl -w" 



IPT="/usr/sbin/iptables"
IPTS="/usr/sbin/iptables-save"
IPTR="/usr/sbin/iptables-restore"

INET_IFACE="eth0"

LOCAL_IFACE="eth1"
LOCAL_IP="192.168.7.1"
LOCAL_NET="192.168.7.0/24"
LOCAL_BCAST="192.168.7.255"


LO_IFACE="lo"
LO_IP="127.0.0.1"

if [ "$1" = "save" ]
then
	echo -n "Saving firewall to /etc/sysconfig/iptables ... "
	$IPTS > /etc/sysconfig/iptables
	echo "done"
	exit 0
elif [ "$1" = "restore" ]
then
	echo -n "Restoring firewall from /etc/sysconfig/iptables ... "
	$IPTR < /etc/sysconfig/iptables
	echo "done"
	exit 0
fi


echo "Loading kernel modules ..."




/sbin/modprobe ip_tables

/sbin/modprobe ip_conntrack














/sbin/modprobe ip_nat_ftp

/sbin/modprobe ip_conntrack_ftp

/sbin/modprobe ip_conntrack_irc



if [ "$SYSCTL" = "" ]
then
    echo "1" > /proc/sys/net/ipv4/ip_forward
else
    $SYSCTL net.ipv4.ip_forward="1"
fi


if [ "$SYSCTL" = "" ]
then
    echo "1" > /proc/sys/net/ipv4/tcp_syncookies
else
    $SYSCTL net.ipv4.tcp_syncookies="1"
fi

if [ "$SYSCTL" = "" ]
then
    echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
else
    $SYSCTL net.ipv4.conf.all.rp_filter="1"
fi



if [ "$SYSCTL" = "" ]
then
    echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
else
    $SYSCTL net.ipv4.icmp_echo_ignore_broadcasts="1"
fi

if [ "$SYSCTL" = "" ]
then
    echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
else
    $SYSCTL net.ipv4.conf.all.accept_source_route="0"
fi


if [ "$SYSCTL" = "" ]
then
    echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects
else
    $SYSCTL net.ipv4.conf.all.secure_redirects="1"
fi

if [ "$SYSCTL" = "" ]
then
    echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
else
    $SYSCTL net.ipv4.conf.all.log_martians="1"
fi



echo "Flushing Tables ..."

$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
$IPT -t nat -P OUTPUT ACCEPT
$IPT -t mangle -P PREROUTING ACCEPT
$IPT -t mangle -P OUTPUT ACCEPT

$IPT -F
$IPT -t nat -F
$IPT -t mangle -F

$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

if [ "$1" = "stop" ]
then
	echo "Firewall completely flushed!  Now running with no firewall."
	exit 0
fi




$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP


echo "Create and populate custom rule chains ..."


$IPT -N bad_packets


$IPT -N bad_tcp_packets


$IPT -N icmp_packets

$IPT -N udp_inbound

$IPT -N udp_outbound

$IPT -N tcp_inbound

$IPT -N tcp_outbound



$IPT -A bad_packets -p ALL -i $INET_IFACE -s $LOCAL_NET -j LOG \
    --log-prefix "Illegal source: "

$IPT -A bad_packets -p ALL -i $INET_IFACE -s $LOCAL_NET -j DROP

$IPT -A bad_packets -p ALL -m state --state INVALID -j LOG \
    --log-prefix "Invalid packet: "

$IPT -A bad_packets -p ALL -m state --state INVALID -j DROP

$IPT -A bad_packets -p tcp -j bad_tcp_packets

$IPT -A bad_packets -p ALL -j RETURN


$IPT -A bad_tcp_packets -p tcp -i $LOCAL_IFACE -j RETURN


$IPT -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG \
    --log-prefix "New not syn: "
$IPT -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP

$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL NONE -j LOG \
    --log-prefix "Stealth scan: "
$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL NONE -j DROP

$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL ALL -j LOG \
    --log-prefix "Stealth scan: "
$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL ALL -j DROP

$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL FIN,URG,PSH -j LOG \
    --log-prefix "Stealth scan: "
$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP

$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j LOG \
    --log-prefix "Stealth scan: "
$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP

$IPT -A bad_tcp_packets -p tcp --tcp-flags SYN,RST SYN,RST -j LOG \
    --log-prefix "Stealth scan: "
$IPT -A bad_tcp_packets -p tcp --tcp-flags SYN,RST SYN,RST -j DROP

$IPT -A bad_tcp_packets -p tcp --tcp-flags SYN,FIN SYN,FIN -j LOG \
    --log-prefix "Stealth scan: "
$IPT -A bad_tcp_packets -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

$IPT -A bad_tcp_packets -p tcp -j RETURN


$IPT -A icmp_packets --fragment -p ICMP -j LOG \
    --log-prefix "ICMP Fragment: "
$IPT -A icmp_packets --fragment -p ICMP -j DROP


$IPT -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j DROP

$IPT -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT

$IPT -A icmp_packets -p ICMP -j RETURN



$IPT -A udp_inbound -p UDP -s 0/0 --destination-port 137 -j DROP
$IPT -A udp_inbound -p UDP -s 0/0 --destination-port 138 -j DROP

$IPT -A udp_inbound -p UDP -s 0/0 --destination-port 53 -j ACCEPT


$IPT -A udp_inbound -p UDP -s 0/0 --source-port 67 --destination-port 68 \
     -j ACCEPT


$IPT -A udp_inbound -p UDP -j RETURN



$IPT -A udp_outbound -p UDP -s 0/0 -j ACCEPT




$IPT -A tcp_inbound -p TCP -s 0/0 --destination-port 80 -j ACCEPT

$IPT -A tcp_inbound -p TCP -s 0/0 --destination-port 8022 -j ACCEPT


$IPT -A tcp_inbound -p TCP -j RETURN



$IPT -A tcp_outbound -p TCP -s 0/0 -j ACCEPT


echo "Process INPUT chain ..."

$IPT -A INPUT -p ALL -i $LO_IFACE -j ACCEPT

$IPT -A INPUT -p ALL -j bad_packets

$IPT -A INPUT -p ALL -d 224.0.0.1 -j DROP

$IPT -A INPUT -p ALL -i $LOCAL_IFACE -s $LOCAL_NET -j ACCEPT
$IPT -A INPUT -p ALL -i $LOCAL_IFACE -d $LOCAL_BCAST -j ACCEPT



$IPT -A INPUT -p ALL -i $INET_IFACE -m state --state ESTABLISHED,RELATED \
     -j ACCEPT

$IPT -A INPUT -p TCP -i $INET_IFACE -j tcp_inbound
$IPT -A INPUT -p UDP -i $INET_IFACE -j udp_inbound
$IPT -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets

$IPT -A INPUT -m pkttype --pkt-type broadcast -j DROP

$IPT -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
    --log-prefix "INPUT packet died: "


echo "Process FORWARD chain ..."


$IPT -A FORWARD -p ALL -j bad_packets

$IPT -A FORWARD -p tcp -i $LOCAL_IFACE -j tcp_outbound

$IPT -A FORWARD -p udp -i $LOCAL_IFACE -j udp_outbound

$IPT -A FORWARD -p ALL -i $LOCAL_IFACE -j ACCEPT

$IPT -A FORWARD -i $INET_IFACE -m state --state ESTABLISHED,RELATED \
     -j ACCEPT

$IPT -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG \
    --log-prefix "FORWARD packet died: "


echo "Process OUTPUT chain ..."


$IPT -A OUTPUT -m state -p icmp --state INVALID -j DROP

$IPT -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $LO_IFACE -j ACCEPT

$IPT -A OUTPUT -p ALL -s $LOCAL_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $LOCAL_IFACE -j ACCEPT

$IPT -A OUTPUT -p ALL -o $INET_IFACE -j ACCEPT

$IPT -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
    --log-prefix "OUTPUT packet died: "



echo "Load rules for nat table ..."




$IPT -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE



echo "Load rules for mangle table ..."


Al momento lo sto usando, e non mi sta dando problemi, se gli date un'occhiata fatemi sapere che ne pensate...
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Rispondi