вторник, 22 июля 2008 г.

IP прокси средствами фаервола Linux

Здесь я покажу пример проксирования IP пакетов средствами межсетевого экрана операционной системы Linux.

Как известно, фаервол в Linux один — netfilter. И так как он давно встроен в ядро linux, то не понадобится устанавливать никаких дополнительных программ. Используемый дистрибутив Linux также не имеет значения.

Сначала несколько слов о том, зачем все это нужно. Например у нас есть две сети: «Сеть A» и «Сеть B» соединенные linux-маршрутизатором. Компьютеру клиента из «Сети A» необходимо получить доступ к серверу в «Сети B». Причем обе сети имеют сложную организацию, не являются простыми ethernet сегментами. У нас имеется контроль над компьютерами клиента, сервером и маршрутизатором. Над остальными частями сетей контроль отсутствует.

Проксирование ip трафика осуществляется с помощью следующих команд, выполняемых на linux-маршрутизаторе:

iptables -t nat -I PREROUTING         \
    -s 172.18.247.24 -d 172.18.55.17  \
    -j DNAT --to-destination 192.168.19.3

iptables -t nat -I POSTROUTING        \
    -s 172.18.247.24 -d 192.168.19.3  \
    -j SNAT --to-source 192.168.19.218

Первая команда создает правило фаервола, заставлюящее менять адрес назначения (destination) пакетов на адрес сервера в «Сети B». Второй вызов iptables меняет адрес источника пакетов (source) на адрес маршрутизатора в «Сети B».

С компьютера клиента нужно будет обращаться на ip адрес маршрутизатора. Например использовать URL http://172.18.55.17 или выполнить команду:

ping 172.18.55.17

Фактически же на запросы будет отвечать не маршрутизатор, а сервер. Причем со стороны сервера будет казаться что запросы поступают от ip адреса маршрутизатора в «Сети B», т.е. от 192.168.19.218. Таким образом в каждой из сетей будут бегать пакеты только между разрешенными хостами в данной сети и все будут жить долго и счастливо.

7 комментариев:

Анонимный комментирует...

Ох и ошибаетесь Вы насчет:
* будет жить ВСЁ
Не будет работать многое. Самый страшный пример - классический VoIP (h323,sip)
* будет жить счастливо
Если через первый пункт все же что-то просочится, то почти со 100% вероятностью возможны случай когда любой протокол в каком-то месте да поглюкивает из-за ната.
* будет жить долго
IPv6

А называется это все не проксирование, а NAT - Network Address Translation

xeim комментирует...

Проксирование — это использование посредника. Машрутизатор с настроенным фаерволом является посредником при доступе к серверу. При этом клиент обращается не напрямую к серверу, а к посреднику. Это всё же называется «проксированием».

Гораздо больше сетевых протоколов, которые работают из-за NAT, чем наоборот. Если же вы столкнулись с проблемами из-за NAT, то никто вам не запрещает установить, настроить и использовать специализированный прокси-сервер для данного протокола.

Анонимный комментирует...

iptables - не firewall. Не вводите публику в заблуждение.

xeim комментирует...

Искренне заебали анонимные онолитеги.
Вы зачем это написали? Просветите тогда, пожалуйста, что же такое iptables?

Из «man iptables»:
iptables — administration tool for IPv4 packet filtering and NAT
Перевод:
iptables — утилита администрирования пакетного фильтра IPv4 и NAT

Или у вас термин «пакетный фильтр» не ассоциируется с фаерволом? Тогда идите в сад, с вами не о чем разговаривать.

Анонимный комментирует...

>Проксирование — это использование посредника. Машрутизатор с настроенным фаерволом является посредником при доступе к серверу. При этом клиент обращается не напрямую к серверу, а к посреднику. Это всё же называется «проксированием».
DNAT еще можно назвать проксированием, но SNAT уже никак нельзя. Так что все же это трансляция адресов, а не проксирование.

xeim комментирует...

Это «проксирование». А как оно осуществляется, с использованием трансляции сетевых адресов или же это отдельный userspace демон это уж дело десятое.

Господа, раз уж вы все такие умные, не подскажите ли мне решение такой проблемы. Предположим, мы волшебным образом заменяем linux-маршрутизатор (см. на картинке выше) на windows 2003 server. Можно ли достичь такого же эффекта? Вроде как в windows 2003 есть возможность делать NAT. Но можно и с помощью не встроенных средств.

vaishaliabdalla комментирует...

The 2016 ford focus titanium - etching for titanium
Translate this page for further titanium glasses frames details on the 2020 project: 2020. The titanium bikes 2020 titanium rainbow quartz was an award-winning space and space-based space smith titanium and space ion chrome vs titanium exploration.