Подробное руководство по ipfw nat
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: Подробное руководство по ipfw nat
nat из ipfw или natd?
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
Услуги хостинговой компании Host-Food.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/
Тарифы на виртуальные сервера (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/
- Dwolfix
- рядовой
- Сообщения: 28
- Зарегистрирован: 2010-06-02 7:44:38
- Откуда: Орск
- Контактная информация:
Re: Подробное руководство по ipfw nat
Ключевое правило:
На этих настройках не только с ftp проблем не будет, а с любым исходящим запросом на любой порт.
Код: Выделить всё
add 1040 allow ip from any to any via fxp0
Бороться за знания, терзать препятствия, аки волк!
- Dwolfix
- рядовой
- Сообщения: 28
- Зарегистрирован: 2010-06-02 7:44:38
- Откуда: Орск
- Контактная информация:
Re: Подробное руководство по ipfw nat
Используется ядерный нат, после пересборки
Бороться за знания, терзать препятствия, аки волк!
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: Подробное руководство по ipfw nat
все свои правила ipfw покажите, а то телепатия и лечение по фотографии получаются
и что показывает

и что показывает
Код: Выделить всё
sysctl -a | grep one_pass
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
- Dwolfix
- рядовой
- Сообщения: 28
- Зарегистрирован: 2010-06-02 7:44:38
- Откуда: Орск
- Контактная информация:
Re: Подробное руководство по ipfw nat
Код: Выделить всё
ns1# sysctl -a | grep one_pass
net.inet.ip.fw.one_pass: 1
Код: Выделить всё
#!/bin/sh
cmd="/sbin/ipfw -q add"
cmdr="/sbin/ipfw -q"
ks="keep-state"
lan="em0"
wan="rl0"
ovpn="tun0"
trustip="192.168.1.21"
trustnet="192.168.1.0/24"
vpn="10.100.200.0/24"
ftp="20,21,50000-50100"
mailserv="25,110,143,465,993,995"
ipfw -q -f flush
ipfw -f table all flush
$cmd 00500 check-state
#loopback interface
$cmd 00600 allow ip from 127.0.0.0/8 to any via lo0
$cmd 00700 allow ip from any to 127.0.0.0/8 via lo0
$cmd 00710 deny ip from any to 127.0.0.0/8
$cmd 00720 deny ip from 127.0.0.0/8 to any
#Allow all me traffic
$cmd 00800 allow tcp from me to any $ks
$cmd 00900 allow udp from me to any $ks
$cmd 01000 allow icmp from me to any $ks
#Deny bad hosts
/etc/closed.sh
$cmd 01200 deny ip from any to "table(1)" via rl0
$cmd 01300 deny ip from "table(2)" to any via rl0
#Trust IP
$cmd 01400 allow ip from $trustip to me
$cmd 01500 allow ip from me to $trustip
#Reject private network and multicast from WAN
$cmd 01600 deny ip from any to 192.168.0.0/16 in recv $wan
$cmd 01700 deny ip from 192.168.0.0/16 to any in recv $wan
$cmd 01800 deny ip from any to 172.16.0.0/12 in recv $wan
$cmd 01900 deny ip from 172.16.0.0/12 to any in recv $wan
$cmd 02000 deny ip from any to 10.0.0.0/8 in recv $wan
$cmd 02100 deny ip from 10.0.0.0/8 to any in recv $wan
$cmd 02200 deny ip from any to 169.254.0.0/16 in recv $wan
$cmd 02300 deny ip from 169.254.0.0/16 to any in recv $wan
$cmd 02310 deny ip from any to 0.0.0.0/8 in recv $wan
$cmd 02320 deny ip from 0.0.0.0/8 to any in recv $wan
$cmd 02330 deny ip from any to 240.0.0.0/4 in recv $wan
$cmd 02340 deny ip from 240.0.0.0/4 to any in recv $wan
#DNS
$cmd 02400 allow tcp from any to me domain via $wan limit src-addr 30
$cmd 02500 allow udp from any to me domain via $wan limit src-addr 30
$cmd 02510 allow udp from $trustnet to me domain via $lan
$cmd 02520 allow udp from me domain to $trustnet via $lan
#NTP
$cmd 02600 allow udp from $trustnet to me ntp $ks
#Web
$cmd 02800 allow tcp from $trustnet,$vpn to me http $ks
#FTP
$cmd 02900 allow tcp from $trustnet,$vpn to me $ftp $ks
#Mail
$cmd 03000 allow tcp from any to me $mailserv limit src-addr 20
#Webmin
$cmd 03100 allow tcp from $trustnet,$vpn to me 10000 $ks
#OpenVPN
$cmd 03200 allow udp from any to me 1802 limit src-addr 30
###NAT Section
#WEB, MAIL, ICQ
$cmd 03700 allow tcp from $trustnet to any 80,443,8443,25,110,143,993,995,465,587,5190,5222 via $lan
$cmd 03800 allow tcp from any 80,443,8443,25,110,143,993,995,465,587,5190,5222 to $trustnet via $lan
#FTP
$cmd 03900 allow tcp from $trustip,192.168.1.1 1024-65535 to any 20,21,1024-65535 via $lan
$cmd 04000 allow tcp from any 20,21,1024-65535 to $trustip,192.168.1.1 1024-65535 via $lan
#Webmin, SSH, RDP, Radmin
$cmd 04300 allow tcp from $trustnet to any 10000,22,3389,4899 via $lan
$cmd 04400 allow tcp from any 10000,22,3389,4899 to $trustnet via $lan
#Bank1
$cmd 04500 allow tcp from $trustnet to any 3264 via $lan
$cmd 04600 allow tcp from any 3264 to $trustnet via $lan
#Bank2
$cmd 04610 allow tcp from $trustnet to any 9443 via $lan
$cmd 04620 allow tcp from any 9443 to $trustnet via $lan
#Transparent proxy
$cmd 04900 fwd 127.0.0.1:3128 tcp from $trustnet to any 80 via $wan
#NAT
$cmdr nat 1 config if $wan deny_in reset same_ports
$cmd 05000 nat 1 ip from any to any via $wan
$cmd 40000 deny udp from any to any 137,138,139
$cmd 40100 deny tcp from any to any 137,138,139,445,1433
$cmd 50000 deny log ip from any to any
Бороться за знания, терзать препятствия, аки волк!
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: Подробное руководство по ipfw nat
Если у вас прозрачный сквид работает, то может на нем фтп рулить?
Я так понимаю, что вы хотите зарезать порты по-максимуму? В случае с FTP этого добться трудно, ведь фтп создает 2 сесси:
1) командная (клиент:любой_порт <--->> сервер:21)
2.1) данные пассивный режим (клиент:любой_порт <--->> сервер:любой_порт)
2.2) данные активный режим (клиент:любой_порт <<---> сервер:20)
таким образом, предположив, что сервер использует стандартный 21й порт можно запретить коннекты к нему, но не выйдет ловить сессию данных так как для этого нужен анализ пакета (хелпер которого нет в ipfw). Таким образом проше запретить на фаерволе что-то конкретно и оставить остальнок в allow, чем пробовать разрешить только что-то одно, но остальное отключить. С фтп просто не выйдет.
---
если подгрузить alias_ftp.ko и дать allow all from any to any via $lan , то фтп заработает.
Я так понимаю, что вы хотите зарезать порты по-максимуму? В случае с FTP этого добться трудно, ведь фтп создает 2 сесси:
1) командная (клиент:любой_порт <--->> сервер:21)
2.1) данные пассивный режим (клиент:любой_порт <--->> сервер:любой_порт)
2.2) данные активный режим (клиент:любой_порт <<---> сервер:20)
таким образом, предположив, что сервер использует стандартный 21й порт можно запретить коннекты к нему, но не выйдет ловить сессию данных так как для этого нужен анализ пакета (хелпер которого нет в ipfw). Таким образом проше запретить на фаерволе что-то конкретно и оставить остальнок в allow, чем пробовать разрешить только что-то одно, но остальное отключить. С фтп просто не выйдет.
---
если подгрузить alias_ftp.ko и дать allow all from any to any via $lan , то фтп заработает.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
- Dwolfix
- рядовой
- Сообщения: 28
- Зарегистрирован: 2010-06-02 7:44:38
- Откуда: Орск
- Контактная информация:
Re: Подробное руководство по ipfw nat
Собственно это я и хотел узнать - что с фтп не так все просто, и стандартными возможностями ipfw этот вопрос не решить. А делать схему открытой душа не лежит
Тем более, что все остальное работает как нужно. Спасибо за внимание и терпение!

