Навигация
ГлавнаяФотогалереяКарта сайтаСтатьиМузыкаФильмыРейтинг контентаИнформация о сервереТемператураОбратная связь
Свежие записи
Что делать после приобретения оружияКак получить лицензию на оружиеРадиохоббиВышло обновление iOS 6.1Душевный блатнячок
Комменты
2017-10-11 12:42:42 [articles] Маша:
2017-10-06 10:09:52 [news] Николай:
2017-10-06 10:00:20 [projects] Николай:
2017-09-15 13:47:27 [projects] Artem:
2017-09-15 13:47:10 [projects] Artem:
2017-07-06 07:21:52 [projects] DarkEternal:
2017-07-06 07:21:30 [projects] DarkEternal:
Теги
Друзья

Kernel NAT FreeBSD

Ноября
2011 года
01
Теги: freebsd,
Раздел: odmin.info Статьи FreeBSD Kernel NAT FreeBSD
Просмотров: 5673
Запоздалая публикация статьи про реализацию NATа через ядро FreeBSD, другими словами Kernel NAT.
И так, приступим! Описание задачи:
Имеем две сетевухи, re0 - Internet и rl0 - LAN, хотим загонять инет из внешнего источника в re0 и раздавать юзерам в сети, подключенным к rl0, помимо этого требуется проверка подлинности юзера, которую реализуем посредством VPN-сервера и требуется чтобы определенные пользователи имели прямой доступ в инет без VPN.

Собираем ядро по статье Сборка ядра FreeBSD, но с дополнительными опциями:
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPDIVERT
options IPFIREWALL_FORWARD
options DUMMYNET
options HZ=1000
options IPFIREWALL_NAT
options LIBALIAS
options NETGRAPH
options NETGRAPH_ETHER
options NETGRAPH_SOCKET
options NETGRAPH_TEE
После компиляции и установки ядра добавим в rc.conf:
firewall_enable="YES"
firewall_logging="YES"
firewall_script="/etc/rules"
ВНИМАНИЕ!!!
После установки ядра вы потеряете доступ по SSH, т.к. по умолчанию в данной конфигурации IPFW закрывает все порты!!!
Рекомендуется работать под консолью!!!
Теперь нам необходимо создать файл /etc/rules примерно следующего содержания:
#!/bin/sh

ipfw='/sbin/ipfw -q'
wanip='192.168.0.100'
lan='10.10.10.0/24'
vpn='10.30.1.0/24'
lip='10.10.10'
vpnip='10.30.1'
ifout=re0
ifuser=rl0

$ipfw flush
$ipfw add 100 check-state

#admin ip's - сюда добавляем ip с которых разрешаем доступ из внешки
$ipfw table 1 flush
$ipfw table 1 add 1.2.3.4 #ваш ip 1
$ipfw table 1 add 21.54.62.74 #ваш ip 2

#inet witout vpn - указываем каким ip адресам разрешается доступ в инет без vpn
$ipfw table 2 flush
$ipfw table 2 add 10.10.10.20
$ipfw table 2 add 10.10.10.21

#admin ip's rights - права для админских ip
$ipfw add allow tcp from "table(1)" to me 21,20,22,3306,1723
$ipfw add allow tcp from me to "table(1)" keep-state
$ipfw add allow icmp from "table(1)" to me via $ifout
$ipfw add allow icmp from me to "table(1)" via $ifout

#right for all - права для всех
$ipfw add allow tcp from any to me 80 keep-state #в данном случае открыт только 80й порт

#nat config - конфигурируем NAT
$ipfw nat 1 config log if $ifout same_ports deny_in
$ipfw add nat 1 ip from any to any via $ifout

#from localnet to server - разрешаем все локальным ip адресам
$ipfw add allow ip from $lan to me
$ipfw add allow ip from me to $lan

#inet without vpn rules - разрешаем инет без vpn для тех, кто в таблице 2
$ipfw add allow ip from "table(2)" to any
$ipfw add allow ip from any to "table(2)"

#vpn user rights - разрешаем vpn'овским юзерам доступ куда угодно
$ipfw add allow ip from 10.30.1.10 to any
$ipfw add allow ip from any to 10.30.1.10

$ipfw add allow ip from 10.30.1.11 to any
$ipfw add allow ip from any to 10.30.1.11

$ipfw add allow ip from 10.30.1.12 to any
$ipfw add allow ip from any to 10.30.1.12
Дадим права на файл правил:
# chmod 777 /etc/rules
Теперь установим и настроим VPN-сервер, согласно статье VPN-сервер на FreeBSD.
Выполним файл правил файервола для примения правил:
# /etc/rules
Если все было сделано верно, то все будет работать, согласно поставленной задачи! =)
Удачи!!!
Комментарии к записи:
Дмитрий 2013-01-17 09:53:21
Можно добавить опцию ядра "IPFIREWALL_DEFAULT_TO_ACCEPT" и тогда IPFW будет по умолчанию с разрешающим правилом, что позволит нам свободно работать по SSH. Разумеется, после придётся проработать правилами файрволла, чтобы запретить всех неугодных нам.
seqular from http://litl-admin.ru
Cryer 2013-07-23 15:38:14
Дмитрий,а можно не добавлять, правда? facepalm

Добавление комментария

Ваше имя:
Ваш комментариий:
Введите код с картинки:
 
^_^