Установка и настройка Iptables
, хакеры могут легко просканировать ваш IP-адрес и проверить наличие открытых портов (особенно порта 22, который используется для SSH) на вашем сервере. Один из способов скрыть свой сервер от хакеров — Knockd. Knockd — это сервер перехвата портов. Он прослушивает весь трафик в Ethernet или других доступных интерфейсах, ожидая особых последовательностей обращений к порту. Такие клиенты, как telnet или Putty, инициируют обращение к порту, отправляя TCP или пакет на порт на сервере.В этой статье мы рассмотрим, как можно использовать Knockd, чтобы скрыть службы, работающие на сервере Linux.
Установить Knockd на Linux-сервере
Knockd доступен в репозиториях большинства дистрибутивов. На сервере под управлением Debian/Ubuntu/Ubuntu вы можете использовать команду apt-get
для установки Knockd.
sudo apt-get install knockd
Для пользователей Fedora, CentOS или REHL вы можете использовать команду yum
:
yum install knockd
УстаContents
Установить Knockd на Linux-сервере
вашем сервере не установлен Iptables, установите его сейчас.
sudo apt-get install iptables iptables-persistent
Contents
sudo apt-get install iptables iptables-persistent
Пакет iptables-persistent
берет на себя автоматическую загрузку сохраненных iptables.
Далее необходимо разрешить уже установленные подключения, а также текущие сеансы через iptables. Для выполнения этой задачи используйте следующую команду:
iptables -A INPUT -m conntrack --ctstate ESTABLISHED, RELATED -j ACCEPT
Далее вам необходимо заблокировать все входящие подключения к порту 22 SSH.
iptables -A INPUT -p tcp --dport 22 -j REJECT
Теперь сохраним правила брандмауэра с помощью следующих команд:
netfilter-persistent save netfilter-persistent reload
Вы можете проверить, действительно ли вы заблокировали порт 22, подключившись к серверу через компьютер.
ssh my-server-ip
Настроить Knockd
Теперь пришло время настроить параметры Knockd по умолчанию. Он расположен по адресу «/etc/knockd.conf». Для этого перейдите к файлу конфигурации Knockd с помощью следующей команды:
cd /etc sudo leafpad knockd.conf
В целях иллюстрации я использую редактор листовой панели. На вашем сервере вы можете использовать nano или Vi.
На снимке экрана показан файл конфигурации Knockd.
- Параметры : в этом поле вы можете найти параметры конфигурации Knockd. Как вы можете видеть на скриншоте выше, для регистрации используется системный журнал.
- OpenSSH : это поле состоит из флагов последовательности, времени ожидания последовательности, команды и TCP.
- Последовательность : показывает последовательность портов, которая может использоваться клиентом в качестве шаблона для инициирования действия.
- Тайм-аут последовательности : показывает общее время, выделенное клиентам для вы
Настроить Knockd
едовательности выключения порта. - Команда : это команда, которая будет выполнена, как только последовательность стуков клиента совпадет с шаблоном в поле последовательности.
- TCP_FLAGS : это флаг, который должен быть установлен при уведомлениях, отправляемых клиентом. Если флаг был неправильным, а рисунок стука правильным, действие не будет запущено.
Примечание. Команда iptables в разделе OpenSSH файла конфигурации Knockd использует параметр -A
для добавления этого правила в конец цепочки INPUT. Это приводит к разрыву всех оставшихся соединений.
Чтобы предотвратить это, замените его следующим:
command = /sbin/iptables -I INPUT 1 -s %IP% -p tcp --dport 22 -j ACCEPT
Эта команда гарантирует, что новое правило будет добавлено в начало цепочки INPUT для приема ssh-соединений.
Включить и запустить службу Knockd
Используйте следующую процедуру, чтобы включить службу Knockd в «/etc/default/knock».
Измените значение с 0 на 1, как показано на скриншоте.
START_KNOCKD=1
После этого сохраните и закройте файл «/etc/default/knockd».
Далее вы можете запустить службу Knckd, используя одну из следующих команд:
sudo service knockd start
или
sudo systemctl start knockd
Пришло время провести проверку вашего Linux-сервера
Теперь пришло время протестировать ваш SSH-сервер Linux. Чтобы открыть порт 22 по указанному IP-адресу, используйте на своем компьютере следующее. (Вам также потребуется установить knockd
на свой компьютер)
knock -v my-server-ip 7000 8000 9000
Вам необходимо заменить «my-server-ip» на IP-адрес вашего сервера.
Теперь вы можете подключиться к порту 22 SSH с помощью следующей команды:
ssh my-server-ip
После того, как вы закончили все, что хотели сделать через порт 22, вы можете закрыть его с помощью следующей команды:
knock -v my-server-ip 9000 8000 7000
Заключение
Благодаря Knockd вы можете быть уверены, что ваш SSH-сервер защищен от злоумышленников с помощью сложных сканеров. Кроме того, вы полностью отвечаете за свой SSH-сервер.