🔒Как защитить SSH-сервер от ботов: настройка Port Knocking
Открытый SSH-порт — магнит для ботов. Каждый день тысячи автоматических попыток подбора пароля.
Даже с SSH-ключами постоянный шум от сканеров раздражает. Что делать? Один из надёжных способов — Port knocking («стук в дверь»).
💎 Что это?
SSH-порт закрыт для всех. Открывается он только после того, как вы «постучите» в нужном порядке по трём другим портам. Всё делает демон knockd — слушает последовательность и временно разрешает доступ вашему IP.
🚪 Закрываем SSH в iptables
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j DROP
Теперь никто не может даже начать подключение к 22-му порту.
⚙️Ставим и настраиваем knockd
sudo apt install knockd
Делаем резервную копию конфига:
sudo cp /etc/knockd.conf /etc/knockd.conf.bak
Редактируем /etc/knockd.conf — добавляем свой сетевой интерфейс (например, enp0s3) и меняем -A INPUT на -I INPUT 1, иначе правило не сработает.
Пример рабочей конфигурации:
[options]
UseSyslog
Interface = enp0s3
[openSSH]
sequence = 7000,8000,9000
seq_timeout = 5
command = iptables -I INPUT 1 -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 9000,8000,7000
seq_timeout = 5
command = iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
🚀 Включаем автозапуск и запускаем
В файле /etc/default/knockd меняем START_KNOCKD=0 на 1:
sudo systemctl start knockd
🕵️♂️Стучим с клиента
Устанавливаем утилиту knock:
sudo apt install knock
Чтобы открыть SSH:
knock 192.168.1.6 7000 8000 9000
Затем подключаемся:
ssh admin@192.168.1.6
Закрываем порт обратной последовательностью:
knock 192.168.1.6 9000 8000 7000
📝 Итог
— SSH-порт полностью скрыт от сканеров
— Атакующие не могут даже начать перебор паролей
— Вы получаете доступ только при помощи секретной последовательности
Понравился пост, поддержите реакцией👍
#ssh #linux #portknocking #iptables #admin
Открытый SSH-порт — магнит для ботов. Каждый день тысячи автоматических попыток подбора пароля.
Даже с SSH-ключами постоянный шум от сканеров раздражает. Что делать? Один из надёжных способов — Port knocking («стук в дверь»).
💎 Что это?
SSH-порт закрыт для всех. Открывается он только после того, как вы «постучите» в нужном порядке по трём другим портам. Всё делает демон knockd — слушает последовательность и временно разрешает доступ вашему IP.
🚪 Закрываем SSH в iptables
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j DROP
Теперь никто не может даже начать подключение к 22-му порту.
⚙️Ставим и настраиваем knockd
sudo apt install knockd
Делаем резервную копию конфига:
sudo cp /etc/knockd.conf /etc/knockd.conf.bak
Редактируем /etc/knockd.conf — добавляем свой сетевой интерфейс (например, enp0s3) и меняем -A INPUT на -I INPUT 1, иначе правило не сработает.
Пример рабочей конфигурации:
[options]
UseSyslog
Interface = enp0s3
[openSSH]
sequence = 7000,8000,9000
seq_timeout = 5
command = iptables -I INPUT 1 -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 9000,8000,7000
seq_timeout = 5
command = iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
🚀 Включаем автозапуск и запускаем
В файле /etc/default/knockd меняем START_KNOCKD=0 на 1:
sudo systemctl start knockd
🕵️♂️Стучим с клиента
Устанавливаем утилиту knock:
sudo apt install knock
Чтобы открыть SSH:
knock 192.168.1.6 7000 8000 9000
Затем подключаемся:
ssh admin@192.168.1.6
Закрываем порт обратной последовательностью:
knock 192.168.1.6 9000 8000 7000
📝 Итог
— SSH-порт полностью скрыт от сканеров
— Атакующие не могут даже начать перебор паролей
— Вы получаете доступ только при помощи секретной последовательности
Понравился пост, поддержите реакцией👍
#ssh #linux #portknocking #iptables #admin