ПРоблемы с IPFW+ NATD

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Tanatos
ефрейтор
Сообщения: 65
Зарегистрирован: 2009-04-29 8:43:20
Откуда: Пермь
Контактная информация:

ПРоблемы с IPFW+ NATD

Непрочитанное сообщение Tanatos » 2009-06-04 10:50:45

Имеется фряха 7.1

через natd в инет не пускает.

опции ядра:

Код: Выделить всё

options		IPFIREWALL
options		IPFIREWALL_VERBOSE
options		IPFIREWALL_VERBOSE_LIMIT=100
options		IPFIREWALL_FORWARD
options		IPDIVERT
options		DUMMYNET
опции /etc/rc.conf

Код: Выделить всё


keymap="ru.koi8-r"
ifconfig_rl0="inet 192.168.1.200 netmask 255.255.255.0"
ifconfig_sk0="inet 192.168.0.3 netmask 255.255.255.0"
defaultrouter="192.168.0.1"
hostname="mxgt.jupitervld.net"
named_enable="YES"
sshd_enable="YES"
firewall_enable="YES"
firewall_script="/usr/local/etc/firewall.conf"
#firewall_type="OPEN"
apache_enable="YES"
mysql_enable="YES"
dovecot_enable="YES"
sendmail_enable="NONE"
mta_start_script=""
sendmail_outbound_enable="NO"
sendmail_submit_enable="NO"
sendmail_msp_queue_enable="NO"
exim_enable="YES"
squid_enable="YES"
sams_enable="YES"

gateway_enable="YES"
natd_enable="YES"
natd_interface="sk0"
natd_flags="-m -u"
файл конфигурации фаервола /usr/local/etc/firewall.conf

Код: Выделить всё

ipfw -q -f flush
cmd="/sbin/ipfw -q add"

LanOut="sk0" #vneshii interface
OutLan="192.168.0.0/16" # vnesh set
IpOut="192.168.0.3" #vnes ip

LanIn="r10"
NetIn="192.168.1.0/24"
IpIn="192.168.1.200"

$cmd 00002 check-state
$cmd 00003 allow ip from any to any via lo0
$cmd 00004 deny ip from any to 127.0.0.0/8
$cmd 00005 deny ip from 127.0.0.0/8 to any

$cmd 00006 deny ip from any to 10.0.0.0/8 in via ${LanOut}
$cmd 00007 deny ip from any to 172.16.0.0/12 in via ${LanOut}
$cmd 00008 deny ip from any to 0.0.0.0/8 in via ${LanOut}

$cmd 00009 deny ip from any to 169.254.0.0/16 in via ${LanOut}
$cmd 00010 deny ip from any to 240.0.0.0/4 in via ${LanOut}
$cmd 00011 deny icmp from any to any frag
$cmd 00012 deny log icmp from any to 255.255.255.255 in via ${LanOut}
$cmd 00013 deny log icmp from any to 255.255.255.255 out via ${LanOut}
#####################################################################
#                                 NAT
$cmd 00130 divert natd ip from ${NetIn} to any via ${LanOut}
$cmd 00140 divert natd ip from any to ${IpOut} in via ${LanOut}
#####################################################################
$cmd 00200 deny ip from 10.0.0.0/8 to any out via ${LanOut}
$cmd 00210 deny ip from 172.16.0.0/12 to any out via ${LanOut}
$cmd 00220 deny ip from 0.0.0.0/8 to any out via ${LanOut}
$cmd 00230 deny ip from 169.254.0.0/16 to any out via ${LanOut}
$cmd 00240 deny ip from 224.0.0.0/4 to any out via ${LanOut}
$cmd 00250 deny ip from 240.0.0.0/4 to any out via ${LanOut}

