Назад | Перейти на главную страницу

iptables и переход в разные сети

                linuxbox (p.q.r.t)
                    |
                    |
 INTERNAL  ------ ABCD ----- INTERNET
(p.q.r.s)                  (m.n.o.k)

ABCD имеет 3 интерфейса, подключенных к linuxbox, ВНУТРЕННИЙ N / W, ИНТЕРНЕТ.

Linuxbox имеет частный адрес (p.q.r.t). В настоящее время я пересылаю пакеты из linuxbox в ИНТЕРНЕТ на ABCD.

У меня есть небольшое сомнение относительно FTP из linuxbox, так как я должен поддерживать ftp из linuxbox как для ВНУТРЕННЕГО Н / З, так и в ИНТЕРНЕТ.

Как я могу исправить правило в iptables, присутствующем в ABCD, где он может решить, находится ли IP-адрес назначения ftp-сервера внутри ВНУТРЕННЕГО N / W или в ИНТЕРНЕТЕ и выполнить наттинг соответственно.

Если linuxbox (p.q.r.t) и ВНУТРЕННИЙ (p.q.r.s) находятся в одной подсети, вам не следует нажимать ABCD, поскольку он действительно действует как маскирующий маршрутизатор в описанном вами сценарии. Я должен предположить, что пересылка включена на ABCD, иначе вы не будете выходить в Интернет оттуда, и я также должен предположить, что правильные маршруты существуют, или ваши внутренние клиенты не будут получать трафик обратно.

То, что говорит womble, правильно, но если он подключен так, как должен, тогда ftp должен работать, а если нет, ваша проблема, вероятно, не в ABCD. Вы можете добавить логирование iptables для определенного трафика, чтобы увидеть, является ли проблема ABCD, примерно так:

iptables -A INPUT -p tcp -m tcp --destination-port 21 -j LOG --log-level 7 --log-prefix "FTP Testing"

Вы, конечно, можете ограничить количество хостов, на которые записывается трафик, если в вашей сети много FTP-трафика. Выключите это после того, как закончите, потому что это может очень быстро заполнить журнал.

Если ABCD - это специализированный маршрутизатор / коммутатор, он должен просто работать. Просто подключите внутренний сетевой сервер к свободному порту. Если, однако, ABCD - это сервер с несколькими сетевыми адаптерами (как видно из вашего вопроса), вам придется мост сетевые карты вместе.

У вас больше не будет двух сетевых адаптеров, а будет только одно мостовое устройство, которое будет действовать как один «сетевой адаптер». Все окажется в сети p.q.r.0 / 24. Ваши правила брандмауэра должны быть обновлены, чтобы отразить новое устройство (мост). Если вам нужно ограничить трафик между машинами во ВНУТРЕННЕМ и linuxbox, вам нужно написать эти правила. Помните, что FTP имеет два очень разные схемы протоколов, которые необходимо учитывать. Что касается связи с ИНТЕРНЕТОМ, вам нужно только изменить те правила, которые уже работают для linuxbox, чтобы отразить новое устройство.

Кстати, вы не должны выбирать свои собственные номера сетей p.q.r.0. Уже существует ряд, специально предназначенный для этого типа использования. Сеть / 16 - это 192.168.x.x, и кажется, что вам стоит ее использовать. Прочтите об этом. Сеть / 16 допускает 2 ^ 16 = 65 536 (минус два для маршрутизатора и широковещательного адреса). 192.168.1 / 8 позволяет использовать около 256 хостов. Должно быть правило, которое отбрасывает пакеты с RFC1918 исходные адреса.

Правило NAT, которое вам нужно установить, - это правило POSTROUTING (snat).

POSTROUTING означает после укоренения, поэтому вы можете сопоставить только пакет, идущий в ИНТЕРНЕТ, потому что ваши таблицы маршрутизации уже решили это.

Что-то вроде:

iptables -t nat -I POSTROUTING -o nameOfABCDInterfaceGoingToInternet -p tcp и т. д.

Если вы хотите, чтобы машина находилась в другом сегменте сети, вы должны поместить ее в отдельную IP-подсеть - тогда нормальная маршрутизация работает нормально. Если это действительно невозможно, вы можете использовать технику, называемую «прокси-ARP», где шлюз («ABCD») может выдавать себя за другие машины в сети и отвечать на запросы ARP от имени друг друга. я делаю не рекомендую это, однако, если вы действительно не знаете, что делаете, и вам нужно просто создать отдельные подсети (это не значит, что у вас не хватает места в RFC1918 для игры).