Я пытаюсь добавить блокировку портов в настройку моей домашней сети, чтобы я мог скрыть пару сервисов от мира (ssh является наиболее важным). Я наткнулся на knockd, который кажется идеальным решением, за исключением того, что он не работает для меня.
Я планирую запустить экземпляр knockd на сервере, находящемся внутри брандмауэра моей домашней сети. Я перенаправляю с маршрутизатора / межсетевого экрана все порты, необходимые для последовательности переключения портов. Например. Я перенаправлю порты 100, 200, 300, 400 плюс порт 22 на сервер (очевидно, это будут не те порты, которые я буду использовать, поскольку я их рекламировал здесь). Затем я заблокирую порт 22 на внутреннем сервере и настрою правила knockd, чтобы открыть его на небольшой промежуток времени, когда будет отправлена правильная последовательность портов (в этом примере 100-200-300-400). Для моей первоначальной настройки и тестирования я просто пытаюсь заставить порт работать изнутри настройки сети с брандмауэром. У меня работает knockd на сервере, и я стучу с другого компьютера в сети - переадресация портов не должна усложнять мою тестовую настройку.
Это просто не работает. Я отправляю последовательность стука и не могу найти никаких доказательств того, что knockd ее обнаружил. Ничего в журнале knockd (даже после включения отладочной информации), ничего в stdout. Я попытался упростить задачу, просто выполнив команду knockd и записав файл в / tmp, когда он получит правильную последовательность - т.е. я даже не делаю ничего сложного на сервере с iptables - и я не получаю успех.
Я пробовал реализовать стук двумя способами, как это предлагают сайты кулинарных книг. 4 команды telnet для отправки последовательности, стука через "nc -z HOST PORT PORT PORT" и даже самого клиента командной строки knock.
На сервере, который я использую, также работает vmware server 2.0.2. Поскольку knockd прослушивает уровень 2 в сетевом стеке (насколько я понимаю), мне было интересно, может ли быть конфликт между тем, что vmware делает для поддержки мостовых сетей, и тем, что делает knockd.
Я попробовал аналогичную настройку внутри виртуальной машины, работающей на вышеупомянутом сервере, но по-прежнему ничего не работает. Так что это заставило меня снова задуматься, не изменяет ли vmware вещи на низком сетевом уровне для поддержки гостя.
Так что мне интересно, знает ли кто-нибудь здесь более подробную информацию. Можно ли использовать такую технологию, как knockd, в среде VMware? Нужно ли мне настраивать отдельный реальный сервер только для поддержки такого рода скрытности для ssh в моей домашней сети?
Раньше я использовал knockd - и не вижу причин, по которым он не будет работать вместе с сервером vmware или на виртуальной машине - кроме, возможно, конфликта в настройках iptables. Вам не нужно создавать для этого отдельный ящик.
Однако, если у вас есть отдельный блок для использования, возможно, стоит временно установить выделенный сервер ПРОСТО ДЛЯ РАБОТЫ НАСТРОЙКИ - с минимумом переменных. Затем перенесите протестированные файлы конфигурации в настоящий ящик.
Хотя я ничего не имею против этой техники "выбивания портов", я бы рекомендовал:
Это намного удобнее, чем выбивание портов, и, IMHO, немного безопаснее.