FreeBSD 7.1 +IPFW+NATD+SQUID+DHCPD помогите разобраться

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
kabasyyya
проходил мимо

FreeBSD 7.1 +IPFW+NATD+SQUID+DHCPD помогите разобраться

Непрочитанное сообщение kabasyyya » 2009-03-07 22:33:28

FreeBSD 7.1 +IPFW+NATD+SQUID+DHCPD

Помогите разобраться

Имеется LAN 172.168.1.0/28
(WAN) – 192.168.0.0/24 – Dlink роутер (рабочий) на этапе настройки лезу через роутер в нет!
от роутера Dlink кормится инетом еще машинка с адресом 192.168.0.3

WAN-провайдера (IP Address 172.16.171.217
Subnet Mask 255.255.254.0
Gateway 172.16.170.1
Domain Name Server 82.193.96.6, 82.193.96.10
)

Интерфейсы во фре
Xl0 –внешний 192.168.0.7/24
Xl1 – внутренний 172.168.1.1.28
Lo0 – петля 127.0.0.1

Опции ядра:

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

 options		IPFIREWALL
options		IPFIREWALL_VERBOSE
options		IPFIREWALL_VERBOSE_LIMIT=100
options		IPFIREWALL_FORWARD
options		IPDIVERT
options		DUMMYNET 
/etc/rc.conf:

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

 #kirilica#

keymap="ru.koi8-r"
keychange="61 [[K"
scrnmap="koi8-r2cp866"
font8x16="cp866b-8x16"
font8x14="cp866-8x14"
font8x8="cp866-8x8"

sshd_enable="YES"

natd_enable="YES"
natd_nterface="xl0"
#natd_flags="-dynamic -m"
natd_flags=" -f /etc/natd.conf"
gateway_enable="YES"

ifconfig_xl1="inet 172.168.1.1  netmask 255.255.255.240"
hostname="freeBSD.home.ua"
ifconfig_xl0="inet 192.168.0.7  netmask 255.255.255.0"
defaultrouter="192.168.0.1"
hostname="freeBSD.home.ua"

######DHCPD#######
dhcpd_enable="YES"
dhcpd_ifaces="xl1"
##################

####### Firewall ########
firewall_enable="YES"
firewall_type="/etc/ipfw.firewall_rule"
firewall_logging="YES"
/etc/natd.conf:

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

same_ports yes
use_sockets yes
log yes
log_denied yes
unregistered_only yes
dynamic yes
ipfw

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

#!/bin/sh

FwCMD="/sbin/ipfw"
LanOut="xl0"
LanIn="xl1"
IpOut="192.168.0.7"
IpIn="172.168.1.1"
MyLan="172.168.1.0/28"

${FwCMD} -f flush
${FwCMD} add check-state
${FwCMD} add allow ip from any to any via lo0

${FwCMD} add deny ip from any to 127.0.0.0/8
${FwCMD} add deny ip from 127.0.0.0/8 to any

# FIREWALL start:

# squid (proxy prozra4nij)
${FwCMD} add fwd 127.0.0.1,3128 tcp from ${MyLan} to any 80 via ${LanOut}

# (NAT)
${FwCMD} add divert natd ip from ${MyLan} to any out via ${LanOut}
${FwCMD} add divert natd ip from any to ${IpOut} in via ${LanOut}

${FwCMD} add allow tcp from any to any established
${FwCMD} add allow ip from ${IpOut} to any out xmit ${LanOut}

# DNS output
${FwCMD} add allow udp from any 53 to any via ${LanOut}
# input DNS from wan
${FwCMD} add allow udp from any to any 53 via ${LanOut}
# incoming UDP port 123 for time sinchronise
${FwCMD} add allow udp from any to any 123 via ${LanOut}
# ping
${FwCMD} add allow icmp from any to any icmptypes 0,8,11
# input ssh
${FwCMD} add allow tcp from any to ${IpOut} 22 via ${LanOut}
${FwCMD} add allow ip from any to any via ${LanIn}
${FwCMD} add deny ip from any to any
DHCPD.conf

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

option domain-name "home.ua";
option domain-name-servers 82.193.96.6, 82.193.96.10, 192.168.0.1
default-lease-time 3600;
max-lease-time 86400;
ddns-update-style none;
log-facility local7;

