Подробное руководство по ipfw nat

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Гость
проходил мимо

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение Гость » 2009-10-22 21:48:44

Трафик где то стопорится.
Может упростить задачу ?? Надо всего лишь в локалке раздать полноценный инет на 10 машин с урезанием скорости до 16Кб.
Я даже поставил Unbound, который вроде как работает.

Хостинговая компания 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 nat

Непрочитанное сообщение terminus » 2009-10-22 21:51:10

сорри - это я пифка малость перебрал сегодня :drinks:
вот так правильно:

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

one_pass = 0

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

table 1 add  192.168.1.3/32
table 1 add  192.168.1.25/32
table 1 add  192.168.1.26/32

pipe 1 config bw 16Kbit/s mask src-ip 0xffffffff
pipe 2 config bw 16Kbit/s mask dst-ip 0xffffffff

add 1000 allow ip from table(1) to any via vr0
add 1001 allow ip from any to table(1) via vr0

add 1040 deny ip from any to any via vr0

add 1070 deny ip from any to 172.16.0.0/12 in recv vr1
add 1080 deny ip from 172.16.0.0/12 to any in recv vr1
add 1090 deny ip from any to 10.0.0.0/8 in recv vr1
add 10100 deny ip from 10.0.0.0/8 to any in recv vr1
add 10110 deny ip from any to 169.254.0.0/16 in recv vr1
add 10120 deny ip from 169.254.0.0/16 to any in recv vr1

nat 1 config if vr1 reset same_ports deny_in redirect_port tcp 192.168.1.3:6881
6881 redirect_port udp 192.168.1.3:4444 4444

add 10129 pipe 1 ip from any to any out xmit vr1

add 10130 nat 1 tcp from any to any out xmit vr1 limit src-addr 80
add 10131 allow tcp from any to any out xmit vr1

add 10140 nat 1 ip from any to any out xmit vr1
add 10141 allow all from any to any out xmit vr1

add 10150 nat 1 ip from any to any in recv vr1
add 10151 pipe 2 ip from any to any in recv vr1

add 10160 allow all from any to any

add 65534 deny all from any to any
---

и я еще нашел у себя одну ошибку в 6м примере - там где объясняется движение трафика приходящего из интернета. Сча исправля. Там не будет переходя на nat по check-state так как приходящий из интернета трафик не имеет оригинального IP, а значит в таблице динамических правил соответствия не будет.
Надо подумать как лучше реализовать эту схему...
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

FilosofBeer
ефрейтор
Сообщения: 53
Зарегистрирован: 2009-10-22 21:41:46

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение FilosofBeer » 2009-10-22 21:52:30

ОЙ, два последних поста мои, это я просто забыл Вход выполнить.

FilosofBeer
ефрейтор
Сообщения: 53
Зарегистрирован: 2009-10-22 21:41:46

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение FilosofBeer » 2009-10-22 21:56:26

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

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

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение terminus » 2009-10-22 22:01:06

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

FilosofBeer
ефрейтор
Сообщения: 53
Зарегистрирован: 2009-10-22 21:41:46

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение FilosofBeer » 2009-10-22 22:07:12

Щас проверяю, но с первого раза не пошло, щас исправил net.inet.ip.fw.one_pass=0 на one_pass=0

)))

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

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение terminus » 2009-10-22 22:09:18

Нет, параметр должен быть полным net.inet.ip.fw.one_pass=0, я просто сократил его от лени ;)
---
предпологается что в том конфиге пишуться параметры sysctl выставляемые при запуске системы. Чтобы не перезапускать копм можно на ходу выставить из рутовой консоли:

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

# sysctl net.inet.ip.fw.one_pass=0
Последний раз редактировалось terminus 2009-10-22 22:14:00, всего редактировалось 1 раз.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

FilosofBeer
ефрейтор
Сообщения: 53
Зарегистрирован: 2009-10-22 21:41:46

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение FilosofBeer » 2009-10-22 22:11:54

Может какиенить ещё данные надо для точности ??
А то так не работает. Или может ещё гденить подправить надо.

table 1 add 10.1.1.14/32
table 1 add 10.1.1.15/32
table 1 add 10.1.1.16/32
table 1 add 10.1.1.17/32

pipe 1 config bw 132Kbit/s mask src-ip 0xffffffff
pipe 2 config bw 132Kbit/s mask dst-ip 0xffffffff

