Weekend project : Alya FireWall – Part 3

Je profite de ce moment d’accalmie à la maison pour avancer dans notre projet. Aujourd’hui, nous allons reprendre là où l’on s’est arrêté, afin d’activer le contrôle à distance sécurisé de notre boitier grâce au Secure Shell SSH, Activer le DHCP sur notre box afin d’adresser les clients, et configurer le DNS afin de maitriser les résolutions et ne pas dépendre du DNS de Maroc Telecom (je pars du principe que vous êtes comme moi, énervé par la non-qualité des boitier de notre cher opérateur historique), alors, ready steady, go !

Accès Sécurisé à distance

SSH est un protocole d’accès à distance, sécurisé, nous permettant à travers un ordinateur, d’administrer notre boitier via ligne de commande. Nous aurons donc à utiliser un client SSH (le plus populaire et gratuit étant putty à télécharger ici : Putty Download.
Si vous avez linux comme OS sur votre PC, alors l’accès se fera via la console par défaut ou le terminal de votre distribution linux.
Sur notre boitier nous allons d’abord configurer le service SSH

$ sudo vi /etc/ssh/sshd_config
# Modifier le port par defaut
Port 15507
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 768
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 60
# Supprimer l acces avec root
PermitRootLogin no
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes

Puis nous allons redémarrer le service SSH :

$ sudo rc.d restart sshd

Maintenant à travers votre PC utilisez putty pour vous connecter en utilisant l’utilisateur « alya » que nous avons crée dans la partie 2. Si tout va bien, nous n’aurons plus besoin de l’écran et du clavier sur le boitier, mais seulement d’y accéder à distance à travers SSH sur notre réseau domestique LAN.

Premières règles de sécurité

Nous allons implémenter sur notre boitier, quelques règles basiques de sécurité pour nous protéger des attaques au niveau TCP et un petit nettoyage et filtrage ICMP. Pour celà, commençeons par modifer les paramètres de contrôle de notre distribution Archlinux :

$ sudo vi /etc/sysctl.conf
# Protection anti spoof ipv4 (en utilisant reverse-path filter)
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.rp_filter=1
# Activation des cookies TCP/IP SYN
net.ipv4.tcp_syncookies=1
# Ignorer les broadcasts ICMP
net.ipv4.icmp_echo_ignore_broadcasts = 1
# Ignorer les erreurs ICMP
net.ipv4.icmp_ignore_bogus_error_responses = 1
# Protection MITM ignorer les redirections ICMP
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
# Ne pas envoyer les redirections ICMP
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0
# Ne pas accepter les packets IP Source Route
net.ipv4.conf.all.accept_source_route = 0
# Log niveau zero
net.ipv4.conf.all.log_martians = 1
# fonction routeur de notre boitier (primordial)
net.ipv4.ip_forward = 1
# Protection depassement de memoire
vm.min_free_kbytes=8192

Sauvegarder les changements et les appliquer avec la commande suivante

$ sudo sysctl –p

Fonction DHCP Server et DNS Server

Avoir un DHCP sur notre boitier nous permettera de maitriser l’adressage des clients. De cette façon, nous allons agir comme une passerelle pour recevoir tout le traffic de nos clients, et toutes les requêtes DNS vont attérir sur notre boitier.
Notre boitier protégera tous les clients, et n’aura pas besoin de l’action de ces derniers pour agir comme gateway.
La fonction DNS est très importante ! comme je l’expliquait plus haut, nous allons améliorer le fonctionnement du DNS par défaut de Maroc Telecom, en tirant partie du cache des packets DNS pour servir rapidement la résolution clients, nous allons aussi sécuriser et se prémunir des attaque de type DNS Cache poisonning.
Pour celà, nous allons installer dnsmasq, qui est à la fois le DHCP et le DNS facile à configurer pour notre ArchLinux :

$ sudo pacman –S dnsmasq
$ sudo vi /etc/dnsmasq.conf
## DNS CONFIGURATION ##
# Interfaces for DNS
interface=eth0
listen-address=192.168.1.3
bind-interfaces
# Never forward plain names (without a dot or domain part)
domain-needed
# Never forward addresses in the non-routed address spaces.
bogus-priv
# Max concurrent DNS queries (default = 150)
dns-forward-max=150
# DNS cache size (default = 150)
cache-size=300
## DHCP CONFIGURATION ##
# DHCP range and lease time
dhcp-range=192.168.1.10,192.168.1.20,255.255.255.0,4d
# Set DHCP as authoritative
dhcp-authoritative

Maintenant redémarrons pour appliquer les changements :

$ sudo rc.d restart dnsmasq

Il faut maintenant désactiver le DHCP sur votre routeur Maroc Telecom ! Très important ! Il est difficile de faire cohabiter deux serveurs DHCP sur le même LAN !
Maintenant testons notre DHCP sur windows à travers le commande suivantes dans une fenêtre DOS :

> ipconfig/release
> ipconfig/renew
> ipconfig/all

Vérifier que vous avez eu la bonne IP et que vous avec notre boitier 192.168.1.3 comme passerelle
Pour tester notre DNS nous allons faire une capture TCP dump sur notre boitier (à travers l’accès SSH)

$ sudo tcpdump -i eth0 dst port 53 or src port 53 -n -x -X -v

Sur votre client windows executer la commande suivante:

> ipconfig/flushdns
> ping www.google.com

Vérifier maintenant avec la capture executée que la requête du client windows est bien reçue par notre boitier Alya, et que celui ci la renvoie vers le DNS Server de Maroc Telecom.
Refaire un deuxième test et cette fois sur le TCP Dump, on ne devrait plus avoir de forward vers le DNS externe, en effet, le cache du boitier devrait nous répondre.

Fin de la troisième partie

Voilà, nous avons à présent avancé et nous avons un boitier, DHCP, DNS et firewall Layer 3 et 4, pour notre usage, la prochaine et dernière partie nous servira à jouer avec le linux iptables, pour configurer nos access lists, et je vais vous introduire à SNORT qui est un bout de logiciel incroyable pour configurer votre premier « intrusion detection system ». Tchuss ! et bon weekend 😉


Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *