Биллинговая система Nodeny
02 Мая 2024, 21:05:47 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2 3
  Печать  
Автор Тема: ping: sendto: Permission denied  (Прочитано 15143 раз)
evp
NoDeny
Постоялец
*

Карма: -6
Offline Offline

Сообщений: 113


Просмотр профиля
« : 08 Июля 2010, 04:45:02 »

Сразу после загрузки системы (FreeBSD 8.0-RELEASE-p3) при попытке пинга внешнего ресурса имеем вот такое:

# ipfw show
00050  53   4725 allow tcp from any to me dst-port 22
00051  43   7068 allow tcp from me 22 to any
00100   0      0 allow ip from any to any via lo0
00105 690 214283 allow ip from any to any via rl0
00110  65   4896 nat 1 ip from any to any via nfe0
00120   0      0 deny ip from any to any
65535   0      0 deny ip from any to any
# ping 217.69.128.43
PING 217.69.128.43 (217.69.128.43): 56 data bytes
ping: sendto: Permission denied
ping: sendto: Permission denied
ping: sendto: Permission denied

^C
--- 217.69.128.43 ping statistics ---
3 packets transmitted, 0 packets received, 100.0% packet loss

Однако после рестарта ipfw все нормализуется:

# /etc/rc.d/ipfw restart
net.inet.ip.fw.enable: 1 -> 0
Flushed all rules.
00050 allow tcp from any to me dst-port 22
00051 allow tcp from me 22 to any
00100 allow ip from any to any via lo0
00105 allow ip from any to any via rl0
ipfw nat 1 config if nfe0 same_ports reset
00110 nat 1 ip from any to any via nfe0
00120 deny ip from any to any
Firewall rules loaded.
# ipfw show
00050   8   528 allow tcp from any to me dst-port 22
00051   5   556 allow tcp from me 22 to any
00100   0     0 allow ip from any to any via lo0
00105 240 76918 allow ip from any to any via rl0
00110  23  1316 nat 1 ip from any to any via nfe0
00120   0     0 deny ip from any to any
65535   0     0 deny ip from any to any
# ping 217.69.128.43
PING 217.69.128.43 (217.69.128.43): 56 data bytes
64 bytes from 217.69.128.43: icmp_seq=0 ttl=116 time=63.717 ms
64 bytes from 217.69.128.43: icmp_seq=1 ttl=116 time=63.448 ms
64 bytes from 217.69.128.43: icmp_seq=2 ttl=116 time=63.548 ms
64 bytes from 217.69.128.43: icmp_seq=3 ttl=116 time=63.570 ms

^C
--- 217.69.128.43 ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 63.448/63.571/63.717/0.096 ms
#

В чем может быть проблема? Как я понимаю, сообщение ping: sendto: Permission denied генерирует фаерволл. Но после его рестарта, как я вижу, набор правил не меняется, а тем не менее трафик уже не блокируется.

Ядро скомпилировано с опциями:
options         IPFIREWALL
options         IPDIVERT
options         IPFIREWALL_FORWARD
options         DUMMYNET
options         ROUTETABLES=16
options         IPFIREWALL_NAT
options         LIBALIAS

File:rc.firewall

Код:
#!/bin/sh -
f='/sbin/ipfw'

ifWAN='nfe0'
ifLAN='rl0'

${f} -f flush

#${f} add 10 allow ip from any to any

${f} add 50 allow tcp from any to me 22
${f} add 51 allow tcp from me 22 to any

${f} add 100 allow ip from any to any via lo0
${f} add 105 allow ip from any to any via ${ifLAN}

${f} nat 1 config if ${ifWAN} reset same_ports
${f} add 110 nat 1 ip from any to any via ${ifWAN}
${f} add 120 deny all from any to any

File:rc.conf      

Код:
mousechar_start="3"
moused_type="NO"
moused_enable="NO"
saver="blank"
font8x8="cp1251-8x8"
font8x14="cp1251-8x14"
font8x16="cp1251-8x16"
scrnmap="koi8-r2cp866"
keyrate="fast"
keymap="ru.koi8-r"

hostname="mtc.test.local"
gateway_enable="YES"