add 1000 allow ip from table(1) to any via vr0
add 1001 allow ip from any to table(1) via vr0

add 1040 deny ip from any to any via vr0

add 1070 deny ip from any to 172.16.0.0/12 in recv vr1
add 1080 deny ip from 172.16.0.0/12 to any in recv vr1
#add 1090 deny ip from any to 10.0.0.0/8 in recv vr1
#add 10100 deny ip from 10.0.0.0/8 to any in recv vr1
add 10110 deny ip from any to 169.254.0.0/16 in recv vr1
add 10120 deny ip from 169.254.0.0/16 to any in recv vr1

nat 1 config if vr1 reset same_ports deny_in redirect_port tcp 192.168.1.3:6881
6881 redirect_port udp 192.168.1.3:4444 4444

add 10129 pipe 1 ip from any to any out xmit vr1

add 10130 nat 1 tcp from any to any out xmit vr1 limit src-addr 80
add 10131 allow tcp from any to any out xmit vr1

add 10140 nat 1 ip from any to any out xmit vr1
add 10141 allow all from any to any out xmit vr1

add 10150 nat 1 ip from any to any in recv vr1
add 10151 pipe 2 ip from any to any in recv vr1

add 10160 allow all from any to any

add 65534 deny all from any to any

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

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение terminus » 2009-10-22 22:18:05

оформляйте листинги красиво с использовуанием кнопок [соde] - тут с этим строго...
---
покажите вывод

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

sysctl -a | grep "net.inet.ip.forwarding"
sysctl -a | grep one_pass
ipfw -d show
---

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

FilosofBeer
ефрейтор
Сообщения: 53
Зарегистрирован: 2009-10-22 21:41:46

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение FilosofBeer » 2009-10-22 22:20:50

Если бы я умел то сразу бы так и делал, а учиться и эксперементировать просто некогда.
Вот что у меня поулчается:

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

/usr/home/fill/>sysctl -a | grep "net.inet.ip.forwarding"
net.inet.ip.forwarding: 1
/usr/home/fill/>sysctl -a | grep one_pass
net.inet.ip.fw.one_pass: 0
/usr/home/fill/>ipfw -d show
00100   48   5026 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
01000  778  41815 allow ip from table(1) to any via vr0
01001   49   8002 allow ip from any to table(1) via vr0
01040 1412 118260 deny ip from any to any via vr0
01070    0      0 deny ip from any to 172.16.0.0/12 in recv vr1
01080    0      0 deny ip from 172.16.0.0/12 to any in recv vr1
10110    0      0 deny ip from any to 169.254.0.0/16 in recv vr1
10120    0      0 deny ip from 169.254.0.0/16 to any in recv vr1
65535 1017  51735 deny ip from any to any
/usr/home/fill/>

Я всегда ребучю его после исправлений, а то что то на команду /etc/rc.d/ipfw restart система плохо реагирует.

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

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение terminus » 2009-10-22 22:24:31

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

ipfw -d show
где остальные правила после "deny ip from 169.254.0.0/16 to any in recv vr1"? :smile:

Ищите синтаксическую ошибку в /etc/firewall (или как вы этот файл обозвали где все параметры настройки ipfw пишите?) - параметры настройки ната (nat 1 config if vr1 ...) должны быть все в одну строчку без переносов.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

FilosofBeer
ефрейтор
Сообщения: 53
Зарегистрирован: 2009-10-22 21:41:46

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение FilosofBeer » 2009-10-22 22:25:59

Может с ДНС проблемы какиенить ??
Просто по Примеру 6 все работало и в инет выходило, и закачивало, только видео на страничках не показывало и на Гарену не заходило, поэтому я сделал вывод что ДНС вроде как работает. Покрайне мере пинг на маил.ру идет хорошо.

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

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение terminus » 2009-10-22 22:28:08

Ищите синтаксическую ошибку в /etc/firewall. У вас не обрабатываются настройки начиная со строки

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

nat 1 config if vr1 reset same_ports deny_in redirect_port tcp 192.168.1.3:6881
6881 redirect_port udp 192.168.1.3:4444 4444
проверьте чтобы в ней небыло ошибок и чтобы она была в одну строчку (без переноса как тут после 192.168.1.3:6881)
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