Бороться за знания, терзать препятствия, аки волк!
-
- рядовой
- Сообщения: 34
- Зарегистрирован: 2009-12-21 11:49:15
Re: Подробное руководство по ipfw nat
Может офф...
Хотелось бы услышать мнение опытных товарищей, чем нат ipfw лучше например связки ipfw+ipnat (собранный в ядро). Конф ipnat может прочесть ребенок, все предельно просто, то что конф отдельный - это тоже считаю плюсом. Скорее вопрос в нагрузках, тут и хотелось бы услышать мнение, может нагрузки не держит такие как встроенный в ipfw nat или еще что, но вот правила какие то не читаемые это факт. Однажды настроил фаер и забыл этот конф вообще, конф ipnat редактируется часто и мапинги и редиректы оч удобно.
Хотелось бы услышать мнение опытных товарищей, чем нат ipfw лучше например связки ipfw+ipnat (собранный в ядро). Конф ipnat может прочесть ребенок, все предельно просто, то что конф отдельный - это тоже считаю плюсом. Скорее вопрос в нагрузках, тут и хотелось бы услышать мнение, может нагрузки не держит такие как встроенный в ipfw nat или еще что, но вот правила какие то не читаемые это факт. Однажды настроил фаер и забыл этот конф вообще, конф ipnat редактируется часто и мапинги и редиректы оч удобно.
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: Подробное руководство по ipfw nat
не использовал ipf и ipnat, не знаю.чем нат ipfw лучше например связки ipfw+ipnat (собранный в ядро).
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
-
- рядовой
- Сообщения: 44
- Зарегистрирован: 2010-06-09 8:51:45
Re: Подробное руководство по ipfw nat
Уважаемые коллеги !
Завёл себе второго провайдера, и, как всегда, очень остро встал вопрос с маршрутизацией.
Долго курил маны и серфил по и-нету, и в результате, чтобы не заморачиваться с дивертами, мне предложили использовать "ядерный нат". Система - 8.0-RELEASE FreeBSD. Настроил всё по http://www.lissyara.su/articles/freebsd ... /ipfw_nat/, по варианту 4. Спасибо автору, всё очень познавательно... Но...Всё ходит через дополнительный канал, через основной - не идёт. То ли я зациклился, чесно говоря, мозги немножко плавятся... Но всё по-порядку:
Имеем 3 интерфейса:
vr0 - канал основного провайдера (2 Мбит)
vr1 - канал дополнительного провайдера (10 Мбит)
rl0 - внутренняя сетка 192.168.100.0/24
Итак, в rc.conf имеем:
Далее адаптировал и видоизменил немножко пример 4, указав явно в таблице 0 машину с ИП 192.168.100.10 (она должна пойти по маршруту на основного провайдера, а в таблице 1 - машину с ИП 192.168.100.200 (она должна пойти по маршруту на дополнительного провайдера).
В /etc/firewall имеем:
/usr/local/etc/rc.d/setfib1 сделал именно так, как прописано в статье
Что имеем в итоге:
Поскольку используется SQUID, то через проксю всё ходит, но ходит исключительно через дополнительного провайдера.
На роутере имеем:
И что мне непонятно:
Друзья! Помогите настроить правильно, зациклился я уже....
Направьте на путь истинный....
Завёл себе второго провайдера, и, как всегда, очень остро встал вопрос с маршрутизацией.
Долго курил маны и серфил по и-нету, и в результате, чтобы не заморачиваться с дивертами, мне предложили использовать "ядерный нат". Система - 8.0-RELEASE FreeBSD. Настроил всё по http://www.lissyara.su/articles/freebsd ... /ipfw_nat/, по варианту 4. Спасибо автору, всё очень познавательно... Но...Всё ходит через дополнительный канал, через основной - не идёт. То ли я зациклился, чесно говоря, мозги немножко плавятся... Но всё по-порядку:
Имеем 3 интерфейса:
vr0 - канал основного провайдера (2 Мбит)
vr1 - канал дополнительного провайдера (10 Мбит)
rl0 - внутренняя сетка 192.168.100.0/24
Итак, в rc.conf имеем:
Код: Выделить всё
ifconfig_rl0="inet 192.168.100.8 netmask 255.255.255.0" #Конфигурируем внутренний интерфейс
ifconfig_vr0="inet 194.143.145.26 netmask 255.255.255.248 -rxcsum" #Конфигурируем внешний интерфейс 1
ifconfig_vr1="inet 77.91.152.172 netmask 255.255.255.248 -rxcsum" #Конфигурируем внешний интерфейс 2
hostname="gate.domain.local"
defaultrouter="194.143.145.25"<>#Указываем шлюз по умолчанию (на основного провайдера)
setfib1_enable="YES"
setfib1_defaultroute="77.91.152.169" # Шлюз на дополнительного провайдера
gateway_enable="YES"<-->#Активируем режим пересылки пакетов между интерфейсами
firewall_enable="YES"<-><------>#Активируем Firewall
firewall_quiet="YES"<--><------>#Активируем "тихий" режим Firewall (при загрузке/перезагрузке
firewall_logging="YES"<><------>#Активируем режим журналирования
firewall_script="/etc/firewall" # для setfib
dummynet_enable="YES"
linux_enable="YES"
dnsmasq_enable="YES"
openvpn_enable="YES"
keymap="ua.koi8-u.shift.alt"
sshd_enable="YES"
apache22_enable="YES"
apache22_http_accept_enable="YES"
squid_enable="YES"
squid_fib=1 # squid адаптируем к setfib
mysql_enable="YES"
sams_enable="YES"
vsftpd_enable="YES"
openfire_enable="YES"
samba_enable="YES"
slapd_enable="YES"
## Этот параметр пишите в одну строку без переноса
slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://127.0.0.1/ ldap://192.168.100.8/"'
########
slapd_sockets="/var/run/openldap/ldapi"
local_startup="/usr/local/etc/rc.d"
В /etc/firewall имеем:
Код: Выделить всё
#!/bin/sh
fcmd="/sbin/ipfw -q "
${fcmd} -f flush
${fcmd} -f pipe flush
${fcmd} -f queue flush
${fcmd} table 0 add 192.168.100.10
${fcmd} table 1 add 192.168.100.200
${fcmd} add 1040 setfib 0 ip from any to any in recv rl0
${fcmd} add 1050 setfib 1 ip from table(1) to any in recv rl0
${fcmd} add 1060 allow ip from any to any via rl0
${fcmd} add 1080 deny ip from any to 192.168.0.0/16 in recv vr0
${fcmd} add 1081 deny ip from any to 192.168.0.0/16 in recv vr1
${fcmd} add 1090 deny ip from 192.168.0.0/16 to any in recv vr0
${fcmd} add 1091 deny ip from 192.168.0.0/16 to any in recv vr1
${fcmd} add 10100 deny ip from any to 172.16.0.0/12 in recv vr0
${fcmd} add 10101 deny ip from any to 172.16.0.0/12 in recv vr1
${fcmd} add 10110 deny ip from 172.16.0.0/12 to any in recv vr0
${fcmd} add 10111 deny ip from 172.16.0.0/12 to any in recv vr1
${fcmd} add 10120 deny ip from any to 10.0.0.0/8 in recv vr0
${fcmd} add 10121 deny ip from any to 10.0.0.0/8 in recv vr1
${fcmd} add 10130 deny ip from 10.0.0.0/8 to any in recv vr0
${fcmd} add 10131 deny ip from 10.0.0.0/8 to any in recv vr1
${fcmd} add 10140 deny ip from any to 169.254.0.0/16 in recv vr0
${fcmd} add 10141 deny ip from any to 169.254.0.0/16 in recv vr1
${fcmd} add 10150 deny ip from 169.254.0.0/16 to any in recv vr0
${fcmd} add 10151 deny ip from 169.254.0.0/16 to any in recv vr1
${fcmd} pipe 1 config bw 10Mbit/s queue 60 gred 0.002/10/30/0.1
${fcmd} queue 1 config pipe 1 mask src-ip 0xffffffff queue 60 gred 0.002/10/30/0.1
${fcmd} pipe 2 config bw 10Mbit/s queue 60 gred 0.002/10/30/0.1
${fcmd} queue 2 config pipe 2 mask dst-ip 0xffffffff queue 60 gred 0.002/10/30/0.1
${fcmd} pipe 3 config bw 2Mbit/s queue 60 gred 0.002/10/30/0.1
${fcmd} queue 3 config pipe 3 mask src-ip 0xffffffff queue 60 gred 0.002/10/30/0.1
${fcmd} pipe 4 config bw 2Mbit/s queue 60 gred 0.002/10/30/0.1
${fcmd} queue 4 config pipe 4 mask dst-ip 0xffffffff queue 60 gred 0.002/10/30/0.1
${fcmd} nat 1 config log if vr0 same_ports reset deny_in
${fcmd} nat 2 config log if vr1 same_ports reset deny_in
${fcmd} add 10160 queue 1 ip from any to any out xmit vr0
${fcmd} add 10170 nat 1 ip from any to any via vr0
${fcmd} add 10180 queue 2 ip from any to any in recv vr0
${fcmd} add 10190 queue 3 ip from any to any out xmit vr1
${fcmd} add 10200 nat 2 ip from any to any via vr1
${fcmd} add 10210 queue 4 ip from any to any in recv vr1
${fcmd} add 10220 allow all from any to any
${fcmd} add 65534 deny all from any to any
Что имеем в итоге:
Поскольку используется SQUID, то через проксю всё ходит, но ходит исключительно через дополнительного провайдера.
На роутере имеем:
Код: Выделить всё
# sysctl -a | grep one_pass
net.inet.ip.fw.one_pass: 1
#
Код: Выделить всё
# ipfw table 0 list
192.168.100.10/32 0
#
# ipfw table 1 list
192.168.100.200/32 0
Код: Выделить всё
# setfib -0 netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 194.143.145.25 UGS 0 244 vr0
10.1.0.0/24 10.1.0.2 UGS 0 0 tun0
10.1.0.1 link#5 UHS 0 0 lo0
10.1.0.2 link#5 UH 0 0 tun0
77.91.152.168/29 link#3 U 0 63 vr1
77.91.152.172 link#3 UHS 0 0 lo0
127.0.0.1 link#4 UH 0 17703 lo0
192.168.100.0/24 link#1 U 2 2066 rl0
192.168.100.8 link#1 UHS 0 0 lo0
194.143.145.24/29 link#2 U 0 57 vr0
194.143.145.26 link#2 UHS 0 0 lo0
Internet6:
Destination Gateway Flags Netif Expire
::1 ::1 UH lo0
fe80::%lo0/64 link#4 U lo0
fe80::1%lo0 link#4 UHS lo0
ff01:4::/32 fe80::1%lo0 U lo0
ff02::%lo0/32 fe80::1%lo0 U lo0
#
Код: Выделить всё
# setfib -1 netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 77.91.152.169 UGS 48 84764 vr1
10.1.0.2 link#5 UH 0 0 tun0
77.91.152.168/29 link#3 U 0 0 vr1
127.0.0.1 link#4 UH 0 0 lo0
192.168.100.0/24 link#1 U 4 88319 rl0
194.143.145.24/29 link#2 U 0 0 vr0
Internet6:
Destination Gateway Flags Netif Expire
::1 ::1 UH lo0
fe80::%lo0/64 link#4 U lo0
fe80::1%lo0 link#4 UHS lo0
ff01:4::/32 fe80::1%lo0 U lo0
ff02::%lo0/32 fe80::1%lo0 U lo0
#
Код: Выделить всё
# ipfw show
01040 51873 3842446 setfib 0 ip from any to any in recv rl0
65535 380217 337924537 allow ip from any to any
#
Направьте на путь истинный....
-
- рядовой
- Сообщения: 44
- Зарегистрирован: 2010-06-09 8:51:45
Re: Подробное руководство по ipfw nat
Кстати, ставлю
и с локалки в и-нет выйти нельзя.
Ставлю
через прокси можно выйти (но на дополнительного провайдера.
Выручайте, друзья, всю голову сломал !
Код: Выделить всё
sysctl net.inet.ip.fw.one_pass=0
Ставлю
Код: Выделить всё
sysctl net.inet.ip.fw.one_pass=1
Выручайте, друзья, всю голову сломал !
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: Подробное руководство по ipfw nat
Ну тут ничего не поделать, ведь в rc.conf для сквида прописано через fib использовать второго провайдера - вот он и шлет все через него. А то, что в ipfw для трафика выставляется fib 0Поскольку используется SQUID, то через проксю всё ходит, но ходит исключительно через дополнительного провайдера.
Код: Выделить всё
# ipfw show
01040 51873 3842446 setfib 0 ip from any to any in recv rl0
65535 380217 337924537 allow ip from any to any
#
---
К сожалению, задуманая вами схема не сработает. Дело в том, что, во первых fib можно назначать пакету только на проходе IN. Во вторых так как пакеты уходят в сквид то и fib теги с них удаляются...
Попробуйте реализовать вашу схему на fwd правилах.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
-
- рядовой
- Сообщения: 44
- Зарегистрирован: 2010-06-09 8:51:45
Re: Подробное руководство по ipfw nat
Спасибо.
Значит ли это, что всё придётся делать на двух экземплярах natd и дивертах ?
Значит ли это, что всё придётся делать на двух экземплярах natd и дивертах ?
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: Подробное руководство по ipfw nat
не знаю. скорее уж на двух сквидах...
как можно добиться того чтобы трафик после сквида (когда адрес отрпавителя уже заменен) раскидывать по разным линкам? как идентифицировать отправителя?
как можно добиться того чтобы трафик после сквида (когда адрес отрпавителя уже заменен) раскидывать по разным линкам? как идентифицировать отправителя?
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
-
- рядовой
- Сообщения: 44
- Зарегистрирован: 2010-06-09 8:51:45
Re: Подробное руководство по ipfw nat
Афикеть !!!
А кто-нибудь делал такое ?
Мож, почитать где-то можно об этом?
В смысле, 2 провайдера и сквид ?
А кто-нибудь делал такое ?
Мож, почитать где-то можно об этом?
В смысле, 2 провайдера и сквид ?
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: Подробное руководство по ipfw nat
запустите второго сквида в джайле и с помощью ipfw fwd пересылайте трафик на него, когда надо какого-то юзера выводить через другого провайдера. какие еще могут быть варианты? средствами сквида селективную пересылку между несколькими провайдерами для разных ACL не сделать...
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
-
- ефрейтор
- Сообщения: 57
- Зарегистрирован: 2010-05-01 21:27:02
Re: Подробное руководство по ipfw nat
извините
что лезу без очериди я прочёл стр1-3
у меня не работает
нат с нового года
конфиг самый простой
ипри этом пропадает интернет на сервере и по ssh не достучаться
и что этo за пораметр config
пример
#add nat 123 config ip 192.168.10.68 log
--------------------------------------------------------------
надо росскаментить эту строку все золеттало так что такое config
что лезу без очериди я прочёл стр1-3
у меня не работает

конфиг самый простой
Код: Выделить всё
00100 196 13120 nat 123 ip from 192.168.137.0/24 to any
00200 37 1968 nat 123 ip from any to 192.168.10.68
65535 278 18015 allow ip from any to any
[root@serv ~]#
и что этo за пораметр config
пример
#add nat 123 config ip 192.168.10.68 log
--------------------------------------------------------------
надо росскаментить эту строку все золеттало так что такое config
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: Подробное руководство по ipfw nat
Код: Выделить всё
ipfw nat 123 config ip 192.168.10.68
Код: Выделить всё
ipfw add nat 123 ip from any to any via fxp0
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
-
- рядовой
- Сообщения: 10
- Зарегистрирован: 2010-06-02 13:29:50
Re: Подробное руководство по ipfw nat
Доброго времени суток.
Может не совсем в ту тему, но простите великодушно
, потому как уже сломал голову.
Итак, что есть:
комп, freebsd 8.0, работает как шлюз для небольшой офисной сети.
stge0 - провайдер, статический айпи
stge1 - внутрисеть.
Построил nat по статье многоуважаемого terminus'a (пример 1).
вывод ipfw show:
трафик на внешний мир нормально бегает, почту они получают себе, по одноклассникам шарятся.
поверх всего этого счастья поднят mpd5
конфиг mpd5:
Теперь собственно в чем трабла:
При подключении через vpn пингуется шлюз, работает доступ к инету, и тд. Но! из всей внутрисети пингуется аж 2 принтера hp laserjet p2015n. Почему, ума не приложу. Адреса принтеров 10.0.0.26 и 10.0.0.27. Компы которые не пингуются 10.0.0.5, 10.0.0.200, 10.0.0.35 и тд.
Может не совсем в ту тему, но простите великодушно

Итак, что есть:
комп, freebsd 8.0, работает как шлюз для небольшой офисной сети.
stge0 - провайдер, статический айпи
stge1 - внутрисеть.
Построил nat по статье многоуважаемого terminus'a (пример 1).
Код: Выделить всё
ipfw nat 1 config log if stge0 same_ports reset deny_in
Код: Выделить всё
00100 0 0 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 812633 525945834 allow ip from any to any via stge1
02050 4 176 deny ip from any to 192.168.0.0/16 in recv stge0
02060 25 7397 deny ip from 192.168.0.0/16 to any in recv stge0
02070 0 0 deny ip from any to 172.16.0.0/12 in recv stge0
02080 13 507 deny ip from 172.16.0.0/12 to any in recv stge0
02090 0 0 deny ip from any to 169.254.0.0/16 in recv stge0
02100 0 0 deny ip from 169.254.0.0/16 to any in recv stge0
03000 6827 471711 allow ip from any to me dst-port 22
03010 0 0 allow ip from me to any dst-port 22
03030 0 0 allow ip from any to any dst-port 389
03050 250 15808 allow tcp from any to me in via stge0 dst-port 1723
10130 1669489 846942826 nat 1 ip from any to any via stge0
20000 222705 93311053 allow ip from any to any
65535 2225 139066 deny ip from any to any

поверх всего этого счастья поднят mpd5
конфиг mpd5:
Код: Выделить всё
startup:
# configure mpd users
set user admin xxxxxxxxxx admin
# configure the console
set console self 127.0.0.1 5005
set console open
# configure the web server
set web self 127.0.0.1 5006
set web open
default:
load pptp_server
igat
igat:
nev -i ng0 igat igat
set ipcp ranges 10.0.0.1/32 10.0.0.210
load pptp_server
pptp_server:
set ippool add poolsat 10.0.0.210 10.0.0.220
create bundle template B
set iface enable proxy-arp
set iface idle 0
set iface enable tcpmssfix
set ipcp yes vjcomp
#set ipcp ranges 10.0.0.0/24 ippool poolsat
set ipcp dns 10.0.0.1
# Enable Microsoft Point-to-Point encryption (MPPE)
set bundle enable compression
set ccp yes mppc
create link template L pptp
set link enable multilink
set link yes acfcomp protocomp
set link action bundle B
set link no pap chap
set link enable chap
set link enable chap-msv1
set link enable chap-msv2
set link mtu 1460
set link keep-alive 10 75
# Configure PPTP and open link
set pptp self xx.xx.xx.xx
set link enable incoming
При подключении через vpn пингуется шлюз, работает доступ к инету, и тд. Но! из всей внутрисети пингуется аж 2 принтера hp laserjet p2015n. Почему, ума не приложу. Адреса принтеров 10.0.0.26 и 10.0.0.27. Компы которые не пингуются 10.0.0.5, 10.0.0.200, 10.0.0.35 и тд.
-
- рядовой
- Сообщения: 10
- Зарегистрирован: 2010-06-02 13:29:50
Re: Подробное руководство по ipfw nat
Посидел, подумал, решил дописать
после подключения проблемы только у того кто подключился (ноут на windows 7, все файрволлы отключены.). По внутренней сетке всё продолжает отлично бегать.
Создается странное впечатление, что система просто не знает как правильно маршрутизировать трафик между ифасом смотрящим в локальную сетку, и виртуальным ифасом. Но почему тогда принтеры пингуються как родные?

после подключения проблемы только у того кто подключился (ноут на windows 7, все файрволлы отключены.). По внутренней сетке всё продолжает отлично бегать.
Создается странное впечатление, что система просто не знает как правильно маршрутизировать трафик между ифасом смотрящим в локальную сетку, и виртуальным ифасом. Но почему тогда принтеры пингуються как родные?
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: Подробное руководство по ipfw nat
попробуйте запустить хелпер ната для pptp
Код: Выделить всё
kldload alias_pptp.ko
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
-
- рядовой
- Сообщения: 10
- Зарегистрирован: 2010-06-02 13:29:50
Re: Подробное руководство по ipfw nat
Запущен. Это первое что я вычитал в Вашей статье.
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: Подробное руководство по ipfw nat
попробуйте добавить:
и поменять:
Код: Выделить всё
ipfw add 350 reass ip from any to any
Код: Выделить всё
sysctl net.inet.ip.fw.one_pass=0
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
-
- рядовой
- Сообщения: 10
- Зарегистрирован: 2010-06-02 13:29:50
Re: Подробное руководство по ipfw nat
К сожалению не помогло.
Вот только сейчас заметил что шлюз не пингует ноут подключенный через vpn. При этом ноут отлично пингует шлюз.
Добавил пару правил в тестовых целях:
по счетчикам видно что трафик в сеть уходит, а вот назад он не возвращается. А что бы такое написать чтобы он возвращался?)
Вот только сейчас заметил что шлюз не пингует ноут подключенный через vpn. При этом ноут отлично пингует шлюз.
Добавил пару правил в тестовых целях:
Код: Выделить всё
01060 40 2400 allow ip from 10.0.0.210 to 10.0.0.200 via ng0
01070 0 0 allow ip from 10.0.0.210 to 10.0.0.200
01080 0 0 allow ip from any to 10.0.0.210 via stge0
по счетчикам видно что трафик в сеть уходит, а вот назад он не возвращается. А что бы такое написать чтобы он возвращался?)
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: Подробное руководство по ipfw nat
Я не силен в MPD...
покажите tracert с VPN клиента на принтер который пингуется и на что-то что не пингуется.
покажите tracert с VPN клиента на принтер который пингуется и на что-то что не пингуется.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.