J'ai récemment vérifié l'un de mes serveurs 'auth.log
Fichier et remarqué une activité très suspecte. J'ai récemment fermé le démon SSH de mon serveur, de sorte que les journaux se terminent le 22 janvier, mais ce que j'ai remarqué après avoir examiné le fichier journal était que toutes les adresses IP sont chinoises.
Voici les 10 dernières lignes des tentatives de connexion échouées:
$ cat auth.log | grep Failed | tail -n10
Jan 22 13:42:14 servername sshd[10306]: Failed password for root from 183.3.202.104 port 10894 ssh2
Jan 22 13:42:18 servername sshd[10306]: message repeated 2 times: [ Failed password for root from 183.3.202.104 port 10894 ssh2]
Jan 22 13:42:28 servername sshd[10365]: Failed password for root from 183.3.202.104 port 34140 ssh2
Jan 22 13:42:32 servername sshd[10365]: message repeated 2 times: [ Failed password for root from 183.3.202.104 port 34140 ssh2]
Jan 22 13:42:44 servername sshd[10423]: Failed password for root from 183.3.202.104 port 56290 ssh2
Jan 22 13:42:48 servername sshd[10423]: message repeated 2 times: [ Failed password for root from 183.3.202.104 port 56290 ssh2]
Jan 22 13:43:03 servername sshd[10511]: Failed password for root from 183.3.202.104 port 64153 ssh2
Jan 22 13:43:08 servername sshd[10511]: message repeated 2 times: [ Failed password for root from 183.3.202.104 port 64153 ssh2]
Jan 22 13:43:18 servername sshd[10569]: Failed password for root from 183.3.202.104 port 33472 ssh2
Jan 22 13:43:23 servername sshd[10569]: message repeated 2 times: [ Failed password for root from 183.3.202.104 port 33472 ssh2]
Lorsque vous recherchez des adresses IP non 183.3.202.104, les lignes deviennent:
$ cat auth.log | grep Failed | grep -v 183.3.202.104 | tail -n10
Jan 22 02:36:41 servername sshd[31074]: message repeated 5 times: [ Failed password for root from 221.203.142.71 port 33746 ssh2]
Jan 22 02:36:54 servername sshd[31388]: Failed password for root from 221.203.142.71 port 57792 ssh2
Jan 22 02:37:13 servername sshd[31388]: message repeated 5 times: [ Failed password for root from 221.203.142.71 port 57792 ssh2]
Jan 22 02:37:25 servername sshd[31698]: Failed password for root from 221.203.142.71 port 55440 ssh2
Jan 22 02:37:41 servername sshd[31698]: message repeated 5 times: [ Failed password for root from 221.203.142.71 port 55440 ssh2]
Jan 22 02:37:58 servername sshd[31918]: Failed password for root from 221.203.142.71 port 50225 ssh2
Jan 22 02:38:13 servername sshd[31918]: message repeated 5 times: [ Failed password for root from 221.203.142.71 port 50225 ssh2]
Jan 22 04:55:23 servername sshd[22179]: Failed password for invalid user support from 113.160.158.43 port 61614 ssh2
Jan 22 09:36:40 servername sshd[4160]: Failed password for invalid user a from 115.182.249.11 port 53046 ssh2
Jan 22 09:36:52 servername sshd[4204]: Failed password for invalid user Oracle from 115.182.249.11 port 56673 ssh2
Donc, tout d'abord, je voudrais confirmer que c'est effectivement une attaque; Je suis très inconnu avec la gestion du système de gestion du système. Deuxièmement, j'aimerais savoir s'il y a une façon de bloquer toutes les adresses IP chinoises; Mon serveur a jusqu'à présent été utilisé uniquement en Amérique et n'a rien à voir avec la Chine.
Vous pouvez essayer liste de blocs de Wizcraft et le formater en conséquence. Au moment de mon message, cette liste de blocage a été mise à jour pour la dernière fois le jeudi 24 décembre 2015 11:01:52 MST. N'oubliez pas que Taiwan ne fait pas partie de la Chine continentale, mais que Hong Kong appartient maintenant et est contrôlé par Beijing.
Si vous utilisez uniquement votre serveur en Amérique exclusivement, vous pouvez utiliser tout de ces règles pour bloquer les attaquants. Sinon, éditez ceux que vous ne voulez pas, et gardez ceux que vous faites.
Gardez également à l'esprit, cela n'arrêtera pas les attaquants de se connecter à un VPN dans un pays de leur choix et de tenter une fois de nouveau de se connecter en tant que root. Ceci est simplement une aide-bande.
EDIT - Badskillz et Jenny D ont recommandé échec1ban . Ce sera probablement une meilleure solution dans l'ensemble, mais cela ne ferait probablement pas de mal d'utiliser les deux méthodes.
Je trouve également inquiétant de voir ces tentatives de connexion à la force brute basse et tristement oui, elles sont principalement de Chine (aspirateur 'Espionnage) - bonne nouvelle est la solution est simple - permet uniquement de permettre de connecter votre serveur à l'aide des touches SSH qui permet ensuite de Vous devez désactiver les mots de passe comme méthode de connexion
Créez d'abord vos clés SSH sécurisées:
voir Doc pour Linux/OSX/Windows https://help.github.com/articles/generating-a-new-gpg -key/
dans un terminal sur votre problème de boîte locale
ssh-keygen -t rsa -b 4096 -C "[email protected]"
cela vous demandera un mot de passe (rappelez-vous) ... il créera une paire de fichiers de clé privée et publique.
private file /home/mylogin/.ssh/id_rsa_supermoon
public file /home/mylogin/.ssh/id_rsa_supermoon.pub
Ces fichiers sont maintenant locaux à votre machine ... Copiez simplement le fichier public sur votre serveur distant et de placer dans un fichier (ou à ajouter à)
/home/mylogin/.ssh/authorized_keys
assurer qu'il a des autorisations de fichier appropriées sur l'hôte distant
chmod 700 /home/mylogin/.ssh
chmod 600 /home/mylogin/.ssh/authorized_keys
Maintenant de retour sur votre numéro d'hôte local Ceci sur SSH Connectez-vous à votre boîte à distance
# only need to issue this set of 3 cmds once on same terminal
export REMOTE_IP=1.2.3.4 # your remote Host IP
eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa_supermoon # enter same password as above
ssh mylogin@${REMOTE_IP}
* début de facultatif ------------ *
PS - malade du mot de passe invite à chaque SSH, mettez cela dans votre local ~/.bstrucc
if [ ! -S ~/.ssh/ssh_auth_sock ]; then
eval $(ssh-agent)
ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock
fi
export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock
ssh-add -l | grep "The agent has no identities" && ssh-add ~/.ssh/id_rsa_supermoon
------------- fin de facultatif
IMPORTANT - Confirmez que vous pouvez vous connecter correctement à l'aide de SSH ... uniquement sur votre hôte distant Modifier le fichier de configuration SSH
Sudo vi /etc/ssh/sshd_config
# PasswordAuthentication yes # we do NOT want yes if ssh keys work
PasswordAuthentication no
pour engager au-dessus de la configuration, le changement de fichier sur l'hôte distant, il suffit de Bounce SSH Server:
Sudo service sshd restart # (systemd ONLY) this does not kill your login session
Fait - vous ne verrez immédiatement plus de telles tentatives de connexion brute depuis que votre hébergeur distant ignore désormais sommairement les tentatives de mot de passe et que ces gouttersnipes ramperont à la serveur non protégé de Pester quelqu'un d'autre.