Перейти до

Проблема с FW / Stargazer


Рекомендованные сообщения

Есть FreeBSD 8.3 amd 64

Ubilling ставился как "FreeBSD 8.3 AMD64 online (KMOD)"

 

Удаленный пк получает инет (+ авторизатор логиниться) только если  закомментировать правила:

 

 

# default block policy
#${FwCMD} add 65533 deny all from table\(2\) to any via
#${FwCMD} add 65534 deny all from any to table\(2\) via em0
#${FwCMD} add 65535 allow all from any to any
 
Но тогда старгейзер до лампочки.
 
если раскомментировать правила то удаленный компьютер не пингует шлюз, авторизатор не конектится.
 
если нажать в настройках юзера "всегда онлайн" то шлюз пингуется но инета нету.
юзер удаленного пк вбит в базу по ип, маку, логину паролю.
 
gw# ipfw -ad list
06000    0       0 nat 1 ip from table(2) to not table(9) via em1
06001 2448  280575 nat 1 ip from any to 10.4.161.1 via em1
12000  648   89598 pipe tablearg ip from table(3) to any via em0 in
12001  482  194228 pipe tablearg ip from any to table(4) via em0 out
65533    9     515 deny ip from table(2) to any via em0
65534    0       0 deny ip from any to table(2) via em0
65535 9915 1174289 allow ip from any to any


gw# ipfw table 9 list
10.4.161.1/32 0

gw# ipfw table 2 list
192.168.0.0/22 0

 

 

 
 
 

 

Ссылка на сообщение
Поделиться на других сайтах

Удаленный пк получает инет (+ авторизатор логиниться) только если  закомментировать правила:

Если у вас самоцель использовать авторизатор для того, чтобы подымать пользователей  (хотя нахрен он нужен, если прибивку по MAC используете?) думаю очевидно, что перед дефолтным полиси, должно быть что-то типа

 

${FwCMD} add 65530 allow all from table\(2\) to 192.168.0.1 via em0
${FwCMD} add 65531 allow all  from 192.168.0.1 to table\(2\) via em0

(допускаю, что stargazer крутиться на 192.168.0.1)

 

 

Удаленный пк получает инет (+ авторизатор логиниться) только если  закомментировать правила:

у вас не net.inet.ip.fw.one_pass: 1 почему-то.

 

Все должно работать "изкоробки" при включенном AlwaysOnline исходя только из наличия правильного MAC.

Відредаговано nightfly
Ссылка на сообщение
Поделиться на других сайтах

 

Удаленный пк получает инет (+ авторизатор логиниться) только если  закомментировать правила:

Если у вас самоцель использовать авторизатор для того, чтобы подымать пользователей  (хотя нахрен он нужен, если прибивку по MAC используете?) думаю очевидно, что перед дефолтным полиси, должно быть что-то типа

 

${FwCMD} add 65530 allow all from table\(2\) to 192.168.0.1 via em0
${FwCMD} add 65531 allow all  from 192.168.0.1 to table\(2\) via em0

(допускаю, что stargazer крутиться на 192.168.0.1)

 

если нажать в настройках юзера "всегда онлайн" то шлюз пингуется но инета нету.

 

Одно из двух - у вас либо не выставлен дефолтраут, вот для этого "10.4.161.1", куда оно там смотрит через em1, либо gateway_enable в рц.конф не включен.

 

 

#!/bin/sh
# firewall command
FwCMD="/sbin/ipfw -q"

${FwCMD} -f flush

# Networks define
${FwCMD} table 2 add 192.168.1.0/22
${FwCMD} table 9 add 10.4.161.1

${fwcmd} add 10 allow icmp from any to any

${fwcmd} add 308 allow udp from any to 192.168.1.1 5555 via em0
${fwcmd} add 309 allow udp from 192.168.1.1 to any via em0

#NAT
${FwCMD} nat 1 config log if em1 reset same_ports
${FwCMD} add 6000 nat 1 ip from table\(2\) to not table\(9\) via em1
${FwCMD} add 6001 nat 1 ip from any to 10.4.161.1 via em1


#Shaper - table 4 download speed, table 3 - upload speed
${FwCMD} add 12001 pipe tablearg ip from any to table\(4\) via em0 out
${FwCMD} add 12000 pipe tablearg ip from table\(3\) to any via em0 in

${FwCMD} add 65530 allow all from table\(2\) to 192.168.1.1 via em0
${FwCMD} add 65531 allow all  from 192.168.1.1 to table\(2\) via em0

