Сегодня я проверил auth.log моего Raspberry (частный IP-адрес в моей домашней сети за wrt54gl). Удивительно, но я увидел много строк "Неверный пароль для root from".
IP-адрес SRC можно найти в списках злоумышленников, использующих метод подбора паролей по SSH.
Когда я подключаюсь к своему Raspberry через Интернет, я обычно устанавливаю SSH-соединение с публичным IP-адресом моего маршрутизатора и подключаюсь к частному адресу Raspberry.
Так как же можно напрямую подключиться к этому устройству, имеющему только частный адрес?
eth0 Link encap:Ethernet Hardware Adresse b8:27:eb:e5:7a:5b
inet Adresse:192.168.0.5 Bcast:192.168.0.255 Maske:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:2774178 errors:0 dropped:933 overruns:0 frame:0
TX packets:5544091 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenl▒nge:1000
RX bytes:457172801 (435.9 MiB) TX bytes:875979564 (835.3 MiB)
lo Link encap:Lokale Schleife
inet Adresse:127.0.0.1 Maske:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metrik:1
RX packets:2695 errors:0 dropped:0 overruns:0 frame:0
TX packets:2695 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenl▒nge:0
RX bytes:725188 (708.1 KiB) TX bytes:725188 (708.1 KiB)
Jun 15 13:42:12 rpi sshd[15608]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.31 user=root
решение1
Точно так же, как вы это делаете, предполагая, что вы используете переадресацию портов. Если вы попытаетесь войти в свой Raspberry с удаленного компьютера, возможно, даже с ложным паролем, вы должны увидеть очень похожую строку в auth.log.
Конечно, вы подключитесь к своему публичному IP-адресу, который назначен внешнему интерфейсу маршрутизатора. Я предполагаю, что вы установили переадресацию портов в маршрутизаторе, так что любое подключение к определенному порту на вашем публичном IP-адресе будет перенаправлено на Raspberry. В этом конкретном случае я предполагаю, что вы перенаправили порт 22 в маршрутизаторе на порт 22 вашего Raspberry.
Парень, стоящий за другим IP-адресом, действовал тем же способом, и, вероятно,
- сканирование интернета на предмет хостов с открытыми портами
- запуск инструмента, который
- подключается к этому хосту и порту
- пытается войти в систему с помощью списков паролей
Или, может быть, он делает это вручную и запускает свой ssh-клиент, подключается к вашему публичному IP-адресу, порту 22, который будет перенаправлен на Raspberry, и просто пробует распространенные комбинации имени пользователя и пароля (pi/Raspberry, root/root, ...).
Чтобы этого избежать, вы можете
- настроить sshd для использования аутентификации по закрытому/открытому ключу, а не по паролю
- скажите маршрутизатору перенаправить другой порт (например, 2222) на порт 22 raspberry. Обязательно настройте свой (удаленный) ssh-клиент так, чтобы вы все еще могли подключиться.
- установите
knockd
и откройте порт, прежде чем вы захотите его использовать - установите
fail2ban
для блокировки несанкционированных IP-адресов
(для более подробного обзора упомянутых методов см. такжездесь.)