суббота, 19 марта 2016 г.

ping или port knocking с использованием iptables

КОПИПАСТА с сайта  https://spfng.com/post/hardened-ssh-with-ping-port-knocking-using-only-iptables/

Самая заветная цель любого хакера — получить root-доступ к компьютеру через SSH. До тех пор, пока открыт 22 порт, его будут атаковать, и не только его: не SSH единым. На компьютере работает множество сервисов, публичных и не очень, которые так же могут быть подвержены взлому. Все лишние сервисы должны быть выключены, а все лишние порты прикрыты.

Используя iptables возможно реализовать дополнительный уровень защиты, так называемый «Port Knocking», технология которого заключается в том, что прежде чем подключиться на какой-либо порт, необходимо сперва «постучаться»: подключиться на другой порт, известный только владельцу хоста, после чего основной порт становится доступен на короткий промежуток времени. Можно пойти дальше, ограничиться не одним портом, а несколькими, чтобы требовалось «стучаться» в каждый порт в отдельности и строго в опредлённом порядке. Получается что-то вроде пароля состоящего из отдельных PIN-кодов.

«Port Knocking» известная технология, но почему бы не использовать ICMP? Только вместо номера порта — указывать размер пакета, а в остальном всё тоже самое.
Скрипт реализует «Ping Knocking», чтобы «постучаться» на хост и iptables открыл 22 порт на одну минуту, используя утилиту ping требуется отправить шесть ICMP-пакетов определённого размера и в определённом порядке, а именно: 4 8 15 16 23 42...
Скрипт:

Открыть спойлер

Можно вручную выполнить ping шесть раз, указав размер пакета, но удобнее воспользоваться однострочным скриптом, после выполнения которого 22 порт станет доступен на одну минуту, о чём iptables так же сообщит в логах dmesg — строка будет содержать «пароль».
# for n in 4 8 15 16 23 42; do ping -c 1 -s $n spfng.com; done
Никто не сможет подключиться к хосту по SSH не зная точную комбинацию цифр.

1 комментарий:

  1. Спасибо большое!
    На всякий случай дополню - в Windows длина заголовка ICMP - 42 байта, поэтому, если необходимо подключение с Windows, лучше закладывать размер пакетов с запасом.

    ОтветитьУдалить