FilosofBeer
ефрейтор
Сообщения: 53
Зарегистрирован: 2009-10-22 21:41:46

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение FilosofBeer » 2009-10-22 22:29:12

Так я выложил постом выше все правила которые есть, больше их нету, и они находятся только в /etc/firewall
А в rc.conf firewall_enable="YES"
firewall_type="/etc/firewall"

FilosofBeer
ефрейтор
Сообщения: 53
Зарегистрирован: 2009-10-22 21:41:46

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение FilosofBeer » 2009-10-22 22:31:54

ДА, в двух строках правило ната было описано, неуглядел. Хотя до этого сам руками писал его и оно было в одну строку, а последний раз из форума скопировал код, а там конец строки и перенос.
)))

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

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение terminus » 2009-10-22 22:34:47

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

FilosofBeer
ефрейтор
Сообщения: 53
Зарегистрирован: 2009-10-22 21:41:46

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение FilosofBeer » 2009-10-22 22:36:58

УУРРАААААА, заработало, завтра буду скорость настраивать, а то что то не такая совсем как выставлена в настройках.
И буду пользователей подключать и проверять работу системы.
А ещё можно сделать проверку на IP+MAC ??? А то начнут щас свой ИП по кругу пускать.

FilosofBeer
ефрейтор
Сообщения: 53
Зарегистрирован: 2009-10-22 21:41:46

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение FilosofBeer » 2009-10-22 22:38:12

Блин, завтра на учёбу с первой пары, а всё хочется сегодня понастроить, пока масть идет.

FilosofBeer
ефрейтор
Сообщения: 53
Зарегистрирован: 2009-10-22 21:41:46

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение FilosofBeer » 2009-10-22 22:40:29

Мдя, скорость померил, показывает нормально, как и выставлялось на 16 Кб.
А вот сайты Mail.ru и Lenta.ru открываются медленее.
И на Гарену не заходит. Это не естьАйс.

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

Re: Подробное руководство по ipfw nat

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

вы можете проверить работу вот такой конфигурации?
Она тоже должна ограничивать количество сессий, но будет делать это красивее

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

table 1 add 10.1.1.14/32
table 1 add 10.1.1.15/32
table 1 add 10.1.1.16/32
table 1 add 10.1.1.17/32

pipe 1 config bw 132Kbit/s mask src-ip 0xffffffff
pipe 2 config bw 132Kbit/s mask dst-ip 0xffffffff

add 999 allow tcp from table(1) to any via vr0 limit src-addr 80
add 1000 allow ip from table(1) to any via vr0
add 1001 allow ip from any to table(1) via vr0

add 1040 deny ip from any to any via vr0

add 1070 deny ip from any to 172.16.0.0/12 in recv vr1
add 1080 deny ip from 172.16.0.0/12 to any in recv vr1
#add 1090 deny ip from any to 10.0.0.0/8 in recv vr1
#add 10100 deny ip from 10.0.0.0/8 to any in recv vr1
add 10110 deny ip from any to 169.254.0.0/16 in recv vr1
add 10120 deny ip from 169.254.0.0/16 to any in recv vr1

nat 1 config if vr1 reset same_ports deny_in redirect_port tcp 192.168.1.3:6881
6881 redirect_port udp 192.168.1.3:4444 4444

add 10129 pipe 1 ip from table(1) to any out xmit vr1
add 10140 nat 1 ip from any to any via vr1
add 10151 pipe 2 ip from any to table(1) in recv vr1

add 10160 allow all from any to any

add 65534 deny all from any to any
ограничения на MAC тоже обойти легко поменяв мак адрес ;-)
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

FilosofBeer
ефрейтор
Сообщения: 53
Зарегистрирован: 2009-10-22 21:41:46

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение FilosofBeer » 2009-10-22 22:51:56

Зато сразу будет видно что МАС меняли и пользовались инетом на другом компе.
А вот если будут менятся ИП то это никак не узнать, только если пользователи будут жаловаться на конфликт ИП адресов.

FilosofBeer
ефрейтор
Сообщения: 53
Зарегистрирован: 2009-10-22 21:41:46

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение FilosofBeer » 2009-10-22 22:53:45

