Страница 1 из 1
Простой шлюз в интернет, куча способов и все безрезультатные
Добавлено: 2009-10-12 22:17:10
krendelek007
Понимаю, что тема возможно и не имеет права на жизнь, но уже второй день над ней бьюсь и не получается

.
Суть до безобразия простая: Надо раздать интернет на три ПК, которые подключены в локальную сеть и воткнуты в сервер (ОС FreeBSD 7.2).
На сервере 2 интерфейса:
stge0 - смотрит в локальную сеть и имеет IP 192.168.0.1
nfe0 - смотрит в сторону провайдера и получает локальный IP через DHCP
После старта системы через pptp (mpd5) появляется ещё одно соединение
ng0, которое в свою очередь уже имеет внешний IP адрес, присвоенный провайдером.
Интернет на самом сервере работает без проблем.
Ядро собрано с опциями:
Код: Выделить всё
options IPFIREWALL
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=4
options IPDIVERT
options IPFIREWALL_FORWARD
options DUMMYNET
rc.conf имеет вид:
Код: Выделить всё
hostname="server"
# Интерфейсы
ifconfig_nfe0="DHCP"
ifconfig_stge0="inet 192.168.0.1 netmask 255.255.255.0"
# SSH
sshd_enable="YES"
# MPD (PPTP)
mpd_enable="YES"
# Клиент DynDNS
ddclient_enable="YES"
gateway_enable="YES"
firewall_enable="YES"
firewall_type="OPEN"
natd_enable="YES"
natd_interface="nfe0"
#
ps ax | grep nat # показывает следующее:
Код: Выделить всё
506 ?? Rs 0:00,10 /sbin/natd -dynamic -n nfe0
#
ipfw show # показывает следующее:
Код: Выделить всё
00050 7040 819974 divert 8668 ip4 from any to any via nfe0
00100 52 4786 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
65000 12089 1331469 allow ip from any to any
65535 1 352 allow ip from any to any
Компам в локалке дал настройки типа:
Код: Выделить всё
ip 192.168.0.2 (или другое число до 255)
маска 255.255.255.0
шлюз 192.168.0.1
dns 64.102.255.44
альт. dns 208.67.222.222
Результат отрицательный!!!, комп из локалки не получает ответы на пинги по IP (т.е. даже не беря в счет DNS). Пингую наприме "ya.ru":
Рад буду любой наводке, заранее ОГРОМНОЕ спасибо!
Re: Простой шлюз в интернет, куча способов и все безрезультатные
Добавлено: 2009-10-12 22:23:23
krendelek007
Даже не ожидал, что можно тему из под гостя создать ... (собственно это я тему создал)
Re: Простой шлюз в интернет, куча способов и все безрезультатные
Добавлено: 2009-10-12 22:24:21
paradox
есть такая супер утилита
tcpdump зоветься
всместе с головой = позволяет решить многие проблемы
Re: Простой шлюз в интернет, куча способов и все безрезультатные
Добавлено: 2009-10-12 23:28:14
silent
У тебя не на том интерфейсе натится, у тебя nfe0, а должен быть ng0.
Re: Простой шлюз в интернет, куча способов и все безрезультатные
Добавлено: 2009-10-13 10:26:02
krendelek007
silent писал(а):У тебя не на том интерфейсе натится, у тебя nfe0, а должен быть ng0.
Поставил
ng0:
# ps ax | grep nat # уже ничего не показывает
# ipfw show:
Код: Выделить всё
00050 511 33231 divert 8668 ip4 from any to any via ng0
00100 96 9296 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
65000 1266 115501 allow ip from any to any
65535 3 544 allow ip from any to any
И ко всему прочему пропал интернет на самом серваке