# default block policy
${FwCMD} add 65533 deny all from table\(2\) to any via em0
${FwCMD} add 65534 deny all from any to table\(2\) via em0
${FwCMD} add 65535 allow all from any to any

 

 

 

убрал всегда онлайн - залогинелось ..., но пинг только до шлюза - 192.168.1.1 дальше нет(


gw# ipfw table 3 list
192.168.1.10/32 101
gw# ipfw table 4 list
192.168.1.10/32 8101
gw#

Ссылка на сообщение
Поделиться на других сайтах

убрал всегда онлайн - залогинелось ..., но пинг только до шлюза - 192.168.1.1 дальше нет(

да понял уже

 

таки net.inet.ip.fw.one_pass: 1 сделайте. Я понятия не имею почему он у вас в 0 выставлен.

Ссылка на сообщение
Поделиться на других сайтах
gw# sysctl -a | grep ip.fw

net.inet.ip.fw.static_count: 9

net.inet.ip.fw.default_to_accept: 1

net.inet.ip.fw.tables_max: 128

net.inet.ip.fw.default_rule: 65535

net.inet.ip.fw.verbose_limit: 0

net.inet.ip.fw.verbose: 0

net.inet.ip.fw.autoinc_step: 100

net.inet.ip.fw.one_pass: 1

net.inet.ip.fw.enable: 1

net.inet.ip.fw.dyn_keepalive: 1

net.inet.ip.fw.dyn_short_lifetime: 5

net.inet.ip.fw.dyn_udp_lifetime: 10

net.inet.ip.fw.dyn_rst_lifetime: 1

net.inet.ip.fw.dyn_fin_lifetime: 1

net.inet.ip.fw.dyn_syn_lifetime: 20

net.inet.ip.fw.dyn_ack_lifetime: 300

net.inet.ip.fw.dyn_max: 4096

net.inet.ip.fw.dyn_count: 0

net.inet.ip.fw.curr_dyn_buckets: 256

net.inet.ip.fw.dyn_buckets: 256
Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)


ifconfig_em1="inet 10.4.161.1 netmask 255.255.252.0"

ifconfig_em0="inet 192.168.1.1 netmask 255.255.255.0"

defaultrouter="10.4.160.1"
hostname="gw"
gateway_enable="YES"

mysql_enable="YES"
apache22_enable="YES"
sshd_enable="YES"
named_enable="YES"
linux_enable="YES"
dhcpd_enable="YES"
dhcpd_flags="-q"
dhcpd_conf="/usr/local/etc/multinet/dhcpd.conf"
dhcpd_ifaces="em0"

firewall_enable="YES"
firewall_nat_enable="YES"
dummynet_enable="YES"
firewall_script="/etc/firewall.conf"

ntpdate_enable="YES"
ntpdate_flags="ua.pool.ntp.org"

keymap="ua.koi8-u"



gw# ipfw nat 1 show
nat 1: icmp=1, udp=0, tcp=2, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=3

 

Відредаговано ___FiNT___
Ссылка на сообщение
Поделиться на других сайтах

Мда. Все нормально.

 

И так точно не бывает - пакеты прошедшие по рулесам 12000 и 12001, в принципе не могут попадать в 65533 и далее.

10.4.161.1 от юзера я так понимаю тоже не пингается?

Відредаговано nightfly
Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

Мда. Все нормально.


 

И так точно не бывает - пакеты прошедшие по рулесам 12000 и 12001, в принципе не могут попадать в 65533 и далее.

10.4.161.1 от юзера я так понимаю тоже не пингается?



Мда. Все нормально.

 

И так точно не бывает - пакеты прошедшие по рулесам 12000 и 12001, в принципе не могут попадать в 65533 и далее.

10.4.161.1 от юзера я так понимаю тоже не пингается?

так точно

Відредаговано ___FiNT___
Ссылка на сообщение
Поделиться на других сайтах
#ugly hack
${FwCMD} add 12002 allow ip from any to table\(4\) via em0 out
${FwCMD} add 12003 allow ip from table\(3\) to any via em0 in

 

А если сделать попутно так? Хотя по факту pipe сам по себе должен отлично работать как allow при one.pass.

Ссылка на сообщение
Поделиться на других сайтах

 

#ugly hack
${FwCMD} add 12002 allow ip from any to table\(4\) via em0 out
${FwCMD} add 12003 allow ip from table\(3\) to any via em0 in

 

А если сделать попутно так? Хотя по факту pipe сам по себе должен отлично работать как allow при one.pass.

 

 
не сработало
gw# ipfw nat 1 show
nat 1: icmp=1, udp=42, tcp=5, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=48
 
#!/bin/sh
# firewall command
FwCMD="/sbin/ipfw -q"

${FwCMD} -f flush

# Networks define
${FwCMD} table 2 add 192.168.1.0/22
${FwCMD} table 9 add 10.4.161.1

${fwcmd} add 10 allow icmp from any to any

${fwcmd} add 308 allow udp from any to 192.168.1.1 5555 via em0
${fwcmd} add 309 allow udp from 192.168.1.1 to any via em0

#NAT
${FwCMD} nat 1 config log if em1 reset same_ports
${FwCMD} add 6000 nat 1 ip from table\(2\) to not table\(9\) via em1
${FwCMD} add 6001 nat 1 ip from any to 10.4.161.1 via em1

#ugly hack
${FwCMD} add 12002 allow ip from any to table\(4\) via em0 out
${FwCMD} add 12003 allow ip from table\(3\) to any via em0 in

#Shaper - table 4 download speed, table 3 - upload speed
${FwCMD} add 12001 pipe tablearg ip from any to table\(4\) via em0 out
${FwCMD} add 12000 pipe tablearg ip from table\(3\) to any via em0 in

${FwCMD} add 65530 allow all from table\(2\) to 192.168.1.1 via em0
${FwCMD} add 65531 allow all  from 192.168.1.1 to table\(2\) via em0

# default block policy
${FwCMD} add 65533 deny all from table\(2\) to any via em0
${FwCMD} add 65534 deny all from any to table\(2\) via em0
${FwCMD} add 65535 allow all from any to any

 

 

Ссылка на сообщение
Поделиться на других сайтах

Если посмотреть в ipfw show юзера вообще проходят по правилам 12002 и 12003? Я просто реально не вижу причины по которой юзера вообще могут попадать в конечный deny (без него все ведь работает, да?)

 

Сравнил - конфиги практически идентичны моим рабочим. Единственное, что я не использую в продакшне на х64 подгрузку всего модулями - вот единственное отличие. NAS-ы конфигуряться штатным скриптом который перебирает ядро с таким вот конфигом:

 

include GENERIC

ident		UBNAS64

options IPFIREWALL
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_FORWARD
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=50
options IPFIREWALL_NAT
options LIBALIAS
options ROUTETABLES=2
options DUMMYNET
options HZ="1000"

 

 

FreeBSD nas12.ctv 8.3-RELEASE FreeBSD 8.3-RELEASE #0: Tue Nov 13 19:52:08 EET 2012     root@nas12.ctv:/usr/src/sys/amd64/compile/UBNAS64  amd64

Хотя опять же, чем это отличается от

kern.hz="1000"
ipfw_load="YES"
net.inet.ip.fw.default_to_accept="1"
libalias_load="YES"
ipfw_nat_load="YES"
dummynet_load="YES"

воткнутого в loader.conf (за вычетом форварда) и каким местом это может соотноситься с неработающим net.inet.ip.fw.one_pass я даже не представляю.

Відредаговано nightfly
Ссылка на сообщение
Поделиться на других сайтах

Если посмотреть в ipfw show юзера вообще проходят по правилам 12002 и 12003?

нет

 

 

 
gw# ipfw show
06000    0      0 nat 1 ip from table(2) to not table(9) via em1
06001  878  85147 nat 1 ip from any to 10.4.161.1 via em1
12000   16   1694 pipe tablearg ip from table(3) to any via em0 in
12001   16   4795 pipe tablearg ip from any to table(4) via em0 out
12002    0      0 allow ip from any to table(4) via em0 out
12003    0      0 allow ip from table(3) to any via em0 in
65530   20   1331 allow ip from table(2) to 192.168.1.1 via em0
65531   19   3935 allow ip from 192.168.1.1 to table(2) via em0
65533   21   7008 deny ip from table(2) to any via em0
65534    0      0 deny ip from any to table(2) via em0
65535 1201 216786 allow ip from any to any
Ссылка на сообщение
Поделиться на других сайтах

Сдаюсь. Такого точно не бывает. Называется найдите 10 отличий.

 

06000 2326315286 886610211516 nat 1 ip from table(2) to not table(9) via igb1
06001 3378718348 3947554627589 nat 1 ip from any to x.x.x.x via igb1
12000 2337453327 891723818035 pipe tablearg ip from table(3) to any via igb0 in
12001 3293690279 3937711958522 pipe tablearg ip from any to table(4) via igb0 out
65533 16082980 2266951448 deny ip from table(2) to any via igb0
65534 21 1544 deny ip from any to table(2) via igb0
65535 11015356 4924658299 allow ip from any to any

 

Судя по всему пакеты ваших пользователей успешно проходят по pipe (который allow), после чего по allow (который тоже allow!) после чего спокойно попадают в deny на  65533, и при этом их даже не волнует 12000. Либо они попросту не долетают до em1 но этого тоже не может быть по понятным причинам - если без deny в конце все дышит.

 

Все что могу посоветовать на данный момент - это попробовать перебрать ядро с конфигом выше и выкинуть нафиг все из loader.conf.

Попробовать повторить вашу конфигурацию и проверить "мистический запор" смогу только с утра.

Відредаговано nightfly
Ссылка на сообщение
Поделиться на других сайтах

Если посмотреть в ipfw show юзера вообще проходят по правилам 12002 и 12003? Я просто реально не вижу причины по которой юзера вообще могут попадать в конечный deny (без него все ведь работает, да?)

 

Сравнил - конфиги практически идентичны моим рабочим. Единственное, что я не использую в продакшне на х64 подгрузку всего модулями - вот единственное отличие. NAS-ы конфигуряться штатным скриптом который перебирает ядро с таким вот конфигом:

 

include GENERIC

ident		UBNAS64

options IPFIREWALL
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_FORWARD
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=50
options IPFIREWALL_NAT
options LIBALIAS
options ROUTETABLES=2
options DUMMYNET
options HZ="1000"

 

 

FreeBSD nas12.ctv 8.3-RELEASE FreeBSD 8.3-RELEASE #0: Tue Nov 13 19:52:08 EET 2012     root@nas12.ctv:/usr/src/sys/amd64/compile/UBNAS64  amd64

Хотя опять же, чем это отличается от

kern.hz="1000"
ipfw_load="YES"
net.inet.ip.fw.default_to_accept="1"
libalias_load="YES"
ipfw_nat_load="YES"
dummynet_load="YES"

воткнутого в loader.conf (за вычетом форварда) и каким местом это может соотноситься с неработающим net.inet.ip.fw.one_pass я даже не представляю.

 

Спасибо, тогда переустановлю по новой и пересоберу ядро...,а там видно будет)

