Port knocking et spa:Spa:Parametrage
Paramétrage
Une fois ceci fait, éditez le fichier access.conf :
# vim /etc/fwknop/access.conf
Puis modifier le fichier comme suit (en adaptant les IDs des clés) :
SOURCE: ANY; OPEN_PORTS: tcp/22; DATA_COLLECT_MODE: PCAP; GPG_REMOTE_ID: C67130D2; GPG_DECRYPT_ID: 37673824; GPG_DECRYPT_PW: Password; GPG_HOME_DIR: /root/.gnupg; FW_ACCESS_TIMEOUT: 60;
Redémarrez le démon fwknop :
# /etc/init.d/fwknop restart
Tests
A partir d’une console client, entrez la commande suivante :
$ ./fwknop \ -A tcp/22 \ --gpg-recip 37673824 \ --gpg-sign C67130D2 \ –w \ –k 192.168.1.1
Les paramètres principaux sont explicités dans le tableau qui suit.
Paramètre | Explication |
---|---|
-A, -- Access <port list> | Liste du ou des protocoles à ouvrir sur le serveur. Format : tcp/22,udp/53 |
--gpg-recip <key ID> | ID de la clé du serveur |
--gpg-sign <key ID> | ID de la clé du client |
-a, --allow-IP <IP> | Indique quelle adresse IP doit être déverrouillée par le firewall. Peut être utilisé dans le cas où vous voudriez par exemple offrir un accès maîtrisé à une personne distante au serveur SSH |
-s, --source-IP | Demande au serveur fwknop d’utiliser l’adresse source à partir de laquelle le paquet SPA est généré, ce qui peut être nécessaire pour une authentification dans un système NAT. Dans les autres cas, utilisez -w |
-w, --whatismyip | Résout l’adresse IP du client via le site http://www.whatismyip.org/ |
-k, --knock-dst <IP> | Synonyme de –D (IP de destination) |
-D, --destination <IP> | Adresse IP du serveur |
--Spoof-src <IP> | Spoofing d’adresse IP source. Nécessite d’être loggué en tant que root. |
-d, --debug | Activation du mode debug |
-v, --verbose | Activation du mode verbeux |
Remarques :
- Pour obtenir la liste exhaustive des paramètres, utilisez la commande
fwknop --help.
- Si vous êtes sur le même réseau que le serveur (exemple : NAT), remplacez le paramètre –w par –s afin de forcer la non résolution d’IP par le service www.whatismyip.org.
- Si vous obtenez le message d’erreur suivant dans vos mails : “fwknopd: remote time stamp is older than 120 second max age”, cela signifie que le paquet SPA réceptionné est périmé. Cela provient certainement d’un décalage horaire entre le serveur et le client. Pour remédier à ce problème, il est conseillé de synchroniser le serveur et le client avec un serveur NTP.
Les tests qui suivent sont menés à partir du client. Commençons par nous assurer que le port 22 est filtré :
$ nmap -p 22 192.168.182.132 Starting Nmap 4.60 ( http://insecure.org ) at 2008-05-12 15:47 Paris, Madrid Interesting ports on 192.168.182.132: PORT STATE SERVICE 22/tcp filtered ssh MAC Address: 00:0C:29:FC:10:35 (VMware) Nmap done: 1 IP address (1 host up) scanned in 1.063 seconds
Envoyons maintenant le paquet SPA au serveur :
$ ./fwknop -A tcp/22 --gpg-recip C664C941 --gpg-sign D23446E5 -s -k 192.168.182.132 [+] Starting fwknop client (SPA mode)... [+] Enter the GnuPG password for signing key: D23446E5 GnuPG signing password: [+] Building encrypted Single Packet Authorization (SPA) message... [+] Packet fields: Random data: 9103019254553184 Username: a011830 Timestamp: 1210599773 Version: 1.9.3 Type: 1 (access mode) Access: 0.0.0.0,tcp/22 SHA256 digest: YZd+6z4V/zOsVrgdo4YyDzOtWjgWuPK4h0ntjXWzSIo [+] Sending 1048 byte message to 192.168.182.132 over udp/62201...
Vérifions enfin que l’accès nous est ouvert :
$ nmap -p 22 192.168.182.132 Starting Nmap 4.60 ( http://insecure.org ) at 2008-05-12 15:51 Paris, Madrid Interesting ports on 192.168.182.132: PORT STATE SERVICE 22/tcp open ssh MAC Address: 00:0C:29:FC:10:35 (VMware) Nmap done: 1 IP address (1 host up) scanned in 0.843 seconds
Par ailleurs, la commande suivante permet d’afficher les logs syslog en temps réel, des messages fwknop uniquement :
# clear; tail –f /var/log/syslog | grep fwknop
Lorsque vous envoyez un paquet SPA authentifié correctement, des messages du type suivant doivent alors apparaître :
May 13 04:53:08 aldeid fwknopd: received valid GnuPG encrypted packet (signed with required key ID: "D23446E5") from: 192.168.1.17, remote user: a011830, client version: 1.9.3 (SOURCE line num: 114) May 13 04:53:08 aldeid fwknopd: add FWKNOP_INPUT 192.168.1.17 -> 0.0.0.0/0(tcp/22) ACCEPT rule 60 sec May 13 04:54:09 aldeid fwknop(knoptm): removed iptables FWKNOP_INPUT ACCEPT rule for 192.168.1.17 -> 0.0.0.0/0(tcp/22), 60 sec timeout exceeded
Démarrage automatique de fwknop
Les commandes suivantes permettent d’ajouter fwknop dans tous les runlevels :
# cd /etc/init.d # update-rc.d fwknop defaults 95
Vérification :
# find /etc/rc*.d -name *fwknop /etc/rc0.d/K95fwknop /etc/rc1.d/K95fwknop /etc/rc2.d/S95fwknop /etc/rc3.d/S95fwknop /etc/rc4.d/S95fwknop /etc/rc5.d/S95fwknop /etc/rc6.d/K95fwknop
Single Packet Authorization : Fwknop
|
[Sommaire] |
[Suivant]
Comparaison entre Port Knocking et SPA
|