Как закрыть и открыть порты во FreeBSD

Почему–то Google частенько отсылает людей, спрашивающих о том, как закрыть и открыть порты во FreeBSD, на мой сайт. Хотя ничего такого здесь нет. Поэтому я решил исправить ситуацию и написать небольшую заметку о том, как всё–таки закрыть и открыть порты во FreeBSD. :)

Итак, возьмём FreeBSD и начнём её мучить откроем конфигурацию файервола. Лично я пользуюсь IPFW, о нём и расскажу. Но для других файерволов логика действий будет аналогичной, а вот синтаксис — наверняка другим.

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

  1. ipfw show

Когда мы разобрались с текущей настройкой файервола, можно приступать к её модификации. Заблокируем, пожалуй, 21–й порт:

  1. ipfw add 12345 deny all from any to me 22

О нет! Я заблокировал 22–й порт вместо 21–го! Что же делать? А нужно всего–лишь удалить неправильное правило, и создать правильное:

  1. ipfw delete 12345
  2. ipfw add 12345 allow all from any to me 21

Чёрт! Опять косяк! Вместо того, чтобы порт закрыть, я его открыл. :( А ну и фиг с ним!

А теперь подробнее о синтаксисе:

  • «ipfw» — наш файервол.
  • «add», «delete» — добавление и удаление правила, соответственно.
  • «12345» — это номер правила. Вы должны чётко понимать какой номер должен быть у правила, поскольку файервол все правила выполняет последовательно по возрастанию номеров правил;
  • «allow», «deny» — разрешить, запретить — собственно, чего мы хотим добиться;
  • «all» — то, что регламентирует данное правило, в данном случае — все протоколы. Вместо «all» можно использовать синоним «ip» или другой протокол — «tcp», «udp»;
  • «from any to me» — направление трафика, в данном случае имеется ввиду входящий трафик отовсюду. «from me to any» — любой исходящий трафик. Вместо «any» и «me» можно указывать адреса.
  • «21» — номер порта, который вы блокируете или открываете. Вы должны чётко понимать, что это за номер и зачем вам его блокировать или открывать.

Синтаксис может отличаться, уточняться, обобщаться, поэтому обязательно почитайте:

  1. man ipfw

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

Помните! Производя манипуляции с файерволом, будьте предельно осторожны и внимательны. Особенно, если манипуляции производятся на удалённой машине.

Комментарии

4 года назад
Вот я написал такое правио. Вроде все правильно.
#ipfw add allow udp from any to me 1900,3432,3478,3479,5060,5062,6881,12000-29999,20010-20020,30443,32800-32900
#ipfw add allow udp from me to any

Не коннектиться к серверу!

Если я напишу:
#ipfw add allow udp from any to any

Тогда все работает! Но ведь так нельзя писать!
Где грабли!? Help!
Ашот, возможно в первом случае вы не вписали тот порт, по которому пытаетесь законнектиться к серверу.
Комментировать