[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [linux] IPTables



Je suis plutot dans le cadre d'un réseau avec DMZ, zone privé et IP
masquerading sur le routeur/firewall :)

OK, je te conseille plutôt un script alors...


...
Voilà, exactement... Bien que j'ai la matrise de tout le réseau et de
bonnes connaissances en TCP/IP, les firewall me sont jusque maintenant
inconnus.

Bah, t'auras facile.

iptables permet simplement (quoique, avec beaucoup de features et une
grande flexibilité) de faire des règles du genre: qui peut aller où
sur quel protocole (port). "qui" et "où" étant des IPs ou des subnets.

De plus, tu dois:
- rejeter systématiquement des attaques ou sniff potentiels (flags
  bizarres) - iptables étant un firewall stateful, c'est assez facile
  à faire, p.ex.: ça entre sans le flag SYN (= 1er paquet = connexion)
  mais il n'y a pas eu de flag SYN auparavant => rejeter!
- limiter certains protocoles pour éviter les DoS (enfin, faut pas rêver,
  la bande passante est évidemment bouffée avant d'arriver au firewall),
  p.ex. les paquets ICMP. iptables est vraiment génial pour ça: tu peux
  dire p.ex. les paquets icmp-echo (=ping): maximum 1 par seconde
  (avec --limit)

Ce qu'on peut faire aussi (mais faut écrire pas mal de règles), c'est de
rejeter systématiquement les IPs "bizarres" (combinaisons impossibles en
fonction du subnet, IPs non-routables/non-Internet venant de l'extérieur).
Perso, je le fais pas, mais c'est une possibilité aussi.


Aucun outil du monde ne pourra t'aider pour le faire.
Aider si, me remplacer, non... c'est clair

Pas sur que ça aide des masses, iptables a une syntaxe assez simple et
est finalement assez facile à utiliser. Il faut juste comprendre ce que
l'on fait et ce que l'on veut faire ;-)

Que je clique sur une checkbox "REJECT" ou que j'écrive "-j REJECT"
dans mon script...


Il y a un très bon tutorial (en anglais) sur iptables:
http://freshmeat.net/search?q=iptables+tutorial
Ah... j'imprime et je lis... qd j'ai l'occasion...
Je te le conseille fortement.
Tu verras que iptables est finalement assez facile à utiliser ;-)


Soit une DMZ (adresse privée de type 192.168.0.x) comportant 2 serveur
web et une messagerie. Un des serveurs web sert aussi de synchronisateur
temporel pour tout le réseau interne et se synchronise lui-même via
ntpdate. Chacun de ses serveurs dispose d'une adresse IP non privée
qu'il faudra mapper avec son adresse privée.

Il vaut peut-être mieux faire ça via un serveur dans le LAN.
Il suffirait de permettre à ce serveur (et uniquement à ce serveur) de sortir
en ntp (TCP:123).
Du point de vue conceptuel, je ne vois pas pourquoi ce service devrait être
en DMZ, étant donné qu'il ne sert qu'aux machines du LAN et pas à des
clients venant de l'extérieur.
Il faut essayer de minimiser LAN<->DMZ pour que si qqn hacke ta DMZ ça aie
un impact minimal sur le LAN (ce qui est aussi le but de la DMZ,
finalement ;-)).
Le plus important pour la DMZ: éviter qu'il n'y ait d'accès DMZ -> LAN.
Donc si les serveurs DMZ ont besoin d'accéder au serveur Samba ou au serveur
NTP, ça se complique...
Je suppose qu'ils vont aussi se synchroniser via NTP... ?
Perso, je les laisserais aller par Internet, indépendamment du LAN...

Tu pourrais p.ex. sortir ton serveur Samba (même principe: il offre uniquement
des services aux clients dans le LAN et n'a donc rien à chercher dans la DMZ)
et faire ça sur cette machine-là.


Soit une zone de type réseau d'entreprise ( type 10.0.0.0 ) subdivisée
en branche (par exemple tous les PC utilisateurs sont de la forme
10.10.1.0, les serveurs NT INTERNES de type 10.10.2.0 et les serveurs
linux INTERNES , 10.10.3.0). Les PC du lan se partagent une ou plusieurs
adresses non privées pour sortir sur le web

Tu pourrais faire un petit schéma ? Tu as plusieurs routeurs / switch ?

L'idée générale est :

Petite remarque: IMHO c'est la toute première chose à faire, indépendamment
du firewall que tu utilises: note-toi qqe part une liste des accès à
autoriser (tout le reste étant interdit) !
Fais-toi un cahier des charges !

Ensuite, ce n'est quasiment plus qu'une traduction français -> iptables ;-)