Ссылка на сообщение
Поделиться на других сайтах

Спасибо, тогда переустановлю по новой и пересоберу ядро...,а там видно будет)

не-не-не, какое там переустановлю!

 

Просто берете и делаете:

 

cd /sys/amd64/conf/ &&  config UBNAS64 && cd ../compile/UBNAS64 && make cleandepend && make depend && make && make install && echo > /boot/loader.conf

предварительно положив в /sys/amd64/conf/ файло UBNAS64 с содержанием см. выше.

Ссылка на сообщение
Поделиться на других сайтах

Чисто из любопытства более-менее повторил вашу топологию на виртуалках.
Поставился с нуля на 8.2 i386 offline KMOD. Все работает практически из коробки.
 
В rc.conf никакой магии:

gateway_enable="YES"
hostname="test.loc"
ifconfig_em0="DHCP"
ifconfig_em1="inet 192.168.56.2 netmask 255.255.255.0"
ifconfig_em2="inet 192.168.1.1 netmask 255.255.252.0"
inetd_enable="YES"
keymap="ua.koi8-u"
sshd_enable="YES"
# ====== added by UBinstaller ====
#all needed services
mysql_enable="YES"
apache22_enable="YES"
dhcpd_enable="YES"
dhcpd_flags="-q"
dhcpd_conf="/usr/local/etc/multinet/dhcpd.conf"
dhcpd_ifaces="em2"
#=========
#access/shape/nat
firewall_enable="YES"
firewall_nat_enable="YES"
dummynet_enable="YES"
firewall_script="/etc/firewall.conf"
# ==========


