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

Voici l'affaire:

Au cours des dernières semaines, j'ai remarqué un grand nombre d'échecs d'authentification pour le service sshd et le service de partage d' screensharingd sur mon server Mac OS X Mavericks (en cours d'exécution 10.9.2 (Build 13C64), Server v3.1.1 (Build 13S4140) , Apache v2.2.26 et OpenSSL v1.0.1g (no Heartbleed for me, haha)). Un échantillon rapide de certains journaux de servers:

 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] 

Les journaux de screensharingd 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 append manuellement des règles de pare-feu à l'aide de /Applications/Server.app/Contents/ServerRoot/usr/libexec/afctl -a [ip-address] , mais cela prend du time et est plutôt stupide. J'ai essayé d'utiliser certains des outils offerts par mon tree MacPorts, mais ils ne semblent pas fonctionner, et je crains que tout ce que j'installe ne soit en conflit avec le pare-feu embedded.

Existe-t-il un logiciel pour OS X qui automatisera les changements de pare-feu en réponse à des tentatives répétées répétées ou peut-être une autre manière de réduire le risque de journal de force brut dans les tentatives réussies?

    Si votre server est sur l'internet public, il obtiendra des centaines de connections automatisées sur les ports qu'il écoute. Vous voudrez soit configurer un pare-feu externe, utiliser les outils ipfw / pfctl Apple existants, soit get un package comme fail2ban qui peut être installé facilement si vous avez déjà l'outil homebrew .

    Vous pouvez tester avec ipfw et pfctl vous-même et bloquer une IP de test de ssh et vérifier qu'il n'y a pas d'interférence des règles de pare-feu d'Apple, mais je n'ai connu personne qui sait comment utiliser la command line pour rompre les choses s'ils ont un access local et savoir comment déconfigurer un jeu de règles qui a des conséquences imprévues.

    Cela vous permettrait de faire répéter les tentatives répétées par le pare-feu après un seuil de tentative échouée dans une plage de time. Ce n'est pas parfait, mais peut réduire la taille de vos files journaux et réduire le changement que quelqu'un va forcer un count ou deviner un mot de passe commun.

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

    Réponse courte: Il n'y a aucune option dans les outils de pare-feu pour éviter les attaques de force brutale. Un outil de pare-feu ne peut bloquer / autoriser / mangle une connection (comme je le sais).

    Une réponse un peu plus longue: pour éviter une attaque de force brute, vous avez besoin d'un outil qui pourrait mesurer à quelle fréquence (et à quelle fréquence les pauses entre chaque essai) une source biunique reliera une destination spéciale sur votre server. L'un de ces outils est fail2ban comme j'ai écrit dans (my / the) first answer (converti de bmike en commentaire).

    Toutes les autres réponses que j'ai déjà données sont toujours valides – vérifiez d'abord si vous devez connecter votre server directement à Internet.