На выполнение всех этих действий уйдёт всего несколько минут! Итак, приступим.
1) Для шлюза можно взять любой старый компьютер (например, приготовленный на выброс или списанный в утиль) или, при его отсутствии, покупаем такой компьютер через Интернет или у знакомых (или берём старьё в другой организации). Стоит он копейки, или даже совсем ничего не стоит, так как это хлам. Также, можно собрать такую машину из старых запчастей, которых в организациях и у компьютерщиков, обычно, навалом! Не забудьте поставить в него 2 сетевые карты (ведь сети у нас 2).
2) Скачиваем с официального сайта http://openbsd.org/ последний (хотя необязательно) стабильный релиз ОС OpenBSD (лучше сразу ISO-образ) для выбранного компьютера и записываем его на CD или DVD (ну или на другой носитель, если Вы будете ставить систему с него). Затем вставляем этот диск в наш будущий сервер и грузимся с него.
После того как Вы ответили на все вопросы по настройке системы, будет предложено разбить HDD на партиции (без опыта работы с fdisk-ом лучше этого не делать!). В нашем случае компьютер старый и объём HDD не настолько большой, чтобы его "пилить" на части, поэтому будем использовать весь диск целиком (по умолчанию). Просто нажимаем Enter и идём дальше. Затем будет выдан список пакетов для установки. Тут я рекомендую убрать игры, многопроцессорную поддержку (если у Вас в компьютере только один процессор) и всё, что касается графической системы X Window. Делается это очень просто:
Всё. Далее останется дождаться конца установки (примерно 1-2 минуты) и указать какие сервисы (демоны) нужно запускать вместе с системой. Здесь можно отказаться от запуска почти всего кроме, наверное, sshd (это сервер удалённого управления по SSH). После установки желательно перезагрузить компьютер (команда reboot).
3) Теперь у нас есть действующий сервер с уже работающими и подключёнными сетевыми интерфейсами, если конечно Вы их правильно настроили при установке. Если нет, тоже не так страшно, просто отредактируйте конфигурационные файлы сетевых карт типа /etc/hostname.fxp0 и /etc/hostname.rtl0 (здесь предполагается, что Ваши сетевушки определены как fxp0 и rtl0). Посмотреть список всех подобных файлов можно командой ls, например:
ls /etc/hostname.*
Чтобы убедиться в правильности настроек, можно вывести параметры всех сетевых интерфейсов с помощью команды ifconfig, например так:
ifconfig -a
или же просто пустить ping на те адреса, которые вы указали в настройках, например:
ping 10.135.62.26 (где 10.135.62.26 IP-адрес от Вашего провайдера или модема)
и
ping 172.18.7.1 (где 172.18.7.1 IP-адрес Вашего внутреннего интерфейса)
Если проверка прошла успешно, переходим к настройкам трансляции сетевого трафика между нашими сетями (NAT). Для этого достаточно включить forwarding (пересылку) в файле /etc/sysctl.conf:
net.inet.ip.forwarding=1 (для протокола TCP 4-й версии)
и/или
net.inet6.ip6.forwarding=1 (для TCP 6-й версии, если она используется)
А также настроить встроенный пакетный фильтр (pf) на работу в качестве NAT (Network Address Translation). Делается это в файле конфигурации /etc/pf.conf с помощью параметра nat-to, например так:
pass out on $ext_if from 172.18.7.0/16 nat-to 10.135.62.26
ext_if="fxp0" (если fxp0 имеет адрес 10.135.62.26, как в нашем примере)
pf=YES
После перезагрузки Вы увидите, что pf был запущен и настроен, а следовательно, все пользователи локальной сети могут подключаться к сети провайдера и наслаждаться доступом в Интернет!
4) Ну и последний штрих в настройке нашего сервера - включение и настройка DHCPD. Эта штука позволит нам автоматически раздавать IP-адреса, ограничивать количество компов в сети, а также изолировать некоторые компьютеры в отдельные сетевые группы не вставая из-за консоли сервера. Причём все настройки делаются в одном единственном файле - /etc/dhcpd.conf, например так:
option domain-name-servers 10.135.62.2;
subnet 172.18.7.0 netmask 255.255.0.0 {
routers 172.18.7.1;
range 172.18.7.130 172.18.7.190;
}
host static-client {
}
Таким образом мы делаем постоянную привязку IP-адреса 172.18.7.150 к MAC-адресу 00:12:25:2a:3c:17. То есть только компьютер (или принтер) с MAC-ом 00:12:25:2a:3c:17 будет получать IP-шник 172.18.7.150, он будет для этой машины зарезервирован. И, опять же, таких привязок можно сделать сколько угодно, хоть на всю подсеть, например так:
subnet 172.18.7.0 netmask 255.255.0.0 {
routers 172.18.7.1;
range 172.18.7.130 172.18.7.190;
host static-client {
}
host static-client1 {
}
host static-client2 {
}
}
dhcpd_flags=""
Её просто нужно найти и поменять значение параметра.
Ну вот и всё. После перезагрузки компьютера Вы увидите запуск всех настроенных демонов (сервисов), а проверить их работу и состояние можно с помощью команды pgrep, например:
pgrep -lf dhcpd
При этом на экран будет выведен номер процесса (PID) и ссылка на сам DHCP-сервер. Аналогично проверяется работа и других сервисов (демонов), запущенных в OpenBSD.
Как видите в создании сервера (шлюза) на базе операционной системы OpenBSD нет ничего сложного и страшного. Попробуйте, у Вас обязательно получится!