Как использовать стук портов в Linux (и почему не стоит)

Стук портов — это способ защитить сервер, закрыв порты брандмауэра — даже те, которые, как вы знаете, будут использоваться. Эти порты открываются по требованию, если и только если запрос соединения обеспечивает секретный стук.

  1. 1 Войдите по SSH на ваш сервер как Root-пользователь :
  2. 2 Перейдите в каталог, где находится файл настройки CSF:
    • [[email protected]] ~ >> cd /etc/csf
    • Нажмите (Enter)
      • Примечание: Здесь CSF хранит все свои файлы, не только файл настройки.
  3. 3 Откройте файл настройки для редактирования. Подойдет редактор наподобие «Vim», так как он имеет приятный внешний вид и простой в использовании. Ничего страшного, если вы используете другой редактор, просто помните, что здесь показаны команды для «Vim».
    • [[email protected]] csf >> vim
    • Нажмите (Enter)
      • Примечание: В этом файле есть множество настроек безопасности, которые вы можете настроить под себя, но я не буду здесь в это углубляться. Можете прочитать комментарии в файле, в которых описано, за что отвечает каждая настройка.
    • Как только откроете файл, увидите раздел «TCP_IN» и «TCP_OUT». Это будет выглядеть так:
  4. 4 Откройте входящие TCP-порты
    • TCP_IN = «20,21,1122, 25, 26, 53, 80, 110, 143, 443, 465, 587, 993, 995, 2077, 2078, 2082, 2083, 2086, 2087, 2095, 2096, 8000»
  5. 5 Откройте исходящие TCP-порты
    • TCP_OUT = «20, 21, 1122, 25, 37, 43, 53, 80, 110, 113, 443, 587, 873, 2087, 2089, 2703, 8000»
      • Все эти числа – порты, «открытые» на данный момент. У вас они могут отличаться, так что не паникуйте! Все зависит от ваших настроек.
  6. 6 Переместитесь вниз, в конец этих строк, где вы увидите номер 8000. Сюда мы и добавим наш порт.
    • 2095, 2096, 8000[]»
      • Так как мы используем «Vim», нужны специальные команды. Нажмите [ i ] на клавиатуре. Это позволит войти в режим «Vims» – insert – и вы сможете редактировать содержимое.
  7. 7 Введите номер порта:
    • 2095, 2096, 8000, 8001[]»
      • Повторите процедуру и для TCP_OUT.
  8. 8 Когда закончите, зажмите кнопку (Ctrl) на клавиатуре и, не отпуская, нажмите на ( [ ). Это выведет вас из режима – insert – .
  9. 9 Сохраните и выйдите из файла. Нажмите одновременно (Shift) и ( ; ). Внизу должно появится ( : ) sс мигающим курсором.
  10. 10 Введите буквы (w) и (q) без пробелов. Это значит -write (сохранить) и -quit (выйти).
  11. 11 Чтобы изменения вступили в силу, перезапустите межсетевой экран!
    • [[email protected]] csf >> service csf restart
    • Нажмите (Enter)
      • Вы увидите следующее:
  12. 12Остановка CSF
  13. 13 Затем (если у вас есть что-то в черном или белом списке), IP-адреса пролетят по экрану. Не волнуйтесь! Это все IP-адреса, которые были добавлены в черный или белый список, добавляются в межсетевой экран. Данный процесс займет всего несколько секунд (если только у вас не огромный список).
  14. 14Когда вы увидите это, все готово!

Перед тем, как начать

Эта статья рассказывает о настройке проброса портов в самых разных операционных системах, начиная с Windows и заканчивая ОС, установленными на сетевом оборудовании. В большинстве случаев для реализации проброса портов используются специальные правила брандмауэра, и здесь я должен сделать первое предостережение.

Дело в том, что любой брандмауэр выполняет трансляцию сетевых адресов до их фильтрации, поэтому описанные в статье правила должны находиться в начале. Второе: для успешного прохождения оттранслированных пакетов должны быть добавлены правила, разрешающие входящие подключения на целевой порт шлюза, а также правила, разрешающие обмен данными между внутренней целевой машиной и шлюзом.

Настройка проброса портов в VirtualBox для SSH

SSH – сервер обычно прослушивает 22 порт, поэтому нам необходимо пробросить подключение именно на 22 порт.

Шаг 1

Настройка проброса портов в VirtualBox для SSH

Для того чтобы пробросить порт, запускаем VirtualBox и заходим в настройки нашей виртуальной машины с Ubuntu Server. Например, выбираем нужную машину и нажимаем кнопку «Настроить», данный пункт также доступен, если нажать правой кнопкой мыши по выбранной виртуальной машине.

Шаг 2

Затем переходим в раздел настроек «Сеть», и открываем вкладку с включенным адаптером. Тип подключения, как Вы помните, «NAT» — для доступа в Интернет.

Настройка проброса портов в VirtualBox для SSH

Шаг 3

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

Шаг 4

Настройка проброса портов в VirtualBox для SSH

В итоге у нас откроется окно «Правила проброса портов». Для добавления нового правила нажимаем на иконку с плюсиком.

Шаг 5

На данном этапе Вы уже должны знать IP адрес гостевой операционной системы и порт, который прослушивает SSH сервер (по умолчанию это 22 порт). В Ubuntu Server IP адрес можно узнать с помощью команды ifconfig (по умолчанию это ).

Настройка проброса портов в VirtualBox для SSH

Описание колонок таблицы с правилами:

  • Имя – название правила, в нашем случае разумно назвать SSH;
  • Протокол – протокол, по которому будет происходить взаимодействие. В обычных случаях это – TCP;
  • IP хоста – IP адрес Вашего реального компьютера, можно указать 127.0.0.1 или оставить данное поле пустым;
  • Порт хоста – любой свободный порт Вашего компьютера, который будет использоваться для перенаправления на нужный порт в гостевой ОС. Я указал 2222;
  • IP гостя – здесь указываем IP адрес гостевой операционной системы на который будет происходить перенаправление, в моем случае это ;
  • Порт гостя – порт гостевой ОС, на который нам необходимо пробрасывать наши запросы. В нашем случае это 22 порт, который прослушивает SSH сервер.
Читайте также:  SoundKonverter: лучший аудиоконвертер в Linux

После заполнения таблицы с правилом, нажимаем «ОК».

Настройка проброса портов в VirtualBox для SSH

Шаг 6

На этом настройка проброса портов закончена, теперь мы можем проверить работу данного правила (проброса). Для этого сначала запускаем виртуальную машину с Ubuntu Server, а затем программу PuTTY.

На вкладке Session выбираем тип соединения SSH и в поле Host Name пишем локальный адрес компьютера (хоста), которой мы указывали в колонке «IP хоста» в правилах проброса портов, если ничего не указывали, то пишите 127.0.0.1.

Настройка проброса портов в VirtualBox для SSH

В поле порт указываем номер порта, который мы указывали в колонке «Порт хоста», т.е. 2222. Нажимаем кнопку «Open».

  • Если после этого Вы получили приглашение на ввод логина, то это значит, что подключение работает, и Вы, соответственно, можете вводить учетные данные от гостевой операционной системы.
  • У меня на этом все, надеюсь, материал был Вам полезен, пока!
Настройка проброса портов в VirtualBox для SSH

Доказательство в пудинге

Пришло время посмотреть, работает ли это. Мы knockd демон knockd с помощью этой команды:

sudo systemctrl начало knockd

Теперь мы прыгнем на другую машину и попробуем подключиться. Мы также установили инструмент knockd на этот компьютер не потому, что хотим настроить детонацию портов, а потому, что пакет knockd предоставляет еще один инструмент под названием knock . Мы будем использовать эту машину для стрельбы в нашей секретной последовательности и постучать за нас.

Используйте следующую команду, чтобы отправить вашу секретную последовательность запросов на подключение к портам хост-компьютера, который выбивает порт с IP-адресом :

стук 7000 8000 9000 -d 500

Это говорит knock чтобы нацелить компьютер на IP-адрес и запустить запрос на подключение к портам 7000, 8000 и 9000, в свою очередь, с -d (задержка) между ними составляет 500 миллисекунд.

Затем пользователь с именем «dave» отправляет запрос SSH на :

ssh dave @

Его соединение принято, он вводит свой пароль, и начинается его удаленный сеанс. Его командная [email protected] меняется с [email protected] на [email protected] . Чтобы выйти из удаленного компьютера, он набирает:

выход

Его командная строка возвращается на локальный компьютер. Он использует knock еще раз, и на этот раз он выбирает порты в обратном порядке, чтобы закрыть порт SSH на удаленном компьютере.

стук 9000 8000 7000 -d 500

Следует признать, что это не был особенно плодотворный удаленный сеанс, но он демонстрирует открытие и закрытие порта посредством стука портов и помещается на одном скриншоте.

Итак, как это выглядело с другой стороны? Системный администратор на узле, блокирующем порт, использует следующую команду для просмотра новых записей, поступающих в системный журнал:

tail -f / var / log / syslog

  • Вы видите три записи openSSH. Они поднимаются, поскольку каждый порт предназначен для утилиты удаленного стука.
  • Когда все три стадии последовательности запуска выполнены, запись « ОТКРЫТЬ СЕЗАМ » регистрируется
  • Команда для iptables правила в список правил iptables отправляется. Он разрешает доступ через SSH через порт 22 с определенного IP-адреса ПК, который дал правильный секретный стук ().
  • Пользователь «Дэйв» подключается только на несколько секунд, а затем отключается.
  • Вы видите три записи closeSSH. Они поднимаются, поскольку каждый порт предназначен для утилиты удаленного детонации — он сообщает хосту детонации портов закрыть порт 22.
  • После запуска всех трех этапов мы снова получаем сообщение «ОТКРЫТЬ СЕЗАМ». Команда отправляется на брандмауэр для удаления правила. (Почему не «ЗАКРЫТЬ СЕЗАМ», когда он закрывает порт? Кто знает?)

Теперь единственное правило в списке правил iptables порта 22 — это правило, которое мы ввели в начале, чтобы закрыть этот порт. Итак, порт 22 теперь снова закрыт.