![Пять приложений Facebook для рабочего стола Linux](/f/89e0ace5c2a6c6e05c55d5579347deea.jpg?width=100&height=100)
Стук порта это изящный метод управления доступом к порту, разрешая только легитимным пользователям доступ к службе, работающей на сервере. Он работает таким образом, что при правильной последовательности попыток подключения брандмауэр с радостью открывает порт, который был закрыт.
Логика стука порта заключается в том, чтобы защитите вашу систему Linux от автоматических сканеров портов, которые рыщут в поисках открытых портов. В этом руководстве мы рассмотрим, как вы можете установить блокировку портов и как вы можете настроить его для безопасная служба SSH. В демонстрационных целях мы будем использовать Ubuntu 18.04.
Для начала войдите в свою систему Linux и установите стук демон, как показано.
$ sudo apt install knockd.
После установки откройте knockd.conf конфигурация с вашим предпочтительный текстовый редактор. Здесь мы используем текстовый редактор командной строки vim.
$ sudo vim /etc/knockd.conf.
Файл конфигурации по умолчанию выглядит следующим образом.
Под [openSSH]
раздел, нам нужно изменить последовательность стука по умолчанию - 7000,8000,9000 - к чему-то другому. Это потому, что эти значения уже известны и могут поставить под угрозу безопасность вашей системы.
В целях тестирования мы установили значения на 10005, 10006, 10007. Это последовательность, которая будет использоваться для откройте порт SSH из клиентской системы.
В третьей строке - начиная с команда, изменять -А
к -Я
сразу после /sbin/iptables
команда и до ВХОД
.
И, наконец, под [closeSSH]
раздел, снова измените последовательность по умолчанию на ваш предпочтительный выбор. Это последовательность, которая будет использоваться для закрытия SSH-соединения, когда пользователь завершит работу и выйдет из системы.
Вот наша полная конфигурация.
Как только вы закончите, сохраните изменения и выйдите.
Еще одна конфигурация, которую нам нужно изменить, - это /etc/default/knockd. Еще раз откройте его с помощью текстового редактора.
$ sudo vim / etc / default / knockd.
Найдите линию START_KNOCKD = 0
. Раскомментируйте его и установите значение 1
.
Затем перейдите к линии KNOCKD_OPTS = ”- i eth1”
Раскомментируйте его и замените значение по умолчанию eth1
значение с активным сетевым интерфейсом вашей системы. Чтобы проверить сетевой интерфейс, просто запустите IP-адрес или команда ifconfig.
Для нашей системы enp0s3 активная сетевая карта.
Полная конфигурация показана на рисунке.
Сохраните изменения и выйдите.
Затем запустите и включите стук демон, как показано.
$ sudo systemctl start knockd. $ sudo systemctl enable knockd.
Чтобы проверить статус стук демон, запустите команду:
$ sudo systemctl status knockd.
Поскольку цель стук service заключается в предоставлении или отказе в доступе к службе ssh, мы собираемся закрыть порт ssh на брандмауэре. Но сначала давайте проверим статус Межсетевой экран UFW.
Статус $ sudo ufw пронумерован.
Из вывода мы ясно видим, что SSH порт 22 открыт на обоих IPv4 и IPv6 протоколы пронумерованы 5 и 9 соответственно.
Нам нужно удалить эти два правила, как показано, начиная с наивысшего значения - 9.
$ sudo ufw удалить 9. $ sudo ufw удалить 5.
Теперь, если вы попытаетесь удаленно войти на сервер, вы получите ошибку тайм-аута соединения, как показано.
На последнем этапе мы настроим клиента и попытаемся войти в систему, сначала отправив последовательность стука, которую мы настроили на сервере.
Но сначала установите стук демон так же, как и на сервере.
$ sudo apt install knockd.
После завершения установки отправьте последовательность стука, используя показанный синтаксис
$ knock -v server_ip knock_sequence.
В нашем случае это означает:
$ knock -v 192.168.2.105 10005 10006 10007.
Вы должны получить результат, аналогичный тому, что есть у нас, в зависимости от вашей последовательности. Это показывает, что попытки детонации были успешными.
На этом этапе вы должны быть в состоянии успешно войти на сервер с помощью SSH.
Когда вы закончите работу на удаленном сервере, закройте порт SSH, отправив закрывающую последовательность стука.
$ knock -v 192.168.2.105 10007 10006 10005.
Любые попытки войти на сервер будут неудачными, как показано.
Это завершает руководство о том, как использовать блокировку портов для защиты службы SSH на вашем сервере. Лучшим и простым подходом было бы настроить парольную аутентификацию SSH с использованием пар ключей SSH. Это гарантирует, что только пользователь с закрытым ключом сможет пройти аутентификацию на сервере, на котором хранится открытый ключ.