Предотвращение большого количества неудачных попыток входа в систему с ФАКТИЧЕСКИХ ЗАПИСАННЫХ IP-адресов?

В моем файле системного журнала (/var/log/auth.log) показаны сотни и сотни различных IP-адресов, пытающихся войти в мою систему. Как я могу предотвратить все эти атаки? Похоже, что все IP-адреса поддельные («pin» или «traceroute») всегда показывают сотни разных IP-адресов в файле auth.log ??

Мне действительно нужна помощь с этим! Спасибо!

Я читаю, что другие люди предлагают

  • StrictModes yes (что это делает?)
  • hosts.allow ALL: (позволит ли это мне подключиться, если IP-адрес из кафе и его "me me"?)

Вот как выглядит мой брандмауэр "iptables".

asher@starparty:~$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination    

Я читаю, что рекомендуют другие ...

  • iptables -I INPUT -s -p tcp -m tcp --dport 22 -j ACCEPT

ПРИМЕР ВЫВОД УДАЛЕННОГО ВХОДА SSH: "tail /var/log/auth.log"

Dec  3 21:24:31 StarParty sshd[66702]: Failed password for root from 51.210.122.207 port 45722 ssh2
Dec  3 21:24:32 StarParty sshd[66702]: Received disconnect from 51.210.122.207 port 45722:11: Bye Bye [preauth]
Dec  3 21:24:32 StarParty sshd[66702]: Disconnected from authenticating user root 51.210.122.207 port 45722 [preauth]
Dec  3 21:24:38 StarParty sshd[66712]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=150.158.171.64  user=root
Dec  3 21:24:40 StarParty sshd[66712]: Failed password for root from 150.158.171.64 port 55444 ssh2
Dec  3 21:24:41 StarParty sshd[66721]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=142.93.34.237  user=root
Dec  3 21:24:41 StarParty sshd[66712]: Received disconnect from 150.158.171.64 port 55444:11: Bye Bye [preauth]
Dec  3 21:24:41 StarParty sshd[66712]: Disconnected from authenticating user root 150.158.171.64 port 55444 [preauth]
Dec  3 21:24:44 StarParty sshd[66721]: Failed password for root from 142.93.34.237 port 58226 ssh2
Dec  3 21:24:44 StarParty sshd[66721]: Received disconnect from 142.93.34.237 port 58226:11: Bye Bye [preauth]
Dec  3 21:24:44 StarParty sshd[66721]: Disconnected from authenticating user root 142.93.34.237 port 58226 [preauth]
Dec  3 21:25:00 StarParty sshd[66728]: Unable to negotiate with 218.92.0.212 port 45440: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1 [preauth]
Dec  3 21:25:01 StarParty CRON[66730]: pam_unix(cron:session): session opened for user root by (uid=0)
Dec  3 21:25:01 StarParty CRON[66730]: pam_unix(cron:session): session closed for user root
Dec  3 21:25:26 StarParty sshd[66776]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=150.158.171.64  user=root
Dec  3 21:25:27 StarParty sshd[66776]: Failed password for root from 150.158.171.64 port 33534 ssh2
Dec  3 21:25:30 StarParty sshd[66776]: Received disconnect from 150.158.171.64 port 33534:11: Bye Bye [preauth]
Dec  3 21:25:30 StarParty sshd[66776]: Disconnected from authenticating user root 150.158.171.64 port 33534 [preauth]

"tcpdump -A"

curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256...Arsa-sha2-512,rsa-sha2-256,ssh-rsa,ecdsa-sha2-nistp256,ssh-ed25519...lchacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com...lchacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com....umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1....umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1....none,zlib@openssh.com....none,zlib@openssh.com.......................
21:27:59.780431 IP 46.101.194.220.40238 > starparty.ssh: Flags [.], ack 1098, win 501, options [nop,nop,TS val 431378467 ecr 1031716663], length 0
21:27:59.781114 IP 46.101.194.220.40238 > starparty.ssh: Flags [P.], seq 22:462, ack 1098, win 501, options [nop,nop,TS val 431378471 ecr 1031716663], length 440
fcurve25519-sha256@libssh.org,ecdh-sha2-nistp256,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1...#ecdsa-sha2-nistp256,ssh-rsa,ssh-dss...daes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc,blowfish-cbc,3des-cbc,des-cbc-ssh1...daes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc,blowfish-cbc,3des-cbc,des-cbc-ssh1...   hmac-sha1...    hmac-sha1....none....none......
21:27:59.781131 IP starparty.ssh > 46.101.194.220.40238: Flags [.], ack 462, win 507, options [nop,nop,TS val 1031716853 ecr 431378471], length 0
21:27:59.983564 STP 802.1d, Config, Flags [none], bridge-id 8000.14:cc:20:b5:54:68.8003, length 35

