Страница 1 из 1

Проблема с инетом после смены матери.

Добавлено: 2009-11-22 15:42:08
Electronik
Такая ситуация, стояла мать, одна сетевая встроенная(fxp0), вторая нет(vr0). Начал борохлить контроллер IDE, поменял мать, поставил Gigabyte 8i945GZME-RH,пришлось перекомпелировать ядро, ибо драйверов не было, поменялась встроенная сетевая, стала sk0. Вторая осталась таже.

Теперь к сути. Инет поднимается через PPPoE, появляется интерфейс tun0, на vr0 выдается IP по DHCP, вместе с роутингом. Так вот, внутренние ресурсы и DNS пингуются на ура, т.к весь траф идёт по vr0. А вот внешние ресурсы(tun0) ни один пакет не проходит, IP с DNS получает, но пинга нет.

Уже всё проверил, и ядро пересобирал 5 раз, конфиги все по 5 раз проверил, ничего не идёт. В файер прописывал

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

ipfw add allow ip from any to any
Всё равно ничего не работает. Подскажите пожалуйста куда посмотреть, хде подправить. Если надо какие конфиги вылажу. FreeBSD 7.2

Re: Проблема с инетом после смены матери.

Добавлено: 2009-11-22 15:45:20
Гость

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

ifconfig
netstat -nr

Re: Проблема с инетом после смены матери.

Добавлено: 2009-11-22 17:49:05
Electronik
Routing tables

Internet:
Destination Gateway Flags Refs Use Netif Expire
default 93.125.5.1 UGS 0 1285 tun0
10.0.0.0/12 10.3.120.1 UGS 0 0 vr0
10.3.120.0/22 link#1 UC 0 0 vr0
10.3.120.1 00:19:06:48:ef:c3 UHLW 3 0 vr0 1000
93.125.5.1 87.252.255.95 UGH 1 0 tun0
127.0.0.1 127.0.0.1 UH 0 0 lo0
192.168.0.0/24 link#2 UC 0 0 sk0
192.168.0.2 00:04:61:ac:32:dc UHLW 1 2183 sk0 1032
213.184.225.32/27 10.3.120.1 UGS 0 333 vr0

Internet6:
Destination Gateway Flags Netif Expire
::1 ::1 UHL lo0
fe80::%lo0/64 fe80::1%lo0 U lo0
fe80::1%lo0 link#4 UHL lo0
ff01:4::/32 fe80::1%lo0 UC lo0
ff01:5::/32 link#5 UGC tun0
ff02::%lo0/32 fe80::1%lo0 UC lo0
ff02::%tun0/32 fe80::215:e9ff:fe3d:6de4%tun0 UGC tun0

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

ifconfig 

vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
	options=2808<VLAN_MTU,WOL_UCAST,WOL_MAGIC>
	ether 00:15:e9:3d:6d:e4
	inet 10.3.123.70 netmask 0xfffffc00 broadcast 10.3.123.255
	media: Ethernet autoselect (100baseTX <full-duplex>)
	status: active
sk0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
	options=b<RXCSUM,TXCSUM,VLAN_MTU>
	ether 00:0f:ea:5b:15:a5
	inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
	media: Ethernet autoselect (1000baseTX <full-duplex,flag0,flag1>)
	status: active
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> metric 0 mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4 
	inet6 ::1 prefixlen 128 
	inet 127.0.0.1 netmask 0xff000000 
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1492
	inet 87.252.255.95 --> 93.125.5.1 netmask 0xffffffff 
	Opened by PID 1128

Re: Проблема с инетом после смены матери.

Добавлено: 2009-11-22 18:21:30
kabachok
а с натом что?

Re: Проблема с инетом после смены матери.

Добавлено: 2009-11-22 22:04:13
Electronik
вот конфиг фаера

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

cat firewall.script

#!/bin/sh

# для начала вводим переменные - для нашего же удобства, чтобы не 
# вводить по сотне раз одно и то же, а потом искать почему не работает,
# и в итоге выяснять, что ошибся IP адресом в одном из правил

FwCMD="/sbin/ipfw" # собственно где лежит бинарник ipfw
LanOut="tun0"            # внешний интерфейс
LanIn="sk0"            # внутренний интерфейс
IpOut="87.252.255.95" # внешний IP адрес машины
IpIn="192.168.0.1"   # внутренний IP машины
NetMask="24"            # маска сети (если она разная для внешней 
                        # и внутренней сети - придётся вводить ещё 
                        # одну переменную, но самое забавное, что 
                        # можно и забить - оставить 24 - всё будет 
                        # работать, по крайней мере я пробовал - 
                        # работаало на 4-х машинах, в разных сетях, 
                        # с разными масками - настоящими разными! но - 
                        # это неправильно.)
NetIn="192.168.0.0"    # Внутренняя сеть

# Сбрасываем все правила:
${FwCMD} -f flush

