SSH-сервер по умолчанию работает с использованием 22-го TCP-порта. В этой заметке раскажем, как сменить порт SSH.
Удалённое администрирование Linux, как правило, осуществляется при помощи SSH (Secure Shell) — сетевого протокола прикладного уровня, позволяющего производить туннелирование TCP-соединений. Вышедший в 1995-м году SSH широко используется и в наши дни. С помощью этого протокола, помимо администрирования операционной системы с помощью командной оболочки, можно выполнять файловые операции и монтировать удалённые файловые системы.
Иногда бывают ситуации когда необходимо изменить этот порт. Например, для превентивной защиты от bruteforce-атак, направленных именно на 22-й порт, или для освобождения этого порта, занятого другим приложением. В этом случае можно изменить порт SSH на любой другой свободный TCP-порт.
Как изменить порт SSH?
В большинстве разновидностей Linux конфигурационный файл SSH-сервера располагается по пути /etc/ssh/sshd_config. Тем не менее, можно воспользоваться и поиском для того, чтобы узнать наверняка. Воспользуйтесь командой:
sudo find /etc/ -name "sshd_config"
В данном случае файл там, где и должен быть. Откройте в текстовом редакторе файл sshd_config:
sudo nano /etc/ssh/sshd_config
Найдите строку Port 22 и измените значение (в нашем примере на Port 222). Возможно в вашем конфигурационном файле эта строка будет закомментирована, то есть выглядит вот так — #Port 22.
В этом случае нужно убрать символ # и выполнить действия, описанные выше:
Сохраните файл. Далее следует перезапустить демон SSH. Выполните команду:
sudo systemctl restart sshd
Для того, чтобы проверить прошла ли удачно смена порта SSH сервера, выполните следующую команду:
sudo netstat -tupln | grep ssh
Будут показаны открытые порты SSH на вашем компьютере:
Строка tcp 0.0.0.0:222 LISTEN говорит о том, что 222-й порт, который назначенный для SSH-демона, успешно используется. В SSH-клиентах, подключаемых к вашему компьютеру, нужно будет изменить порт по умолчанию на назначенный SSH-серверу.
Если на вашем компьютере работает файрвол, не забудьте добавить в его исключения новый порт, назначенный SSH-серверу. Если вы изначально работаете удалённо по SSH-протоколу, сделать это нужно ещё до того, как вы перезапустите демон SSH на сервере, к которому подключены.
Если у вас в качестве файрвола установлен UFV, выполните команду:
sudo ufw allow 222/tcp
Для тех, кто использует iptables, необходимо разрешить новый порт с помощью команды:
sudo /sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 222 -j ACCEPT
В операционных системах, использующих firewalld, выполните такую команду:
sudo firewall-cmd --permanent --add-port=222/tcp
sudo firewall-cmd reload
Здесь порт 222 – это порт SSH, назначенный мною для примера. Теперь вы знаете как поменять порт SSH чтобы его не трогали боты. А какие методы защиты от ботов используете вы? Напишите в комментариях!