FreeBSD

FreeBSD9: Собираем ядро с поддержкой kernel nat

Для оптимизации работы сервера решил собрать ядро с поддержкой «kernel NAT», предварительно добавив в него необходимые опции.

Копируем оригинальное ядро:
Для i386

cp /usr/src/sys/i386/conf/GENERIC /usr/src/sys/i386/conf/ROUTER

Для amd64

cp /usr/src/sys/amd64/conf/GENERIC /usr/src/sys/amd64/conf/ROUTER

Редактируем конфиг ядра:

ee /usr/src/sys/i386/conf/ROUTER
ee /usr/src/sys/amd64/conf/ROUTER

Добавляем необходимые опции:

#NAT
options	IPFIREWALL			# Включаем фаерволл
options	IPFIREWALL_VERBOSE		# Включаем логирование для фаерволла
options	IPFIREWALL_VERBOSE_LIMIT=1000	# Ограничиваем логи кол-вом строк (1000)
options	IPFIREWALL_NAT			# Включаем поддержку kernel NAT
options	IPFIREWALL_FORWARD		# Перенаправление (форвардинг) пакетов
#options	IPFIREWALL_DEFAULT_TO_ACCEPT	# Правило по умолчанию
options	LIBALIAS			# Необходимо для kernel NAT
options	ROUTETABLES=2			# Поддержка двух таблиц маршрутизации
options	HZ="1000"			# Для DUMMYNET
options	DUMMYNET			# Для Kernel NAT + Ограничение пропускной способности

Меняем в конфиге

ident GENERIC

на

ident ROUTER

Если хотим чтобы фаервол был с разрешающим правилом по умолчанию, убираем # с

options IPFIREWALL_DEFAULT_TO_ACCEPT

Сохраняем конфиг и приступаем к сборке ядра:

cd /usr/src
make buildkernel KERNCONF=ROUTER

По окончанию процесса сборки ядра необходимо его установить:

make installkernel KERNCONF=ROUTER

Когда ядро установлено, можно и перезагрузиться!

shutdown -r now

В FreeBSD10 options IPFIREWALL_FORWARD не нужно добавлять.

Читать тут

Оставить комментарий