Второй пример не работает.
((

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

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение terminus » 2009-10-22 22:56:27

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

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

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение terminus » 2009-10-22 23:19:46

если есть желание замарачиваться с мак адресами:

sysctl.conf

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

net.link.ether.ipfw=1
net.inet.ip.fw.one_pass=0

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

table 1 add 10.1.1.14/32
table 1 add 10.1.1.15/32
table 1 add 10.1.1.16/32
table 1 add 10.1.1.17/32

pipe 1 config bw 132Kbit/s mask src-ip 0xffffffff
pipe 2 config bw 132Kbit/s mask dst-ip 0xffffffff

add 1 skipto 40000 all from any to any layer2 in
add 1 skipto 999 all from any to any not layer2 in
add 1 skipto 999 all from any to any not layer2 out
add 1 skipto 60000 all from any to any layer2 out

add 999 allow tcp from table(1) to any via vr0 limit src-addr 80
add 1000 allow ip from table(1) to any via vr0
add 1001 allow ip from any to table(1) via vr0

add 1040 deny ip from any to any via vr0

add 1070 deny ip from any to 172.16.0.0/12 in recv vr1
add 1080 deny ip from 172.16.0.0/12 to any in recv vr1
#add 1090 deny ip from any to 10.0.0.0/8 in recv vr1
#add 10100 deny ip from 10.0.0.0/8 to any in recv vr1
add 10110 deny ip from any to 169.254.0.0/16 in recv vr1
add 10120 deny ip from 169.254.0.0/16 to any in recv vr1

nat 1 config if vr1 reset same_ports deny_in redirect_port tcp 192.168.1.3:6881
6881 redirect_port udp 192.168.1.3:4444 4444

add 10129 pipe 1 ip from table(1) to any out xmit vr1
add 10140 nat 1 ip from any to any via vr1
add 10151 pipe 2 ip from any to table(1) in recv vr1

add 10160 allow all from any to any


# mac dst-mac src-mac
# mac any 10:20:30:40:50:60/48
# 10:20:30:40:50:60 is client's mac address
add 40000 allow ip from any to any mac any 10:20:30:40:50:60/48 in layer2 recv vr0
add 40001 allow ip from any to any mac any 10:20:30:40:50:61/48 in layer2 recv vr0
add 40002 allow ip from any to any mac any 10:20:30:40:50:62/48 in layer2 recv vr0
add 40003 allow ip from any to any mac any 10:20:30:40:50:63/48 in layer2 recv vr0

add 50000 deny all from any to any layer2 in recv vr0
add 50001 allow all from any to any layer2 in

add 60000 allow all from any to any layer2 out

add 65533 deny all from any to any
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

FilosofBeer
ефрейтор
Сообщения: 53
Зарегистрирован: 2009-10-22 21:41:46

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение FilosofBeer » 2009-10-23 6:27:13

terminus писал(а):
FilosofBeer писал(а):Второй пример не работает.
((
точно или точно? может сново перенос строки скопировался? ipfw -d show?
Да, точно, вот:

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

/usr/home/fill/>ipfw -d show
00100  54  5296 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
00999 267 31436 allow tcp from table(1) to any via vr0 limit src-addr 80
01000   8  1728 allow ip from table(1) to any via vr0
01001   0     0 allow ip from any to table(1) via vr0
01040 944 77517 deny ip from any to any via vr0
01070   0     0 deny ip from any to 172.16.0.0/12 in recv vr1
01080   0     0 deny ip from 172.16.0.0/12 to any in recv vr1
10110   0     0 deny ip from any to 169.254.0.0/16 in recv vr1
10120   0     0 deny ip from 169.254.0.0/16 to any in recv vr1
10129   0     0 pipe 1 ip from table(1) to any out xmit vr1
10140  23  2208 nat 1 ip from any to any via vr1
10151   0     0 pipe 2 ip from any to table(1) in recv vr1
10160  22  1968 allow ip from any to any
65534   0     0 deny ip from any to any
65535   4   312 deny ip from any to any
## Dynamic rules (4):
00999   0     0 (0s) PARENT 1 tcp 10.1.1.14 0 <-> 0.0.0.0 0
00999   0     0 (0s) PARENT 1 tcp 10.1.1.15 0 <-> 0.0.0.0 0
00999 260 31100 (300s) LIMIT tcp 10.1.1.14 6418 <-> 10.1.1.252 22
/usr/home/fill/>