IPFW отбрасывает пакеты для которых есть разрешающие правила, Isuaven, 06-Июн-12, 17:55 [смотреть все]Доброго всем времени суток. Только начинаю изучать основы FreeBSD, поэтому не пинайте сильно ногами плз :) По поиску ничего не смог найти. Суть проблемы такова: По документации http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/firew... практически 1 в 1 скатал файл правил для варианта с NATом, в результате получив такое(лишнее не привожу, дабы избежать оверквотинга):################################################################# #!/bin/sh ipfw -q -f flush sysctl net.inet.ip.fw.autoinc_step=10 cmd="ipfw -q add" skip="skipto 65000" pif="bfe0" ipfw nat 1 config log if $pif reset same_ports deny_in $cmd nat 1 ip from any to any in via $pif $cmd check-state .... $cmd $skip tcp from any to any 80 out via $pif setup keep-state $cmd $skip tcp from any to any 443 out via $pif setup keep-state $cmd $skip tcp from any to any 5938 out via $pif setup keep-state $cmd $skip udp from any to any 5938 out via $pif keep-state .... $cmd 60000 deny log all from any to any out via $pif $cmd 64000 deny log all from any to any $cmd 65000 nat 1 ip from any to any out via $pif $cmd allow ip from any to any ################################################################# И при этом /var/log/security загаживается с первых же секунд и не переставая сообщениями типа: Jun 6 01:50:24 myserver kernel: ipfw: 60000 Deny TCP 10.12.12.5:49584 173.194.32.54:443 out via bfe0 Jun 6 01:50:24 myserver kernel: ipfw: 60000 Deny TCP 10.12.12.5:49592 199.47.218.147:80 out via bfe0 Jun 6 01:50:24 myserver kernel: ipfw: 60000 Deny TCP 10.12.12.5:49588 92.43.21.138:5938 out via bfe0 Jun 6 01:50:25 myserver kernel: ipfw: 60000 Deny TCP 10.12.12.5:49579 199.47.218.147:80 out via bfe0 Jun 6 01:50:25 myserver kernel: ipfw: 60000 Deny TCP 10.12.12.5:49592 199.47.218.147:80 out via bfe0 Где собственно 10.12.12.5 - компьютер в локальной сети, а 173.194.32.54:443 - google 199.47.218.147:80 - dropbox 92.43.21.138:5938 - teamwiever И все 3 сервиса на компьютере работают на первый взгляд нормально(почта, синхронизация файлов, удаленное управление)! Почему такое происходит? Что не так? Заранее спасибо.
|
- IPFW отбрасывает пакеты для которых есть разрешающие правила, Дум Дум, 16:40 , 08-Июн-12 (1)
А ipfw show что показывает?
- IPFW отбрасывает пакеты для которых есть разрешающие правила, Isuaven, 22:04 , 10-Июн-12 (2)
> А ipfw show что показывает?Показывает такое: 00010 1486 376555 allow ip from any to any via xl0 00020 8 760 allow ip from any to any via lo0 00030 508 168327 nat 1 ip from any to any in via bfe0 00040 0 0 check-state 00050 0 0 skipto 65000 tcp from any to any dst-port 53 out via bfe0 setup keep-state 00060 32 2447 skipto 65000 udp from any to any dst-port 53 out via bfe0 keep-state 00070 272 84666 skipto 65000 tcp from any to any dst-port 80 out via bfe0 setup keep-state 00080 44 9875 skipto 65000 tcp from any to any dst-port 443 out via bfe0 setup keep-state 00090 0 0 skipto 65000 tcp from any to any dst-port 25 out via bfe0 setup keep-state 00100 0 0 skipto 65000 tcp from any to any dst-port 110 out via bfe0 setup keep-state 00110 0 0 skipto 65000 tcp from me to any out via bfe0 setup uid root keep-state 00120 0 0 skipto 65000 icmp from any to any out via bfe0 keep-state 00130 0 0 skipto 65000 tcp from any to any dst-port 37 out via bfe0 setup keep-state 00140 0 0 skipto 65000 tcp from any to any dst-port 119 out via bfe0 setup keep-state 00150 0 0 skipto 65000 tcp from any to any dst-port 22 out via bfe0 setup keep-state 00160 0 0 skipto 65000 udp from any to any dst-port 123 out via bfe0 keep-state 00170 0 0 skipto 65000 tcp from any to any dst-port 43 out via bfe0 setup keep-state 00180 21 2352 skipto 65000 udp from any to any dst-port 27000-27030 out via bfe0 keep-state 00190 3 132 skipto 65000 tcp from any to any dst-port 27014-27050 out via bfe0 setup keep-state 00200 0 0 skipto 65000 tcp from any to any dst-port 5938 out via bfe0 setup keep-state 00210 2 248 skipto 65000 udp from any to any dst-port 5938 out via bfe0 keep-state 00220 15 930 skipto 65000 udp from any to any dst-port 7024,7022 out via bfe0 keep-state 00230 0 0 skipto 65000 tcp from any to any dst-port 61620 out via bfe0 setup keep-state 00260 0 0 deny ip from 192.168.0.0/16 to any in via bfe0 00270 0 0 deny ip from 172.16.0.0/12 to any in via bfe0 00280 0 0 deny ip from 10.0.0.0/8 to any in via bfe0 00290 0 0 deny ip from 127.0.0.0/8 to any in via bfe0 00300 0 0 deny ip from 0.0.0.0/8 to any in via bfe0 00310 0 0 deny ip from 169.254.0.0/16 to any in via bfe0 00320 0 0 deny ip from 192.0.2.0/24 to any in via bfe0 00330 0 0 deny ip from 204.152.64.0/23 to any in via bfe0 00340 0 0 deny ip from 224.0.0.0/3 to any in via bfe0 00350 0 0 deny icmp from any to any in via bfe0 00360 0 0 deny tcp from any to any dst-port 113 in via bfe0 00370 0 0 deny tcp from any to any dst-port 137 in via bfe0 00380 0 0 deny tcp from any to any dst-port 138 in via bfe0 00390 0 0 deny tcp from any to any dst-port 139 in via bfe0 00400 0 0 deny tcp from any to any dst-port 81 in via bfe0 00410 0 0 deny ip from any to any frag in via bfe0 00420 0 0 deny tcp from any to any established in via bfe0 00430 0 0 allow tcp from any to me dst-port 22 in via bfe0 setup limit src-addr 2 00440 0 0 allow tcp from any to me dst-port 21 in via bfe0 setup limit src-addr 2 00450 0 0 deny log logamount 100 ip from any to any in via bfe0 60000 272 37522 deny log logamount 10000 ip from any to any out via bfe0 64000 0 0 deny log logamount 100 ip from any to any 65000 389 100650 nat 1 ip from any to any out via bfe0 65010 0 0 allow ip from any to any 65535 3 304 allow ip from any to any ## Dynamic rules (84): 00070 3 662 (15s) STATE tcp 10.12.12.5 60985 <-> 178.33.227.102 80 00180 7 736 (3s) STATE udp 10.12.12.5 56491 <-> 146.66.152.15 27019
- IPFW отбрасывает пакеты для которых есть разрешающие правила, Дум Дум, 09:16 , 13-Июн-12 (3)
- IPFW отбрасывает пакеты для которых есть разрешающие правила, Дум Дум, 09:50 , 13-Июн-12 (4)
Насколько я понимаю, конструкция для tcp 'setup keep-state' запоминает (keep-state) в таблице динамических правил правила для пакетов, имеющих признак (setup) установки соединения. Когда прилетает пакет, такого признака не имеющий, а динамического правила для него уже или еще нет (устарело и сброшено, либо пакет левый), он проскочит до 60000. Это ИМХО.
- IPFW отбрасывает пакеты для которых есть разрешающие правила, gruzzy, 17:42 , 07-Дек-13 (6)
возьми в руки IP-пакет и пройдись по правилам. я так понимаю, xl0 - внутренний интерфейс, bfe0 - внешний идет клиент на гугель-443 к примеру, то есть в начале у нас идет SETUP. входит на интерфейс xl0, попадает на правило 10 - разрешено. пакет уходит на второй круг. теперь он исходящий пакет, должен быть выпнут наружу в соответствии с таблицей маршрутизации. он успешно доходит до правила 80, которое создает динамическую запись и скидывает пакет на правило 65000, там его в НАТ и наружу. теперь клиент шлёт уже не-SETUP пакеты, поэтому правило 80 не сработает, хотя исходящий пакет и попадет на него благодаря check-state. после "провала" на правиле 80 у пакета одна дорога - на правило 60000Если кратко - убери check-state и keep-state. Эти директивы обычно применяют для правильного роутинга пакетов входящих с наружи на внутренние машины, то есть когда у тебя пудличные сервисы за НАТ-ом. Когда ты просто раздаешь интернет для внутренней сети такие динамические правила не приносят никакой пользы, особенно для начинающих. Мой совет тебе как новичку - всегда сначала зарубай левый трафик (типа 192.168.0.0/16 to any in via bfe0), потом приступай к разводке нужного. Так проще понимать.
|