Шлюз на базе OpenBSD


Задача, которая решается в этой статье схожа с той, которая рассматривается в заметке Шлюз на базе FreeBSD. Далее описывается последовательность действий, которая поможет читателю установить в локальной сети работающий шлюз для выхода в Интернет под управлением OpenBSD.

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

Чтобы разрешить пересылку пакетов, в файле /etc/sysctl.conf снимите комментарий со строки:

net.inet.ip.forwarding=1Пакетный фильтр включается установкой соответствующего значения в /etc/rc.conf:

pf=YESТеперь нужно задать правила для пакетного фильтра. Отредактируйте файл /etc/pf.conf:

ext_if="fxp0" # Имя внешнего интерфейса
int_if="rl0" # Имя внутреннего интерфейса
internal_net="172.16.0.0/8" # Внутренняя сеть
external_addr="www.xxx.yyy.zzz" # Адрес внешнего интерфейса
Эти четыре строки определяют значения параметров, которые будут использоваться в дальнейшем для задания правил NAT:

nat on $ext_if from $internal_net to any -> ($ext_if)Это правило говорит о том, что все пакеты на внешнем интерфейсе из внешней сети в любом направлении будут переданы через внешний интерфейс по назначению.

Фильтрация. В данном случае разрешаются все пакеты:

pass in all
pass out all
Рассмотрение создания правил для пакетного фильтра pf выходит за рамки данной статьи. Рекомендую ознакомиться с этим вопросом самостоятельно.

Обновлено: 13.03.2015