Простой шлюз в интернет, куча способов и все безрезультатные

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

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
krendelek007
рядовой
Сообщения: 39
Зарегистрирован: 2009-10-12 21:35:04

Простой шлюз в интернет, куча способов и все безрезультатные

Непрочитанное сообщение krendelek007 » 2009-10-12 22:17:10

Понимаю, что тема возможно и не имеет права на жизнь, но уже второй день над ней бьюсь и не получается :sorry: :cz2: .
Суть до безобразия простая: Надо раздать интернет на три ПК, которые подключены в локальную сеть и воткнуты в сервер (ОС 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":

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

ping -t 93.158.134.8
Рад буду любой наводке, заранее ОГРОМНОЕ спасибо!

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

Аватара пользователя
krendelek007
рядовой
Сообщения: 39
Зарегистрирован: 2009-10-12 21:35:04

Re: Простой шлюз в интернет, куча способов и все безрезультатные

Непрочитанное сообщение krendelek007 » 2009-10-12 22:23:23

Даже не ожидал, что можно тему из под гостя создать ... (собственно это я тему создал)

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

Re: Простой шлюз в интернет, куча способов и все безрезультатные

Непрочитанное сообщение paradox » 2009-10-12 22:24:21

есть такая супер утилита
tcpdump зоветься
всместе с головой = позволяет решить многие проблемы

silent
мл. сержант
Сообщения: 82
Зарегистрирован: 2008-06-10 15:56:37

Re: Простой шлюз в интернет, куча способов и все безрезультатные

Непрочитанное сообщение silent » 2009-10-12 23:28:14

У тебя не на том интерфейсе натится, у тебя nfe0, а должен быть ng0.

Аватара пользователя
krendelek007
рядовой
Сообщения: 39
Зарегистрирован: 2009-10-12 21:35:04

Re: Простой шлюз в интернет, куча способов и все безрезультатные

Непрочитанное сообщение krendelek007 » 2009-10-13 10:26:02

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
И ко всему прочему пропал интернет на самом серваке :unknown: . .... по крайней мере пинги на "google.com" не проходят.

Если посмотреть в ifconfig, то само соединение (ng0) есть и внешний IP провайдером присвоился.

Аватара пользователя
krendelek007
рядовой
Сообщения: 39
Зарегистрирован: 2009-10-12 21:35:04

Re: Простой шлюз в интернет, куча способов и все безрезультатные

Непрочитанное сообщение krendelek007 » 2009-10-13 10:33:53

paradox писал(а):есть такая супер утилита
tcpdump зоветься
всместе с головой = позволяет решить многие проблемы
Так как я человек в данной сфере новый и с FreeBSD начал работать не так давно, то думаю, что не смогу воспользоваться вашим ценным советом, так как на данный момент имеется голова, но не имеется в ней большого обилия информации в данной области.

arkan
ст. прапорщик
Сообщения: 559
Зарегистрирован: 2008-08-03 19:58:13
Откуда: Новосибирск
Контактная информация:

Re: Простой шлюз в интернет, куча способов и все безрезультатные

Непрочитанное сообщение arkan » 2009-10-13 10:37:32

было чтото подобное
создай конфиг с правилами фаера и конкретно пропиши в firewall_type="/КОНФИГ"
хбз как такое может быть

jammin
ефрейтор
Сообщения: 55
Зарегистрирован: 2008-04-25 8:45:31

Re: Простой шлюз в интернет, куча способов и все безрезультатные

Непрочитанное сообщение jammin » 2009-10-13 10:40:12

Верните НАТ на nfe0 и пропишите в фаерволл еще один диверт через ng0.

Аватара пользователя
krendelek007
рядовой
Сообщения: 39
Зарегистрирован: 2009-10-12 21:35:04

Re: Простой шлюз в интернет, куча способов и все безрезультатные

Непрочитанное сообщение krendelek007 » 2009-10-13 11:26:57

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
и пробовал менять их местами, результат отрицательный :st:

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

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: Простой шлюз в интернет, куча способов и все безрезультатные

Непрочитанное сообщение schizoid » 2009-10-13 12:54:44

отключите фаервол вообще
создайте файл /etc/ipnat.conf
в него впишите следующее

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

map ng0 192.168.0./24 -> 0.0.0.0/32
дальше в /etc/rc.conf добавьте строки:

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

gateway_enable="YES"
ipnat_enable="YES"
ipnat_program="/sbin/ipnat"
ipnat_rules="/etc/ipnat.conf"
далее стартуйте mpd(что бы появился интерфейс ng0)
затем стартуете

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

/etc/rc.d/ipnat start
дальше на тачках которые нужно выпустить в инет прописываете Ип/маску/шлюз(сервер)/ДНС(скорее_всего_провайдер)
все. инет должен работать. при выключенном файерволе!!!!
ядерный взрыв...смертельно красиво...жаль, что не вечно...

Kostyan
проходил мимо
Сообщения: 7
Зарегистрирован: 2009-04-02 10:17:04

Re: Простой шлюз в интернет, куча способов и все безрезультатные

Непрочитанное сообщение Kostyan » 2009-10-13 13:23:16

krendelek007 писал(а):Понимаю, что тема возможно и не имеет права на жизнь, но уже второй день над ней бьюсь и не получается :sorry: :cz2: .
На сервере 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

Аватара пользователя
krendelek007
рядовой
Сообщения: 39
Зарегистрирован: 2009-10-12 21:35:04

Re: Простой шлюз в интернет, куча способов и все безрезультатные

Непрочитанное сообщение krendelek007 » 2009-10-13 13:34:23

schizoid писал(а):отключите фаервол вообще
создайте файл /etc/ipnat.conf
в него впишите следующее

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

map ng0 192.168.0./24 -> 0.0.0.0/32
дальше в /etc/rc.conf добавьте строки:

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

gateway_enable="YES"
ipnat_enable="YES"
ipnat_program="/sbin/ipnat"
ipnat_rules="/etc/ipnat.conf"
далее стартуйте mpd(что бы появился интерфейс ng0)
затем стартуете

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

/etc/rc.d/ipnat start
дальше на тачках которые нужно выпустить в инет прописываете Ип/маску/шлюз(сервер)/ДНС(скорее_всего_провайдер)
все. инет должен работать. при выключенном файерволе!!!!
Огромное спасибо!!! :good:
Ваш способ сработал.
p.s. только там: map ng0 192.168.0.0/24 -> 0.0.0.0/32 забыли поставить нолик (это я пишу на случай, если кто-то после меня столкнется с такой проблемой).

to schizoid, теперь ведь можно отстраивать фаервол, верно?

to Kostyan, в перспективе надо будет и в локальную сеть провайдера вломиться, но пока остановлюсь на этом ... . Но так или иначе спасибо за совет.

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: Простой шлюз в интернет, куча способов и все безрезультатные

Непрочитанное сообщение schizoid » 2009-10-13 13:51:44

да 0 забыл, т.к. писал по памяти, апечатка
на счет фаервола - смотрите сами, если у вас нет сетевых сервисов смотрящих наружу, то зачем он вам?
ядерный взрыв...смертельно красиво...жаль, что не вечно...