Другая помощь, которую я нашел, это ... https://help.ubuntu.com/community/IptablesHowTo

0
задан 4 December 2020 в 14:56
3 ответа

САД .. так ТАК САД?

мне, возможно, придется просто «остановить мой sshd-сервер»?

: (

"ПРОСТОЙ" способ без установки дополнительного программного обеспечения?

Это еще не решает проблему ... но я думаю, что путь правильный?

sudo gedit /etc/ssh/ssh_config 
sudo systemctl restart ssh.service

Вот как выглядит "ssh_config" ...

Include /etc/ssh/ssh_config.d/*.conf

Host *
# PermitRootLogin no
#   ForwardAgent no
#   ForwardX11 no
#   ForwardX11Trusted yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   GSSAPIKeyExchange no
#   GSSAPITrustDNS no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   IdentityFile ~/.ssh/id_ecdsa
#   IdentityFile ~/.ssh/id_ed25519
Port 22
#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc
#   MACs hmac-md5,hmac-sha1,umac-64@openssh.com
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#   RekeyLimit 1G 1h
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes

Там Также возможна некоторая модификация "iptable"?

0
ответ дан 4 January 2021 в 09:20

Вы можете попробовать используйте программу Fail2Ban https://www.fail2ban.org/wiki/index.php/Main_Page

, которая автоматически заблокирует исходный IP-адрес от неудачных попыток входа в систему.

Она работает достаточно хорошо, и вы есть много возможностей для его настройки. Например, сколько попыток будет заблокировано до того, как будет заблокировано или как долго оно будет заблокировано.

Но вы должны подумать, действительно ли вы хотите, чтобы SSH был открыт для всего мира. Поэтому, если ваша машина подключена к Интернету напрямую, я бы рекомендовал использовать брандмауэр, по умолчанию все заблокированное. И открывать только для ssh с того IP, который должен быть открыт.

2
ответ дан 4 January 2021 в 09:20

Есть несколько вещей, которые могут снизить риск безопасности, связанный с открытием SSH для всего мира.

  • Fail2ban (уже упомянутый) - это хорошо. Поддерживает блокировку постоянно или только на некоторое время в брандмауэре.

  • Запустите SSH на странном порте высокого уровня, что-то выше 8000. Это ничего не останавливает, но очень сильно сокращается трафик, поскольку большинство скриптовых детишек исследуют порт 22.

  • Убедитесь, что PermitRootLogin в sshd_config не запущен со значением Да. Вам не нужен root-доступ через ssh. Вы можете использовать ssh как обычный пользователь, то su. Таким образом, потребуется два пароля чтобы получить доступ администратора (если это не Ubuntu или аналогичный, где обычный пользователь имеет полномочия sudo.)

  • Рассмотрите возможность двухфакторной аутентификации. Это можно сделать с помощью коммерческих такие продукты, как Duo, или с помощью чего-то вроде аутентификатора Google. Шаги для этой настройки будут исходить от поставщика.

  • Отправлять электронное письмо при успешном входе в систему. Это позволяет вам немедленно узнать, есть ли доступ, прежде чем хакер, возможно, шанс уничтожить все установленные вами меры безопасности. Сделать это, вам нужно добавить строку сеанса в /etc/pam.d/sshd, которая будет выглядеть примерно так:

    сеанс требуется pam_exec.so /root/scripts/send-ssh-notice.sh

    Существует образец сценария, который может предоставить подробные сведения в переменные, и он доступен по адресу github: sshlogin_alert.sh

    , размещенный на Github (Да, я указал ссылку в своем ответе, и почему бы и нет? Код Github поддерживается, поддерживает форки и имеет хорошие отзывы. Мой опубликованный ответ не будет пересмотрен через несколько месяцев или лет вперед. Кроме того, следует отдать должное там, где это необходимо, и этот пользователь Github проделал хорошую работу.)

1
ответ дан 4 January 2021 в 09:20

Теги

Похожие вопросы