Posts avec le tag "sécurité"

Un petit firewall cool

Ajouté le 02.08.2008 - 18:50 dans  •  Commentaires (3)
Tags: sécurité firewall iptables linux server

- "Je veux un firewall, mais chais pas comment faire??"
- "Easy, iptables est là pour toi"



Certains vont de suite commenter et dire "iptables pue, c'est pas lisible".
je répondrai "retournez faire du ruby" :P

Pour revenir à nos moutons, voici en 2-3 lignes de quoi vous faire un firewall efficace et cool avec iptables :

#!/bin/bash

ipt=$(which iptables)

#### on commence par cleaner complètement les règles existantes
$ipt -F
$ipt -X
$ipt -P INPUT ACCEPT
$ipt -P OUTPUT ACCEPT

#### On laisse les connexions établies
$ipt -A INPUT -m state --state established,related -j ACCEPT

#### On va être cool et mettre 2-3 trucs en whitelist
$ipt -N SCAN_WHITELIST
$ipt -A SCAN_WHITELIST -m iprange --src-range xx.xx.xx.xx-yy.yy.yy.yy -j ACCEPT
$ipt -A SCAN_WHITELIST -s zz.zz.zz.zz -j ACCEPT

#### Filtre des packets : on veut du propre uniquement
$ipt -N badPacks
## on fait passer dans la whitelist...
$ipt -A badPacks -j SCAN_WHITELIST
$ipt -A badPacks -p tcp -m state --state NEW -m tcp ! --tcp-flags \
SYN,RST,ACK SYN -j REJECT --reject-with tcp-reset
$ipt -A badPacks -m state --state invalid -j REJECT
$ipt -A badPacks -j RETURN

#### De quoi ralentir les scan 
#### (radical contre la majorité des scriptkiddies)
$ipt -N scanning
## on fait passer dans la whitelist...
$ipt -A scanning -j SCAN_WHITELIST
$ipt -A scanning -i eth0 -m state --state NEW -m recent --set --name SCAN1
$ipt -A scanning -i eth0 -m state --state NEW -m recent --update \
--seconds 90 --hitcount 10 --rttl --name SCAN1 -j REJECT
$ipt -A scanning -i eth0 -m state --state NEW -m recent --set --name SCAN2
$ipt -A scanning -i eth0 -m state --state NEW -m recent --update \
--seconds 180 --hitcount 10 --rttl --name SCAN2 -j REJECT
$ipt -A scanning -j RETURN

#### Et on applique
$ipt -A INPUT -j scanning
$ipt -A INPUT -j badPacks

#### Tout ce qui vient de localhost : Ok
$ipt -A INPUT -i lo -j ACCEPT
$ipt -A OUTPUT -o lo -j ACCEPT
$ipt -A INPUT -i 127.0.0.1 -j ACCEPT
$ipt -A OUTPUT -o 127.0.0.1 -j ACCEPT

#### On ouvre quelques ports
$ipt -A INPUT -p tcp --dport 22 -j ACCEPT
$ipt -A INPUT -p tcp --dport 53 -j ACCEPT
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT


Et Voilà! un petit firewall monté en deux minutes. J'ai mis deux règles pour filtrer les scans, au cas où un petit malin voudrait monter les temps entre les requêtes. Mais en l'occurence, la majorité s'écrasent déjà au niveau de SCAN1...

Simple, efficace...

Enjoy :->

Lire plus

SCAM, SPAM - raz-le-bol...

Ajouté le 06.03.2010 - 19:12 dans  •  Commentaires (1)
Tags: scam sécurité stupide

Qui de vous n'a jamais reçu le moindre mail vous promettant d'avoir au moins 10% d'une grosse somme, à condition de fournir vos informations personnelles et d'aider un pauvre héritier (si possible d'Afrique du Sud, ou d'un pays de ce genre) à sortir son héritage (de feu "un grand (marabou|président|collecteur|homme politique|...)") du pays...

Personnellement, je dois en recevoir environ 1 par jour, et selon la période de l'année, jusqu'à 4 par jour.... Il va sans dire que bogofilter les envoit directement là où il faut (à savoir la boîte à spam), mais bon. Ça remplit ma boîte mail, tout de même, et comme je check toujours si bogo n'a pas fait une erreur, ça me prend du temps.

