Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/12/2020, à 14:21

Sky3RN

[RÉSOLU / CONTOURNÉ] Comment redémarrer Denyhosts ?

Hello !

J'espère être dans la bonne section..

Il y a quelques temps j'ai remarqué que j'étais victime d'une attaque sur mon server SSH personnel.
J'ai donc tout naturellement changé de port et c'était clean pendant plusieurs semaines. Et depuis quelques jours ça semble recommencer.

J'imagine que c'est pas une attaque ciblée mais qu'ils doivent s'en prendre à tous les "domaines" utilisant NoIP (ce qui est mon cas).

Un simple tail -f /var/log/auth.log permet de voir l'activité suspecte :

skyern@skyern-desktop:/DATA/home/skyern$ tail -f /var/log/auth.log
Dec 13 13:17:43 skyern-desktop sshd[502006]: Disconnected from invalid user admin 15.206.176.43 port 58392 [preauth]
Dec 13 13:17:47 skyern-desktop sshd[502057]: warning: /etc/hosts.allow, line 18: host name/name mismatch: webmail.marseillan.com != outlook.shd-cloud.fr
Dec 13 13:17:47 skyern-desktop sshd[502057]: Invalid user turbo from 37.58.183.24 port 38393
Dec 13 13:17:47 skyern-desktop sshd[502057]: pam_unix(sshd:auth): check pass; user unknown
Dec 13 13:17:47 skyern-desktop sshd[502057]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=37.58.183.24 
Dec 13 13:17:47 skyern-desktop sshd[502057]: pam_winbind(sshd:auth): getting password (0x00000388)
Dec 13 13:17:47 skyern-desktop sshd[502057]: pam_winbind(sshd:auth): pam_get_item returned a password
Dec 13 13:17:49 skyern-desktop sshd[502057]: Failed password for invalid user turbo from 37.58.183.24 port 38393 ssh2
Dec 13 13:17:50 skyern-desktop sshd[502057]: Received disconnect from 37.58.183.24 port 38393:11: Bye Bye [preauth]
Dec 13 13:17:50 skyern-desktop sshd[502057]: Disconnected from invalid user turbo 37.58.183.24 port 38393 [preauth]
Dec 13 13:17:54 skyern-desktop sshd[502093]: Invalid user terraria from 51.38.129.120 port 60832
Dec 13 13:17:54 skyern-desktop sshd[502093]: pam_unix(sshd:auth): check pass; user unknown
Dec 13 13:17:54 skyern-desktop sshd[502093]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=51.38.129.120 
Dec 13 13:17:54 skyern-desktop sshd[502093]: pam_winbind(sshd:auth): getting password (0x00000388)
Dec 13 13:17:54 skyern-desktop sshd[502093]: pam_winbind(sshd:auth): pam_get_item returned a password
Dec 13 13:17:55 skyern-desktop sshd[502093]: Failed password for invalid user terraria from 51.38.129.120 port 60832 ssh2
Dec 13 13:17:57 skyern-desktop sshd[502093]: Received disconnect from 51.38.129.120 port 60832:11: Bye Bye [preauth]
Dec 13 13:17:57 skyern-desktop sshd[502093]: Disconnected from invalid user terraria 51.38.129.120 port 60832 [preauth]
Dec 13 13:17:59 skyern-desktop sshd[502124]: Invalid user student from 195.19.102.173 port 55856
Dec 13 13:17:59 skyern-desktop sshd[502124]: pam_unix(sshd:auth): check pass; user unknown
Dec 13 13:17:59 skyern-desktop sshd[502124]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=195.19.102.173 
Dec 13 13:17:59 skyern-desktop sshd[502124]: pam_winbind(sshd:auth): getting password (0x00000388)
Dec 13 13:17:59 skyern-desktop sshd[502124]: pam_winbind(sshd:auth): pam_get_item returned a password

Et c'est comme ça plusieurs fois par minute..

