2 votes

Existe-t-il des outils de pare-feu pour OS X Mavericks permettant de prévenir les attaques par force brute ?

Voici l'affaire :

Au cours des dernières semaines, j'ai remarqué un grand nombre d'échecs d'authentification à la fois pour l'application sshd et le screensharingd sur mon serveur Mac OS X Mavericks (exécutant 10.9.2 (Build 13C64), Server v3.1.1 (Build 13S4140), Apache v2.2.26, et OpenSSL v1.0.1g (pas de Heartbleed pour moi, haha)). Un rapide échantillon de certains journaux du serveur :

Apr 21 08:08:45 [myhost] sshd[6558]: Invalid user fls from 83.222.230.90
Apr 21 08:08:45 [myhost] sshd[6558]: input_userauth_request: invalid user fls [preauth]
Apr 21 08:08:45 [myhost] sshd[6558]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:08:47 [myhost] sshd[6560]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:08:48 [myhost] sshd[6568]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:08:49 [myhost] sshd[6571]: Invalid user x from 83.222.230.90
Apr 21 08:08:49 [myhost] sshd[6571]: input_userauth_request: invalid user x [preauth]
Apr 21 08:08:50 [myhost] sshd[6571]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:08:51 [myhost] sshd[6573]: Invalid user http from 83.222.230.90
Apr 21 08:08:51 [myhost] sshd[6573]: input_userauth_request: invalid user http [preauth]
Apr 21 08:08:51 [myhost] sshd[6573]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:08:52 [myhost] sshd[6578]: Invalid user mp3 from 83.222.230.90
Apr 21 08:08:52 [myhost] sshd[6578]: input_userauth_request: invalid user mp3 [preauth]
Apr 21 08:08:53 [myhost] sshd[6578]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:08:54 [myhost] sshd[6581]: Invalid user oracle from 83.222.230.90
Apr 21 08:08:54 [myhost] sshd[6581]: input_userauth_request: invalid user oracle [preauth]
Apr 21 08:08:54 [myhost] sshd[6581]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:08:55 [myhost] sshd[6584]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:08:57 [myhost] sshd[6589]: Invalid user r00t from 83.222.230.90
Apr 21 08:08:57 [myhost] sshd[6589]: input_userauth_request: invalid user r00t [preauth]
Apr 21 08:08:57 [myhost] sshd[6589]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:08:58 [myhost] sshd[6595]: Invalid user bin from 83.222.230.90
Apr 21 08:08:58 [myhost] sshd[6595]: input_userauth_request: invalid user bin [preauth]
Apr 21 08:08:59 [myhost] sshd[6595]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:09:00 [myhost] sshd[6597]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:09:01 [myhost] sshd[6600]: Invalid user sm0k3y from 83.222.230.90
Apr 21 08:09:01 [myhost] sshd[6600]: input_userauth_request: invalid user sm0k3y [preauth]
Apr 21 08:09:02 [myhost] sshd[6600]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:09:03 [myhost] sshd[6604]: Invalid user cgi from 83.222.230.90
Apr 21 08:09:03 [myhost] sshd[6604]: input_userauth_request: invalid user cgi [preauth]
Apr 21 08:09:03 [myhost] sshd[6604]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]

Le site screensharingd Les journaux sont les suivants :

Apr 21 08:02:38 [myhost] screensharingd[5553]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 174.47.177.235 :: Type: VNC DES
Apr 21 08:02:57 --- last message repeated 7 times ---
Apr 21 08:28:42 [myhost] screensharingd[8520]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 208.71.217.153 :: Type: VNC DES
Apr 21 08:36:14 [myhost] screensharingd[9232]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 173.165.178.100 :: Type: VNC DES
Apr 21 08:43:34 [myhost] screensharingd[9928]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 5.135.101.206 :: Type: VNC DES
Apr 21 08:56:13 [myhost] screensharingd[11240]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 24.197.239.70 :: Type: VNC DES
Apr 21 08:56:34 [myhost] screensharingd[11273]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 24.197.239.70 :: Type: VNC DES
Apr 21 08:56:51 [myhost] screensharingd[11300]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 24.197.239.70 :: Type: VNC DES
Apr 21 08:56:58 --- last message repeated 1 time ---
Apr 21 09:29:15 [myhost] screensharingd[14752]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 75.150.95.108 :: Type: VNC DES
Apr 21 09:29:23 --- last message repeated 2 times ---
Apr 21 09:29:27 [myhost] screensharingd[14752]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 75.150.95.108 :: Type: VNC DES
Apr 21 09:29:33 --- last message repeated 1 time ---
Apr 21 09:29:59 [myhost] screensharingd[14819]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 75.150.95.108 :: Type: VNC DES
Apr 21 09:30:03 [myhost] screensharingd[14819]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 75.150.95.108 :: Type: VNC DES
Apr 21 09:30:13 --- last message repeated 2 times ---
Apr 21 09:30:14 [myhost] screensharingd[14819]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 75.150.95.108 :: Type: VNC DES
Apr 21 09:30:23 --- last message repeated 2 times ---
Apr 21 09:32:48 [myhost] screensharingd[15094]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 61.160.201.25 :: Type: VNC DES