Ce qui m'étonne, c'est que, malgré des avertissements à la population, des émissions de radio dédiées à ce problème, voire des reportages télévisez sur des victimes de ces arnaques, des GENS continuent de se faire avoir.... A se demander ce que les GENS ont dans la cervelle.

Probablement de la semoule, à mon avis.

C'est comme aussi les fameuses "Lotteries (microsoft|google|africaine|...)" qui vous promettent que votre adresse email a gagné quelques millions... Là encore, y a des avertissements, des émissions radio et tout le reste. Mais nan.
Des GENS continuent à croire au Père Noêl. Et donc, tant que ces GENS se font avoir, les SCAMS vont continuer d'affluer et de polluer nos boîtes mails.

Je dois avouer que, entre ces machins (la plupart du temps écrits dans un anglais tellement approximatif que s'en est risible (et je ne parle pas des tentatives en français...) ) et les pubs pour avoir une grosse bite, tenir toute la nuit avec une trique d'enfer et avoir le sourir toute la journée grâce à des pillules du bonheur, je commence à me demander s'il vaudrait pas mieux que je supprime toutes mes adresses emails.

Ce que je me demande aussi, c'est comment les adresses emails sont collectées. Je doute que des hordes de bots soient lâchées sur les forumes non protégés ou autres sites du même genre... Même une de mes adresse ne figurant sur aucun forum/autres a été la cible de ces machins. J'veux pas être suspicieux, mais ça pue les leaks dans certaines bases de données. Entre autre les carnets d'adresse de mes contacts....

Dommage qu'on ne puisse pas couper les GENS d'Internet. En général, ce sont les mêmes qui réussissent à infecter un réseau entier parce qu'ils ont "ouvert la pièce jointe envoyée par UPS leur disant qu'ils avaient une commande qui avait pas pu être livrée" (surtout que, quand on leur demande s'ils attendent un truc d'UPS, la réponse est "heuuu... ah nan... héhé... merde alors, c'est con").....

Y a des jours comme ça, où la connerie humaine me tape sur les nerfs de manière assez méchante.

Bon, ok, je l'avoue, j'avais ce truc en tête depuis un moment, et comme je savais pas quoi mettre ici (bah hey, faut quand même mettre des articles, même si personne ne lit, au moins ça donne l'impression de faire quelque chose :D), bin j'me suis dit que le moment de sortir ce vieux truc de son tas de poussière était venu.

Allez, j'vais arrêter là pour la soirée ('fin je pense). Oubliez pas d'aider la pauvre Emily qui veut sortir les 4'000'000$ de son Nigéria natal, sait-on jamais, ça peut ne pas être une arnaque (sigh).

Tengu, qui décidemment aime pas les GENS.

PS:
quelques liens utiles :

http://www.crimes-of-persuasion.com/Crimes/Business/nigerian.htm
http://www.scamorama.com/
http://www.scamdex.com/

Lire plus

Eviter 2-3 problèmes de flood avec iptables

Ajouté le 01.06.2010 - 14:24 dans  •  Commentaires (1)
Tags: iptables sécurité linux server

Petites astuces rapides pour éviter deux-trois problèmes de flood (pouvant mener à un DDOS) avec iptables.

Attention, il faut que le module "limit" soit activé dans le kernel, soit en dur, soit en module!!

ICMP


Tout le monde sait lancer un ping -f, aka ping flood (à ne pas confondre avec Pink Floyd ;) ).
C'est simple, mais peut être embêtant. Avec cette petite règle, vous serez un peu plus tranquille:
$ipt -A INPUT -i eth0 -p icmp -m limit --limit 30/minute -j ACCEPT

En gros, on accepte que 30 pings par minute. Dans le cas d'un ping normal, environ une requête sur deux sera balancée loin :
41 packets transmitted, 24 received, 41% packet loss, time 40153ms
rtt min/avg/max/mdev = 33.459/36.091/38.764/1.796 ms


