SpecialistOff.NET / Вопросы / Статьи / Фрагменты кода / Резюме / Метки / Помощь / Файлы

Назад

Руководство по установке и настройке FreeBSD в качестве шлюза


Метки: freebsd ipfw межсетевой экран nat

У сервера должны быть две сетевые карты:

  1. Сетевая карта к которой подключен интернет
  2. Сетевая карта к которой подключена локальная сеть

После установки нового сервера, подключаемся по SSH

Правила межсетевого экрана в файле /etc/firewall.sh

#!/bin/sh

fwcmd="/sbin/ipfw"

${fwcmd} -f flush

${fwcmd} add allow ip from any to any via lo0
${fwcmd} add deny ip from any to 127.0.0.0/8
${fwcmd} add deny ip from 127.0.0.0/8 to any
${fwcmd} add deny ip from any to ::1
${fwcmd} add deny ip from ::1 to any
${fwcmd} add allow ipv6-icmp from :: to ff02::/16
${fwcmd} add allow ipv6-icmp from fe80::/10 to fe80::/10
${fwcmd} add allow ipv6-icmp from fe80::/10 to ff02::/16
${fwcmd} add allow ipv6-icmp from any to any ip6 icmp6types 1
${fwcmd} add allow ipv6-icmp from any to any ip6 icmp6types 2,135,136

${fwcmd} nat 1 config ip XXX.XXX.XXX.XXX
${fwcmd} add nat 1 ip from 192.168.0.0/24 to any out via vtnet0
${fwcmd} add nat 1 ip from any to XXX.XXX.XXX.XXX in via vtnet0

${fwcmd} add allow ip from any to any
${fwcmd} add deny ip from any to any

Устанавливаем права выполнения на скрипт

chmod +x /etc/firewall.sh

Автозапуск межсетевого экрана

echo 'firewall_enable="YES"' >> /etc/rc.conf
echo 'firewall_script="/etc/firewall.sh"' >> /etc/rc.conf

Включить прохождение пакетов через шлюз при следующей загрузке

echo 'gateway_enable="YES"' >> /etc/rc.conf

Включить межсетевой экран и NAT после перезагрузки

cat << EOF > /boot/loader.conf
ipfw_load="YES"
ipfw_nat_load="YES"
EOF

Перезагружаем VPS