ifconfig_nfe0="DHCP"
ifconfig_rl0="inet 192.168.47.1  netmask 255.255.255.0"

sshd_enable="YES"
firewall_enable="YES"
ntpd_enable="YES"
inetd_enable="NO"
#named_enable="YES"

fsck_y_enable="YES"
background_fsck="NO"
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #1 : 08 Июля 2010, 06:36:20 »

Код:
${f} nat 1 config if ${ifWAN} reset same_ports
${f} add 110 nat 1 ip from any to any via ${ifWAN}
почему from any to any?
Записан
evp
NoDeny
Постоялец
*

Карма: -6
Offline Offline

Сообщений: 113


Просмотр профиля
« Ответ #2 : 08 Июля 2010, 07:08:46 »

Все, что проходит через внешний интерфейс заворачиваем в NAT. А что тут такого? Правила то рабочие. Непонятно только почему они начинают работать только после перезапуска ipfw.
« Последнее редактирование: 08 Июля 2010, 07:11:58 от evp » Записан
evp
NoDeny
Постоялец
*

Карма: -6
Offline Offline

Сообщений: 113


Просмотр профиля
« Ответ #3 : 08 Июля 2010, 07:30:21 »

Вот, что еще удалось выяснить:

# ipfw show
00050   53   4725 allow tcp from any to me dst-port 22
00051   44   7032 allow tcp from me 22 to any
00100    0      0 allow ip from any to any via lo0
00105 1814 452908 allow ip from any to any via rl0
00110   64   8019 nat 1 ip from any to any via nfe0
00120    0      0 deny ip from any to any
65535    0      0 deny ip from any to any
# ping 217.69.128.43
PING 217.69.128.43 (217.69.128.43): 56 data bytes
ping: sendto: Permission denied
ping: sendto: Permission denied

^C
--- 217.69.128.43 ping statistics ---
2 packets transmitted, 0 packets received, 100.0% packet loss
# ipfw nat 1 show config

Тут, по идее, мы должны увидеть конфигурацию nat 1, но ее почему-то нет.

# /etc/rc.d/ipfw restart
net.inet.ip.fw.enable: 1 -> 0
Flushed all rules.
00050 allow tcp from any to me dst-port 22
00051 allow tcp from me 22 to any
00100 allow ip from any to any via lo0
00105 allow ip from any to any via rl0
ipfw nat 1 config if nfe0 same_ports reset
00110 nat 1 ip from any to any via nfe0
00120 deny ip from any to any
Firewall rules loaded.
# ipfw nat 1 show config
ipfw nat 1 config if nfe0 same_ports reset
#

А после перезагрузки ipfw появилась конфигурация nat 1. И, конечно:

# ping 217.69.128.43
PING 217.69.128.43 (217.69.128.43): 56 data bytes
64 bytes from 217.69.128.43: icmp_seq=2 ttl=116 time=63.537 ms
64 bytes from 217.69.128.43: icmp_seq=3 ttl=116 time=63.639 ms
64 bytes from 217.69.128.43: icmp_seq=4 ttl=116 time=63.667 ms

^C
--- 217.69.128.43 ping statistics ---
5 packets transmitted, 3 packets received, 40.0% packet loss
round-trip min/avg/max/stddev = 63.537/63.614/63.667/0.056 ms
#

Получается, что при первоначальной загрузке не читается конфигурация ната? Почему так?
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #4 : 08 Июля 2010, 09:17:05 »

firewall_nat_enable="YES" > /etc/rc.conf
Записан
Aivanzipper
NoDeny
Старожил
*

Карма: 62
Offline Offline

Сообщений: 387


206967443
Просмотр профиля
« Ответ #5 : 08 Июля 2010, 09:21:15 »

allow icmp from any to any
Записан
evp
NoDeny
Постоялец
*

Карма: -6
Offline Offline

Сообщений: 113


Просмотр профиля
« Ответ #6 : 08 Июля 2010, 16:51:50 »

firewall_nat_enable="YES" > /etc/rc.conf
К сожалению, не сработало. ipfw nat 1 show config - по-прежнему пуст.
allow icmp from any to any
Улыбающийся Можно и так, конечно. Но задача вроде как в другом - заставить работать nat при старте системы, а не только после перезагрузки правил ipfw.