Par contre, dans le cas d'un ping -f, c'est de suite plus drôle :
201 packets transmitted, 6 received, 97% packet loss, time 2664ms
rtt min/avg/max/mdev = 34.533/35.892/38.487/1.276 ms, pipe 4, ipg/ewma 13.324/35.603 ms


Flood UDP


Tout d'abord, il faut savoir un petit détail : quand on passe par UDP, la bande passante ne peut pas être partagée équitablement. La trame UDP prend le pas sur TCP, et pour finir, bin TCP passe plus du tout. Simple, efficace, radical.
Pour parer à ce problème, on peut imaginer bloquer l'UDP. Seulement, tout ce qui est DNS passe justement par UDP.
C'est là qu'une petite règle iptables intervient encore :
$ipt -A INPUT -i eth0 -p udp -m limit --limit 5/s -j ACCEPT

Si on test avec un hping :
hping2 -i u10000 -2 nimo.internux.ch 
HPING nimo.internux.ch (eth0 78.46.64.14): udp mode set, 28 headers + 0 data bytes
ICMP Port Unreachable from ip=78.46.64.14 name=dns.akemi.internux.ch
ICMP Port Unreachable from ip=78.46.64.14 name=dns.akemi.internux.ch
ICMP Port Unreachable from ip=78.46.64.14 name=dns.akemi.internux.ch
ICMP Port Unreachable from ip=78.46.64.14 name=dns.akemi.internux.ch
ICMP Port Unreachable from ip=78.46.64.14 name=dns.akemi.internux.ch
ICMP Port Unreachable from ip=78.46.64.14 name=dns.akemi.internux.ch
ICMP Port Unreachable from ip=78.46.64.14 name=dns.akemi.internux.ch
ICMP Port Unreachable from ip=78.46.64.14 name=dns.akemi.internux.ch
ICMP Port Unreachable from ip=78.46.64.14 name=dns.akemi.internux.ch
ICMP Port Unreachable from ip=78.46.64.14 name=dns.akemi.internux.ch
ICMP Port Unreachable from ip=78.46.64.14 name=dns.akemi.internux.ch
ICMP Port Unreachable from ip=78.46.64.14 name=dns.akemi.internux.ch
^C
--- nimo.internux.ch hping statistic ---
704 packets tramitted, 12 packets received, 99% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms


En gros, ça ralentit les scans, et surtout, ça drop à fond dès qu'on tape la limite. ça permet d'éviter quelques problèmes, au final.
Je n'ai pas remarqué de problème au niveau de mon DNS, donc je suppose que tout est ok avec cette limite.

Voili-voilou.

++

Tengu

Lire plus

Fail2ban - des logs dans postgres

Ajouté le 19.06.2010 - 20:47 dans  •  Commentaires (0)
Tags: linux sécurité iptables server

Ayant mis fail2ban sur mon serveur, je me suis dit qu'il pourrait être intéressant de garder des logs dans un coin, histoire de savoir qui a tendance à revenir 15 fois se faire banir sur mon serveur.

Voici donc le petit bout de code qui va bien :

Dans fail.conf :
[ssh-iptables]

enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
           sendmail-whois[name=SSH, dest=titi@toto.com, sender=fail2ban@toto.com]
           savetopostgres[name=SSH]
logpath  = /var/log/auth.log
maxretry = 5


Et dans action.d/savetopostgres.conf :
[Definition]

actionstart =
actionstop =
actioncheck =

actionban = <psqlpath> -h localhost -U <psqlusr> -c "insert into fail2ban (date, ip, type) values (now(), '<ip>', '<name>')" -d <psqldbname>

actionunban =

[Init]
psqldbname = fail2ban
psqlusr = titi
psqlpath = /usr/bin/psql
psqlcmd = insert into fail2ban (date, ip, type) values (now(), '<ip>', '<name>')


Simple, efficace... Et tout bonnement bien, dirais-je. Cela me permettra de sortir des listings des IP qui reviennent. Je pourrais même me faire un script qui me sort les plages IP à virer (pas mal de Chine d'ailleurs).

Et ça marche bien :D

Happy Sec!

Tengu

Lire plus