Du coup en cherchant sur Google je me suis penché sur la méthode de Denyhosts (J'utilise déjà hosts.allow et hosts.deny depuis des années mais là ce sont des IP randoms, je peux pas m'amuser à toutes les noter une par une à la main..).
Visiblement il est bien installé (depuis toujours, j'imagine) MAIS :

skyern@skyern-desktop:/DATA/home/skyern$ sudo apt-get install --reinstall denyhosts
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
La réinstallation de denyhosts est impossible, il ne peut pas être téléchargé.
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.

De même, j'ai modifié le fichier /etc/denyhosts.conf et au moment de redémarrer le service :

skyern@skyern-desktop:/DATA/home/skyern$ sudo /etc/init.d/denyhosts restart
sudo: /etc/init.d/denyhosts : commande introuvable
skyern@skyern-desktop:/DATA/home/skyern$ sudo systemctl restart denyhosts.service 
Failed to restart denyhosts.service: Unit denyhosts.service not found.
skyern@skyern-desktop:/DATA/home/skyern$ sudo systemctl restart denyhosts
Failed to restart denyhosts.service: Unit denyhosts.service not found.

À part en redémarrant ma machine, comment faire.. ?


Merci d'avance !

Dernière modification par Sky3RN (Le 20/12/2020, à 00:12)

Hors ligne

#2 Le 14/12/2020, à 15:00

Sky3RN

Re : [RÉSOLU / CONTOURNÉ] Comment redémarrer Denyhosts ?

Exemple d'attaque que je reçois plusieurs fois par minute avec un sudo watch -n 1 "lsof -i :LE_PORT_DE_MON_SSH_À_SURVEILLER" :

sshd     407892     root    4u  IPv4 3294042      0t0  TCP skyern-desktop:kerberos->138.68.77.143:60308 (ESTABLISHED)
sshd     407893     sshd    4u  IPv4 3294042      0t0  TCP skyern-desktop:kerberos->138.68.77.143:60308 (ESTABLISHED)
sshd     408114     root    4u  IPv4 3294187      0t0  TCP skyern-desktop:kerberos->119.28.93.152:54392 (ESTABLISHED)
sshd     408118     sshd    4u  IPv4 3294187      0t0  TCP skyern-desktop:kerberos->119.28.93.152:54392 (ESTABLISHED)
sshd     408332     root    4u  IPv4 3312705      0t0  TCP skyern-desktop:kerberos->melon:42208 (ESTABLISHED)
sshd     408336     sshd    4u  IPv4 3312705      0t0  TCP skyern-desktop:kerberos->melon:42208 (ESTABLISHED)
sshd     408831     root    4u  IPv4 3298910      0t0  TCP skyern-desktop:kerberos->acesso-177.23.58.23.voxxtelecom.com:53080 (ESTABLISHED)
sshd     408832     sshd    4u  IPv4 3298910      0t0  TCP skyern-desktop:kerberos->acesso-177.23.58.23.voxxtelecom.com:53080 (ESTABLISHED)
sshd     408842     root    4u  IPv4 3298916      0t0  TCP skyern-desktop:kerberos->113.88.166.17:48572 (ESTABLISHED)
sshd     408843     sshd    4u  IPv4 3298916      0t0  TCP skyern-desktop:kerberos->113.88.166.17:48572 (ESTABLISHED)

À chaque fois ça commence par "kerberos".

Hors ligne

#3 Le 14/12/2020, à 15:44

rodrigue7973

Re : [RÉSOLU / CONTOURNÉ] Comment redémarrer Denyhosts ?

pends duckdns.org


Etant dyslexique, j'ai des problèmes quant à la rédaction de messages en français courant. Je vous prie dès lors d'accepter toutes mes excuses si mes interventions peuvent vous paraitre étranges et je vous remercie d'avance pour votre compréhension.

Hors ligne

#4 Le 14/12/2020, à 17:01

Sky3RN

Re : [RÉSOLU / CONTOURNÉ] Comment redémarrer Denyhosts ?

rodrigue7973 a écrit :

pends duckdns.org

Je ne suis pas sûr de comprendre en quoi ça répond à ma question.

Mon but n'est pas de changer de service de DNS (puisque tout est déjà paramétré de mon côté).

Hors ligne

#5 Le 15/12/2020, à 11:15

bruno

Re : [RÉSOLU / CONTOURNÉ] Comment redémarrer Denyhosts ?

Bonjour,

Lorsque l'on a un serveur SSH accessible depuis l'Internet, il est normal de vois passer de très nombreuses tentatives de connexion. Ce sont essentiellement des attaques par force brute qui sont sans conséquence si le service est suffisamment sécurisé.

Changer le port SSH n'améliore en rien la sécurité, cela peut même la diminuer. (cf ./viewtopic.php?id=2055707)

Pour sécuriser le service il faut privilégier l’authentification par clés si possible. Il faut donc d'abord savoir comment tes utilisateurs s’authentifient, là on voit du pam_windbind et du kerberos, ce qui laisse supposer une authentification via LDAP

Hors ligne

#6 Le 15/12/2020, à 15:59

Sky3RN

Re : [RÉSOLU / CONTOURNÉ] Comment redémarrer Denyhosts ?

bruno a écrit :

Pour sécuriser le service il faut privilégier l’authentification par clés si possible. Il faut donc d'abord savoir comment tes utilisateurs s’authentifient, là on voit du pam_windbind et du kerberos, ce qui laisse supposer une authentification via LDAP

Merci, ça peut être une bonne piste !
Par contre je ne sais pas du tout encore où chercher pour savoir / reconfigurer !

Hors ligne

#7 Le 19/12/2020, à 20:20

Sky3RN

Re : [RÉSOLU / CONTOURNÉ] Comment redémarrer Denyhosts ?

J'ai édité mon premier post, j'avais marqué DynDNS au lieu de NoIP, c'est NoIP que j'utilise !
Ensuite, j'ai testé de créer un autre domaine chez NoIP et j'ai le même souci, donc je ne suis pas la cible en particulier, ce qui semble confirmer ce que je pensais : NoIP est victime de bruteforce.

Je cherche toujours une solution qui pourrait m'être utile et pratique. Je me suis renseigné sur le LDAP, c'est vraiment chouette mais vu que je suis amené à me connecter aléatoirement avec plusieurs machines différentes je peux pas m'amuser à générer des clés. Est-ce qu'il n'y aurait pas un moyen de contourner, par exemple en mettant la clé chiffrée sur une clé USB pour quand je me connecte à partir d'un ordi', et / ou la stocker également dans mon téléphone ? J'imagine que non, puisque ça semble être une clé par machine.

EDIT : J'ai résolu le problème.

Voici ma manière de procéder :
Si je voulais redémarrer Denyhosts c'était pour y appliquer un tutoriel que j'avais trouvé sur un site dans lequel je voulais importer les IP bannies de Blocklist.de : https://lists.blocklist.de/lists/all.txt
J'ai importé directement cette liste dans mon /etc/hosts.deny et à l'aide d'un RECHERCHER / REMPLACER j'ai ajouté "ALL: " devant chaque IP.
Mais le problème était toujours là : J'avais toujours des tentatives de connexions.. Sauf que comme un débile, j'avais jamais capté mais dans mon /etc/hosts.allow il y avait un "sshd: ALL" qui trainait, donc j'avais beau bannier des IP elles avaient toujours le "droit" de revenir. J'ai supprimé cette ligne et c'est parfait !

Évidemment j'ai toujours les tentatives de connexions (et j'ai envoyé un mail à NoIP pour les avertir) mais elles sont automatiquement rejetées.

