LinuxForum.Fans
Тема

Шлюз на FreeBSD

Автор: u__________12 28 сообщений 12953 просмотров
#196218

Здравствуйте уважаемые знатоки.

Такая вот ситуация, впервые установил FreeBSD, захотел настроить на нём простейший шлюз, перечитал хэндбук, но ничего в нём по теме не нашёл. Ещё чего-то нашёл, даже ядро пробовал перекомпилить, но ничего не выходит. Не могли бы подсказать самый простой способ создания шлюза на FreeBSD? Желательно с комментариями.

Две сетевухи, одна с DHCP смотрит в инет, вторая в локалку. Карты настроены, локальная с другой машины пингуется. Надо только переброс пакетов устроить... а вот как?

P.S: Извините, я новичок.

#196236

в гугл freebsd+nat В частности для фряхи нужно пересобрать ядро с нужными параметрами и с помощью ipfw (аналог iptables в linux) настроить natd.

#196240

подгрузи pf модулем
echo 'gateway_enable="YES"' >> /etc/rc.conf
echo 'pf_enable="YES"' >> /etc/rc.conf
echo 'pf_rules="/etc/pf.conf"' >> /etc/rc.conf

touch /etc/pf.conf
ee /etc/pf.conf
скритп примерно такого содержания:
int_if="внутр интерфейс"
ext_if="внешний интерфейс"
net="внутр сеть типа 10.10.0.0/8"

set optimization normal
set fingerprints "/etc/pf.os"
set block-policy drop
set skip on lo0
scrub in all fragment reassemble

nat on $ext_if from $net to any -> ($ext_if)

block in quick on $ext_if inet proto tcp from any to any flags FUP/FUP
block in quick on $ext_if inet proto tcp from any to any flags SF/SFRA
block in quick on $ext_if inet proto tcp from any to any flags /SFRA
block all
pass out keep state
pass inet proto icmp all icmp-type $icmp_types
pass in on $ext_if proto udp from any to any port { 67 68 }
pass in on $int_if
pass in on $ext_if inet proto tcp from any to any port > 49151 keep state

сохраняем его и
shutdown -r now

после перезагрузки должно работать

#196241
--=XliN=-- написал:
в гугл freebsd+nat В частности для фряхи нужно пересобрать ядро с нужными параметрами и с помощью ipfw (аналог iptables в linux) настроить natd.

у него DHCP , с ним корректно работает только pf_nat .
Если статика то проще простого:
в /etc/rc.conf пишем
gateway_enable="YES"
natd_enable="YES"
natd_interface="интернет интерфейс"
firewall_enable="YES"
firewall_type="open"

перезагрузка и усё работает

#196243
sammy написал:
у него DHCP , с ним корректно работает только pf

Да ну брось. ipfw должен норм работать. От куда такая информация? Когда я работал с FreeBSD и раздовал IP клиентам через DHCP с сиськи, то ipfw с этим справлялся на ура. Хотя это давно было, может чего поломали. У меня тогда и до сих пор, но уже без меня, стояла 6.1

#196249

Сам нат ipfw , у меня DHCP , если в firewall_script указать xx0=DHCP , то ничего хорошего, надо через ifconfig смотреть какой ip тебе дали и писать его в правила

#196258
sammy написал:
[quote=--=XliN=--]в гугл freebsd+nat В частности для фряхи нужно пересобрать ядро с нужными параметрами и с помощью ipfw (аналог iptables в linux) настроить natd.

у него DHCP , с ним корректно работает только pf_nat .
Если статика то проще простого:
в /etc/rc.conf пишем
gateway_enable="YES"
natd_enable="YES"
natd_interface="интернет интерфейс"
firewall_enable="YES"
firewall_type="open"

перезагрузка и усё работает[/quote]