Как впрочем и в firewall.conf:
#!/bin/sh
# firewall command
FwCMD="/sbin/ipfw -q"
${FwCMD} -f flush
# Networks define
${FwCMD} table 2 add 192.168.0.0/22
${FwCMD} table 9 add 10.0.2.15
#NAT
${FwCMD} nat 1 config log if em0 reset same_ports
${FwCMD} add 6000 nat 1 ip from table\(2\) to not table\(9\) via em0
${FwCMD} add 6001 nat 1 ip from any to 10.0.2.15 via em0
#Shaper - table 4 download speed, table 3 - upload speed
${FwCMD} add 12001 pipe tablearg ip from any to table\(4\) via em2 out
${FwCMD} add 12000 pipe tablearg ip from table\(3\) to any via em2 in
# default block policy
${FwCMD} add 65533 deny all from table\(2\) to any via em2
${FwCMD} add 65534 deny all from any to table\(2\) via em2
${FwCMD} add 65535 allow all from any to any



Базовый сетап, чтобы изобразить первого абонента в виде 192.168.1.10:
post-4093-0-40667500-1360563076_thumb.png
 
Пришлось чуть подровнять дефолтраут, изза того, что {ROUTERS} по умолчанию смотрит на начальную айпишку+1:
post-4093-0-59929700-1360563097_thumb.png
 