. .... по крайней мере пинги на "google.com" не проходят.
Если посмотреть в ifconfig, то само соединение (ng0) есть и внешний IP провайдером присвоился.
Re: Простой шлюз в интернет, куча способов и все безрезультатные
Добавлено: 2009-10-13 10:33:53
krendelek007
paradox писал(а):есть такая супер утилита
tcpdump зоветься
всместе с головой = позволяет решить многие проблемы
Так как я человек в данной сфере новый и с FreeBSD начал работать не так давно, то думаю, что не смогу воспользоваться вашим ценным советом, так как на данный момент имеется голова, но не имеется в ней большого обилия информации в данной области.
Re: Простой шлюз в интернет, куча способов и все безрезультатные
Добавлено: 2009-10-13 10:37:32
arkan
было чтото подобное
создай конфиг с правилами фаера и конкретно пропиши в firewall_type="/КОНФИГ"
хбз как такое может быть
Re: Простой шлюз в интернет, куча способов и все безрезультатные
Добавлено: 2009-10-13 10:40:12
jammin
Верните НАТ на nfe0 и пропишите в фаерволл еще один диверт через ng0.
Re: Простой шлюз в интернет, куча способов и все безрезультатные
Добавлено: 2009-10-13 11:26:57
krendelek007
jammin писал(а):Верните НАТ на nfe0 и пропишите в фаерволл еще один диверт через ng0.
Вернул, делал так:
Код: Выделить всё
00040 292 30007 divert 8668 ip4 from any to any via ng0
00050 5091 700109 divert 8668 ip4 from any to any via nfe0
и пробовал менять их местами, результат отрицательный
to
arkan:
сейчас буду пробовать ...
p.s. подумал, что может ещё картину прояснит конфиг от mpd5 (скажу сразу, что не совсем понимаю что там значат все строки, но инет на сервере работает!):
Код: Выделить всё
default:
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
create link static L1 pptp
set link action bundle B1
set auth authname LOGIN
set auth password PASSWORD
set link max-redial 0
set link mtu 1460
set link keep-alive 20 75
set pptp peer URL_SERVERA
set pptp disable windowing
open
Re: Простой шлюз в интернет, куча способов и все безрезультатные
Добавлено: 2009-10-13 12:54:44
schizoid
отключите фаервол вообще
создайте файл /etc/ipnat.conf
в него впишите следующее
дальше в /etc/rc.conf добавьте строки:
Код: Выделить всё
gateway_enable="YES"
ipnat_enable="YES"
ipnat_program="/sbin/ipnat"
ipnat_rules="/etc/ipnat.conf"
далее стартуйте mpd(что бы появился интерфейс ng0)
затем стартуете
дальше на тачках которые нужно выпустить в инет прописываете Ип/маску/шлюз(сервер)/ДНС(скорее_всего_провайдер)
все. инет должен работать. при выключенном файерволе!!!!
Re: Простой шлюз в интернет, куча способов и все безрезультатные
Добавлено: 2009-10-13 13:23:16
Kostyan
krendelek007 писал(а):Понимаю, что тема возможно и не имеет права на жизнь, но уже второй день над ней бьюсь и не получается

.
На сервере 2 интерфейса:
stge0 - смотрит в локальную сеть и имеет IP 192.168.0.1
nfe0 - смотрит в сторону провайдера и получает локальный IP через DHCP
Рад буду любой наводке, заранее ОГРОМНОЕ спасибо!
Если необходима и сеть провайдера и интернет, тогда поднимаем 2 ната иначе поднимаем нат на ng0
rc.conf
Код: Выделить всё
natd_program="/sbin/natd" # path to natd, if you want a different one.
natd_enable="YES" # Enable natd (if firewall_enable == YES).
natd_interface="ng0" # Public interface or IPaddress to use.
natd_flags="-u -s -m -f /etc/natd.conf" # Additional flags for natd.
Код: Выделить всё
[code]#!/bin/sh
fwcmd="/sbin/ipfw -q"
EXT1_IF="stge0"
EXT2_IF="ng0"
INT1_IF="nfe0"
N=500
S=10
${fwcmd} -f flush
${fwcmd} add ${N} $(N=$(($N+$S))) pass all from any to any via lo0
${fwcmd} add ${N} $(N=$(($N+$S))) pass all from me to me
${fwcmd} add ${N} $(N=$(($N+$S))) deny all from any to 127.0.0.0/8
${fwcmd} add ${N} $(N=$(($N+$S))) deny ip from 127.0.0.0/8 to any
${fwcmd} add ${N} $(N=$(($N+$S))) divert natd ip from any to IP_ng0_interface in via ${EXT2_IF}
${fwcmd} add ${N} $(N=$(($N+$S))) divert natd ip from 192.168.0.0/24 to not me out via ${EXT2_IF}
#для начала, потом можно ненужное позапрещать.
${fwcmd} add ${N} $(N=$(($N+$S))) allow ip from any to any
Re: Простой шлюз в интернет, куча способов и все безрезультатные
Добавлено: 2009-10-13 13:34:23
krendelek007
schizoid писал(а):отключите фаервол вообще
создайте файл /etc/ipnat.conf
в него впишите следующее
дальше в /etc/rc.conf добавьте строки:
Код: Выделить всё
gateway_enable="YES"
ipnat_enable="YES"
ipnat_program="/sbin/ipnat"
ipnat_rules="/etc/ipnat.conf"
далее стартуйте mpd(что бы появился интерфейс ng0)
затем стартуете
дальше на тачках которые нужно выпустить в инет прописываете Ип/маску/шлюз(сервер)/ДНС(скорее_всего_провайдер)
все. инет должен работать. при выключенном файерволе!!!!
Огромное спасибо!!!
Ваш способ сработал.
p.s. только там: map ng0 192.168.0.
0/24 -> 0.0.0.0/32 забыли поставить нолик (это я пишу на случай, если кто-то после меня столкнется с такой проблемой).
to
schizoid, теперь ведь можно отстраивать фаервол, верно?
to
Kostyan, в перспективе надо будет и в локальную сеть провайдера вломиться, но пока остановлюсь на этом ... . Но так или иначе спасибо за совет.
Re: Простой шлюз в интернет, куча способов и все безрезультатные
Добавлено: 2009-10-13 13:51:44
schizoid
да 0 забыл, т.к. писал по памяти, апечатка
на счет фаервола - смотрите сами, если у вас нет сетевых сервисов смотрящих наружу, то зачем он вам?