Как навсегда закрыть порт?

Я попытался сначала добавить правило брандмауэра

sudo ufw deny 22

$ sudo ufw status
To                         Action      From
--                         ------      ----
22                         DENY        Anywhere 
22 (v6)                    DENY        Anywhere (v6)

но это не сработало, поэтому я попытался остановить службы, соответствующие ему

  sudo systemctl stop ssh

он работает временно, и когда мы перезагружаем систему, тот же порт снова будет открыт. Как навсегда закрыть порт?

1 ответ

Решение

Как правило, вы добавляете правило брандмауэра, чтобы запретить весь трафик на конкретном номере порта, например 22 в ufw брандмауэр с использованием:

sudo ufw deny 22

Обратите внимание, что ufw должно быть включено, чтобы это правило могло иметь эффект, конечно:

sudo ufw enable

Проверьте статус, значения по умолчанию и список всех правил с помощью:

sudo ufw status verbose

Вы также можете установить графический интерфейс брандмауэра gufw управлять этими правилами и значениями по умолчанию, если вы предпочитаете это из командной строки.

Этот способ делает порт недоступным только по сети, вне вашего компьютера. Вы все еще можете получить доступ к порту на localhost или же 127.0.0.1, поскольку локальный трафик не фильтруется брандмауэром. Служба, прослушивающая этот порт, также может по-прежнему работать и на нее не влияют никакие правила брандмауэра.


Если вы хотите запретить автоматический запуск службы systemd при загрузке, вы можете отключить ее. Чтобы отключить, например, сервер ssh, используйте:

sudo systemctl disable ssh

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


Если вы обычно не хотите, чтобы на вашем компьютере работал сервер ssh, вы можете просто полностью удалить пакет:

sudo apt remove openssh-server

Это удаляет (и останавливает, конечно) приложение сервера ssh, но не влияет на какие-либо порты и правила брандмауэра.

Другие вопросы по тегам