LINUX.ORG.RU
решено ФорумAdmin

Простой маршрутизатор 3-х сетей

 ,


0

2

Доброго времени суток. Есть такая задача поставить компьютер с 3-мя сетевыми картами, в которые идут 3 разные сети:

1. 10.11.0.0/16
2. 172.20.0.0/16
3. 192.168.1.0/24

Ни одна сеть не должна видеть другую сеть, но админские компьютеры (например 10.11.10.7) должны видеть другие сети по всем портам.

Как мне это сделать через iptables ? Я уже просто окончательно запутался.

P.S. сетевые карты:

eth0: 10.11.20.70
eth1: 172.20.1.1
eth2: 192.168.1.1

Как мне это сделать через iptables ?
Я уже просто окончательно запутался.

Что делал? Что не получилось?

edigaryev ★★★★★ ()
Ответ на: комментарий от edigaryev

лучше представьте что я всё сбросил. Дописал настройки сетевых карт.

Но сделал пока вот как:

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

iptables -A INPUT -s 10.11.10.7 -d 172.20.0.0 -j ACCEPT
iptables -A INPUT -s 10.11.10.7 -d 192.168.1.0 -j ACCEPT

Serpico ()

Ни одна сеть не должна видеть другую сеть, но админские компьютеры (например 10.11.10.7) должны видеть другие сети по всем портам.

Это довольно слабо относится к маршрутизации, это вопрос про файрволл.

Начнём…

# Разрешаем админским компьютерам (например 10.11.10.7) видеть другие сети
iptables -A FORWARD -s 10.11.10.7 -j ACCEPT

# Запрещаем остальной транзитный трафик DROP или REJECT по вкусу
# Вариант 1.
iptables -P FORWARD -j DROP
# Вариант 2.
iptables -А FORWARD -j DROP
MumiyTroll ★★★ ()
Ответ на: комментарий от Serpico

iptables -A INPUT …

А вот это и есть Ваша ошибка! INPUT относится к локальному трафику, т.е. адресованному хосту—маршрутизатору. Транзитный трафик идёт через FORWARD:

http://www.adminsehow.com/wp-content/uploads/2011/09/tables_traverse.jpg

MumiyTroll ★★★ ()
Ответ на: комментарий от MumiyTroll

сделал как вы написали. но результата нет

Есть сейчас компьютер 172.20.1.2 не могу на него ни зайти ни пингуется даже.

Serpico ()
Ответ на: комментарий от Serpico

Во всех сетях данный маршрутизатор проставлен шлюзом по умолчанию? Что кажет tcpdump -i any host 172.20.1.2 при попытке пропинговать этот хост? Если только запросы, то вариантов 2:

1) 1 запрос на каждый ICMP-пакет(с входящего интерфейса) и нет ответов - режет файрвол на шлюзе, курим iptables;
2) 2 запроса на каждый ICMP-пакет(с входящего и исходящего соответственно) и нет ответов - файрвол пакет пропускает, но целевой компьютер не знает, куда отвечать - курить маршрутизацию на нем(как минимум - проверить шлюз по умолчанию, как я советовал выше).

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

tcpdump у меня нет. Но в сетях 172.20.0.0 шлюзом стоит - 172.20.1.1 и в сети 192.168.1.0 стоит шлюзом - 192.168.1.1

То есть компьютер то один и тот же.

Serpico ()
Ответ на: комментарий от Serpico

для начала(откроет форвардинг отовсюду):

iptables -P FORWARD ACCEPT
iptables -F FORWARD
sysctl -w net.ipv4.ip_forward=1

Как заработает - переводи политику(через -P) в DROP и пиши разрешающие правила. За разрешение транзитных пакетов отвечает в таблице filter только цепочка FORWARD.

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

да так получилось, еще прописал у себя на компьютьере (WinXP) :

route ADD 172.20.0.0 MASK 255.255.0.0 10.11.20.70
и всё заработало, но потом я запретил весь FORWARD и разрешил для себя:
iptables -A FORWARD -s 10.11.10.7 -d 172.20.0.0/16 -j ACCEPT
и опять никак, я так понимаю мне надо разрешить отправлять ответ по уже установленным соединениям, но как это сделать я не знаю.

