Организация роутера на базе FreeBSD + IPF (IPFILTER)
Подписка на 2007 год: Журналы Linux Format и
Системный администратор
Mandriva Corporate Server 4 и Mandriva Multi Network Firewall 2
Mandriva Linux 2007 LinuxCenter Edition (3DVD) и Free Edition (1DVD)
Коробочные версии Mandriva Linux 2007: Discovery, PowerPack и PowerPack+
| Организация роутера на базе FreeBSD + IPF (IPFILTER) |
В данной статье я приведу последовательность шагов для настройки роутера на базе ОС FreeBSD + IPFILTER.
[5000700 AT mail DOT ru, ICQ#223664205]
В этой статье мы:
Отредактируем конфигурацию ядра и соберем его.
Отредактируем файл конфигурации системы /etc/rc.conf.
Создадим правила фильтрации трафика и правил для NAT.
Эволюционный путь системного администратора токов, что рано или поздно он переходит от "форточки" к демоническим силам, а именно ОС FreeBSD. И этот выбор очевиден в силу своей первоначальной, как это казалось бы многим, сложности и железобетонной надежности.
В данном статье я приведу последовательность шагов для настройки роутера посредством ОС FreeBSD + IPFILTER. Хочу сразу заметить, что выбор именно этого фаервола (межсетевой экран) был сделан в силу его простоты и не чуть не меньшей эффективность по отношению с другими фаерволами.
Самые настойчивые могут (я настоятельно рекомендую) ознакомиться с еще более мощным продуктом из линейки фаерволов для *NIXсов (Pocket Filter), но это уже тема другой статьи.
Жестокий минимум который должен быть:
ОС FreeBSD установлена;
руки растут от плеч;
глаза широко открыты и читают внимательно;
Итак, начнем:
Редактируем ядро и потом собираем.
# cd /usr/src/sys/i386/conf
# cp GENERIC MYKERNEL
# ee /usr/src/sys/i386/conf/MYKERNEL
скажем, в самом - самом конце файла добавим:
# -- IPF
options IPFILTER # Сам IPFILTER .
options IPFILTER_LOG # Включение протоколирования.
options IPFILTER_DEFAULT_BLOCK # Блокировать всё на всех сетевых
# интерфейсах.
Жмем Ctrl + c и пишем exit
Собираем и устанавливаем ядро:
# cd /usr/src/
# make buildkernel KERNCONF=MYKERNEL
# make installkernel KERNCONF=MYKERNEL
# shutdown -r now
или процесс сборки, установки и перезагрузки можно объединить в одну команду
# cd /usr/src/
# make buildkernel KERNCONF=MYKERNEL && make installkernel \
KERNCONF=MYKERNEL && shutdown -r now
&& - этот оператор будет ждать успешного выполнения команды перед ним и пока она не будет выполнена успешно следующая за ним не будет выполнена.
Думаю все понятно, но если все же возникнут трудности загляните сюда.
Редактируем файл конфигурации системы /etc/rc.conf.
# ee /etc/rc.conf
Теперь надо добавить следующее строки:
# -- IPF
ipfilter_enable="YES" # Start ipf firewall
ipfilter_rules="/etc/ipf.rules" # loads rules definition text file
ipmon_enable="YES" # Start IP monitor log
ipmon_flags="-Ds" # D = start as daemon
# s = log to syslog
# v = log tcp window, ack, seq
# n = map IP & port to names
gateway_enable="YES" # Enable as LAN gateway
ipnat_enable="YES" # Start ipnat function
ipnat_rules="/etc/ipnat.rules" # rules definition file for ipnat
Жмем Ctrl + c и пишем exit
Думаю все понятно, но если все же возникнут трудности загляните сюда.
Создание правил фильтрации трафика и правил для NAT.
Правила для IPFILTER.
# touch /etc/ipf.rules
# ee /etc/ipf.rules
--- ipf.rules begin
# -- No restrictions on Loopback Interface [1]
pass in quick on lo0 all
pass out quick on lo0 all
# -- No restrictions on Local Interface [2]
pass in quick on fxp0 all
pass out quick on fxp0 all
# -- Let clients behind the firewall send out to the internet,
# -- and replies to come back in by keeping state [3]
pass out quick on rl0 proto tcp all keep state
pass out quick on rl0 proto udp all keep state
pass out quick on rl0 proto icmp all keep state
# -- Lets people access the services running on
# -- this system [4]
pass in quick on rl0 proto tcp from any to any\
port 30000 >< 50000 flags S keep state #PASV FTP
# FTP
pass in quick on rl0 proto tcp from any to any port = 21
# SSH
pass in quick on rl0 proto tcp from any to any port = 22
pass in log quick on rl0 proto icmp from any \
# Ping
to 62.16.105.195/8 icmp-type 8 keep state
# DNS
pass in quick on rl0 proto tcp/udp from any to any port = 53
# WWW
pass in quick on rl0 proto tcp from any to any port = 80
# RAdmin
pass in quick on rl0 proto tcp from any to any port = 4899
--- ipf.rules end
Жмем Ctrl + c и пишем exit
где,
lo0 - устройство loopback.
fxp0 - сетевая карта смотрящая во внутреннею сеть.
rl0 - сетевая карта смотрящая в Internet.
[1] - устройство loopback должно быть обязательно разрешено все для правильной работы;
[2] - ни каких запретов внутренней LAN;
[3] - разрешить исходящие TCP, UDP & ICMP сессии с сохранением соединения;
[4] - открыть порты на сетевые службы;
перезагрузим правила.
# ipf -Fa -f /etc/ipf.rules
Так можно делать перезагрузку любых изменений правил для IPF без перезапуска всей системы.
Правила для NAT.
# touch /etc/ipnat.rules
# ee /etc/ipnat.rules
--- ipnat.rules begin
rdr rl0 62.16.105.195/32 port 80 -> 192.168.0.5 port 80 tcp [1]
rdr rl0 62.16.105.195/32 port 4899 -> 192.168.0.5 port 4899 tcp
map rl0 192.168.0.0/8 -> 0/32 proxy port ftp ftp/tcp [2]
map rl0 192.168.0.0/8 -> 0/32 portmap tcp/udp 1025:65000 [3]
map rl0 192.168.0.0/8 -> 0/32 [4]
--- ipnat.rules end
[1] - переброска входящих соединений на внутренний WEB сервер. Тоже самое с портом 4899 для RAdmin;
[2] - проксирование FTP входящих/исходящих запросов;
[3] - распределяет все исходящие сессия на порты от 1025 до 65000;
[4] - тоже что и [3], но перекидывает все исходящие без рамок на используемые поты для сессий (можно не указывать, работать все равно будет).
Жмем Ctrl + c и пишем exit.
перезагрузим правила.
# ipnat -CF -f /etc/ipnat.rules
Так можно делать перезагрузку любых изменений правил для NAT без перезапуска всей системы.
Вот, собственно все, что я хотел донести до Ваших умов.
www.linuxcenter.ru
Строим сеть грамотно 28-12-2006 Мини-HOWTO: Корневой NFS 24-03-2008 Строим сеть грамотно Мини-HOWTO: Корневой NFSAndreas Kostyrkaandreas@ag.or.at Перевод: Станислав Рогин, ASPLinux АннотацияВ этом документе дается объяснение того, как настроить "бездисковую" рабочуюстанцию на Linux, корневая файловая система которой подключена через NFS.Новую версия этого Мини-Howto можно найти по адресуftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini/NFS-Root или на любом егозеркале РЯДО...
LINUX PLIP MINI-HOWTO 24-03-2008 Строим сеть грамотно LINUX PLIP MINI-HOWTOAndrea Controzzicontrozz@cli.di.unipi.it Перевод: Денис Дементьев, ASPLinux АннотацияИспользование информации этого HOWTO позволит вам настроить и использовать протокол параллельного интерфейса (Parallel Line Interface Protocol).СодержаниеВступление: что такое PLIP, и для чего он нужен?Аппаратное обе...
Как бороться со сменой IP адресов клиентами локальной сети? 24-03-2008 Строим сеть грамотно Keywords: arp mac ethernet ifconfig freebsd limit securityFrom: Alexander V. NaumochkinNewsgroups: http://www.unixfaq.ruDate: Mon, 17 May 2004 18:21:07 +0000 (UTC)Subject: Как бороться со сменой IP адресов клиентами локальной сетиОригинал: http://www.unixfaq.ru/index.pl?req=qs&id=169 Как бороться со сменой IP адресов клиентами локальной сети? Оглавление Статический ARPСтатический ARP + NOARPPort SecurityТуннелировани...
Использование бездисковых Linux-станций с загрузкой по сети 24-03-2008 Строим сеть грамотно Использование бездисковых Linux-станций с загрузкой по сетиВпервые опубликованно в журнале "Системный администратор" N11/2004Постановка задачиРабота сотрудника отдела автоматизации – это постоянная борьба спроблемами и решение задач, которые попеременно подкидываютпользователи, разработчики эксплуатируемого программного обеспечения ируководство организации. И если два первых направления работы – этопросто «борьба за живучесть кора...
Опыт внедрения OpenVPN 24-03-2008 Строим сеть грамотно Опыт внедрения OpenVPNПочему OpenVPN?На ключевое слово vpn Google откликнулся 17 000 000 ссылок. Это приятно удивило. Немного сузив поиск наткнулся на сайтopenvpn.sourceforge.net. Вводная статья обещала простоту инсталяции и конфигурирования,а главное,- возможность созданиятунеля для большинства наиболее распрастранённых операционных систем, включая Linux,SUN Solaris,*BSD, Mac OS X, w2k, w2k3.Это то что мне нужно... Внешний... |