Dec 19 19:58:07 skyern-desktop sshd[624678]: Failed password for root from 5.130.103.126 port 50248 ssh2
Dec 19 19:58:08 skyern-desktop sshd[624678]: Received disconnect from 5.130.103.126 port 50248:11: Bye Bye [preauth]
Dec 19 19:58:08 skyern-desktop sshd[624678]: Disconnected from authenticating user root 5.130.103.126 port 50248 [preauth]
Dec 19 19:58:17 skyern-desktop sshd[624771]: warning: /etc/hosts.allow, line 18: missing newline or line too long
Dec 19 19:58:17 skyern-desktop sshd[624771]: warning: /etc/hosts.allow, line 18: all the subsequent rules will be ignored
Dec 19 19:58:17 skyern-desktop sshd[624771]: refused connect from 31.46.16.91 (31.46.16.91)
Dec 19 19:58:31 skyern-desktop sshd[624849]: warning: /etc/hosts.allow, line 18: missing newline or line too long
Dec 19 19:58:31 skyern-desktop sshd[624849]: warning: /etc/hosts.allow, line 18: all the subsequent rules will be ignored
Dec 19 19:58:31 skyern-desktop sshd[624849]: refused connect from vps-a18a6c10.vps.ovh.net (146.59.198.37)
Dec 19 19:58:33 skyern-desktop sshd[624865]: warning: /etc/hosts.allow, line 18: missing newline or line too long
Dec 19 19:58:33 skyern-desktop sshd[624865]: warning: /etc/hosts.allow, line 18: all the subsequent rules will be ignored
Dec 19 19:58:33 skyern-desktop sshd[624865]: refused connect from 119.45.231.71 (119.45.231.71)
Dec 19 19:58:35 skyern-desktop sshd[624878]: warning: /etc/hosts.allow, line 18: missing newline or line too long
Dec 19 19:58:35 skyern-desktop sshd[624878]: warning: /etc/hosts.allow, line 18: all the subsequent rules will be ignored
Dec 19 19:58:35 skyern-desktop sshd[624878]: refused connect from 197.155.200.6 (197.155.200.6)
Dec 19 19:58:38 skyern-desktop sshd[624896]: warning: /etc/hosts.allow, line 18: missing newline or line too long
Dec 19 19:58:38 skyern-desktop sshd[624896]: warning: /etc/hosts.allow, line 18: all the subsequent rules will be ignored
Dec 19 19:58:38 skyern-desktop sshd[624896]: refused connect from 167.99.137.75 (167.99.137.75)
Dec 19 19:58:44 skyern-desktop sshd[624931]: warning: /etc/hosts.allow, line 18: missing newline or line too long
Dec 19 19:58:44 skyern-desktop sshd[624931]: warning: /etc/hosts.allow, line 18: all the subsequent rules will be ignored
Dec 19 19:58:44 skyern-desktop sshd[624931]: refused connect from vps-db091bc1.vps.ovh.net (51.77.202.151)
Dec 19 19:59:10 skyern-desktop sshd[625096]: warning: /etc/hosts.allow, line 18: missing newline or line too long
Dec 19 19:59:10 skyern-desktop sshd[625096]: warning: /etc/hosts.allow, line 18: all the subsequent rules will be ignored
Dec 19 19:59:10 skyern-desktop sshd[625096]: refused connect from 60.51.170.105 (60.51.170.105)
Dec 19 20:00:10 skyern-desktop sshd[625451]: warning: /etc/hosts.allow, line 18: missing newline or line too long
Dec 19 20:00:10 skyern-desktop sshd[625451]: warning: /etc/hosts.allow, line 18: all the subsequent rules will be ignored
Dec 19 20:00:10 skyern-desktop sshd[625451]: refused connect from net-5-88-135-45.cust.vodafonedsl.it (5.88.135.45)

