Ru-Board.club
← Вернуться в раздел «UNIX»

» Не могу настроить IPFW+ipnat

Автор: latoshin
Дата сообщения: 08.09.2011 08:03
Хочу настроить связку ipfw+ipnat на freebsd 8.2, но ничего не получается. До этого нат работал через ipfw - все работало.

Сейчас имеем:


Код: # cat /etc/rc.conf
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
font8x8="cp866-8x8"
scrnmap="koi8-r2cp866"
keymap="ru.koi8-r"

ifconfig_re0="inet 192.168.0.1 netmask 255.255.255.0"
ifconfig rl0 ether 00:00:00:00:00:00 (тут прописан мак...)
ifconfig_rl0="inet 193.х.х.х netmask 255.255.255.192"
defaultrouter="193.х.х.х"
gateway_enable="YES"
hostname="server.radio.lan"

sshd_enable="YES"

fsck_y_enable="YES"
background_fsck="NO"
ntpdate_enable="YES"
ntpd_enable="YES"

firewall_enable="YES"
firewall_type="open"
#firewall_type="/etc/ipfw"
apache22_enable="YES"
mysql_enable="YES"
postfix_enable="YES"
dovecot_enable="YES"
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

named_enable="YES"
named_program="/usr/sbin/named"
named_flags="-u bind -c /etc/namedb/named.conf"
dhcpd_enable="YES"
dhcpd_conf="/usr/local/etc/dhcpd.conf"
dhcpd_ifaces="re0" # на каком интерфейсе крутится DHCP
mpd_enable="YES"
nmbd_enable="YES"
smbd_enable="YES"
squid_enable="YES"

# IPNat
ipnat_enable="YES"
ipnat_rules="/etc/ipnat.rules"
Автор: bga83
Дата сообщения: 08.09.2011 08:21
тут целый ряд проблем/вопросов:
-
Цитата:
Инет на локальных машинах есть.
как он там есть через прокси или по нату?
- нет ни одного divert-правила, которое бы заворачивало пакеты на нат
- нет ни одного правила, разрешающего исходящие с сервера пакеты. Это надо как минимум чтобы сквид мог запрашивать данные из инета
Автор: latoshin
Дата сообщения: 08.09.2011 08:24

Цитата:
как он там есть через прокси или по нату?


По нату через прокси... в /etc/ipnat.rules там же есть правило
rdr re0 0/0 port 80 -> 127.0.0.1 port 3128

редирект на сквид


Помогите с divert правилами и с разрешающим исходящие с сервера пакеты

какие строки дописать в /etc/ipfw ?



Автор: bga83
Дата сообщения: 08.09.2011 09:08
под рукой нет системы. чтобы четко посмотреть синтаксис.
Но могу посоветовать почитать статьи на лисяре, например http://www.lissyara.su/articles/freebsd/tuning/ipfw/ или http://www.lissyara.su/articles/freebsd/tuning/ipfw_nat/

а чем ядерный нат не устроил? вторая статья как раз с уклоном на него
Автор: latoshin
Дата сообщения: 08.09.2011 10:04

Цитата:
а чем ядерный нат не устроил? вторая статья как раз с уклоном на него


было неудобно делать редиректы )




Добавлено:
Если кто-то знает решение моей проблемы, напишите плиз.
Автор: tankistua
Дата сообщения: 08.09.2011 23:25
где правило, которое разрешает исходящий трафик с сервера через внешний интерфейс ?

З.Ы. представь себя пакетом
Автор: latoshin
Дата сообщения: 09.09.2011 08:05

Цитата:
где правило, которое разрешает исходящий трафик с сервера через внешний интерфейс ?

З.Ы. представь себя пакетом



Вот сейчас включен ядерный нат и вот какие правила в файерволе


Код:
# ipfw show
00100 44602 6315246 allow ip from any to any via lo0
00200 0 0 deny ip from any to 127.0.0.0/8
00300 0 0 deny ip from 127.0.0.0/8 to any
01040 10536696 4972401334 allow ip from any to any via re0
01050 11 3439 deny ip from any to 192.168.0.0/16 in recv rl0
01060 483 32844 deny ip from 192.168.0.0/16 to any in recv rl0
01070 0 0 deny ip from any to 172.16.0.0/12 in recv rl0
01080 0 0 deny ip from 172.16.0.0/12 to any in recv rl0
01090 53988 5696082 deny ip from any to 10.0.0.0/8 in recv rl0
10100 1555 250521 deny ip from 10.0.0.0/8 to any in recv rl0
10110 8071 647564 deny ip from any to 169.254.0.0/16 in recv rl0
10125 355291 37167170 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any dst-port 80 via rl0
10130 4 204 allow tcp from any to me dst-port 1723 setup
10150 480593 48282691 allow tcp from any to any via ng*
10160 6618 1886743 allow udp from any to any via ng*
10170 714 60864 allow tcp from any to me dst-port 14441 in via rl0
10180 17 742 allow icmp from any to me icmptypes 8 in recv rl0
10190 1573 80576 allow tcp from any to me dst-port 25 setup
10210 15 772 allow tcp from any to me dst-port 80 setup
10530 10816205 5020467447 nat 1 ip from any to any via rl0
65534 105 3376 deny ip from any to any
65535 0 0 allow ip from any to any
Автор: bga83
Дата сообщения: 09.09.2011 15:05

Цитата:
02100 allow tcp from any to any established
02200 allow ip from 193.x.x.x to any out xmit rl0

Смотри что получается с этими правилами: исходящие с внешнего интерфейса у тебя разрешены все протоколы, использующие ip. А вот обратно разрешен только протокол tcp. У тебя сервер не сможет получить ответ на DNS-запрос, хотя отправить его сможет потому как при это используется udp.

я в подобных ситуациях tcpdump-ом активно пользуюсь, когда не тривиальные моменты с правилами вылазят

PS посмотри в сторону pf, там правила пишутся значительно проще, хотя и pf не лишен недостатков. В частности он работает в один поток и не параллетится, но на трафике до 150Мбит это не играет значения.
Автор: ASE_DAG
Дата сообщения: 09.09.2011 17:41
latoshin
Вы совершенно напрасно не обратились в профильную тему: «Firewall *nix: iptables, ipfw, pf etc» Сейчас уже поздно, но на будущее имейте, пожалуйста, в виду: создание новой темы на Руборде — случай скорее исключительный.
Автор: tankistua
Дата сообщения: 09.09.2011 21:29
ну оставь одно правило
allow all from any to any

и посмотри будет работать или нет.

Страницы: 1

Предыдущая тема: Музей или базар? История культуры или шмотки?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.