Есть еще идеи?
Записан
Maks
NoDeny
Ветеран
*

Карма: 13
Offline Offline

Сообщений: 575


Скажи спасибо - подними карму.

https://t.me/smv https://t.me/smv_wz
Просмотр профиля Email
« Ответ #7 : 08 Июля 2010, 17:11:49 »

Прописать в Фаэрволе
00001  allow any to any  в общем открыть все.
И пересобрать ядро.
У самого такое было, на фре 7.2
Записан

Nodeny общение
https://t.me/nodeny_chat
evp
NoDeny
Постоялец
*

Карма: -6
Offline Offline

Сообщений: 113


Просмотр профиля
« Ответ #8 : 08 Июля 2010, 17:23:39 »

Что значит "пересобрать"? С теми же опциями, или что-то изменить надо? Дело в том, что оно было пересобрано за несколько часов до моего поста.
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #9 : 08 Июля 2010, 17:24:48 »

Прописать в Фаэрволе
00001  allow any to any  в общем открыть все.
И пересобрать ядро.
У самого такое было, на фре 7.2

бред
сказано же нат не стратует.

поковырял чуть исходники
днсп
используй скрипт после поднятия апи
Записан
evp
NoDeny
Постоялец
*

Карма: -6
Offline Offline

Сообщений: 113


Просмотр профиля
« Ответ #10 : 08 Июля 2010, 17:35:39 »

Пересобрал ядро, все по-прежнему.

Использовать скрипт для рестарта ipfw как-то некошерно, хотелось бы, чтобы работало штатно. А что там такого в исходниках, что вы советуете рестартовать скриптом?
« Последнее редактирование: 08 Июля 2010, 17:42:55 от evp » Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #11 : 08 Июля 2010, 18:11:11 »

а может попробовать юзать другой нат? не через ipfw ?

сделай еще rxcsum ifconfig rl0 -rxcsum -tso
« Последнее редактирование: 08 Июля 2010, 18:16:33 от stimels » Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #12 : 08 Июля 2010, 18:30:00 »

Использовать скрипт для рестарта ipfw как-то некошерно, хотелось бы, чтобы работало штатно. А что там такого в исходниках, что вы советуете рестартовать скриптом?
да не надо рестартовать фаер

всего то

ipfw nat 1 config if nfe0 same_ports reset


но тут есть маленький нюанс
католько передернится апи надо перезапускать 

ipfw nat 1 config if nfe0 same_ports reset
Записан
evp
NoDeny
Постоялец
*

Карма: -6
Offline Offline

Сообщений: 113


Просмотр профиля
« Ответ #13 : 08 Июля 2010, 23:25:17 »

а может попробовать юзать другой нат? не через ipfw ?

сделай еще rxcsum ifconfig rl0 -rxcsum -tso
Я понимаю это. Вот тут http://www.lissyara.su/articles/freebsd/tuning/ipfw_nat/#extra_info написано:
Цитировать
- Библиотека libalias, на которой основан ipfw nat, плохо дружит с функциями аппаратного ускорения расчета контрольных сумм и управления потоками, которые доступны на некотроых сетевых адаптерах. Рекомендуется выключать tcp segmentation offloading (TSO), а так же rxcsum на том сетевом адаптере где работает нат (ifconfig em0 -rxcsum -tso).
Но у меня nat как бы работает... В любом случае, отключение этих опций не помогло, а за попытку помочь - спасибо.
Записан
evp
NoDeny
Постоялец
*

Карма: -6
Offline Offline

Сообщений: 113


Просмотр профиля
« Ответ #14 : 08 Июля 2010, 23:30:06 »

да не надо рестартовать фаер

всего то

ipfw nat 1 config if nfe0 same_ports reset
Это, конечно, помогает. Спасибо. Но, хотелось бы понять почему при старте системы эта команда не отрабатывается в rc.firewall, хотя другие правила добавляются. Вроде бы так не предусмотрено создателями Улыбающийся Буду дальше искать косяк. Если будут у кого идеи, заранее благодарен.
Записан
Страниц: [1] 2 3
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!