J'ai testé avec la 4G de mon téléphone, en bannant mon IP, c'est automatiquement rejeté. big_smile

D'ailleurs là je vois que j'ai une erreur dans mon /etc/hosts.allow je vais vite corriger ça !

Dernière modification par Sky3RN (Le 19/12/2020, à 21:03)

Hors ligne

#8 Le 03/08/2021, à 20:12

Sky3RN

Re : [RÉSOLU / CONTOURNÉ] Comment redémarrer Denyhosts ?

Sky3RN a écrit :

Si je voulais redémarrer Denyhosts c'était pour y appliquer un tutoriel que j'avais trouvé sur un site dans lequel je voulais importer les IP bannies de Blocklist.de : https://lists.blocklist.de/lists/all.txt
J'ai importé directement cette liste dans mon /etc/hosts.deny et à l'aide d'un RECHERCHER / REMPLACER j'ai ajouté "ALL: " devant chaque IP.

Je viens apporter une petite astuce pour se simplifier la vie et automatiser cette tâche, j'ai développé un petit script (enfin, j'ai trouvé un morceau de script que j'ai réadapté, plutôt !) qui récupère automatiquement la liste pour l'ajouter dans le hosts.deny !

J'ai fait ça il y a sept mois environ donc pardonnez-moi si j'oublie des étapes, ma mémoire flanche un peu !