Ну и как водиться у абонента все работает сразу после регистрации:
 
test# ipfw table 3 list192.168.1.10/32 102
test# ipfw show06000 86 6201 nat 1 ip from table(2) to not table(9) via em006001 173 241667 nat 1 ip from any to 10.0.2.15 via em012000 86 6201 pipe tablearg ip from table(3) to any via em2 in12001 173 241667 pipe tablearg ip from any to table(4) via em2 out65533 0 0 deny ip from table(2) to any via em265534 0 0 deny ip from any to table(2) via em265535 90 8992 allow ip from any to any
test#
Ссылка на сообщение
Поделиться на других сайтах

Психанул  :mellow:   - поставил с нуля FreeBSD 8.3 amd64 , тот-же Ubilling ставился как "FreeBSD 8.3 AMD64 online (KMOD)" , скопипастил все конфиги с прошлой сборки, добавил юзера, NAS,... - заработало

Единственное в фаерволе пришлось дописать:

 

${FwCMD} add 65530 allow all from table\(2\) to 192.168.1.1 via em0
${FwCMD} add 65531 allow all  from 192.168.1.1 to table\(2\) via em0
 
gw# ipfw show
06000 346  24048 nat 1 ip from table(2) to not table(9) via em1
06001 636  73201 nat 1 ip from any to 10.4.161.1 via em1
12000 408  34576 pipe tablearg ip from table(3) to any via em0 in
12001 364  27659 pipe tablearg ip from any to table(4) via em0 out
65530  42   4760 allow ip from table(2) to 192.168.1.1 via em0
65531  34   5600 allow ip from 192.168.1.1 to table(2) via em0
65533  50   4020 deny ip from table(2) to any via em0
65534   0      0 deny ip from any to table(2) via em0
65535 404 136557 allow ip from any to any

 

 

Ссылка на сообщение
Поделиться на других сайтах

Единственное в фаерволе пришлось дописать:

ну это понятно

 

заработало

блин, ну нельзя же так - мну почти до истерики довели, уже собрался тестовую ферму собирать чтобы повторить "мистический" баг :D

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

 

Единственное в фаерволе пришлось дописать:

ну это понятно

 

>>>>заработало

блин, ну нельзя же так - мну почти до истерики довели, уже собрался тестовую ферму собирать чтобы повторить "мистический" баг :D

 

 

Спасибо, за поддержку, не люблю магические запоры...

А можно пронатить юзеру его ext ip to int ip правилом? до этого натилось natd, и там он грузил проц до 99%...можно обойтись как-то без natd?

Відредаговано ___FiNT___
Ссылка на сообщение
Поделиться на других сайтах

 

блин, ну нельзя же так - мну почти до истерики довели, уже собрался тестовую ферму собирать чтобы повторить "мистический" баг :D

 

 

 

А ви поставте пару змінних типу

 

 

net.link.ether.ipfw=1
net.link.bridge.ipfw=1

 

містики зразу ще на порядок більше стане  ;)

Ссылка на сообщение
Поделиться на других сайтах

 

net.link.ether.ipfw

мсьє знають толк у збоченнях :D

 

у мене могло стоять 

 

#security.bsd.see_other_uids=0
net.inet.ip.fw.one_pass=1
net.inet.ip.fastforwarding=1
net.inet.tcp.nolocaltimewait=1
net.inet.ip.portrange.randomized=0  

 

 

Спасибо, за поддержку, не люблю магические запоры...

А можно пронатить юзеру его ext ip to int ip правилом? до этого натилось natd, и там он грузил проц до 99%...можно обойтись как-то без natd?

Ссылка на сообщение
Поделиться на других сайтах

А можно пронатить юзеру его ext ip to int ip правилом? до этого

натилось natd, и там он грузил проц до 99%...можно обойтись как-то без

natd?

natd - уже не просто юзерспейсный труп, он уже и попахивать начал.

Как-то так: http://www.lissyara.su/articles/freebsd/tuning/ipfw_nat/

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...