Journal Petit script pour Packet Filter (BSD)

Posté par  (site web personnel) .
Étiquettes : aucune
0
31
oct.
2006
http://hibbert.univ-lille3.fr/~cbellegarde/fw.sh

Ayant marre de voir mes logs pourris de connexion ssh (invalid user toto, ...), j'ai fait ce petit script qui bloque les ips des "méchants"...

Pour l'utiliser, il faut rajouter une table à la conf de pf:
table <scriptkiddies> { }

et la regle magique:
block in on $Internet proto tcp from <scriptkiddies> to any

Il faut aussi rajouter ca dans la conf de syslog
auth.info /var/log/fwauth

Je le lance ensuite via un crontab:
* * * * * /usr/local/sbin/fw.sh


J'aurai bien voulu faire de l'analyse en direct du fichier de log mais probleme, cat /var/log/authlog | grep quelquechose | while read ne semble pas fonctionner avec ksh :( Donc, les logs sont analysés toutes les minutes.
  • # denyhosts

    Posté par  (site web personnel) . Évalué à 5.

    Tu peux aussi regarder du côté de denyhosts ( http://denyhosts.sourceforge.net/ ) qui fait la même chose mais en entrant les IP dans hosts.deny. Y'a une durée d'expiration et tout, c'est pas mal foutu.
  • # port != 22

    Posté par  . Évalué à 9.

    Tu peux aussi faire tourner ton ssh sur un port non standard, ca a résolu tout mes problemes de scans. (bon c'est toujours sur 22 en ipv6 mais c'est beaucoup plus galère pour le bot :)
    • [^] # Re: port != 22

      Posté par  (site web personnel) . Évalué à 1.

      Pour un bot certes, ceci dit, des attaques de pirates par IPv6 ca commence a se voir, et pas qu'un peu. Vaux mieux avoir un firewall avec un calecon en zinc et de bonnes ACLs.

      Steph
  • # démon

    Posté par  (site web personnel) . Évalué à 3.

    un tail -f /var/log/messages | ton_script_qui_fait les actions.sh
    (donc en mode démon) ça marcherait mieux non ? (plutôt que de retraiter un /var/log/messages qui ne fait que grossir avant d'avoir fini le traitement précédent...)

    et sinon tu peux utiliser /var/log/auth.log il me semble... et utilise plutôt gawk (ou perl) qui est plus adapté à ce genre de traitements...
  • # GCU tips

    Posté par  (site web personnel) . Évalué à 6.

    un petit tips made in GCU pour éviter le brute force ssh avec PF : http://wiki.gcu.info/doku.php?id=bsd:pf_et_bruteforce
    • [^] # Re: GCU tips

      Posté par  (site web personnel) . Évalué à 2.

      Bah voila, pourquoi je l'ai pas trouvé cette page! :)

      Bon, la prochaine fois, je passe ici poser ma question plutot que de me faire chier à faire un script ;)

      Merci beaucoup!
    • [^] # Re: GCU tips

      Posté par  (site web personnel) . Évalué à 3.

      Si j'ai bien compris, cette technique consiste a blacklister toute IP tentant de se connecter plus de 2 fois en 10 secondes. Que se passe t'il si l'attaquant connait l'ip avec laquelle tu te connectes sur ta machine normalement, et l'utilise (spoof) pour te blacklister ?
  • # swatch ...

    Posté par  (site web personnel) . Évalué à 2.

    Pour ma part, pour déclencher des actions sur certaines lignes dans les logs, j'utilise swatch, et dès que j'ai un "invalid user" détecté, l'ip de l'utilisateur est ajoutée dans les ip à rejeter.

    Un tuto est disponible ici (adaptable pour pas mal d'OS je suppose, ça fonctionne très bien sur debian, et j'imagine aussi sur BSD): http://gentoo-wiki.com/HOWTO_Protect_SSHD_with_Swatch
    • [^] # Re: swatch ...

      Posté par  (site web personnel) . Évalué à 4.

      dès que j'ai un "invalid user" détecté, l'ip de l'utilisateur est ajoutée dans les ip à rejeter.

      J'espère pour toi que tu ne fait jamais de faute de frapper sur ta commande ssh, genre :
      ssh bqpt@bla.blala.bla
      password: ********
      login incorrect

      mais qu'est ce que c'est que ce bordel, j'ai le bon password pourtant, ah merde, putain de clavier qwerty... :
      ssh bapt@bla.blabla.bla
      password: ********
      [bapt@blabla.bla]-(~)#

      sinon tu ne peux plus te connecter.
      • [^] # Re: swatch ...

        Posté par  (site web personnel) . Évalué à 2.

        Ben non, il ne s'authentifie pas par mot de passe ;)
      • [^] # Re: swatch ...

        Posté par  (site web personnel) . Évalué à 2.

        Host bla.blala.bla
        User bapt
        dans ~/.ssh/config
        Et l'authentification par mot de passe saynul (et personnellement pour me logguer à distance c'est <F4>bla<tab><enter>, Ion c'est bon).

        pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

  • # SNORT_inline

    Posté par  . Évalué à 1.

    salut, je te conseillerais bien SNORT pour freeBSD
    http://freebsd.rogness.net/snort_inline/

    et http://www.snort.org/docs/FreeBSD47RELEASE-Snort-MySQLVer1-3(...)
    contient des références à l'utilisation de ssh
  • # Pour Linux

    Posté par  (site web personnel) . Évalué à 2.

    Y a fail2ban qui est très simple à comprendre donc je ne vous en dirai pas plus :-P Mais au moins si quelqu'un cherche une solution de ce genre pour Linux il a une piste.
    • [^] # Re: Pour Linux

      Posté par  (site web personnel) . Évalué à 1.

      Fail2ban est un excellent programme mais il serait bien de noter qu'il ne bloque pas les attaques par IPv6.
    • [^] # Re: Pour Linux

      Posté par  . Évalué à 3.

      Sinon il doit bien y avoir un moyen de faire quelque chose avec quelques règles iptables, genre un hashlimit pour limiter le nombre de connexions sur le port 22 par ip source, et utiliser le module recent pour DROPer les ip source qui ont dépassées la limite.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.