IPFW+Kernel NAT.Рубится трафик в локальной сети

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
afterhours
рядовой
Сообщения: 13
Зарегистрирован: 2015-11-10 21:29:55

IPFW+Kernel NAT.Рубится трафик в локальной сети

Непрочитанное сообщение afterhours » 2016-01-12 23:47:13

Доброго времени суток друзья,помогите разобратся с проблемой.
Wi -FI роутера у меня нет,да и покупать не хочу,есть системный блок с установленной FreeBSD 10, в нём несколько сетевых плат Ethernet 10/100 и одна Wi-Fi PCI сетевая плата(Asus кажеться,точно не скажу).Подключение к сети провайдера осуществляется по протоколу PPPoE. Собрал ядро для IPFW и Kernel NAT (выбор ядерного ната аргументирован тем исходя из прочитанных отзывов на форумах,что он является более отказоустойчивым чем демон natd (возможно я ошибаюсь)). Ближе к делу,kernel NAT запустился,траффик на сервере есть,но в локальной сети страницы не открываются,но пинги идут.

Вот с чем собрал новое ядро

Код: Выделить всё

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_NAT
options LIBALIAS
options	DUMMYNET
далее, содержимое /etc/ppp/ppp.conf

Код: Выделить всё

hostel:
 set device PPPoE:rl1
 set authname XXXXXXXX
 set authkey XXXXXXXX
 set dial
 set login
 add default HISADDR
/etc/rc.conf

Код: Выделить всё

hostname="FreeBSD-serv.home"
wlans_ral0="wlan0"
sshd_enable="YES"
samba_enable="NO"
rpcbind_enable="YES"
mountd_enable="NO"
hald_enable="YES"
dbus_enable="YES"
mountd_flags="-r"
portmap_enable="YES"
hostapd_enable="YES"
create_args_wlan0="wlanmode hostap"
minidlna_enable="YES"
proftpd_enable="YES"
ntpd_enable="YES"
ntpdate_enable="YES"
kdm4_enable="YES"
wlans_run0="wlan1"
gateway_enable="YES"
dhcpd_enable="YES"
dhcpd_ifaces="wlan0"
ifconfig_wlan0="inet 10.10.10.1 255.255.255.0"
named_enable="YES"
firewall_nat_enable="YES"
firewall_script="/etc/ipfwpppoe"
firewall_enable="YES"
#ifconfig_rl2="inet DHCP"
squid_enable="YES"
ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES"
ppp_profile="hostel"

И наконец правила для IPFW /etc/ipfwpppoe

Код: Выделить всё

#!/bin/sh
echo "Please wait,firewall starting..."
ipfw="/sbin/ipfw -q"
extif="tun0"
intif="wlan0"
IPOut="XXX.XXX.XXX.XXX"
LANOut="10.10.10.1"
dnsip="10.10.10.1"
LAN="10.10.10.0/24"
ks="keep-state"
#######################################################
${ipfw} -f flush
${ipfw} add check-state
${ipfw} add allow all from any to any via lo0
${ipfw} add deny all from any to 127.0.0.0/8
${ipfw} add deny all from 127.0.0.0/8 to any
#######################################################
${ipfw} add allow tcp from me to any out via $extif $ks
${ipfw} add allow tcp from $LAN to any via $intif
${ipfw} add allow udp from $LAN to any via $intif
${ipfw} add allow icmp from $LAN to any via $intif
${ipfw} add allow udp from $LAN to me 67,68 $ks via $intif
#######################################################
${ipfw} nat 1 config log if $extif reset same_ports
${ipfw} add nat 1 ip from $LAN to any via $extif
${ipfw} add nat 1 all from any to $LAN in via $extif
${ipfw} add allow tcp from any to any established
${ipfw} add allow ip from $IPOut to any out xmit $extif
${ipfw} add allow all from any 67,68 to $IPOut via $extif
${ipfw} add allow icmp from any to any icmptypes 0,8,11
${ipfw} add deny icmp from any to any frag
${ipfw} add allow tcp from me to any http,https,ssh $ks via $extif
${ipfw} add allow udp from any 53 to any via $extif
${ipfw} add allow udp from any to any 53 via $extif
${ipfw} add allow udp from any to any 123 via $extif
${ipfw} add deny ip from any to any

Подскажите что не так? В какую сторону вообще копать?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.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/

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

IPFW+Kernel NAT.Рубится трафик в локальной сети

Непрочитанное сообщение snorlov » 2016-01-13 9:56:12

Посмотрите какие правила загрузились, если правил с tun0 нет, то перегрузите файер, если они появятся, курите скрипты linkup/linkdown на перезагрузку файера после соединения...

Аватара пользователя
afterhours
рядовой
Сообщения: 13
Зарегистрирован: 2015-11-10 21:29:55

IPFW+Kernel NAT.Рубится трафик в локальной сети