Serpico ()
Ответ на: комментарий от Serpico

я так понимаю мне надо разрешить отправлять ответ по уже установленным соединениям, но как это сделать я не знаю.

iptables -I FORWARD 1 -m conntract --ctstate RELATED,ESTABLISHED,DNAT -j ACCEPT
Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Serpico

еще прописал у себя на компьютьере (WinXP) :

Лучше бы ты шлюз по умолчанию правильный прописал. У тебя его вообще не было или есть другой маршрутизатор, выполняющий эту роль в сети 10.11.0.0/16?

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Serpico

Если ты получаешь IP по DHCP - можешь на нём раздать classless-маршрут, чтобы все клиенты знали как ходить в другие сети(чтоб не добавлять маршрут руками на каждом компьютере). А неугодных - зарезать файрволом.

Pinkbyte ★★★★★ ()

Как мне это сделать через iptables ?

Это скорее работа для VLAN-а. У тебя какие switch-и?

arson ★★★★★ ()
Ответ на: комментарий от Serpico

Таких два:

Эти VLAN-ы не поддерживают. Но если: админские компьютеры поддеживают VLAN (т.е. это linux или win с поддержкой VLAN в драйверах), а пользовательские не могут присвоить себе номер VLAN (не имеют прав или нет поддержки в драйверах), то все равно можно на VLAN-ах.

arson ★★★★★ ()
Ответ на: комментарий от Pinkbyte
# Generated by iptables-save v1.4.14 on Wed Mar  5 03:41:25 2014
*filter
:INPUT ACCEPT [30133:2843894]
:FORWARD DROP [53:2544]
:OUTPUT ACCEPT [85:11781]
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED,DNAT -j ACCEPT
-A FORWARD -s 10.11.10.7/32 -d 172.20.0.0/16 -j ACCEPT
-A FORWARD -i lo -j ACCEPT
COMMIT
Serpico ()
Ответ на: комментарий от tazhate

Это - к ТСу. Может у него железо не позволяет правильно всё разрулить. Может копропротивный стандарт упоротый. Может еще что. Моё дело маленькое - спросили/ответил )))

Pinkbyte ★★★★★ ()
Ответ на: комментарий от anonymous

Лучше маскарадинг на шлюзе сделать.

За организацию NAT в локальной сети одной конторы вместо правильной маршрутизации я обычно бью канделябром, если нет никакой реальной причины делать именно NAT(причина - так удобнее, потому что можно не париться с маршрутизацией - не канает)

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

ИМХО, NAT вполне пойдет как решение, если клиенту не обязательно знать о существовании какой-то там подсети за этим хостом.

anonymous ()
Ответ на: комментарий от tazhate

Нет, ну правда. Всегда где вланы, там и маршрутизация между ними, и не всех везде пускают, а именно кого-то и куда-то по особой логике. Как тут без файрвола?

//сам живу в сети /16 без сегментации, предметом разговора живо заинтересован

pianolender ★★★ ()
Ответ на: комментарий от pianolender

Ок, объясняю наглядно:
Есть причины, по которым есть раздления сетей.

Например есть бух сеть и общая.
Их надо разделить.
Но манагеру нужны ресурсы и оттуда и оттуда.
В таком случае манагеру либо выдается еще айпишка, либо другая сетевуха с другой айпишкой, либо вапще отдельный девайс. ибо нефиг.

tazhate ★★★★★ ()
Ответ на: комментарий от tazhate

В таком случае манагеру либо выдается еще айпишка,

это как eth0:0?

либо другая сетевуха с другой айпишкой,

то есть он сидит сразу в двух сетях, что в этом варианте, что в следующем?

либо вапще отдельный девайс. ибо нефиг.

а это как?

pianolender ★★★ ()
Ответ на: комментарий от pianolender

это как eth0:0?
то есть он сидит сразу в двух сетях, что в этом варианте, что в следующем?

Могу ошибаться, ибо не помню, как себя роутер поведет в такой ситуации. Но, емнип, так можно.

а это как?

А это так. Отдельный комп для доступа в бух сеть. Ибо нефиг и безопастность.

tazhate ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.