# Проверяем - соответствует ли пакет динамическим правилам:
${FwCMD} add check-state

# Разрешаем весь траффик по внутреннему интерфейсу (петле)
# Вообще я во многих местах читал что без него может ничё не заработать вообще
# и прочие страшилки. Работает - почта, апач, .... А вот squid - не работает :)
# так что без него и правда - никуда.
${FwCMD} add allow ip from any to any via lo0
# рубим попытки lo0 куда-то лезть и откуда-то лезть на 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

#local resources
${FwCMD} add allow ip from 10.0.0.0/8 to any via sk0


# Вводим запреты:
# режем частные сети на внешнем интерфейсе - по легенде он у нас 
# смотрит в интернет, а значит пакетам этим браться неоткуда на нём.
# рубим частные сeти
${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}
# рубим фрагментированные icmp
${FwCMD} add deny icmp from any to any frag
# рубим широковещательные icmp на внешнем интерфейсе
${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}

# а тут собственно файрволл и начался:

# отправляем всех на frox
${FwCMD} add fwd ${IpIn},2121 tcp from ${NetIn}/${NetMask} to any 21 via ${LanOut}
# отправляем всех на squid (в данном случае - прокси прозрачный)
${FwCMD} add fwd 127.0.0.1,3128 tcp from ${NetIn}/${NetMask} to any 80 via ${LanOut}


# пропускаем траффик через трансляцию сетевых адресов (NAT)
${FwCMD} add divert natd ip from ${NetIn}/${NetMask} 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 снаружи (нам же надо узнавать IP по именам машин?)
${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}
# разрешаем ftp снаружи (оба правила - для пасивного режима)
# для узнавания портранджа по которому будет работать, лезем в 
#/usr/home/lissyara/>sysctl net.inet.ip.portrange.first
# net.inet.ip.portrange.first: 49152
# /usr/home/lissyara/>sysctl net.inet.ip.portrange.last
# net.inet.ip.portrange.last: 65535
${FwCMD} add allow tcp from any to ${IpOut} 21 via ${LanOut}
#Можно изгалиться примерно так, если есть желание, но я предпочитаю руками
#${FwCMD} add allow tcp from any to ${IpOut} \
#`sysctl net.inet.ip.portrange.first | awk '{print $2}'`-\
#`sysctl net.inet.ip.portrange.last | awk '{print $2}'` via ${LanOut}
${FwCMD} add allow tcp from any to ${IpOut} 49152-65535 via ${LanOut}
# разрешаем некоторые типы ICMP траффика - эхо-запрос, 
# эхо-ответ и время жизни пакета истекло
${FwCMD} add allow icmp from any to any icmptypes 0,8,11
# открываем снаружи 80 порт - если у нас есть WWW сервер на машине
${FwCMD} add allow tcp from any to ${IpOut} 80 via ${LanOut}
#No-ip service
${FwCMD} add allow tcp from any to ${IpOut} 8245 via ${LanOut}
# Jabber/ICQ
${FwCMD} add allow tcp from any to ${IpOut} 5222 via ${LanOut}
${FwCMD} add allow tcp from any to ${IpOut} 5190 via ${LanOut}
# открываем снаружи 25 порт (SMTP) если на машине крутится почта
${FwCMD} add allow tcp from any to ${IpOut} 25 via ${LanOut}
# открываем снаружи 22 порт - если надо будет ходить на машину по ssh
#${FwCMD} add allow tcp from any to ${IpOut} 22 via ${LanOut}
# открываем снаружи 143 порт(если надо смотреть почту снаружи по IMAP)
${FwCMD} add allow tcp from any to ${IpOut} 143 via ${LanOut}
# открываем снаружи 110 порт(если надо смотреть почту снаружи по POP)
${FwCMD} add allow tcp from any to ${IpOut} 110 via ${LanOut}
# по поводу следующих трёх правил, для tcp, udp и icmp - их можно
# заменить одним правилом:
#${FwCMD} add allow ip from any to any via ${LanIn}
# но для удобства наладки и контроля происходящего я предпочитаю три отдельных
# правила, хотя могут быть грабли - например протокол gre не пройдёт - 
# придётся стругать отдельное правило для него, типа 
${FwCMD} add allow gre from any to any via ${LanIn}
${FwCMD} add allow gre from any to any via vr0
# итак:
# разрешаем весь tcp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add allow tcp from any to any via ${LanIn}
${FwCMD} add allow tcp from any to any via vr0
# разрешаем весь udp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add allow udp from any to any via ${LanIn}
${FwCMD} add allow udp from any to any via vr0
# разрешаем весь icmp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add allow icmp from any to any via ${LanIn}
${FwCMD} add allow icmp from any to any via vr0
# запрещаем всё и всем. Если тип файрволла не open то это правило добавится
# автоматически, но всё-же ну его. Лучше сам. Надёжней.
${FwCMD} add deny ip from any to any