Как дать доступ в инет подсети

Есть и такой ОС.

Модератор: weec

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
katod
рядовой
Сообщения: 16
Зарегистрирован: 2010-05-18 7:54:19

Как дать доступ в инет подсети

Непрочитанное сообщение katod » 2011-02-11 14:06:41

Здравствуйте!
Есть интернет-шлюз, отвечает за локалку 192.168.0.0/24 и имеет выход в интернет, сама локалка 192.168.0.0/24 с доступом в инет.
Интерфейс eth0 направлен на внешний мир, интерфейс eth1 локальная подсеть имеет IP 192.168.0.1, маску 255.255.255.0.

Надо создать 2-й шлюз, отвечающий за подсеть 192.168.1.0/24 тоже с доступом в инет. Интерфейс eth0 соединяется с подсетью 192.168.0.0/24, а eth1 отвечает за подсеть 192.168.1.0/24. Шлюз по умолчанию 192.168.0.1.

Почитав статью по схожей задаче http://plutonit.ru/view_post.php?id=128 , назрел ВОПРОС: как после маскарадинга на 2-м шлюзе, т.е. подмены параметров IP пакетов, можно будет идентифицировать на каком компьютере подсети проблема?
Настраиваю с помощью iptables.

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

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Как дать доступ в инет подсети

Непрочитанное сообщение blade_007 » 2011-02-11 14:10:15

ip_forward=1 + routing.. никакого маскарадинга.

Гость
проходил мимо

Re: Как дать доступ в инет подсети

Непрочитанное сообщение Гость » 2011-02-24 10:06:19

Спасибо! форвардинг включен. на 2-м шлюзе (с ip 192.168.0.5 - eth0 и ip 192.168.1.5 - eth1) пингуется адрес со второй подсети 192.168.1.0/24 192.168.1.19. при этом:

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

[~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     1      0        0 eth1
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
0.0.0.0         192.168.0.1   0.0.0.0         UG    0      0        0 eth0
~]# ip route list
192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.5  metric 1
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.5
192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1
default via 192.168.0.1 dev eth0  proto static
 ~]#
/code]

с машины 192.168.1.19 пингуется только адрес 192.168.1.5, а интернет-шлюз 192.168.0.1 и 192.168.0.5 нет!
форвардинг вклчен и на 192.168.0.5 и на 192.168.1.19.
подскажите, какие правила надо может в файервол добавить? и на какой машине? может файервол надо и в подсети 192.168.1.0/24 на машинках править? или нет? 
прописываю следующее:
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -d 92.168.0.5 -j ACCEPT 
iptables -A OUTPUT -o eth0 -d 192.168.1.0/24 -j ACCEPT 
iptables -A FORWARD -i eth0 -s 192.168.0.0/24 -d 192.168.1.0/24 -j ACCEPT
и не работает все равно. подскажите куда и как дальше копать: мучать файер или не то с маршрутизацией что-то?

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Как дать доступ в инет подсети

Непрочитанное сообщение blade_007 » 2011-02-25 10:10:06

На 1-м роутере прописать маршрут в подсеть 192.168.1.0/24, т.е.
r1: route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.5
r2: route add default gw 192.168.0.1

Гость
проходил мимо

Re: Как дать доступ в инет подсети

Непрочитанное сообщение Гость » 2011-03-01 9:39:52

Cпасибо! Но что-то не помогло. Пытаюсь с компа 192.168.1.19 подсети 192.168.1.0/24 пропинговать шлюз 192.168.0.1 - не пингуется.. :cry:
Зато по умолчанию шлюз стоит 192.168.0.254.
Может надо в файерволах пошаманить? Сейчас они имеют дефолтные настройки. Кроме шлюза конечно.

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Как дать доступ в инет подсети

Непрочитанное сообщение blade_007 » 2011-03-01 13:06:30

1. ip_forward=1? на обоих шлюзах
2. service iptables stop
3. прописать маршруты

Гость
проходил мимо

Re: Как дать доступ в инет подсети

Непрочитанное сообщение Гость » 2011-03-01 14:50:20

Форвардинг включен на обоих роутерах. Везде единичка.
1 шлюз:

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

~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
х.y.z.u     0.0.0.0         255.255.255.252 U     0      0        0 eth2
192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         х.y.z.u     0.0.0.0         UG    0      0        0 eth2
 ~]#
2 шлюз:

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

~]# route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.5
~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     192.168.0.5   255.255.255.0   UG    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     1      0        0 eth1
192.168.0.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
0.0.0.0         192.168.0.1   0.0.0.0         UG    0      0        0 eth0
~]#
на втором добавляю подсеть все же, а не на первом. или так нельзя? может в этом дело? а по-умолчанию и так на втором шлюзе стоит gw 192.168.0.1

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Как дать доступ в инет подсети

