c'e' solo un modo di fare le cose: farle bene

Archive for the ‘iptables’ Category


Limitare il numero di connessioni in ingresso

dic 30, 2009 Author: Gianluca | Filed under: iptables

Il vostro adorato server vuole andare in ferie? Troppe richieste in arrivo? Bene limitiamole con iptables:

iptables -N rate-limit
iptables -A rate-limit -p tcp -m conntrack --ctstate NEW -m limit --limit 3/min --limit-burst 3 -j RETURN
iptables -A rate-limit -j DROP
iptables -I INPUT 1 -p tcp --dport 80 -j rate-limit

Cosa fa tutto ciò? Vediamolo in dettaglio…

Con “iptables -N rate-limit“, viene creata una nuova catena nella tabella di default che è quella “filter“.

Attraverso il connection tracking (modulo conntrack), diciamo a netfilter di limitare il numero di connessioni della catena “rate-limit” a 3 al minuto e il parametro “–limit-burst” indica il massimo burst (raffica) prima che il limite  li respinga.

Il 4 comando è autoesplicativo: quello che arriva alla catena “rate-limit” va cestinato!

L’ultima riga fa in modo che tutto ciò che sia diretto alla porta 80 (web) vada a finire nella catena “rate-limit” così è possibile controllare il numero di connessioni in entrata e se necessario respingerne alcune.

Ovviamente il mio è solo un esempio che può essere personalizzato in base alle proprie esigenze.

Buon iptables e felice anno nuovo!:)

iptables ed ulogd: logging avanzato su MySQL

lug 10, 2009 Author: Gianluca | Filed under: Debian, iptables

Di solito viene usato il target LOG per impostare la scrittura dei log su file quando facciamo delle regole con iptables. Ma è comodo avere un file (a volte mastodontico) da anzalizzare? Meglio avere i dati in un database MySQL e lavorarci sopra attraverso tool appositi.

Ci viene in aiuto ULOG, un tool che lavora in userspace e permette   quindi,   tramite un   programma   in   continuo   ascolto,   di   gestire   tali   informazioni nella maniera più disparata.

Procediamo con l’installazione dei pacchetti necessari:

apt-get install ulogd ulogd-mysql

Adesso va creato il database con gli opportuni privilegi. Tralascio questa fase perché è banale, specie con phpMyAdmin.
Le struttura della tabella è scritta nel file /usr/share/doc/ulogd-mysql/mysql.table, quindi lo carichiamo nel database appena creato con:

mysql -u <utente> -p <nome_db> < /usr/share/doc/ulogd-mysql/mysql.table

Procediamo con la configurazione di ULOG editando il file /etc/ulogd.conf.

Nella sezione plugins va decommentato:

plugin="/usr/lib/ulogd/ulogd_MYSQL.so"

visto che i dati andranno sul un db MySQL.

Impostiamo l’account per l’accesso al database:

[MYSQL]
table="ulog"
pass="<password>"
user="<user>"
db="<database>"
host="localhost"

Bene, riavviamo ULOG:

/etc/init.d/ulogd restart

Proviamo il tutto impostando una regola di iptables con il target ULOG:

iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -o eth0 -j ULOG

In breve: tutto quello che proviene dalla classe lan 192.168.1.0/24 ed esce dall’interfaccia eth0 (verso Internet) e quindi viene nattato, lo registriamo su MySQL. Ovviamente possiamo impostare qualsiasi regola di firewall con target ULOG per testarne il funzionamento.

MySQL ha qualche record in più? Bene, abbiamo finito.

iproute: load balance verso 2 gateway

mar 27, 2008 Author: Gianluca | Filed under: Debian, iproute, iptables

Spesso Linux viene usato come router e quelli che definiscono tale soluzione “casalinga” si sbagliano di grosso perché grazie alla potenzilità di netfilter e di iproute linux si trasforma un un avanzatissimo router dalle mille funzionalità.

In questo articolo descriverò com’è possibile dividire il traffico proveniente dalla vostra LAN verso due gateway di due provider distinti in modo tale da velocizzare il download dei client.

Schemattizzando la rete, dovremmo avere questo:

Load balance

(continua…)

Stop p2p: un gateway Debian con layer 7

set 4, 2007 Author: Gianluca | Filed under: Debian, iptables, p2p

Per bloccare il peer to peer ci sono due strade differenti:

  1. bloccare tutto e concedere l’accesso a pochi servizi scelti (http, smtp, pop3 etc)
  2. far passare tutto ciò che non è p2p

La soluzione più rapida e meno onerosa in termini di risorse è la prima.

Purtroppo però ci sono servizi che si basano su porte non standard che devono essere accessibili e quindi, sarebbe un impresa non da poco aggiungere le porte suddette alla nostra white list.

Esistono però soluzioni software in grado di riconoscere traffico p2p ed eventualmente bloccarlo.

La più valida da me provota è l7-filter.

(continua…)

Last 3 LifeStream

Downstream

  1. September 6th

    1. Gianluca si lo ammetto sono razzista, odio le ex.L'unica razza per cui nemmeno l'Onu muoverebbe un dito in caso di estinzione. Esseri spregevoli e abietti senza eguali.

      9:37pm via Facebook

  2. September 5th

    1. Gianluca le belle donne sono invisibili,vedi solo la bella facciata,ti blocca la barriera della bellezza. Ammagliati dall'aspetto esteriore non arriviamo mai al mondo interiore e se mai accade uno dei due rimane deluso.

      9:06am via Facebook

  3. September 4th

    1. Gianluca When love feels like magic, you call it destiny. When destiny has a sense of humour,you call it: serendipity...

      11:13am via Facebook

    Upstream

    Powered by Lifestream.

Flickr PhotoStream

    DSCF9988.JPGDSCF9958.JPGDSCF9962.JPGDSCF9968.JPGDSCF9972.JPG

Blogroll


Calendar

settembre: 2010
L M M G V S D
« lug    
 12345
6789101112
13141516171819
20212223242526
27282930  

Recent Comments