делал первым делом, не работает :(

DHCP у меня только на внешней сетевухе, в локалку пока хочу статику.

И ещё плохо что я уже чего-то наделал, будет ли теперь работать....

с iptables Проще было блин.. пишешь откуда и куда и всё. А вообще для форвардинга фаевол обязательно? Только он умеет это делать?

#196264
Сергей В. написал:
[quote=sammy][quote=--=XliN=--]в гугл freebsd+nat В частности для фряхи нужно пересобрать ядро с нужными параметрами и с помощью ipfw (аналог iptables в linux) настроить natd.

у него DHCP , с ним корректно работает только pf_nat .
Если статика то проще простого:
в /etc/rc.conf пишем
gateway_enable="YES"
natd_enable="YES"
natd_interface="интернет интерфейс"
firewall_enable="YES"
firewall_type="open"

перезагрузка и усё работает[/quote]

IPFW NAT c DHCP не работает!(корректно)У тебя на natd_interface - DHCP_client висит!!

делал первым делом, не работает :(



IPFW NAT c DHCP не работает!(корректно)У тебя на natd_interface - DHCP висит!!

DHCP у меня только на внешней сетевухе, в локалку пока хочу статику.

И ещё плохо что я уже чего-то наделал, будет ли теперь работать....

с iptables Проще было блин.. пишешь откуда и куда и всё. А вообще для форвардинга фаевол обязательно? Только он умеет это делать?[/quote]


IPFW NAT c DHCP не работает!(корректно)У тебя на natd_interface - DHCP_client висит!!

#196265

Можно как-нибудь попроще указать системе перебрасывать пакеты из одной сетевой в другую?

#196267
sammy написал:
подгрузи pf модулем
echo 'gateway_enable="YES"' >> /etc/rc.conf
echo 'pf_enable="YES"' >> /etc/rc.conf
echo 'pf_rules="/etc/pf.conf"' >> /etc/rc.conf

touch /etc/pf.conf
ee /etc/pf.conf
скритп примерно такого содержания:
int_if="внутр интерфейс"
ext_if="внешний интерфейс"
net="внутр сеть типа 10.10.0.0/8"

set optimization normal
set fingerprints "/etc/pf.os"
set block-policy drop
set skip on lo0
scrub in all fragment reassemble

nat on $ext_if from $net to any -> ($ext_if)

block in quick on $ext_if inet proto tcp from any to any flags FUP/FUP
block in quick on $ext_if inet proto tcp from any to any flags SF/SFRA
block in quick on $ext_if inet proto tcp from any to any flags /SFRA
block all
pass out keep state
pass inet proto icmp all icmp-type $icmp_types
pass in on $ext_if proto udp from any to any port { 67 68 }
pass in on $int_if
pass in on $ext_if inet proto tcp from any to any port > 49151 keep state

сохраняем его и
shutdown -r now

после перезагрузки должно работать
#196324

что значит [console]set skip on lo0
[/console]

пока не работает :(

#196335

После сего:
1. После запуска системы необходимо делать /etc/netstat
2. Внешняя сетевая карта пингуется с компа в локалке, но внешка не пингуется
3. Вместо "Заданная сеть недоступна" теперь "Превышен интервал..."

#196350

Пересобрал ядро в исходное состояние, теперь ничего не пингуется кроме внехи с BSD..

#196354

[console]kernel has firewall functionality, but firewall rules are not enabled. All ip services are disabled.[/console]

Я так понял он сообщает что ядро имеет функцию фаервола но она не будет работать.. правильно понял?

#196368
Сергей В. написал:
что значит [console]set skip on lo0
[/console]

пока не работает :(

не проверять пакеты идущие на lo
Зачем делать netstart?
проверяй ДНС , попробуй зайти куда нить по IP

попробуй в консоли pfctl -f /etc/pf.conf
макросы правильно указал?
покажи pf.conf


http://www.lissyara.su/articles/openbsd/pf/pf/

#196415
sammy написал:
попробуй в консоли pfctl -f /etc/pf.conf

[console]No ALTQ support in kernel
ALTQ related functions disabled
/etc/pf.conf :18: macro 'icmp_type' not defined
/etc/pf.conf :18: syntax error
pfctl: syntax error in config file: pf rules not loaded[/console]

#196417
Сергей В. написал:
ALTQ related functions disabled
/etc/pf.conf :18: macro 'icmp_type' not defined
/etc/pf.conf :18: syntax error

сделай так:

sammy написал:
ext_if="внешний интерфейс"
net="внутр сеть типа 10.10.0.0/8"

icmp_types="echoreq"

#196425

нашёл ошибку 'icmp_types' вместо 'icmp_type', но это ничего не изменило

sammy написал:
покажи pf.conf

#196426
i2ks написал:
icmp_types="echoreq"

в pf.conf или в rc.conf?

Вот rc.conf

Войдите или зарегистрируйтесь, чтобы ответить.