* permettre aux utilisateurs de sortir du réseau sur Internet:
recherche, instant messenger (?)..., d'accèder aux serveurs dans la DMZ

Tu veux aussi restreindre les sites ?
Du genre: banner les sites porno, de chat, ... ?

Dans ce cas, il te faudra aussi installer Squid !
Soit sur le firewall (plus simple) ou bien sur une machine du LAN (plus
sur ;-)).

Note que pour administrer Squid, je te conseille fortement Webmin.
Il a une excellente interface pour ça :-)


en consultation (relever les mails et consulter les pages web), de
synchroniser leur PC sur le serveurqui offre se service par
l'intermédiare de samba (Question: ne serait-il pas mieux de mettre ce
serveur dans le réseau interne?)
Oui. A moins que les serveurs DMZ (mail, web) n'aient besoin d'accéder
à ce serveur (cf. le point au-dessus).

Donc:
LAN -> Internet: HTTP, instant messenger (connais pas le port)
LAN -> DMZ: HTTP, POP3/IMAP, ... ?
Internet -> LAN: uniquement les réponses (*)
Internet -> DMZ: HTTP, SMTP, (POP3/IMAP ?)

(*) note que pour ça: merci iptables! oufti, avec ipchains (qui n'est
    pas stateful), je te dis pas les règles qu'il faut bricoler... pff...
    Avec iptables, tu fais juste:
    iptables --append FORWARD -i eth0 -o eth2 -p tcp \
       -m state --state RELATED,ESTABLISHED -j ACCEPT

Ton serveur SMTP, tu veux le mettre où ?
Dans la DMZ ou dans le LAN ?
Moi je l'ai mis dans la DMZ... mais seulement parce qu'il faut aussi
IMAP et qu'il est accessible depuis l'extérieur via IMAP/SSL.

Mais bon, comme c'est la même machine qui fait SMTP et POP/IMAP et
que le SMTP de l'extérieur doit être autorisé à rentrer pour aller
sur le serveur SMTP, vaut mieux le mettre dans la DMZ que dans le
LAN (toujours selon le principe: Internet -> LAN: INTERDIT!!).

Ce qui nous donne:
LAN -> Internet: HTTP, IM
serv(*) -> Internet: NTP
LAN -> DMZ: SMTP, IMAP/POP, HTTP (FTP, ssh, ... ?)
Internet -> LAN: rien, juste les réponses
Internet -> DMZ: SMTP, HTTP

"serv" étant ce fameux serveur Samba ;-)

Ah: et le DNS ?

Vous avez un propre nom de domaine ?

Faudrait p'têt mettre le DNS pour votre domaine chez vous aussi,
alors. Moi je l'ai mis sur le firewall par paresse, mais vaut mieux
(BIND a parfois des probs de sécurité) le mettre en DMZ.

Donc:
LAN -> DMZ: SMTP, IMAP/POP, HTTP, DNS (,... ?)
Internet -> DMZ: SMTP, HTTP, DNS


* permettre aux "étrangers" d'accéder à nos serveurs web et mail de la
DMZ pour les services autorisés.

"mail": SMTP (évidemment) ou bien POP/IMAP ?


* interdire l'accès à la partie privée de notre réseau à tout "étranger"
yep, évidemment ;-)


J'espère que mes explications sont claires et vous permettront de
m'aider :)

Bien sur.


Comme déjà dit, je te conseille fortement de te faire une liste comme celle
que j'ai faite en partie dans ce mail, une sorte de mini-cahier des charges,
avec les accès autorisés:

x -> y: protocoles

@+

--
  -o) Pascal Bleser   ATOS Origin/Aachen(DE) |
  /\\         <pascal.bleser@atosorigin.com> |
 _\_v <guru@linuxbe.org>                     |
---------------------------------------------|
Jesus saves,Buddha makes incremental backups :
---------------------------------------------'

_______________________________________________
Linux Mailing List
Archives: http://unixtech.be/mailman/listinfo/linux