subnet 172.168.1.0 netmask 255.255.255.240 {
}

subnet 172.168.1.0 netmask 255.255.255.240 {
  range 172.168.1.4 172.168.1.14;
  option routers 172.168.1.1;
}

host XP_TAZIK {
  hardware ethernet 00:13:D4:64:11:A4;
  fixed-address 172.168.1.2;
теперь что из этого получилось:
пинги с сервера фри идут и инет на нем есть
пинги с клиентской машини идут (сеть 172.168.1.0/28) на роутер через фрю,
тоесть на клиентской тачке я пингую адрес роутера 192.168.0.1,
а вот google уже не могу ни по имени ни по ip.

с сервера фри пинги идут на комп, подключенный на прямую к роутеру 192.168.0.3
(от dlinka кормятся инетом 2 компа, сервак на фре 192.168.0.7 и
еще комп 192.168.0.3)
но из внутрисети с адреса 172.168.1.2 (клиентский комп находящийся за фрей)
пинг на 192.168.0.3 не проходит

ipfw show -показывает

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

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
65535 4396 390939 allow ip from any to any
если перегружать ipfw то обнаруживается любопытная вещь:
./rc.d/ipfw restart

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

net.inet.ip.fw.enable: 1 -> 0
natd not running? (check /var/run/natd.pid).
Starting natd.
Loading /lib/libalias_cuseeme.so
Loading /lib/libalias_ftp.so
Loading /lib/libalias_irc.so
Loading /lib/libalias_nbt.so
Loading /lib/libalias_pptp.so
Loading /lib/libalias_skinny.so
Loading /lib/libalias_smedia.so
natd: instance default: aliasing address not given
Flushed all rules.
00100 allow ip from any to any via lo0
00200 deny ip from any to 127.0.0.0/8
00300 deny ip from 127.0.0.0/8 to any
Line 4: bad command `FwCMD="/sbin/ipfw"'
Firewall rules loaded.
Firewall logging enabled.
net.inet.ip.fw.enable: 0 -> 1
помогите пожалуйста разобраться, почему нет инета :-(

Хостинговая компания 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/

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: FreeBSD 7.1 +IPFW+NATD+SQUID+DHCPD помогите разобраться

Непрочитанное сообщение paradox » 2009-03-07 22:54:04

firewall_type="/etc/ipfw.firewall_rule"
идем
читаем
исправляем
для начала
а там видно будет
я с дефолт роутом непонял

можешь схему картинкой нарисовать? с айпишниками и прочим что куда

kabasyyya
проходил мимо

Re: FreeBSD 7.1 +IPFW+NATD+SQUID+DHCPD помогите разобраться

Непрочитанное сообщение kabasyyya » 2009-03-07 23:25:05

paradox писал(а):
firewall_type="/etc/ipfw.firewall_rule"
идем
читаем
исправляем
для начала
а там видно будет
я с дефолт роутом непонял
а в чем собственно косяк с файрволом? поконкретней?
в rc.conf идет ссылка на файл с правилами, что не так? :-(
можешь схему картинкой нарисовать? с айпишниками и прочим что куда
сори, как схемку вставить в jpg?!

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: FreeBSD 7.1 +IPFW+NATD+SQUID+DHCPD помогите разобраться

Непрочитанное сообщение paradox » 2009-03-07 23:32:31

firewall_type="/etc/ipfw.firewall_rule"
смотрим внимательно в коменнатрии к статье
к тому же уже поднимался данный вопрос
повторять не буду


схема
во вложениях
смотрите внимательно

kabasya
проходил мимо
Сообщения: 2
Зарегистрирован: 2009-03-07 21:40:46

Re: FreeBSD 7.1 +IPFW+NATD+SQUID+DHCPD помогите разобраться

Непрочитанное сообщение kabasya » 2009-03-07 23:38:53

можешь схему картинкой нарисовать? с айпишниками и прочим что куда
Вложения
shema.jpg

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: FreeBSD 7.1 +IPFW+NATD+SQUID+DHCPD помогите разобраться

Непрочитанное сообщение paradox » 2009-03-08 0:32:09

не работает нат
тоесть отсуствет
потому что как минимум не работает фаер
так что смотри в ту ошибку то я тебе указал
либо ищи ее по форуму

kabasya
проходил мимо
Сообщения: 2
Зарегистрирован: 2009-03-07 21:40:46

Re: FreeBSD 7.1 +IPFW+NATD+SQUID+DHCPD помогите разобраться

Непрочитанное сообщение kabasya » 2009-03-08 0:40:47

paradox писал(а):не работает нат
тоесть отсуствет
потому что как минимум не работает фаер
так что смотри в ту ошибку то я тебе указал
либо ищи ее по форуму
изменил rc.conf:

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

firewall_type="/etc/rc.firewall"
ipfw show

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

00100   0     0 check-state
00200   0     0 allow ip from any to any via lo0
00300   0     0 deny ip from any to 127.0.0.0/8
00400   0     0 deny ip from 127.0.0.0/8 to any
00500  15   720 fwd 127.0.0.1,3128 tcp from 172.168.1.0/28 to any dst-port 80 via xl0
00600 173  8364 divert 8668 ip from 172.168.1.0/28 to any out via xl0
00700  11  2333 divert 8668 ip from any to 192.168.0.7 in via xl0
00800 245 27578 allow tcp from any to any established
00900  10   700 allow ip from 192.168.0.7 to any out xmit xl0
01000   0     0 allow udp from any 53 to any via xl0
01100   0     0 allow udp from any to any dst-port 53 via xl0
01200   0     0 allow udp from any to any dst-port 123 via xl0
01300 311 18660 allow icmp from any to any icmptypes 0,8,11
01400   0     0 allow tcp from any to 192.168.0.7 dst-port 22 via xl0
01500 229 15793 allow ip from any to any via xl1
01600   0     0 deny ip from any to any
65535   1   207 allow ip from any to any
freeBSD# ping google.com
ping: cannot resolve google.com: Host name lookup failure



./rc.d/ipfw start

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

Starting natd.
Loading /lib/libalias_cuseeme.so
Loading /lib/libalias_ftp.so
Loading /lib/libalias_irc.so
Loading /lib/libalias_nbt.so
Loading /lib/libalias_pptp.so
Loading /lib/libalias_skinny.so
Loading /lib/libalias_smedia.so
natd: instance default: aliasing address not given
Flushed all rules.
00100 check-state
00200 allow ip from any to any via lo0
00300 deny ip from any to 127.0.0.0/8
00400 deny ip from 127.0.0.0/8 to any
00500 fwd 127.0.0.1,3128 tcp from 172.168.1.0/28 to any dst-port 80 via xl0
00600 divert 8668 ip from 172.168.1.0/28 to any out via xl0
00700 divert 8668 ip from any to 192.168.0.7 in via xl0
00800 allow tcp from any to any established
00900 allow ip from 192.168.0.7 to any out xmit xl0
01000 allow udp from any 53 to any via xl0
01100 allow udp from any to any dst-port 53 via xl0
01200 allow udp from any to any dst-port 123 via xl0
01300 allow icmp from any to any icmptypes 0,8,11
01400 allow tcp from any to 192.168.0.7 dst-port 22 via xl0
01500 allow ip from any to any via xl1
01600 deny ip from any to any
Firewall rules loaded.
Firewall logging enabled.
net.inet.ip.fw.enable: 0 -> 1
на самой фре пропал пинг :-(

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: FreeBSD 7.1 +IPFW+NATD+SQUID+DHCPD помогите разобраться

Непрочитанное сообщение paradox » 2009-03-08 0:45:14

freeBSD# ping google.com
ping: cannot resolve google.com: Host name lookup failure
а резолв конф кто будет прописывать?

kabasyyya
проходил мимо

Re: FreeBSD 7.1 +IPFW+NATD+SQUID+DHCPD помогите разобраться

Непрочитанное сообщение kabasyyya » 2009-03-08 12:00:37

paradox писал(а):
freeBSD# ping google.com
ping: cannot resolve google.com: Host name lookup failure
а резолв конф кто будет прописывать?
freeBSD# less resolv.conf

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

domain  home.ua
nameserver      82.193.96.6
nameserver      82.193.96.10
nameserver      192.168.0.1
параметры файрвола взяты в статье у Lissyara

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

#!/bin/sh

FwCMD="/sbin/ipfw" 
LanOut="xl0"            
LanIn="xl1"            
IpOut="192.168.0.7" 
IpIn="172.168.1.1"  
NetMask="24"           
NetIn="172.168.1.0"
MyLan="172.168.1.0/28"

${FwCMD} -f flush
${FwCMD} add check-state
${FwCMD} add allow ip from any to any via lo0
${FwCMD} add deny ip from any to 127.0.0.0/8
${FwCMD} add deny ip from 127.0.0.0/8 to any

${FwCMD} add deny ip from any to 10.0.0.0/8 in via ${LanOut}
${FwCMD} add deny ip from any to 172.16.0.0/12 in via ${LanOut}
${FwCMD} add deny ip from any to 192.168.0.0/16 in via ${LanOut}
${FwCMD} add deny ip from any to 0.0.0.0/8 in via ${LanOut}

${FwCMD} add deny ip from any to 169.254.0.0/16 in via ${LanOut}

${FwCMD} add deny ip from any to 240.0.0.0/4 in via ${LanOut}

${FwCMD} add deny icmp from any to any frag

${FwCMD} add deny log icmp from any to 255.255.255.255 in via ${LanOut}
${FwCMD} add deny log icmp from any to 255.255.255.255 out via ${LanOut}

# squid 
${FwCMD} add fwd 127.0.0.1,3128 tcp from ${MyLan} to any 80 via ${LanOut}


# (NAT)
${FwCMD} add divert natd ip from ${MyLan} to any out via ${LanOut}
${FwCMD} add divert natd ip from any to ${IpOut} in via ${LanOut}


${FwCMD} add deny ip from 10.0.0.0/8 to any out via ${LanOut}
${FwCMD} add deny ip from 172.16.0.0/12 to any out via ${LanOut}
${FwCMD} add deny ip from 192.168.0.0/16 to any out via ${LanOut}
${FwCMD} add deny ip from 0.0.0.0/8 to any out via ${LanOut}

${FwCMD} add deny ip from 169.254.0.0/16 to any out via ${LanOut}

${FwCMD} add deny ip from 224.0.0.0/4 to any out via ${LanOut}

${FwCMD} add deny ip from 240.0.0.0/4 to any out via ${LanOut}


${FwCMD} add allow tcp from any to any established

${FwCMD} add allow ip from ${IpOut} to any out xmit ${LanOut}

# DNS 
${FwCMD} add allow udp from any 53 to any via ${LanOut}
# разрешаем DNS входящий снаружи - если на этой машине работает named
# и держит какую-то зону. В остальных случаях - не нужно
${FwCMD} add allow udp from any to any 53 via ${LanOut}
# разрешаем UDP (для синхронизации времени - 123 порт)
${FwCMD} add allow udp from any to any 123 via ${LanOut}
# разрешаем некоторые типы ICMP траффика - эхо-запрос, 
# эхо-ответ и время жизни пакета истекло
${FwCMD} add allow icmp from any to any icmptypes 0,8,11
# открываем снаружи 22 порт - если надо будет ходить на машину по ssh
${FwCMD} add allow tcp from any to ${IpOut} 22 via ${LanOut}
${FwCMD} add allow ip from any to any via ${LanIn}
${FwCMD} add deny ip from any to any
/etc/rc.d/ipfw start

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

Starting natd.
Loading /lib/libalias_cuseeme.so
Loading /lib/libalias_ftp.so
Loading /lib/libalias_irc.so
Loading /lib/libalias_nbt.so
Loading /lib/libalias_pptp.so
Loading /lib/libalias_skinny.so
Loading /lib/libalias_smedia.so
natd: instance default: aliasing address not given
Flushed all rules.
00100 check-state
00200 allow ip from any to any via lo0
00300 deny ip from any to 127.0.0.0/8
00400 deny ip from 127.0.0.0/8 to any
00500 deny ip from any to 10.0.0.0/8 in via xl0
00600 deny ip from any to 172.16.0.0/12 in via xl0
00700 deny ip from any to 192.168.0.0/16 in via xl0
00800 deny ip from any to 0.0.0.0/8 in via xl0
00900 deny ip from any to 169.254.0.0/16 in via xl0
01000 deny ip from any to 240.0.0.0/4 in via xl0
01100 deny icmp from any to any frag
01200 deny log logamount 5 icmp from any to 255.255.255.255 in via xl0
01300 deny log logamount 5 icmp from any to 255.255.255.255 out via xl0
{FwCMD}: not found
01400 divert 8668 ip from 172.168.1.0/28 to any out via xl0
01500 divert 8668 ip from any to 192.168.0.7 in via xl0
01600 deny ip from 10.0.0.0/8 to any out via xl0
01700 deny ip from 172.16.0.0/12 to any out via xl0
01800 deny ip from 192.168.0.0/16 to any out via xl0
01900 deny ip from 0.0.0.0/8 to any out via xl0
02000 deny ip from 169.254.0.0/16 to any out via xl0
02100 deny ip from 224.0.0.0/4 to any out via xl0
02200 deny ip from 240.0.0.0/4 to any out via xl0
02300 allow tcp from any to any established
02400 allow ip from 192.168.0.7 to any out xmit xl0
02500 allow udp from any 53 to any via xl0
02600 allow udp from any to any dst-port 53 via xl0
02700 allow udp from any to any dst-port 123 via xl0
02800 allow icmp from any to any icmptypes 0,8,11
02900 allow tcp from any to 192.168.0.7 dst-port 22 via xl0
03000 allow ip from any to any via xl1
03100 deny ip from any to any
Firewall rules loaded.
Firewall logging enabled.
net.inet.ip.fw.enable: 0 -> 1
ipfw show

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

00100   0     0 check-state
00200   0     0 allow ip from any to any via lo0
00300   0     0 deny ip from any to 127.0.0.0/8
00400   0     0 deny ip from 127.0.0.0/8 to any
00500   0     0 deny ip from any to 10.0.0.0/8 in via xl0
00600   0     0 deny ip from any to 172.16.0.0/12 in via xl0
00700   0     0 deny ip from any to 192.168.0.0/16 in via xl0
00800   0     0 deny ip from any to 0.0.0.0/8 in via xl0
00900   0     0 deny ip from any to 169.254.0.0/16 in via xl0
01000   0     0 deny ip from any to 240.0.0.0/4 in via xl0
01100   0     0 deny icmp from any to any frag
01200   0     0 deny log logamount 5 icmp from any to 255.255.255.255 in via xl0
01300   0     0 deny log logamount 5 icmp from any to 255.255.255.255 out via xl0
01400 437 22033 divert 8668 ip from 172.168.1.0/28 to any out via xl0
01500   0     0 divert 8668 ip from any to 192.168.0.7 in via xl0
01600   0     0 deny ip from 10.0.0.0/8 to any out via xl0
01700   0     0 deny ip from 172.16.0.0/12 to any out via xl0
01800   0     0 deny ip from 192.168.0.0/16 to any out via xl0
01900   0     0 deny ip from 0.0.0.0/8 to any out via xl0
02000   0     0 deny ip from 169.254.0.0/16 to any out via xl0
02100   0     0 deny ip from 224.0.0.0/4 to any out via xl0
02200   0     0 deny ip from 240.0.0.0/4 to any out via xl0
02300 198 15788 allow tcp from any to any established
02400   0     0 allow ip from 192.168.0.7 to any out xmit xl0
02500   0     0 allow udp from any 53 to any via xl0
02600   0     0 allow udp from any to any dst-port 53 via xl0
02700   0     0 allow udp from any to any dst-port 123 via xl0
02800 632 37920 allow icmp from any to any icmptypes 0,8,11
02900   0     0 allow tcp from any to 192.168.0.7 dst-port 22 via xl0
03000 465 24500 allow ip from any to any via xl1
03100   0     0 deny ip from any to any
65535   0     0 allow ip from any to any
ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
ping: sendto: Permission denied
ping: sendto: Permission denied
ping: sendto: Permission denied

ping google.com
ping: cannot resolve google.com: Host name lookup failure

извените за здоровенные посты, помогите уж разобраться :-(