1 (10-02-2017 10:36:43 отредактировано pavlar)

Тема: Почему не открывается страница

Я написал скрипт позволяющий проходить с локальной сети наружу только одному MAC адресу

#!/bin/sh -

fwcmd="/sbin/ipfw"
${fwcmd} -f flush
${fwcmd} table all flush
${fwcmd} nat 1 delete

# NETWORK CONNECTIONS
if_inet="igb0"
if_lan="igb1"

# Local
${fwcmd} add allow all from any to any via lo0
${fwcmd} add deny all from any to 127.0.0.0/8
${fwcmd} add deny all from 127.0.0.0/8 to any



# NAT
${fwcmd} nat 1 config if ${if_inet} same_ports reset log
${fwcmd} add nat 1 ip from "table(0)" to any out via ${if_inet}
${fwcmd} add nat 1 ip from any to any in via ${if_inet}

# TABLE (0):
${fwcmd} add allow ip from any to any
${fwcmd} table 0 add 10.44.5.55. #(это ip c нужным mac адресом)

# MAC addresses to alow
# These only take effect if sysctl net.link.ether.ipfw=1
GOOD_MACS_F=" { MAC any 00:1c:c0:f1:cb:c8 }"
GOOD_MACS_T=" { MAC 00:1c:c0:f1:cb:c8 any }"

# Allow the ARP traffic from everyone
${fwcmd} add 4 allow ip from any to any layer2 mac-type arp

# Allow traffic from specific MAC addresses
${fwcmd} add 5 allow ip from any to any $GOOD_MACS_F in recv $if_lan

# Allow traffic to specific MAC addresses
${fwcmd} add 6 allow ip from any to any $GOOD_MACS_T out xmit $if_lan

# Allow all IP-level traffic
${fwcmd} add 7 allow ip from any to any via $if_lan

# Deny all MAC-level traffic
${fwcmd} add 8 deny ip from any to any MAC any  via $if_lan

Пакеты и пинг на нужную страницу проходят но страница не открывается. Почему? Где тормозит IPFW?

ipfw -at show
00004  1161   51570 Mon Jan 30 08:28:59 2017 allow ip from any to any layer2 mac-type 0x0806
00005   791  148912 Mon Jan 30 08:29:00 2017 allow ip from any to any MAC any 00:1c:c0:f1:cb:c8 in recv igb1
00006   400   56502 Mon Jan 30 08:29:00 2017 allow ip from any to any MAC 00:1c:c0:f1:cb:c8 any out xmit igb1
00007 14703 2307557 Mon Jan 30 08:29:00 2017 allow ip from any to any via igb1
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
00400   982  256760 Mon Jan 30 08:28:59 2017 nat 1 ip from table(0) to any out via igb0
00500  1920  316385 Mon Jan 30 08:29:00 2017 nat 1 ip from any to any in via igb0
00600 14455 2237783 Mon Jan 30 08:29:00 2017 allow ip from any to any
65535      0         0                         deny ip from any to any

Сайт  открывается если заменить 1 на 0 в команде sysctl net.link.ether.ipfw=0

Добавлено: 08-02-2017 11:00:44

В обшем мне кажется что включение layer2 и формирует задержку которая не позволяет сайту открываться. (идёт отлуп по таймауту) . Так что я поставил промежуточный компьютер с Debian и там с помощью iptables (вернее firewalld , который управляет фактически этим iptables) решаю эту проблему с полпинка. Я так понял что IPFW не позволяет корректно фильтровать маки

Добавлено: 09-02-2017 12:54:08

Кажется я нашел в чем причина. . В качестве dns-сервера у меня стоит local unbound ( FreeBSD 11.0 ), Скорее всего он не развязывает адреса при включенном layer2. потому что, ситуация храктерна для случая, когда dns-server не работает: ping ip  на сайт идёт а url в браузере не окрывается

Добавлено: 10-02-2017 09:30:50

Я прописал на компьютере локальной сети с этим mac адресом DNS-SERVER=8.8.8.8 и всё заработало. Это же надо, кто бы мог подумать что layer2 ложит local unbound

2

Re: Почему не открывается страница

Молодец, вы дошли до конца и даже оставили это для будущих

3

Re: Почему не открывается страница

ну прям себя вспомнил в далеком прошлом... сэкаса на неделю, а проблема в запятой не в том месте...