1 (28.09.2011 18:36:19 отредактировано Сергей В.)

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

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

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

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

Спасибо, Вы очень любезны.

2

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

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

3

подгрузи 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

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

У Вас виндавс не глючит?
Да у Вас  РУКИ КРИВЫЕ!

4 (28.09.2011 19:19:01 отредактировано sammy)

--=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"

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

У Вас виндавс не глючит?
Да у Вас  РУКИ КРИВЫЕ!

5

sammy пишет:

у него DHCP , с ним  корректно работает только pf

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

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

6

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

У Вас виндавс не глючит?
Да у Вас  РУКИ КРИВЫЕ!

7 (28.09.2011 19:41:14 отредактировано Сергей В.)

sammy пишет:
--=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"

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

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

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

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

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

Спасибо, Вы очень любезны.

8 (28.09.2011 19:48:28 отредактировано sammy)

Сергей В. пишет:
sammy пишет:
--=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"

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

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

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



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

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

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

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


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

У Вас виндавс не глючит?
Да у Вас  РУКИ КРИВЫЕ!

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

Спасибо, Вы очень любезны.

10

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

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

У Вас виндавс не глючит?
Да у Вас  РУКИ КРИВЫЕ!

что значит

 Консоль:
set skip on lo0

пока не работает ac

Спасибо, Вы очень любезны.

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

Спасибо, Вы очень любезны.

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

Спасибо, Вы очень любезны.

 Консоль:
kernel has firewall functionality, but firewall rules are not enabled. All ip services are disabled.

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

Спасибо, Вы очень любезны.

15 (29.09.2011 07:33:48 отредактировано sammy)

Сергей В. пишет:

что значит

 Консоль:
set skip on lo0

пока не работает ac

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

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


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

У Вас виндавс не глючит?
Да у Вас  РУКИ КРИВЫЕ!
sammy пишет:

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

 Консоль:
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

Спасибо, Вы очень любезны.

17

Сергей В. пишет:

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"

It is good day to die ...
MS Windows 10
Заметки о главном...

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

sammy пишет:

покажи pf.conf

http://s002.radikal.ru/i200/1109/22/52af3f7e2462.jpg

Спасибо, Вы очень любезны.
i2ks пишет:

icmp_types="echoreq"

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

Вот rc.conf
http://s53.radikal.ru/i140/1109/f4/2358d4967e77.jpg

Спасибо, Вы очень любезны.

А вот это http://www.freebsd.org/doc/ru/books/han … -natd.html у меня будет работать?
И после этого ещё необходимо ipfw настраивать?.. или я что-то подобное уже пытался делать..

Спасибо, Вы очень любезны.

21 (29.09.2011 12:39:00 отредактировано i2ks)

Сергей В. пишет:

нашёл ошибку 'icmp_types' вместо 'icmp_type'

oO вниматедбней читайте


P.S. не мучайте себя и участников форума простыми вопросами, которые описаны в handbook, забудьте о FreeBSD это система не для вас.

It is good day to die ...
MS Windows 10
Заметки о главном...
i2ks пишет:

забудьте о FreeBSD это система не для вас

не хорошо... просто не хорошо так людям говорить.
i2ks, уж лучше бы матом или кю обозвать.

для меня, для меня wink
только не сию же минуту.

Спасибо, Вы очень любезны.

natd без фаервола вообще работать будет?

В файле конфигурации ядра должны присутствовать следующие параметры:

options IPFIREWALL
options IPDIVERT
Дополнительно, если это нужно, можно добавить следующее:

options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_VERBOSE
В файле /etc/rc.conf должны быть такие строки:

gateway_enable="YES"
firewall_enable="YES"
firewall_type="OPEN"
natd_enable="YES"
natd_interface="fxp0"
natd_flags=""

вот это

options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_VERBOSE

как я понимаю касается именно ipfw
так?

Спасибо, Вы очень любезны.

24 (29.09.2011 15:23:59 отредактировано sammy)

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

ПОВТОРЯЮ:  IPFW c natd_interface - DHCP_client не работает, потом  пересобери ядро с опциями
device            pf
device            pflog
device            pfsync
options         ALTQ
options         ALTQ_CBQ        # Class Bases Queuing (CBQ)
options         ALTQ_RED        # Random Early Detection (RED)
options         ALTQ_RIO        # RED In/Out
options         ALTQ_HFSC       # Hierarchical Packet Scheduler (HFSC)
options         ALTQ_PRIQ       # Priority Queuing (PRIQ)
options         ALTQ_NOPCC      # Required for SMP build

если включаешь PF отключи IPFW!!
firewall_enable="NO"
natd_enable="NO"

У Вас виндавс не глючит?
Да у Вас  РУКИ КРИВЫЕ!

25

Сергей В. пишет:

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

sammy пишет:

покажи pf.conf

http://s002.radikal.ru/i200/1109/22/52af3f7e2462.jpg

в макросы pf.conf
icmp_types="echoreq"

и в конце pf.conf
pass in on $ext_if inet proto tcp from any to any port > 49151 keep state

включаешь портранж (коннект с пассивн. фтп за nat)

У Вас виндавс не глючит?
Да у Вас  РУКИ КРИВЫЕ!

sammy, спасибо большое, сейчас пересобираю ядро.

Спасибо, Вы очень любезны.

Всем спасибо, всё работает.  sammy, сделал как вы писали, пересобрал ядро,

 Консоль:
#PacketFilter support
device pf
device pflog
device pfsync

#Queuing support (requied by PF)
options ALTQ
options ALTQ_RED
options ALTQ_CBQ
options ALTQ_RIO
options ALTQ_HFSC
options ALTQ_PRIQ
options ALTQ_NOPCC

только pf.conf сделал так


 Консоль:
nat on $ext_if from 192.168.0.0/24 to any -> ($ext_if)

block in on $ext_if all
pass on $int_if all
pass out on $ext_if proto tcp all modulate state flags S/SA
pass out on $ext_if proto { udp, icmp } all keep state

в вашем варианте не работало почему то..

думаю можно помещать в  Faq  smile

---------------------------

вот кстати ещё вопросик, при загрузке системы вижу что Ipfw всёж пытается запуститься.. с какого?! В ядре выключил, в rc.conf выключил,.. откуда он ещё может пытаться стартовать?

Спасибо, Вы очень любезны.

28

рад за Вас , смотреть kldload - ipfw модулем скорей всего грузится, не заморачиваться и в /etc/rc.conf   ipfw_enable="NO"
по pf  http://house.hcn-strela.ru/BSDCert/BSDA-course/apc.html

У Вас виндавс не глючит?
Да у Вас  РУКИ КРИВЫЕ!