Добрый день Коллеги! Помогите разобраться, что происходит с серваком, я в тупике!
Что имеем:
Сервер с двумя сетевыми картами на FreeBsd 9.2 amd 64.
Age0 – локальная сеть
Rl0 – сеть провайдера
Локалка постоянный IP 192.168.1.1 маска 255.255.255.0
Сеть провайдера подключение по DHCP, получаю внутренний IP сети провайдера, dns, gateway
После запуска на rl0 поднимается mpd5 соединение pptp до провайдера, получается реальный IP, добавляться правила IPFW для интерфейса ng0, поднимается на нем NAT.
Проходит все гладко и ровно, но тут начинаются чудеса…
Ping с клиента проходит, DNS обрабатываться, внешние сайты пингуются, но зайти через браузер не получается. Уже передрал все, что можно, но результата ноль! Помогите разобраться, где ошибка!
Конфиги:
Ядро собрано с опциями
options IPFIREWALL
options IPFIREWALL_FORWARD
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=50
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_NAT
options ROUTETABLES=2
options IPDIVERT
options DUMMYNET
options LIBALIASRc.conf
hostname="*******.ru"
gateway_enable="YES"
dumpdev="AUTO"
keymap="ru.cp866.kbd"
ifconfig_age0="inet 192.168.1.1 netmask 255.255.255.0"
ifconfig_rl0="DHCP"
inetd_enable="NO"
sshd_enable="YES"
firewall_enable="YES"
firewall_nat_enable="YES"
firewall_script="/etc/firewall.conf"
named_enable="YES"
named_auto_forward="YES"
named_flags="-u bind -c /etc/namedb/named.conf"
webmin_enable="YES"
mpd_enable="YES"
ntpd_enable="YES"
ntpd_program="/usr/local/bin/ntpd"
firewall.conf#!/bin/sh
exface="rl0"
inface="age0"
in_ip="192.168.1.1"
pre_com="ipfw -q"
$pre_com -f flush$pre_com add 00100 allow ip from any to any via lo0
$pre_com add 00110 deny ip from any to 127.0.0.0/8
$pre_com add 00120 deny ip from 127.0.0.0/8 to any
$pre_com add 00130 allow ip from any 1701 to me via $exface
$pre_com add 00140 allow ip from me to any 1701 via $exface
$pre_com add 00150 allow ip from any 1723 to me via $exface
$pre_com add 00160 allow ip from me to any 1723 via $exface
$pre_com add 00170 allow ip from any 5005 to me via $exface
$pre_com add 00180 allow ip from me to any 5005 via $exface
$pre_com add 00181 allow all from any 953 to me via $exface
$pre_com add 00182 allow all from me to any 953 via $exface
$pre_com nat 1 config log if $exface reset same_ports deny_in
$pre_com add 1030 nat 1 ip from any to any via $exface
$pre_com add 65000 deny all from any to anyhosts
::1 localhost localhost.ru
127.0.0.1 localhost localhost.ru
192.168.1.1 ******.ru ******
192.168.1.1 ******.ru.
**.***.**.*** ******.ru.resolv.conf
# Generated by resolvconf
nameserver 127.0.0.1
nameserver 10.0.20.3
nameserver 10.0.20.6
mpd.confstartup:
log +ALL -EVENTS -FRAME
set web iface all 5008
set user admin admin admin
set console self 127.0.0.1 5005
set console open
set web self 192.168.1.1 5006
set web opendefault:
load pptp_client
pptp_client:
create bundle static B1
set iface route default
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
set iface up-script /usr/local/etc/mpd5/up.sh
set iface down-script /usr/local/etc/mpd5/down.sh
create link static L1 pptp
set link action bundle B1
set auth authname ********
set auth password *********
set link disable check-magi
set link max-redial 0
set link mtu 1460
set link keep-alive 20 75
set pptp peer 10.0.20.9
set pptp disable windowing
openup.sh
#!/bin/sh
pre_com="ipfw -q"
route delete $4
gw=`netstat -rn | awk '$1=="default"{print $2}'`
route add $4 $gw
route delete default
route add default $4
echo $4 > /tmp/mpd_dr
echo $gw > /tmp/mpd_gw
sleep 20
$pre_com add 00190 allow all from внешний ip 53 to any out via $1
$pre_com add 00191 allow all from any to внешний ip 53 in via $1
$pre_com add 00192 allow all from внешний ip 123 to any out via $1
$pre_com add 00193 allow all from any to внешний ip 123 in via $1
$pre_com nat 2 config log if $1 reset same_ports deny_in
$pre_com add 01000 nat 2 ip from any to any via $1
$pre_com add 01010 allow all from any to any
/etc/rc.d/named restart
(kldload speaker && /bin/echo -e "l2b.f+.p" > /dev/speaker && kldunload speaker)&named.conf (настроен для 1 домена)
options {
hostname "*******.ru";
directory "/etc/namedb";
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
version "unknown";
listen-on {
127.0.0.1;
192.168.1.1; внутренний ip локалки
10.0.20.55; ip локальный от провайдера
**.**.**.**; внешний ip
};
include "/etc/namedb/auto_forward.conf";
};
zone "." {
type hint;
file "named.root";
};
zone "localhost" {
type master;
file "master/localhost";
};
zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "master/0.0.127.in-addr.arpa";
};
zone "48.238.91.in-addr.arpa" {
type master;
file "master/48.238.91.in-addr.arpa";
};
zone "*******.ru" {
type master;
file "master/********.ru";
notify yes;
allow-transfer { **.**.**.**; };
};
Если буден нужно выложу файлы зон.Тесты и пинги:
> ifconfigage0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=c319b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MCAST,WOL_MAGIC,VLAN_HWTSO,LINKSTATE>
ether 00:1d:60:44:80:f7
inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255
inet6 fe80::21d:60ff:fe44:80f7%age0 prefixlen 64 scopeid 0x5
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=2008<VLAN_MTU,WOL_MAGIC>
ether 00:80:48:46:9b:7e
inet 10.0.20.55 netmask 0xfffffe00 broadcast 10.0.21.255
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
ipfw0: flags=8801<UP,SIMPLEX,MULTICAST> metric 0 mtu 65536
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0xc
inet 127.0.0.1 netmask 0xff000000
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1400
inet **.**.**.** --> 192.168.10.1 netmask 0xffffffff
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>> ipfw list
00100 allow ip from any to any via lo0
00110 deny ip from any to 127.0.0.0/8
00120 deny ip from 127.0.0.0/8 to any
00130 allow ip from any 1701 to me via rl0
00140 allow ip from me to any dst-port 1701 via rl0
00150 allow ip from any 1723 to me via rl0
00160 allow ip from me to any dst-port 1723 via rl0
00170 allow ip from any 5005 to me via rl0
00180 allow ip from me to any dst-port 5005 via rl0
00181 allow ip from any 953 to me via rl0
00182 allow ip from me to any dst-port 953 via rl0
00190 allow ip from **.**.**.** внешний ip 53 to any out via ng0
00191 allow ip from any to **.**.**.** внешний ip dst-port 53 in via ng0
00192 allow ip from **.**.**.** внешний ip to any out via ng0
00193 allow ip from any to **.**.**.** внешний ip dst-port 123 in via ng0
01000 nat 2 ip from any to any via ng0
01010 allow ip from any to any
01030 nat 1 ip from any to any via rl0
65000 deny ip from any to any
65535 allow ip from any to any> ipfw show
00100 874 129190 allow ip from any to any via lo0
00110 0 0 deny ip from any to 127.0.0.0/8
00120 0 0 deny ip from 127.0.0.0/8 to any
00130 0 0 allow ip from any 1701 to me via rl0
00140 0 0 allow ip from me to any dst-port 1701 via rl0
00150 59 3696 allow ip from any 1723 to me via rl0
00160 33 2612 allow ip from me to any dst-port 1723 via rl0
00170 0 0 allow ip from any 5005 to me via rl0
00180 0 0 allow ip from me to any dst-port 5005 via rl0
00181 0 0 allow ip from any 953 to me via rl0
00182 0 0 allow ip from me to any dst-port 953 via rl0
00190 177 21153 allow ip from **.**.**.** внешний ip 53 to any out via ng0
00191 183 12283 allow ip from any to **.**.**.** внешний ip dst-port 53 in via ng0
00192 57 4332 allow ip from **.**.**.** внешний ip to any out via ng0
00193 61 4636 allow ip from any to **.**.**.** внешний ip dst-port 123 in via ng0
01000 95684 78371714 nat 2 ip from any to any via ng0
01010 186840 161698198 allow ip from any to any
01030 287 29270 nat 1 ip from any to any via rl0
65000 359 26606 deny ip from any to any
65535 1374 95164 allow ip from any to any> ipfw nat show
nat 2: icmp=0, udp=311, tcp=93, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=404
nat 1: icmp=0, udp=46, tcp=0, sctp=0, pptp=0, proto=1, frag_id=0 frag_ptr=0 / tot=47
> netstatActive Internet connections
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp4 0 182 *******.10000 192.168.1.103.61417 ESTABLISHED
tcp4 0 0 10.0.20.55.25934 10.0.20.9.pptp ESTABLISHED
udp4 0 0 *******.ru..domain *.*
udp4 0 0 localhost.domain *.*
udp4 0 0 10.0.20.55.domain *.*
udp4 0 0 *******.domain *.*
udp4 0 0 *******.ru..ntp *.*
udp4 0 0 localhost.ntp *.*
udp6 0 0 fe80:c::1.ntp *.*
udp6 0 0 localhost.ntp *.*
udp4 0 0 10.0.20.55.ntp *.*
udp6 0 0 fe80:5::21d:60ff.ntp *.*
udp4 0 0 *******.ntp *.*> netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.10.1 UGS 0 1826 ng0
10.0.0.0/16 10.0.20.1 UGS 0 0 rl0
10.0.20.0/23 link#10 U 0 2467 rl0
10.0.20.55 link#10 UHS 0 0 lo0
91.238.48.224 link#13 UHS 0 0 lo0
127.0.0.1 link#12 UH 0 77 lo0
172.16.0.0/22 10.0.20.1 UGS 0 0 rl0
192.168.1.0/24 link#5 U 0 2357 age0
192.168.1.1 link#5 UHS 0 0 lo0
192.168.10.1 link#13 UH 0 0 ng0Комп в сети настроен:
IP 192.168.1.15
Dns 192.168.1.1
Шлюз 192.168.1.1
Пингую ya.ru: на локальном компе.
Статистика Ping для 213.180.193.3:
Пакетов: Отправлено 4, получено 4, потеряно 0Nslookup ya.ru
Address: 192.168.1.1
Не заслуживающий доверия ответ:
Ya.ru
Addresses: 213.180.193.3
93.158.134.3Но когда пытаюсь зайти на ya.ru через браузер бесконечно долго крутиться и так не открывает.
Настройки браузер проверял, подключение по локалке, прокси не включено…
Спасайте братцы я в тупике!
да забыл добавитьsysctl.conf
net.inet.ip.fw.one_pass=1
net.inet.ip.fw.verbose=1
net.inet.ip.fw.verbose_limit=50
А что gre не надо на rl0 разрешать? И вообще отрубите deny и смотрите tcpdump-ом. И еще set iface enable tcpmssfix впердольте mpd-ешке, кстати он сам умеет в nat в режиме клиента.
> А что gre не надо на rl0 разрешать? И вообще отрубите deny
> и смотрите tcpdump-ом. И еще set iface enable tcpmssfix впердольте mpd-ешке,
> кстати он сам умеет в nat в режиме клиента.По поводу gre первый раз слышу, если можно поподробней.
set iface enable tcpmssfix добавлю посмотрим что даст
Про nat в mpd читал но толкового описания как его использовать найти не смог.
> По поводу gre первый раз слышу, если можно поподробней.man pptp
> Про nat в mpd читал но толкового описания как его использовать найти
> не смог.не нужно описание, просто работает
Смотрим фаерволл.
Правило 6500 на deny отрабатывает своё.
Выше, _до_правил_ для nat на allow ничего нет.
А локальную сеть 192.168.1.0/24 выпустить забыли?Сделайте так. После поднятия mpd добавьте два правила:
ipfw add 2000 allow all from 192.168.1.0/24 to any via age0
ipfw add 2001 allow all from any to 192.168.1.0/24 via age0
> Смотрим фаерволл.
> Правило 6500 на deny отрабатывает своё.
> Выше, _до_правил_ для nat на allow ничего нет.
> А локальную сеть 192.168.1.0/24 выпустить забыли?
> Сделайте так. После поднятия mpd добавьте два правила:
> ipfw add 2000 allow all from 192.168.1.0/24 to any via age0
> ipfw add 2001 allow all from any to 192.168.1.0/24 via age0Добавил, работает! Но логики я не понимаю правила нулевые!
> ipfw show
00100 506 70470 allow ip from any to any via lo0
00110 0 0 deny ip from any to 127.0.0.0/8
00120 0 0 deny ip from 127.0.0.0/8 to any
00130 0 0 allow ip from any 1701 to me via rl0
00140 0 0 allow ip from me to any dst-port 1701 via rl0
00150 33 2136 allow ip from any 1723 to me via rl0
00160 20 1676 allow ip from me to any dst-port 1723 via rl0
00170 0 0 allow ip from any 5005 to me via rl0
00180 0 0 allow ip from me to any dst-port 5005 via rl0
00181 0 0 allow ip from any 953 to me via rl0
00182 0 0 allow ip from me to any dst-port 953 via rl0
00190 179 20584 allow ip from 91.238.48.224 53 to any out via ng0
00191 188 12601 allow ip from any to 91.238.48.224 dst-port 53 in via ng0
00192 41 3116 allow ip from 91.238.48.224 123 to any out via ng0
00193 42 3192 allow ip from any to 91.238.48.224 dst-port 123 in via ng0
01000 32363 21887908 nat 2 ip from any to any via ng0
01010 67957 45795803 allow ip from any to any
01030 509 47667 nat 1 ip from any to any via rl0
02000 0 0 allow ip from 192.168.1.0/24 to any via age0
02001 0 0 allow ip from any to 192.168.1.0/24 via age0
65000 413 26438 deny ip from any to any
65535 1434 82033 allow ip from any to any
ipfw delete 1010
?
> ipfw delete 1010
> ?Удалил 1010
Вот результат, вроде все работает, что ещё можете порекомендовать?
> ipfw show
00101 82 11882 allow ip from any to any via lo0
00102 0 0 deny ip from any to 127.0.0.0/8
00103 0 0 deny ip from 127.0.0.0/8 to any
00110 0 0 check-state
00130 0 0 allow ip from any 1701 to me via rl0
00140 0 0 allow ip from me to any dst-port 1701 via rl0
00150 7 576 allow ip from any 1723 to me via rl0
00160 7 740 allow ip from me to any dst-port 1723 via rl0
00170 0 0 allow ip from any 5005 to me via rl0
00180 0 0 allow ip from me to any dst-port 5005 via rl0
00181 0 0 allow ip from any 953 to me via rl0
00182 0 0 allow ip from me to any dst-port 953 via rl0
00190 29 3364 allow ip from 91.238.48.224 53 to any out via ng0
00191 32 2200 allow ip from any to 91.238.48.224 dst-port 53 in via ng0
00192 0 0 allow ip from 91.238.48.224 123 to any out via ng0
00193 3 228 allow ip from any to 91.238.48.224 dst-port 123 in via ng0
01000 391 99925 nat 2 ip from any to any via ng0
01030 976 189267 nat 1 ip from any to any via rl0
02000 473 102816 allow ip from 192.168.1.0/24 to any via age0
02001 204 52986 allow ip from any to 192.168.1.0/24 via age0
65000 175 10359 deny ip from any to any
65535 1206 87578 allow ip from any to any
> 01000 391 99925 nat 2 ip from any to any via ng0
> 01030 976 189267 nat 1 ip from any to any via rl0
> 02000 473 102816 allow ip from 192.168.1.0/24 to any via age0
> 02001 204 52986 allow ip from any to 192.168.1.0/24 via age0
> 65000 175 10359 deny ip from any to any
> 65535 1206 87578 allow ip from any to anyСчетчики на правилах 2000 и 2001 заработали.
> вроде все работает, что ещё можете порекомендовать?Ну так внести изменения в конфигурационные файлы.
Добавить в firewall.conf правила 2000 и 2001
и убрать из /usr/local/etc/mpd5/up.sh правило 1010
И контрольный reboot ))
>[оверквотинг удален]
>> 02000 473 102816 allow ip from 192.168.1.0/24 to any via age0
>> 02001 204 52986 allow ip from any to 192.168.1.0/24 via age0
>> 65000 175 10359 deny ip from any to any
>> 65535 1206 87578 allow ip from any to any
> Счетчики на правилах 2000 и 2001 заработали.
>> вроде все работает, что ещё можете порекомендовать?
> Ну так внести изменения в конфигурационные файлы.
> Добавить в firewall.conf правила 2000 и 2001
> и убрать из /usr/local/etc/mpd5/up.sh правило 1010
> И контрольный reboot ))Перенёс вроде всё работает! Спасибо!