$cmd 00300 allow tcp from any to any established
$cmd 00310 allow ip from ${IpOut} to any out xmit ${LanOut}
$cmd 00320 allow udp from any 53 to any via ${LanOut}
$cmd 00330 allow udp from any to any 53 via ${LanOut}
$cmd 00340 allow udp from any to any 123 via ${LanOut}
$cmd 00350 allow icmp from any to any icmptypes 0,8,11
$cmd 00360 allow tcp from any to ${IpOut} 25 via ${LanOut}
$cmd 00400 allow tcp from any to any via ${LanIn}
$cmd 00410 allow udp from any to any via ${LanIn}
$cmd 00420 allow icmp from any to any via ${LanIn}
$cmd 00500 allow udp from ${NetIn} to me 53,13,37,123 keep-state
$cmd 00510 allow tcp from ${NetIn} to me 3128,53,3551,22,80,110,25,13,37 setup k
$cmd 00520 allow tcp from ${NetIn} to me 20,21 setup keep-state
$cmd 00600 allow tcp from any to ${IpOut} 49152-65535 via ${LanOut}
Если коменчу скрипт фаервола и указываю тип фаервола OPEN то все работает. А что не так сделал, почему с включенным фаерволом все пашет кроме ната?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Tanatos
ефрейтор
Сообщения: 65
Зарегистрирован: 2009-04-29 8:43:20
Откуда: Пермь
Контактная информация:

Re: ПРоблемы с IPFW+ NATD

Непрочитанное сообщение Tanatos » 2009-06-04 11:52:48

Все разобрался, второй вопрос а можно ли создать переменную указывающую на абсолютный путь к файлу, в котором забиты ip шники?
Например шоб через натъ ходили только с ip указанном в этом файле?

sch
сержант
Сообщения: 282
Зарегистрирован: 2009-05-28 14:36:50
Откуда: Кишинев

Re: ПРоблемы с IPFW+ NATD

Непрочитанное сообщение sch » 2009-06-04 12:08:20

Переменную такую сделать нельзя, но похожая функциональность делается через таблицу и заполнение её из внешнего файла прямо в скрипте ipfw.
Например, файл table2.list формируется автоматически в процессе работы системы (одновременно с добавлением адреса в таблицу 2 во время работы системы этот же адрес записывается в файл, который инициализирует таблицу 2 при перезапуске файервола).
И в коде скрипта (в твоем случае /usr/local/etc/firewall.conf) пишем команды заполнения таблицы из этого файла:

Код: Выделить всё

grep -v ^$ /etc/ipfw/table2.list |
{
while read ip
do
/sbin/ipfw -q table 2 add $ip
done
}
В командах divert указывать уже нужную таблицу:

Код: Выделить всё

$cmd 00130 divert natd ip from table\(2\) to any via ${LanOut}
$cmd 00140 divert natd ip from any to ${IpOut} in via ${LanOut}
И обрати внимание, что у тебя пересекаются диапазоны сетей для OutLan="192.168.0.0/16" и NetIn="192.168.1.0/24" - потенциально можно получить загадочное поведение файервола.

Tanatos
ефрейтор
Сообщения: 65
Зарегистрирован: 2009-04-29 8:43:20
Откуда: Пермь
Контактная информация:

Re: ПРоблемы с IPFW+ NATD

Непрочитанное сообщение Tanatos » 2009-06-04 14:53:28

ПРоблема 3: Нем могу сервак ипользовать в качестве ДНС сервера(настроен как форвардер), причем он сам нормально все находит, но не дает делать dns запросы компьютерам в сети

sch
сержант
Сообщения: 282
Зарегистрирован: 2009-05-28 14:36:50
Откуда: Кишинев

Re: ПРоблемы с IPFW+ NATD

Непрочитанное сообщение sch » 2009-06-04 15:10:53

это штатный named?
a) покажи resolv.conf
b) как выглядят директивы listen-on и forwarders

а вообще, лучше сделай отдельную тему по этому вопросу.

Tanatos
ефрейтор
Сообщения: 65
Зарегистрирован: 2009-04-29 8:43:20
Откуда: Пермь
Контактная информация:

Re: ПРоблемы с IPFW+ NATD

Непрочитанное сообщение Tanatos » 2009-06-05 8:20:51

sch, спаибо вам огромное!