Защита сервера как использовать порт-нокинг для повышения безопасности

Защита сервера: повышение безопасности с помощью порт-нокинга

Защита сервера: как использовать порт-нокинг для повышения безопасности

Вам, вероятно, известны основные принципы защиты сервера и оборудования от внешних атак. Существует множество методов защиты, и каждый специалист выбирает подходящие для своего случая. В данной статье мы рассмотрим один из таких методов – порт-нокинг.

Порт-нокинг основан на идее последовательности «стуков» по сети к определенным портам сервера. При этом сервер анализирует последовательность поступающих пакетов и, при соблюдении определенной последовательности и комбинации «стуков», предоставляет доступ к запрашиваемым сервисам.

Для использования порт-нокинга вам потребуется корректная настройка оборудования. Например, на роутере MikroTik можно добавить правило в firewall-цепочку, которое будет обрабатывать incoming-пакеты с определенными портами и последовательностью knock-1, knock-2 и knock-3. При соблюдении этой последовательности сервер MikroTik добавит исходящее правило, разрешающее доступ к нужным сервисам.

В свою очередь, на сервере можно использовать iptables для анализа поступающих пакетов и последовательности knockingа. С помощью iptables можно настроить фильтрацию пакетов по ip-адресу отправителя, порту и содержимому пакета. Таким образом, сервер будет реагировать только на посылаемые по заданной последовательности icmp-пакеты. Для лучшей безопасности можно добавить параметр cmd_timeout, задающий время ожидания между последовательностями knockingа.

Порт-нокинг является эффективным методом защиты сервера, однако его использование также имеет свои недостатки. Например, при использовании огромного количества портов для knockingа, атакующим достаточно информации о последовательности для воспроизведения «стуков» и получения доступа. Также, при использовании общедоступного оборудования, порт-нокинг может быть обнаружен и, ввиду его особенностей, обойден.

Защита сервера: использование порт-нокинга для повышения безопасности

Что такое порт-нокинг?

Что такое порт-нокинг?

Порт-нокинг — это техника, которая позволяет открыть доступ к сервисам на сервере только после правильной последовательности запросов к определенным портам. Другими словами, для доступа к серверу необходимо «стучать» в определенные порты в заданной последовательности.

Для настройки порт-нокинга вам понадобится сервер и клиент, который будет посылать запросы на нужные порты. В данном случае мы будем использовать MikroTik RouterOS.

Настраиваем порт-нокинг на MikroTik RouterOS

  • Войдите в терминал MikroTik через Winbox или SSH.
  • Создайте новую закладку с названием «Port Knocking» в разделе «Firewall».
  • В закладке «Port Knocking» нажмите на кнопку «Add» и настройте следующие параметры:
    • Chain — выберите «input».
    • Protocol — выберите «tcp».
    • Dst. Port — введите порты, через которые будет происходить knocking, например, 1000, 2000, 3000.
    • Action — выберите «jump».
    • Jump Target — выберите название цепочки, которую вы создадите на следующем шаге.
  • Создайте новую цепочку в разделе «Firewall» с выбранным вами названием.
  • В новой цепочке создайте правила, которые разрешают соединения к нужным сервисам только после правильной knocking последовательности. Например:
    • Cmd_timeout — задайте значение в секундах, сколько сервер будет ожидать knocking запросов.
    • Посылаемые knocking запросы — настройте правила, которые определяют последовательность knocking запросов и действия, которые необходимо выполнить при успешной последовательности.
  • Сохраните настройки и примените их.
Читайте также:  Iiko backoffice mac os

Теперь при попытке подключения к серверу вам будет необходимо правильным образом простучать в указанные порты в указанной последовательности, чтобы получить доступ к сервисам.

Дополнительные возможности и итоги

Использование порт-нокинга может быть полезным дополнительным механизмом безопасности сервера. Он позволяет обходить сканеры портов и предоставляет доступ только тем, кто знает последовательность knocking запросов. Однако, его использование не является панацеей и должно сочетаться с другими методами защиты.

В этой статье мы рассмотрели использование порт-нокинга для повышения безопасности сервера. Вы можете всегда настроить данную технику на вашем сервере MikroTik RouterOS ввиду его advanced функционала. Будьте внимательны при настройке и отвечайте на все вопросы, которые могут возникнуть у вас в процессе!

Настройка Клиента

Для использования порт-нокинга на вашем Linux сервере, вы можете добавить правила knockingа в цепочку фильтрации входящего трафика (input chain) с использованием команды iptables.

Для начала, откройте терминал и установите пакет iptables, если он ещё не установлен, с помощью команды:

sudo apt install iptables

Далее, можно добавить правило knockingа, которое будет применяться при определённой последовательности постучаться на определённые порты. Например, создадим правило для простого knockingа в трех портах: 1234, 5678 и 9090.

Выполните следующую команду в терминале:

sudo iptables -A INPUT -p tcp --dport 1234 -m recent --name KNOCK1 --set -j DROP
sudo iptables -A INPUT -p tcp --dport 5678 -m recent --name KNOCK2 --rcheck -j DROP
sudo iptables -A INPUT -p tcp --dport 9090 -m recent --name KNOCK3 --rcheck -j DROP
sudo iptables -A INPUT -m recent --name KNOCK3 --remove
sudo iptables -A INPUT -m recent --name KNOCK2 --remove
sudo iptables -A INPUT -m recent --name KNOCK1 --remove
sudo iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

Это правило позволит доступ к порту 22 (SSH) только после последовательного постукивания на порты 1234, 5678 и 9090.

Однако, настройка knockingа на клиентской стороне выполняется немного иначе. Для этого необходимо использовать специальные утилиты, такие как ‘knock’ или ‘knockd’.

Читайте также:  ЛаврВас кто это такой и чем полезен