Непрочитанное сообщение afterhours » 2016-01-13 20:56:19

Сегодня после целого дня мороки пришёл к такому виду /etc/ipfw-rules

Код: Выделить всё


#!/bin/sh
echo "Please wait,firewall starting..."
ipfw="/sbin/ipfw"
extif="tun0"  #WAN
intif="wlan0"  #LAN
IPOut="XXX.XXX.XXX.XXX"  #WAN IP
LANOut="10.10.10.1"         #LAN IP
LAN="10.10.10.0/24"
ks="keep-state"
#######################################################
${ipfw} -f flush
${ipfw} add check-state
${ipfw} add allow ip from any to any via lo0
${ipfw} add deny ip from any to 172.16.0.0/12 in via $extif
${ipfw} add deny ip from any to 0.0.0.0/8 in via $extif
${ipfw} add deny ip from any to 169.254.0.0/16 in via $extif
${ipfw} add deny ip from any to 240.0.0.0/4 in via $extif
${ipfw} add deny icmp from any to any frag
${ipfw} add deny log icmp from any to 255.255.255.255 in via $extif
${ipfw} add deny log icmp from any to 255.255.255.255 out via $extif
####SQUID
#${ipfw} add fwd 127.0.0.1,3128 tcp from $LAN to any 80,443
####NAT
${ipfw} nat 1 config log if $extif reset same_ports
${ipfw} add nat 1 all from $LAN to any out via $extif
${ipfw} add nat 1 all from any to $IPOut in via $extif
####LAN+WAN
${ipfw} add allow tcp from any to any established
${ipfw} add allow ip from $IPOut to any out via $extif
${ipfw} add allow ip from any to any 53 via $extif
${ipfw} add allow ip from any 53 to any via $extif
${ipfw} add allow udp from any to any 123 via $extif
${ipfw} add allow tcp from any to $IPOut
${ipfw} add allow icmp from any to any icmptypes 0,8,11
${ipfw} add allow tcp from any to $IPOut 3333 via $extif
${ipfw} add allow ip from any to any via $intif
${ipfw} add allow all from any to any via $intif

Ситуация не изменилась.Может быть дело вообще не в файрволе?

Аватара пользователя
Neus
капитан
Сообщения: 1980
Зарегистрирован: 2008-09-08 21:59:56

IPFW+Kernel NAT.Рубится трафик в локальной сети

Непрочитанное сообщение Neus » 2016-01-13 22:16:06

afterhours писал(а): hostname="FreeBSD-serv.home"
--
firewall_nat_enable="YES"
--
ppp_nat="YES"
--
Чёта много натов у тебя...

Аватара пользователя
afterhours
рядовой
Сообщения: 13
Зарегистрирован: 2015-11-10 21:29:55

IPFW+Kernel NAT.Рубится трафик в локальной сети

Непрочитанное сообщение afterhours » 2016-01-13 22:19:25

Neus писал(а):
afterhours писал(а): hostname="FreeBSD-serv.home"
--
firewall_nat_enable="YES"
--
ppp_nat="YES"
--
Чёта много натов у тебя...
выключил,ничего не изменилось

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

IPFW+Kernel NAT.Рубится трафик в локальной сети

Непрочитанное сообщение snorlov » 2016-01-14 9:33:56

А на самой то фри инет есть?

Аватара пользователя
afterhours
рядовой
Сообщения: 13
Зарегистрирован: 2015-11-10 21:29:55

IPFW+Kernel NAT.Рубится трафик в локальной сети

Непрочитанное сообщение afterhours » 2016-01-14 14:57:53

snorlov писал(а):А на самой то фри инет есть?
Да,на сервере есть интернет.
Кстати сегодня выяснилось что провайдер понижает TTL ( как я понял это метод борьбы с халявщиками )

Аватара пользователя
afterhours
рядовой
Сообщения: 13
Зарегистрирован: 2015-11-10 21:29:55

IPFW+Kernel NAT.Рубится трафик в локальной сети

Непрочитанное сообщение afterhours » 2016-01-17 15:22:08

Доброго времени суток.Проблема решилась.Суть была в том,что провайдером была реализована фильтрация по TTL (TTL=1),следовательно пакеты дальше шлюза не уходили а просто дропались.
Вариантом решения данной проблемы, была сборка ядра с опцией

Код: Выделить всё

options IPSTEALTH
далее я использовал пакетный фильтр PF который поддерживает нормализацию пакетов ( если внимательно посмотреть ман по pf,то там можно найти опцию min-ttl).У себя в конфиге pf я дописал вот что:

Код: Выделить всё

scrub on $ext_if all random-id min-ttl 128 max-mss 1452 reassemble tcp fragment
после этого можно просмотреть состояние трансляции

Код: Выделить всё

pfctl -s states
про настройку NAT и правил прохождения пакетов я писать не буду,в интернете достаточно информации об этом.