Port knocking

Выкладываем здесь готовые конфигурации под определенные типовые задачи
plin2s
Сообщения: 565
Зарегистрирован: 26 сен 2012, 16:17
Контактная информация:

Port knocking

Сообщение plin2s » 14 авг 2014, 13:57

Была хорошая ссылочка, но недавно увидел, что она уже недоступна и есть только в кеше гугла (http://webcache.googleusercontent.com/s ... ent=ubuntu). Поэтому перепечатаю ее здесь. Думаю кому-нибудь будет полезно.

Port knocking используется, как правило, для "защиты" открытых наружу портов.
Общий механизм действия:
1. Пользователь стучится (посылает пакет) на определенный порт внешнего адреса.
2. Устройство, на основе данных прилетевшего пакета, создает динамичекое правило фаервола, которое открывает порт наружу для конкретного пользователя
3. Пользователь может установить интересующее его соединние, в то время как все останые этого сделать по-прежнему не могу.
В оригинальной статье используется немного усложненный вариант, когда неоходимо не только постучаться на порт, но и отправить на него определенный текст.

Итак. Первым делом добавляем правило layer7, которое будет смотреть содержимое пакетов:

Код: Выделить всё

/ip firewall layer7-protocol add comment="Port knocking regexp" name="port 1234" regexp="^test\$"

Это правило будет искать в теле пакетов слово test. Далее к нему нужно прикрутить определенные условия:

Код: Выделить всё

/ip firewall filter add action=add-src-to-address-list address-list=allow address-list-timeout=2h chain=input comment="Port knocking rule" disabled=no dst-port=1234 layer7-protocol="port 1234" protocol=udp

Итого: Если пакет пришел на udp порт 1234 и подходит под regexp "^test\$", то src-address стучащегося компьютера будет добавлен в список allow, который будет существовать 2 часа.
В этот промежуток времени мы можем что-нибудь делать. Например работать с web-сервером, который находится за микротиком:

Код: Выделить всё

/ip firewall nat
add action=dst-nat chain=dstnat comment="Allow access to web-server" disabled=no dst-port=80 in-interface=ether1-gateway protocol=tcp src-address-list=allow to-addresses=192.168.88.2 to-ports=80

Или подключаться по SSH к самому микротику:

Код: Выделить всё

/ip firewall filter add action=accept chain=input comment="Allow SSH to mikrotik" disabled=no dst-port=22 protocol=tcp src-address-list=allow

На этом - все. Пользователю нужно выполнить что-то типа nping 1.1.1.1 --udp -p 1234 --data-string "test" и порт будет открыт.

Минусы данного способа:
- нужна утилита, которая умеет генерировать пакеты с определенным содержанием (nping например http://nmap.org/)
- на протяжении 2-х часов будут доступны подключения с адреса, добавленного в address-list
В статье приводится ссылка, в которой описан способ, помогающий избежать оба этих минуса (http://mum.mikrotik.com/presentations/US10/discher.pdf).
Первый address-list будет доступен всего 10 секунд. За эти 10 секунд нужно постучаться на еще один порт, тогда откроется большое окно, которое позволит устанавливать соединения и полноценно работать. Там правда тоже предлагают использовать специальную утилиту, но будет достаточно обычного telnet, который есть почти везде.
Так же не лишним будет правило:

Код: Выделить всё

add action=accept chain=input comment="Allow Established connections" connection-state=established disabled=no

Надеюсь кому-нибудь пригодится.
EdkiyGluk
Сообщения: 258
Зарегистрирован: 21 сен 2014, 08:34
Откуда: 34
Контактная информация:

Re: Port knocking

Сообщение EdkiyGluk » 16 янв 2016, 12:06

icmp кнок имхо проще.... пинг то точно есть везде, даже на телефоне
plin2s
Сообщения: 565
Зарегистрирован: 26 сен 2012, 16:17
Контактная информация:

Re: Port knocking

Сообщение plin2s » 16 янв 2016, 18:35

EdkiyGluk писал(а):icmp кнок имхо проще.... пинг то точно есть везде, даже на телефоне

Да, естественно. Я описал наиболее параноидальный вариант, потому что упрощать всегда легче.
Опять таки, вариант последовательного пинга описан в документе, который я прикрепил после описания основного способа.
Сам пользуюсь простой последовательностью портов: постучаться на первый порт, постучаться на второй порт, залогиниться на конечное устройство.

Вернуться в «Готовые конфигурации Mikrotik»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость