[ipfw] FreeBSD 8.0 Kernel NAT

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
MASiK
лейтенант
Сообщения: 625
Зарегистрирован: 2008-09-19 20:09:41
Откуда: Оттуда
Контактная информация:

[ipfw] FreeBSD 8.0 Kernel NAT

Непрочитанное сообщение MASiK » 2010-02-17 22:53:37

Собственно сабж, чё намутили я ХЗ, пытался как всегда дивертом и нетамсом посчитать трафик, а Куй!

freeBSD 8.0

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

#!/bin/sh

. /etc/my.mass

### Flush ALL!
$fw -f flush
$fw -f pipe flush
$fw -f queue flush

### Lan Settings
$fw 170 add allow ip from any to any via lo0
$fw 180 add deny ip from any to 127.0.0.0/8
$fw 190 add deny ip from 127.0.0.0/8 to any

### Nat KERNEL and NETAMS
$fw nat delete 123
$fw nat 123 config if $lw log deny_in reset same_ports

$fw 410 add divert 199 ip from $netin to any out via $lw
$fw add 430 nat 123 ip from $netin to any out via $lw

$fw add 440 nat 123 ip from any to $ipw in via $lw
$fw 450 add divert 199 log ip from any to $netin in via $lw

### ICMP Allow Ping\Trac
$fw 700 add allow ip from any to any established
$fw 710 add allow ip from $ipw to any out xmit $lw
$fw 900 add allow icmp from any to any icmptypes 0,8,11

### Allow Ports
$fw 2010 add allow udp from any 53 to any
$fw 2020 add allow udp from any to any 53
$fw 2030 add allow ip from any to any $ip
$fw 2040 add allow log tcp from any to any $tcp
$fw 2050 add allow udp from any to any $udp
$fw 2060 add allow tcp from any $tcp to any

$fw 60000 add allow tcp from any to any via $ll
$fw 60010 add allow udp from any to any via $ll
$fw 60020 add allow icmp from any to any via $ll

#$fw 65534 add deny ip from any to any

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

 cat /etc/my.mass
fw="/sbin/ipfw"
lw="re0"
ll="rl0"
ipw=`ifconfig $lw | grep "inet " | awk '{print $2}'` # IP внешний
ipl=`ifconfig $ll | grep "inet " | awk '{print $2}'`    # IP внутрь
netin="192.168.1.0/24"
tcp="21, 20, 80, 22, 3306, 20001, 45000-65534, 3000, 445, 139"
udp="10000-20000, 137, 138"
ip="123"

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

cat /sys/i386/conf/kernel1
ident           svn

include         GENERIC

makeoptions     DEBUG=-g

### ethernet options
options         MROUTING
options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=1000
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         IPFIREWALL_FORWARD
options         IPFIREWALL_NAT
options         LIBALIAS
options         IPDIVERT
options         DUMMYNET
options         DEVICE_POLLING
Уже как тока не пробовал, и так и сяк, он после $fw add 430 nat 123 ip from $netin to any out via $lw отдаёт уже Внешний ИП, ваще пипец, нат работает, диверта нет... просто пипец! точно такойже конфиг, на FreeBSD 7.2 всё работает на ура, а тут блин.... я ХЗ даже куда капать, не идут на in пакеты с ip внутренними и всё тут!....

с 7 утра посейчас на работе, могу выражаться не понятно спрашивайте если чё не понятно... я уже как ЗОМБИ!
Самурай

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: [ipfw] FreeBSD 8.0 Kernel NAT

Непрочитанное сообщение terminus » 2010-02-17 22:57:40

номера и очередность правил в выводе

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

ipfw show
соответствуют ожиданиям?
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
MASiK
лейтенант
Сообщения: 625
Зарегистрирован: 2008-09-19 20:09:41
Откуда: Оттуда
Контактная информация:

Re: [ipfw] FreeBSD 8.0 Kernel NAT

Непрочитанное сообщение MASiK » 2010-02-17 22:58:51

terminus писал(а):номера и очередность правил в выводе

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

ipfw show
соответствуют ожиданиям?
Да конечно

тока $fw 450 add divert 199 log ip from any to $netin in via $lw несчитает
Самурай

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: [ipfw] FreeBSD 8.0 Kernel NAT

Непрочитанное сообщение terminus » 2010-02-17 23:00:08

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

$fw 410 add divert 199 ip from $netin to any out via $lw
$fw add 430 nat 123 ip from $netin to any out via $lw

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

$fw 410 add 
$fw add 430
как это работает?
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
MASiK
лейтенант
Сообщения: 625
Зарегистрирован: 2008-09-19 20:09:41
Откуда: Оттуда
Контактная информация:

Re: [ipfw] FreeBSD 8.0 Kernel NAT

Непрочитанное сообщение MASiK » 2010-02-17 23:04:59

разницы нет, что послe add ставить что перед ))) не цепляйтесь к мелочам, я их уже пересмотрел 100 раз....
Самурай

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: [ipfw] FreeBSD 8.0 Kernel NAT

Непрочитанное сообщение terminus » 2010-02-17 23:07:06

Да? Хмм. Незнал. Интересно...

Ну а

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

sysctl -a | grep one_pass
как выставлен?
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

S_Paul
проходил мимо
Сообщения: 9
Зарегистрирован: 2010-02-18 8:18:37
Контактная информация:

Re: [ipfw] FreeBSD 8.0 Kernel NAT

Непрочитанное сообщение S_Paul » 2010-02-18 8:42:19

Здравствуйте, в общем-то присоединяюсь к вопросу(частично), при переходе с 7.2 на 8.0, перестало работать стандартное:

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

 ${ipfw} add divert natd log all from 192.168.0.64/26 to any
 ${ipfw} add divert natd log all from any to 192.168.0.3 via vr0
 ${ipfw} add fwd 192.168.0.2 log all from 192.168.0.3 to any
ping из сети x.x.x.64/26 до 192.168.0.2 идёт, дальше нет, ядро пересобрано с нужными опциями. :st:
что-то изменилось в конфигурировании?

Аватара пользователя
MASiK
лейтенант
Сообщения: 625
Зарегистрирован: 2008-09-19 20:09:41
Откуда: Оттуда
Контактная информация:

Re: [ipfw] FreeBSD 8.0 Kernel NAT

Непрочитанное сообщение MASiK » 2010-02-18 13:01:08

terminus писал(а):Да? Хмм. Незнал. Интересно...

Ну а

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

sysctl -a | grep one_pass
как выставлен?
Ну я же сказал что мелочи уже все пересмотрел...

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

net.inet.ip.fw.one_pass: 1
Тут нужен кто-то кто читает рассылки по 8рке, или Читал
Самурай

Аватара пользователя
MASiK
лейтенант
Сообщения: 625
Зарегистрирован: 2008-09-19 20:09:41
Откуда: Оттуда
Контактная информация:

Re: [ipfw] FreeBSD 8.0 Kernel NAT

Непрочитанное сообщение MASiK » 2010-02-18 13:03:51

S_Paul писал(а):Здравствуйте, в общем-то присоединяюсь к вопросу(частично), при переходе с 7.2 на 8.0, перестало работать стандартное:

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

 ${ipfw} add divert natd log all from 192.168.0.64/26 to any
 ${ipfw} add divert natd log all from any to 192.168.0.3 via vr0
 ${ipfw} add fwd 192.168.0.2 log all from 192.168.0.3 to any
ping из сети x.x.x.64/26 до 192.168.0.2 идёт, дальше нет, ядро пересобрано с нужными опциями. :st:
что-то изменилось в конфигурировании?
Товарисч ))) так и на 7.2 не должно работать ) ФВд должно идти до выхода клиентов из ната, то есть между натом, но в 8рке если это глобальная трабла не будет не чего, так как после 1-го ната (выход) назад идёт уже ИП Белый, серые куда-то пропадают...
Самурай

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: [ipfw] FreeBSD 8.0 Kernel NAT

Непрочитанное сообщение terminus » 2010-02-18 13:04:43

надо выставить

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

one_pass = 0
когда он в 1 то трафик после диверта или ната не возвращается в фаерволл а сразу принимается по allow.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
MASiK
лейтенант
Сообщения: 625
Зарегистрирован: 2008-09-19 20:09:41
Откуда: Оттуда
Контактная информация:

Re: [ipfw] FreeBSD 8.0 Kernel NAT

Непрочитанное сообщение MASiK » 2010-02-18 13:18:10

terminus писал(а):надо выставить

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

one_pass = 0
когда он в 1 то трафик после диверта или ната не возвращается в фаерволл а сразу принимается по allow.
Ой и правдо вы правы, простите моё не вежество )))
sysctl -d net.inet.ip.fw.one_pass
net.inet.ip.fw.one_pass: Only do a single pass through ipfw when using dummynet(4)
Спасибо большое за подсказку, sysctl только не давно начал изучать )
Самурай

Гость
проходил мимо

Re: [ipfw] FreeBSD 8.0 Kernel NAT

Непрочитанное сообщение Гость » 2010-02-18 13:37:58