Évidemment, je pourrais ajouter manuellement des règles de pare-feu en utilisant /Applications/Server.app/Contents/ServerRoot/usr/libexec/afctl -a [ip-address] mais cela prend du temps et c'est plutôt stupide. J'ai essayé d'utiliser certains des outils proposés par mon arborescence MacPorts, mais ils ne semblent pas fonctionner, et je crains que tout ce que j'installe n'entre en conflit avec le pare-feu intégré.

Existe-t-il un logiciel pour OS X qui automatise les modifications du pare-feu en réponse à des tentatives répétées d'échec ou peut-être un autre moyen de réduire le risque de réussite des tentatives de connexion par force brute ?

4voto

Oskar Points 1242

Si votre serveur est sur l'Internet public, il recevra des centaines de tentatives de connexion automatisées sur tous les ports qu'il écoute. Vous devrez soit mettre en place un pare-feu externe, soit utiliser le système d'alarme existant. ipfw / pfctl outils qu'Apple livre ou peut-être obtenir un paquet comme fail2ban qui peut être installé facilement si vous disposez déjà de l'application homebrew outil.

Vous pouvez tester avec ipfw y pfctl vous-même et bloquer une IP de test à partir de ssh et vérifier qu'il n'y a pas d'interférence des règles du pare-feu d'Apple, mais je n'ai pas fait l'expérience que quelqu'un qui sait utiliser la ligne de commande puisse casser des choses s'il a un accès local et sait comment déconfigurer un ensemble de règles qui a des conséquences involontaires.

Cela vous permettrait de faire en sorte que le pare-feu bloque les tentatives répétées après un certain nombre de tentatives infructueuses dans une période donnée. Ce n'est pas parfait, mais cela peut réduire la taille de vos fichiers journaux et réduire le risque que quelqu'un force brutalement un compte ou devine un mot de passe courant.

Ce serait un bon moyen de sécuriser les choses si vous ne pouvez pas utiliser un VPN ou un autre pare-feu pour réduire le nombre de ports d'écoute que votre serveur OS X expose à l'Internet en général.

0voto

Je ne sais pas ce que vous voulez exactement et je ne peux donc vous donner que quelques conseils :

  1. Ne connectez pas un serveur directement à Internet - installez un pare-feu devant le serveur (système différent, système d'exploitation différent) et n'autorisez que les ports que vous souhaitez rendre accessibles depuis Internet.

  2. Si vous devez connecter votre serveur directement à l'Internet (encore une fois : mauvaise décision), configurez votre pare-feu comme Apple l'a décrit dans son document intitulé fichier de soutien

  3. Si vous avez besoin d'obtenir le port ssh et de partage d'écran (par exemple) de l'internet, regardons fail2ban - ils ont un entrée wiki pour serveur OSX

Et s'il vous plaît : modifiez votre question pour nous faire savoir ce que vous voulez exactement.

0voto

Réponse courte : Il n'existe aucune option dans les outils de pare-feu pour empêcher les attaques par force brute. Un outil de pare-feu ne peut que bloquer/autoriser/modifier une connexion (à ma connaissance).

Une réponse un peu plus longue : Pour empêcher une attaque par force brute, vous avez besoin d'un outil capable de mesurer le nombre de fois (et la brièveté des pauses entre chaque essai) où une source biunique se connectera à une destination spéciale sur votre serveur. L'un de ces outils est fail2ban comme je l'ai écrit dans (ma/la) première réponse (convertie de bmike en commentaire).

Toutes les autres réponses que j'ai déjà données sont toujours valables - vérifiez d'abord s'il est nécessaire que vous connectiez votre serveur directement à Internet.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X