%20%D1%82%D1%80%D0%B0%D1%84%D0%B8%D0%BA%20%D1%81%20%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D0%BD%D1%8B%D1%85%20%D0%BF%D0%BE%D1%80%D1%82%D0%BE%D0%B2%2C%20%D0%BE%D1%82%D0%BB%D0%B8%D1%87%D0%BD%D1%8B%D1%85%20%D0%BE%D1%82%20%D0%BF%D1%80%D0%B5%D0%B4%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D1%85%3F.png)
VPS подвергается множеству атак ssh. Эти атаки бывают разнымиисточникпорты:
sshd[76661]: Invalid user ts3server from 76.103.161.19 port 33062
sshd[76661]: Received disconnect from 76.103.161.19 port 33062:11: Bye Bye [preauth]
sshd[76661]: Disconnected from invalid user ts3server 76.103.161.19 port 33062 [preauth]
sshguard[61313]: Attack from "76.103.161.19" on service SSH with danger 10.
sshguard[61313]: Blocking "76.103.161.19/24" for 86400 secs (1 attacks in 0 secs, after 1 abuses over 0 secs.)
sshd[76821]: Invalid user tibaldi from 140.143.206.216 port 33936
sshd[76821]: Received disconnect from 140.143.206.216 port 33936:11: Bye Bye [preauth]
sshd[76821]: Disconnected from invalid user tibaldi 140.143.206.216 port 33936 [preauth]
sshguard[61313]: Attack from "140.143.206.216" on service SSH with danger 10.
sshguard[61313]: Blocking "140.143.206.216/24" for 86400 secs (1 attacks in 0 secs, after 1 abuses over 0 secs.)
Как вы видите, в настоящее время я использую реактивный подход (sshguard) агрессивным образом, чтобы блокировать и ограничивать эти атаки. (Кроме того, входы по ssh без пароля запрещены.) Однако их все еще слишком много, так что они заполняют мои журналы. Из журналов ясно, что все эти атаки идут с высокономерных, случайных портов. Я хотел бы заблокировать весь этот трафик на уровне брандмауэра, чтобы он не загрязнял мои журналы.
Я контролирую клиент и могу выбирать/определять, какой исходный порт(ы) он будет использовать.
Поэтому,как заблокировать (ssh) трафик с исходных портов, отличных от предопределенного (или диапазона)?
Я использую firewalld в качестве программного обеспечения для управления брандмауэром, поэтому было бы очень полезно, если бы вы могли предоставить решение на основе firewalld. Однако другие решения также приветствуются.
решение1
В то времяместо назначенияПорт SSH-подключения обычно равен 22,источникport не имеет (почти) никаких правил. Это означает, что соединение с 140.143.206.216 port 33936
не является подозрительным само по себе.
Поскольку я знаю об этой проблеме (пик составлял более миллиона атак в секунду на 10G-сервере), я рекомендую вам использовать fail2ban
- это действительно работает.
РЕДАКТИРОВАТЬ
После обсуждения я понял, что вы контролируете клиента. В этом случае вы можете просто сделать что-то вроде
iptables -A INPUT -m tcp -p tcp --dport 22 '!' --sport 1000 -j DROP
(для удаленного порта 1000) подойдет