How-to`s — Port Knocking на примере защиты ssh от брутфорса.
Доброй ночи! В данном посте я расскажу как просто защитить ssh сервер от брутфорса. Данный пост использует правило для iptables с использованием механизма port knocking.
Технология port knocking позволяет выполнять любые действия на сервере, даже если все порты на нем закрыты. В общем случае, Вам достаточно соедениться с определенными портами, в определенной последовательности, которую знаете только Вы и на сервере выполнятся определенные действия, в последствии которых, нужный порт откроется.
Приступим к практике:
В данном примере я использую дистрибутив Debian и ip 192.168.11.1.
Создадим скрипт с правилом и дадим права на запуск:
Теперь задействуем наше правило в файле portknock.sh:
Правило:
Запустим скрипт с правилом:
Что бы добавить правило в автозагрузку, можно поместить скрипт, например в rc.local.
Теперь, чтобы получить доступ к серверу по ssh, нужно постучать на порт 1500, сделать это можно как и по telnet так и простым http запросом. Например:
Telnet:
HTTP:
Соответственно, чтобы закрыть порт, нужно постучать на порт 1499.
Вот таким способом можно избавиться от толпы желающих получить доступ к вашему серверу.
Технология port knocking позволяет выполнять любые действия на сервере, даже если все порты на нем закрыты. В общем случае, Вам достаточно соедениться с определенными портами, в определенной последовательности, которую знаете только Вы и на сервере выполнятся определенные действия, в последствии которых, нужный порт откроется.
Приступим к практике:
В данном примере я использую дистрибутив Debian и ip 192.168.11.1.
Создадим скрипт с правилом и дадим права на запуск:
1 2 3 |
|
Теперь задействуем наше правило в файле portknock.sh:
1 2 3 |
|
Правило:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
Запустим скрипт с правилом:
1 2 3 |
|
Что бы добавить правило в автозагрузку, можно поместить скрипт, например в rc.local.
Теперь, чтобы получить доступ к серверу по ssh, нужно постучать на порт 1500, сделать это можно как и по telnet так и простым http запросом. Например:
Telnet:
1 2 3 |
|
HTTP:
1 2 3 |
|
Соответственно, чтобы закрыть порт, нужно постучать на порт 1499.
Вот таким способом можно избавиться от толпы желающих получить доступ к вашему серверу.