Непрочитанное сообщение blade_007 » 2011-03-01 14:55:45

еще раз
На 1-м роутере прописать маршрут в подсеть 192.168.1.0/24, т.е.
r1: route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.5
r2: route add default gw 192.168.0.1

если у вас схема
LAN 192.168.1.0/24 ---- [192.168.1.1 ---- 192.168.0.5] ------ 192.168.0.1------ INET

Гость
проходил мимо

Re: Как дать доступ в инет подсети

Непрочитанное сообщение Гость » 2011-03-02 9:27:29

добавив маршрыты, все равно не помогло :cz2:
1-й шлюз:
~]# route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.5
~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
х.y.z.u 0.0.0.0 255.255.255.252 U 0 0 0 eth2
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.1.0 192.168.0.5 255.255.255.0 UG 0 0 0 eth0
0.0.0.0 х.y.z.u 0.0.0.0 UG 0 0 0 eth2
~]#
2-й шлюз:
~]# route add default gw 192.168.0.254
~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth1
192.168.0.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
~]#

пинги с компа 192.168.1.19 подсети 192.168.1.0/24 все равно не идут. тут все же наверное дело в файерволе?? надо дописать может правила какие на 1-м шлюзе?

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Как дать доступ в инет подсети

Непрочитанное сообщение blade_007 » 2011-03-02 14:40:45

либо service iptables stop на обоих шлюзах, либо добавить в цепочки input и FORWARD, обратив внимание на порядок (должны быть сверху)
-A INPUT -s 192.168.0.0/16 -p icmp -j ACCEPT
-A FORWARD -s 192.168.0.0/16 -p icmp -j ACCEPT

Гость
проходил мимо

Re: Как дать доступ в инет подсети

Непрочитанное сообщение Гость » 2011-03-02 16:09:43

остановить файер на 1-м шлюзе не могу в целях соблюдения безопасности. а рестарт делаю.
дописав строки на 1-м шлюзе
не совсем понимаю целесообразность добавления строк:
-A INPUT -s 192.168.0.0/16 -p icmp -j ACCEPT
-A FORWARD -s 192.168.0.0/16 -p icmp -j ACCEPT
я добавила:
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -d 192.168.0.254 -j ACCEPT
iptables -A OUTPUT -o eth0 -d 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -i eth0 -s 192.168.0.0/24 -d 192.168.1.0/24 -j ACCEPT
но и это не помогло.
потом оказалось что файл /etc/net/ifaces/eth0/ipv4route пуст, добавив в него
192.168.1.0/24 via 192.168.0.5
потом релод нетворка service network reload
все равно не работает.

Теперь вторая мысль: может проблема на 2-м роутере 192.168.0.5 c двумя картами eth0 и eth1 соответственно 192.168.0.5 и 192.168.1.5. Может между ними надо указать маршруты? С них пингуется 192.168.1.19, а с самого 192.168.1.19 пингуется только 192.168.1.5, а 192.168.0.5 нет!!!

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Как дать доступ в инет подсети

Непрочитанное сообщение blade_007 » 2011-03-02 16:27:11

Гость писал(а): не совсем понимаю целесообразность добавления строк:
-A INPUT -s 192.168.0.0/16 -p icmp -j ACCEPT
-A FORWARD -s 192.168.0.0/16 -p icmp -j ACCEPT
они разрешают icmp трафик от подсети 192.168.0.0/16. намеренно сделан бОльший диапазон.
Теперь вторая мысль: может проблема на 2-м роутере 192.168.0.5 c двумя картами eth0 и eth1 соответственно 192.168.0.5 и 192.168.1.5. Может между ними надо указать маршруты? С них пингуется 192.168.1.19, а с самого 192.168.1.19 пингуется только 192.168.1.5, а 192.168.0.5 нет!!!
остановите здесь iptables
проверить iptables -Ln или service iptables status
проверьте sysctl net.ipv4.ip_forward

проверьте пингуется ли со 2-го шлюза (192.168.0.5) ваш хост 192.168.1.19 (какой роутинг на вашем хосте? роутер по умолчанию 192.168.1.5?)
ping -I eth_на_котором_192.168.0.5 192.168.1.19

Гость
проходил мимо

Re: Как дать доступ в инет подсети

Непрочитанное сообщение Гость » 2011-03-02 16:52:49

заработало! файер не правила! - признаюсь!
зато прописала на компе 192.168.1.19 в качестве шлюза 192.168.0.1, и добавив маршрут через 192.168.0.118 явно в настройках eth0, все ЗАРАБОТАЛО!!!
СПАСИБО за помошь!!!