Le script en lui-même, le voici et c'est en Python et il nécessite "requests" : 

pip install requests

Fichier : getips.txt
Personnellement je l'ai mis dans mon $HOME.

#!/usr/bin/env python
import requests


print("Getting blocklist...")
url = 'https://lists.blocklist.de/lists/all.txt'
r = requests.get(url, allow_redirects=True)

open('list.txt', 'wb').write(r.content)

# Using readlines() 
file1 = open('list.txt', 'r') 
Lines =  file1.readlines() 
file1.close()
print("Adding IPs to the hosts.deny file...")
# Strips the newline character
count = 0
for line in Lines: 
    oui ="ALL: {}".format(line.strip())
    print("Checking IP number : " + str(count))
    count +=1
    if not (oui in open('/etc/hosts.deny').read()):
        f = open("/etc/hosts.deny", "a")
        f.write(oui+ '\n')
        f.close()
print("End of processing !\n")


print("Getting blacklist from fail2ban...")

f2bblacklist = open('/etc/fail2ban/ip.blacklist', 'r') 
Linesf2bbl =  f2bblacklist.readlines() 
f2bblacklist.close()
print("Adding IPs to the hosts.deny file...")
# Strips the newline character
countf2bbl = 0
for linef2bbl in Linesf2bbl: 
    ouif2bbl ="ALL: {}".format(linef2bbl.replace(",sshd", "").strip())
    print("Checking IP number : " + str(countf2bbl))
    countf2bbl +=1
    if not (ouif2bbl in open('/etc/hosts.deny').read()):
        f2bfile = open("/etc/hosts.deny", "a")
        f2bfile.write(ouif2bbl+ '\n')
        f2bfile.close()
print("End of processing !\n")

Il va également importer la liste qui est dans /etc/fail2ban/ip.blacklist parce que j'ai Fail2Ban d'installé et je l'utilise pour sécuriser un peu tout ça, quand un IP tente de se connecter et foire, ça l'ajoute à la blacklist, ce qui la met "en attente" avant d'être importée toutes les heures (grâce à crontab) dans le hosts.deny. Si vous bidouillez un peu vous pourrez facilement remplacer / enlever les lignes concernées.

Ensuite on fait un sudo crontab -e et on rajoute :

0 * * * * /usr/bin/python /home/TON_USERNAME/getips.py

En prenant soin de remplacer TON_USERNAME par le nom de ton HOME. smile

Et normalement, c'est tout, si je me souviens bien !
Par la suite, dans Fail2Ban j'ai des parties qui travaillent pour envoyer ces listes dans IPTABLES, il me semble.

Hors ligne