View previous topic :: View next topic |
Author |
Message |
bulki Guru
Joined: 25 Nov 2004 Posts: 529 Location: SiliconValley
|
Posted: Sat Dec 23, 2006 3:39 pm Post subject: [sécurité] 1 serveur: firewall et/ou IDS ? |
|
|
Salut,
avant noel, je veux troller un peu... En fait, j'ai un serveur qui est directement connecté à Internet, sur lequel je fais tourner des serveurs accessibles depuis l'extérieur uniquement (pas d'intranet ou autre blabla). Je ne vois pas trop l'utilité de mettre un firewall pour dire "bloque tous les ports entrants, sauf ceux où les services tournent", parce que les ports autres ports étant toujours fermés... et rien n'empêchera un attaquant d'utiliser les ports préalablement ouverts.
Par contre, je vois déjà plus l'intérêt d'utiliser un IDS (je sais bien que l'utilité n'est pas la même). Mais je voulais vous demander votre avis...
Merci beaucoup |
|
Back to top |
|
|
-KuRGaN- Veteran
Joined: 05 Dec 2004 Posts: 1142 Location: Besançon (25) [FRANCE]
|
Posted: Sat Dec 23, 2006 3:43 pm Post subject: |
|
|
Tu veux utiliser quoi comme IDS, NIDS, HIDS ou PIDS ??
Par contre pour l'histoire du firewall, je serai curieux d'un résultat d'un nmap sur ton interface publique. _________________ Knight Gent00 Industries RiDeR !!!! |
|
Back to top |
|
|
bulki Guru
Joined: 25 Nov 2004 Posts: 529 Location: SiliconValley
|
Posted: Sat Dec 23, 2006 3:53 pm Post subject: |
|
|
-KuRGaN- wrote: | Tu veux utiliser quoi comme IDS, NIDS, HIDS ou PIDS ??
Par contre pour l'histoire du firewall, je serai curieux d'un résultat d'un nmap sur ton interface publique. |
Je pensais installer un IDS, snort en l'occurence.
Mon serveur est directement relié à internet par eth0 (adresse IP visible depuis l'extérieur).
Pour répondre à ta demande:
Code: | nmap -sS -sR -O -p- -P0 -T5 -R -f mon.serveur.com
Interesting ports on mon.serveur.com (w.x.y.z):
Not shown: 1233 closed ports
PORT STATE SERVICE VERSION
25/tcp filtered smtp
53/tcp filtered domain
80/tcp open http
443/tcp open https
666/tcp open doom
1720/tcp filtered H.323/Q.931
Device type: general purpose|media device
Running: Linux 2.4.X, Pace embedded
OS details: Linux 2.4.18 - 2.4.27, Pace digital cable TV receiver
Uptime 1.231 days (since Fri Dec 22 11:26:44 2006)
Nmap finished: 1 IP address (1 host up) scanned in 13.393 seconds
|
Je vois pas en quoi un fw empirerai le résultat dans ce cas là (j'ai un serveur ssh sur le port 666, un https et http UNIQUEMENT), et en plus, le version control est foireux :S... |
|
Back to top |
|
|
Darkael Veteran
Joined: 10 Aug 2004 Posts: 1321 Location: France
|
Posted: Sat Dec 23, 2006 4:16 pm Post subject: Re: [sécurité] 1 serveur: firewall et/ou IDS ? |
|
|
bulki wrote: |
avant noel, je veux troller un peu... En fait, j'ai un serveur qui est directement connecté à Internet, sur lequel je fais tourner des serveurs accessibles depuis l'extérieur uniquement (pas d'intranet ou autre blabla). Je ne vois pas trop l'utilité de mettre un firewall pour dire "bloque tous les ports entrants, sauf ceux où les services tournent", parce que les ports autres ports étant toujours fermés... et rien n'empêchera un attaquant d'utiliser les ports préalablement ouverts.
|
Bloquer les ports ça peut être une précaution par exemple au cas où un attaquant a pris le contrôle d'un user et tente de lancer un service via cet utilisateur... Mais sinon tu peux aussi te servir des capacités filtrantes du firewall pour filtrer selon l'IP. Par exemple pour autoriser certaines plages d'IP seulement pour SSH (par contre faut pas se gourer), ou bien utiliser ça en combo avec des trucs comme fail2ban. La fonction log peut-être utile aussi.
Quote: | Par contre, je vois déjà plus l'intérêt d'utiliser un IDS (je sais bien que l'utilité n'est pas la même). |
Un IDS (de quelque nature qu'il soit) c'est bien, mais faut faire attention parce que ça prend du temps et des ressources. Un serveur sur Internet (surtout avec plusieurs services comme le tien) ça peut générer beaucoup d'alertes parfois fausses ou bégnines, et faut un peu de travail pour trouver les paramètres idéaux pour recevoir les alertes importantes. |
|
Back to top |
|
|
bulki Guru
Joined: 25 Nov 2004 Posts: 529 Location: SiliconValley
|
Posted: Sat Dec 23, 2006 4:53 pm Post subject: |
|
|
C'est vrai que pour l'authorisation de certaines plages d'ip, c'est intéressant, je n'y avait pas pensé. Mais en même temps, je suis tjrs en déplacement, donc c'est un peu boaf arf .
Bon, je vais quand même en mettre un (à but didactique ), en plus il me semble que ce tuto: http://www.gentoo.org/proj/en/infrastructure/firewall/server-firewall.xml va avec ce que je veux faire . (EDIT: ra zut, il est vieux de 3 ans ce tuto :/ )
Merci |
|
Back to top |
|
|
-KuRGaN- Veteran
Joined: 05 Dec 2004 Posts: 1142 Location: Besançon (25) [FRANCE]
|
Posted: Sat Dec 23, 2006 5:47 pm Post subject: |
|
|
Si tu es toujours en déplacement et que le filtrage d'IP te chatouille tu peux faire un tour du coté du port-knocking, il y a d'ailleurs knockd sds portage. _________________ Knight Gent00 Industries RiDeR !!!! |
|
Back to top |
|
|
grosnours Apprentice
Joined: 05 Jun 2006 Posts: 210 Location: Belgium
|
Posted: Sat Dec 23, 2006 5:51 pm Post subject: |
|
|
Si tu veux pousser plus loin, tu peux t'amuser à filtrer l'output aussi _________________ grosnours |
|
Back to top |
|
|
bulki Guru
Joined: 25 Nov 2004 Posts: 529 Location: SiliconValley
|
Posted: Sat Dec 23, 2006 10:11 pm Post subject: |
|
|
Merci pour vos réponses. Voilà ce que j'ai fait pour finir :
Code: | cat firewall.sh
IPT='/sbin/iptables'
IFACE=ath0
SSH_PORT=666
# Flush all current rules from $IPT
$IPT -F
$IPT -X
# Set default policies for INPUT, FORWARD and OUTPUT chains
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP
# Set access for localhost
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -s 127.0.0.1 -j ACCEPT
#$IPT -A OUTPUT -i lo -j ACCEPT
# Accept packets belonging to established and related connections
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Input acceptance
# HTTP
$IPT -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW -j ACCEPT
# HTTPS
$IPT -A INPUT -i eth0 -p tcp --dport 443 -m state --state NEW -j ACCEPT
# SSH
$IPT -A INPUT -i eth0 -p tcp --dport 666 -m state --state NEW -j ACCEPT
$IPT -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -j ACCEPT
# Output acceptance
# Ping
$IPT -A OUTPUT -p icmp -m state --state NEW -j ACCEPT
# Rsync
$IPT -A OUTPUT -p tcp --dport 873 -m state --state NEW -j ACCEPT
# DNS
$IPT -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
# HTTP
$IPT -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
# HTTPS
$IPT -A OUTPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT
# Look @ the rules
# $IPT -L -v
|
j'aimerais bien logger les paquets droppés, seulement je peux pas créer une règle et la passer à "$IPT -P INPUT DROP -j nouvel_regle", parce qu'il n'aime pas ça ! J'ai essayé un truc, mais ça n'a pas marché (ca m'a tué la connexion )... |
|
Back to top |
|
|
sireyessire Advocate
Joined: 20 Mar 2003 Posts: 2991 Location: back in Paris, France
|
Posted: Sun Dec 24, 2006 8:21 am Post subject: |
|
|
tu peux aussi regarder du coté de firehol qui te permet de générer les règles iptables à partir d'un fichier de configuration un peu plus explicite. En plus, il me semble qu'il te propose de choisir un niveau de reporting dans tes logs.
Enjoy _________________ I never think of the future. It comes soon enough.
Albert Einstein
Try simpler first
Shockley |
|
Back to top |
|
|
-KuRGaN- Veteran
Joined: 05 Dec 2004 Posts: 1142 Location: Besançon (25) [FRANCE]
|
Posted: Sun Dec 24, 2006 11:48 am Post subject: |
|
|
Pour logger avec iptables, sur une interface lan par exemple:
Code: |
iptables -N LOG_LAN_DROP
iptables -A LOG_LAN_DROP -j LOG --log-prefix '[IPTABLES_LAN_DROP]'
iptables -A LOG_LAN_DROP -s $IP_LAN -j DROP
|
Et à la fin de ton script:
Code: |
iptables -A INPUT -i $IF_LAN -j LOG_LAN_DROP
iptables -A OUTPUT -o $IF_LAN -j LOG_LAN_DROP
|
_________________ Knight Gent00 Industries RiDeR !!!! |
|
Back to top |
|
|
grosnours Apprentice
Joined: 05 Jun 2006 Posts: 210 Location: Belgium
|
Posted: Sun Dec 24, 2006 3:11 pm Post subject: |
|
|
Code: | iptables -A INPUT -j LOG --log-prefix '[IPTABLES_LAN_DROP]' |
suffit vu la policy à DROP. Idem pour l'output. Ne pas oublier un "-m limit" si le logger n'est pas metalog.
Tu n'as pas besoin des ports 21,22,23,25,110,143,902,993,995,3128,8080,... en sortie ?
De plus, je commencerais le script par
Code: | for i in INPUT OUPUT FORWARD ; do iptables -F $i ; iptables -P $i ACCEPT ; done |
et je le terminerais par
Code: | for i in INPUT OUPUT FORWARD ; do iptables -P $i DROP ; done |
histoire de ne pas risquer de kill les connexions en cours.
Pour finir, une fois les règles en place, j'utiliserais un fichier à base de `iptables-save`. J'ai entendu dire que les performances d'iptables-restore sont bien plus élevées qu'une série d'iptables. _________________ grosnours |
|
Back to top |
|
|
|