MASiK писал(а):
S_Paul писал(а):Здравствуйте, в общем-то присоединяюсь к вопросу(частично), при переходе с 7.2 на 8.0, перестало работать стандартное:

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

 ${ipfw} add divert natd log all from 192.168.0.64/26 to any
 ${ipfw} add divert natd log all from any to 192.168.0.3 via vr0
 ${ipfw} add fwd 192.168.0.2 log all from 192.168.0.3 to any
ping из сети x.x.x.64/26 до 192.168.0.2 идёт, дальше нет, ядро пересобрано с нужными опциями. :st:
что-то изменилось в конфигурировании?
Товарисч ))) так и на 7.2 не должно работать ) ФВд должно идти до выхода клиентов из ната, то есть между натом, но в 8рке если это глобальная трабла не будет не чего, так как после 1-го ната (выход) назад идёт уже ИП Белый, серые куда-то пропадают...
скажите товарисч... а как оно тогда работало? честно, вот старый вариант: (там^ я упростил.)

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

 natd -a 192.168.0.3  -p 8888
 ${ipfw} add divert 8888 ip from 192.168.0.64/26 to any
 ${ipfw} add divert 8888 ip from any to 192.168.0.3 via vr0
 ${ipfw} add fwd 192.168.0.2 ip from 192.168.0.3 to any

Аватара пользователя
MASiK
лейтенант
Сообщения: 625
Зарегистрирован: 2008-09-19 20:09:41
Откуда: Оттуда
Контактная информация:

Re: [ipfw] FreeBSD 8.0 Kernel NAT

Непрочитанное сообщение MASiK » 2010-02-18 15:14:59

net.inet.ip.fw.one_pass в 0? ))))

ХЗ как работало, поставьте как я говорил по пробуйте ФВД между натами
Самурай

S_Paul
проходил мимо
Сообщения: 9
Зарегистрирован: 2010-02-18 8:18:37
Контактная информация:

Re: [ipfw] FreeBSD 8.0 Kernel NAT

Непрочитанное сообщение S_Paul » 2010-02-19 7:32:42

MASiK писал(а):net.inet.ip.fw.one_pass в 0? ))))

ХЗ как работало, поставьте как я говорил по пробуйте ФВД между натами
1. net.inet.ip.fw.one_pass 1
2 пробовал, не работает.
я ж говорю, в 7.2 всё было в точности как я вписал выше, работало. может что-то всё-таки поменялось или сломали?
я ей(системе) уже и унитаз принёс и ж.... :st:

S_Paul
проходил мимо
Сообщения: 9
Зарегистрирован: 2010-02-18 8:18:37
Контактная информация:

Re: [ipfw] FreeBSD 8.0 Kernel NAT

Непрочитанное сообщение S_Paul » 2010-02-19 13:26:50

граждане, товарищи, что ж это всё-таки за "вещь" такая , неделю почти ковыряю..

S_Paul
проходил мимо
Сообщения: 9
Зарегистрирован: 2010-02-18 8:18:37
Контактная информация:

Re: [ipfw] FreeBSD 8.0 Kernel NAT

Непрочитанное сообщение S_Paul » 2010-02-22 8:24:15

пробовал выставить

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

sysctl net.inet.ip.fw.one_pass=0
не работает, и стучится всё не по указанному маршруту(192.168.0.2) а в мой defaultroute(192.168.0.101)
неужели нет вариантов?

S_Paul
проходил мимо
Сообщения: 9
Зарегистрирован: 2010-02-18 8:18:37
Контактная информация:

Re: [ipfw] FreeBSD 8.0 Kernel NAT

Непрочитанное сообщение S_Paul » 2010-02-22 15:27:49

вот что в /var/log/security :

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

 ipfw: 510 Divert 8888 ICMP:8.0 192.168.0.116 217.69.128.44 in via fxp0
 ipfw: 510 Divert 8888 ICMP:8.0 192.168.0.116 217.69.128.44 out via fxp0
 ipfw: 610 Forward to 192.168.0.2 ICMP:8.0 192.168.0.3 217.69.128.44 out via fxp0
странно...
Последний раз редактировалось Alex Keda 2010-06-22 10:43:32, всего редактировалось 1 раз.
Причина: Товарищщи, цените чужое время, юзайте кнопочку [code]...

S_Paul
проходил мимо
Сообщения: 9
Зарегистрирован: 2010-02-18 8:18:37
Контактная информация:

Re: [ipfw] FreeBSD 8.0 Kernel NAT

Непрочитанное сообщение S_Paul » 2010-02-25 15:14:16

проблему решил, добавление одной строки в исходники ipfw.
всем "спасибо".

SiG
проходил мимо

Re: [ipfw] FreeBSD 8.0 Kernel NAT

Непрочитанное сообщение SiG » 2010-06-09 2:37:24

Какой строки?
Пожалуйста помогите та же проблема....