Вы можете установить эти утилиты с помощью следующей команды в терминале:

sudo apt install knockd

После установки утилиты knockd, вам необходимо создать файл конфигурации для knockingа. Создайте файл «knockd.conf» в любом удобном вам месте и добавьте следующий материал:

[options]
UseSyslog
[openSSH]
sequence    = 1234,5678,9090
seq_timeout = 15
start_command     = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
cmd_timeout = 20
stop_command      = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

В данной конфигурации мы указали, что после постукивания на порты 1234, 5678 и 9090, будет выполнена команда для открытия доступа к порту 22 (SSH), а через 20 секунд доступ будет закрыт вновь.

После создания файла конфигурации knockd.conf, запустите knockd с помощью следующей команды в терминале:

sudo knockd -d

Теперь ваш клиент готов к использованию технологии порт-нокинга с вашим сервером! При необходимости обратиться к вашему серверу, вы можете использовать соответствующую команду knockingа в закладке «Команда» на вашем терминале или удобном вам приложении для управления сетевыми соединениями.

Записки IT специалиста

Записки IT специалиста

Автор предлагает рассмотреть использование порт-нокинга для повышения безопасности сервера. При использовании этого продвинутого метода защиты, клиентам предоставляется возможность обратиться к серверу только при наличии правильной последовательности пакетов на определенных портах.

Для настройки порт-нокинга на сервере MikroTik, мы используем протокол icmp, который позволяет клиенту «постучать» на сервер, чтобы получить доступ к закрытым портам. По умолчанию, ICMP-пакеты состоят из 8 байт данных, но с помощью настройки cmd_timeout можно изменить этот размер.

В данной статье рассматриваются два способа использования порт-нокинга с помощью продвинутых материалов, таких как настройка системы iptables или использование брандмауэра MikroTik. Оба способа позволяют работать с последовательностью пакетов, посылаемых клиентом для получения доступа к серверу.

При использовании порт-нокинга, сервер действует как фильтр для входящих пакетов. Если последовательность пакетов, поступающих от клиента, соответствует заранее настроенной последовательности, то сервер открывает доступ к нужным портам и клиент может успешно подключиться.

В случае настройки брандмауэра MikroTik, мы создаем правило для последовательности ICMP-пакетов. Пакеты состоят из 8 байт данных, адрес клиента задается в поле «address». Мы также настраиваем параметр «action» для определения действия сервера при получении клиентского запроса.

Для работы порт-нокинга на сервере, необходимо также настроить время ожидания пакетов сервером. Islnurse» в параметре «cmd_timeout» указывается количество секунд, в течение которых сервер будет ожидать полной последовательности пакетов от клиента.

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

Читайте также:  Как закрыть процесс через cmd windows 10

Помимо использования порт-нокинга, существуют и другие методы повышения безопасности сервера. Рассматривайте использование разрешающего доступа только определенным IP-адресам, использование VPN-серверов или создание дополнительных правил фильтрации в брандмауэре сервера.

Port Knocking в PuTTY

Для использования Port Knocking в PuTTY вам потребуется настроить соответствующие правила в файрволле (например, iptables) на сервере.

После установки PuTTY и подключения к серверу, откройте окно настроек PuTTY. В левой части окна выберите «Connection» (Подключение), а затем «SSH» (SSH). В разделе «SSH Options» (Настройки SSH) выберите «Don’t start a shell or command at all» (Не запускать оболочку или команду). Нажмите «OK» (ОК) для сохранения настроек и закрытия окна.

Теперь откройте новое окно настроек PuTTY. В левой части окна выберите «Connection» (Подключение), затем «SSH» (SSH) и «Tunnels» (Туннели). В разделе «Forwarded ports» (Перенаправленные порты) введите номер порта, который вы хотите использовать для Port Knocking. Например, можно выбрать порт 12345. В поле «Destination» (Назначение) введите «localhost:22» (localhost и номер SSH-порта вашего сервера). Выберите «Remote» (Удаленный) и «Auto» (Автоматически). Нажмите «Add» (Добавить), чтобы добавить настройку туннеля. Нажмите «OK» (ОК) для сохранения настроек и закрытия окна.

Теперь вам необходимо отправить определенную последовательность ICMP-пакетов по порту, чтобы открыть доступ к SSH-серверу. В PuTTY выберите свое подключение и нажмите «Open» (Открыть), чтобы подключиться к серверу. При этом настройка туннеля должна быть применена.

После успешного подключения откройте новое окно PuTTY и настройте подключение к вашему SSH-серверу. На закладке «Connection» (Подключение) в разделе «SSH» (SSH) выберите «Auth» (Аутентификация) и введите ваши учетные данные. Нажмите «Open» (Открыть), чтобы подключиться к серверу.

После этого настройте Port Knocking как правило iptables на вашем сервере. Например, можно добавить такое правило в цепочку INPUT:

# iptables -A INPUT -p icmp --icmp-type echo-request -m recent --name icmpcheck --set -j DROP

Теперь, после истечения определенного времени (например, 10 секунд), вы можете постучаться на порт из PuTTY, используя команду:

# nmap -Pn --host_timeout 3000ms --max-retries 0 -p 12345 <адрес сервера>

После этого порт будет открыт, и вы сможете подключиться к SSH-серверу через PuTTY.

Port Knocking — это интересная технология, которая может повысить безопасность вашего сервера. Однако следует помнить, что она не является панацеей и ее использование должно совмещаться с другими методами и настройками безопасности.

Видео:

Как настроить безопасность на портах коммутатора Cisco с помощью Port Security

Как настроить безопасность на портах коммутатора Cisco с помощью Port Security by Cisco Ne Slabo / SEDICOMM TV 2,842 views Streamed 3 years ago 1 hour, 4 minutes

Оцените статью