The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"iptables -t filter и squid"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Маршрутизация, NAT)
Изначальное сообщение [ Отслеживать ]

"iptables -t filter и squid"  +/
Сообщение от Oleg email(??) on 15-Мрт-13, 15:53 
Основной шлюз 10.0.0.1.

На машине 10.0.0.3 openwrt, включен ip_forward=1.

На остальных машинах шлюзом 10.0.0.3. Т.е. машина идет на 10.0.0.3, оттуда 10.0.0.1, а оттуда уже в инет пакет уходит.

Как настроить iptables на 10.0.0.3, чтобы работал прозрачный squid, находящийся на машине 10.0.0.4?

стандартным методом iptables -t nat .... -j DNAT --to .... не работает... ведь через таблицу nat пакеты-то не ходят... А в таблице filter, что естественно, -j DNAT нет :(

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "iptables -t filter и squid"  +/
Сообщение от ALex_hha (ok) on 15-Мрт-13, 16:09 
> На остальных машинах шлюзом 10.0.0.3. Т.е. машина идет на 10.0.0.3, оттуда 10.0.0.1, а оттуда уже в инет пакет уходит.
> Как настроить iptables на 10.0.0.3, чтобы работал прозрачный squid, находящийся на машине 10.0.0.4?

а не проще поднять прокси на 10.0.0.1 или 10.0.0.3?

На 10.0.0.4 какой шлюз?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "iptables -t filter и squid"  +/
Сообщение от Oleg email(??) on 15-Мрт-13, 16:21 
>> На остальных машинах шлюзом 10.0.0.3. Т.е. машина идет на 10.0.0.3, оттуда 10.0.0.1, а оттуда уже в инет пакет уходит.
>> Как настроить iptables на 10.0.0.3, чтобы работал прозрачный squid, находящийся на машине 10.0.0.4?
> а не проще поднять прокси на 10.0.0.1 или 10.0.0.3?
> На 10.0.0.4 какой шлюз?

10.0.0.3 - машина с openwrt - не хочу - слабовато
10.0.0.1 - не мой, ни поставить ни написать на нем не могу ничего
10.0.0.4 - шлюз на ней прописан 10.0.0.1, так что даже исключение на 10.0.0.3 iptables делать не надо

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "iptables -t filter и squid"  +/
Сообщение от ALex_hha (ok) on 15-Мрт-13, 16:36 
>>> На остальных машинах шлюзом 10.0.0.3. Т.е. машина идет на 10.0.0.3, оттуда 10.0.0.1, а оттуда уже в инет пакет уходит.
>>> Как настроить iptables на 10.0.0.3, чтобы работал прозрачный squid, находящийся на машине 10.0.0.4?
>> а не проще поднять прокси на 10.0.0.1 или 10.0.0.3?
>> На 10.0.0.4 какой шлюз?
> 10.0.0.3 - машина с openwrt - не хочу - слабовато
> 10.0.0.1 - не мой, ни поставить ни написать на нем не могу
> ничего
> 10.0.0.4 - шлюз на ней прописан 10.0.0.1, так что даже исключение на
> 10.0.0.3 iptables делать не надо

Тогда наверное что то типа

# iptables -t nat -I PREROUTING -p tcp -s 10.0.0.0/24 ! -d 10.0.0.0/24 --dport 80 -j DNAT --to-destination 10.0.0.4:3128

# iptables -t nat -I POSTROUTING -p tcp -s 10.0.0.0/24 -d 10.0.0.4 -j SNAT --to-source 10.0.0.3

маски уже свои подставить

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "iptables -t filter и squid"  +/
Сообщение от Oleg email(??) on 18-Мрт-13, 19:28 
Блин не попадают пакеты в таблицу nat. В openwrt есть статистика правил iptables, так в таблице nat все по нулям. Проблема в том что nat как таковой на роутере не выполняется, пакет с назначением например 8.8.8.8 приходит на 10.0.0.3, и уходит дальше на 10.0.0.1 - шлюз по умолчанию. А в nat таблицу вообще не попадает...
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "iptables -t filter и squid"  +/
Сообщение от ALex_hha (ok) on 18-Мрт-13, 20:03 
> Блин не попадают пакеты в таблицу nat.

какие именно пакеты?

> iptables, так в таблице nat все по нулям.

Покажи правила в iptables

> Проблема в том  что nat как таковой на роутере не выполняется, пакет с назначением
> например 8.8.8.8 приходит на 10.0.0.3, и уходит дальше на 10.0.0.1 -
> шлюз по умолчанию. А в nat таблицу вообще не попадает...

ну дак если для данного пакета нет правила в nat, то ничего и не будет применяться

В условиях задачи было только насчет 80го порта

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "iptables -t filter и squid"  +/
Сообщение от LSTemp (ok) on 21-Мрт-13, 01:03 
>[оверквотинг удален]
>>> а не проще поднять прокси на 10.0.0.1 или 10.0.0.3?
>>> На 10.0.0.4 какой шлюз?
>> 10.0.0.3 - машина с openwrt - не хочу - слабовато
>> 10.0.0.1 - не мой, ни поставить ни написать на нем не могу
>> ничего
>> 10.0.0.4 - шлюз на ней прописан 10.0.0.1, так что даже исключение на
>> 10.0.0.3 iptables делать не надо
> Тогда наверное что то типа
> # iptables -t nat -I PREROUTING -p tcp -s 10.0.0.0/24 ! -d
> 10.0.0.0/24 --dport 80 -j DNAT --to-destination 10.0.0.4:3128

-d ! 10.0.0.0/24 --dport 80

> # iptables -t nat -I POSTROUTING -p tcp -s 10.0.0.0/24 -d 10.0.0.4
> -j SNAT --to-source 10.0.0.3

можно просто дропать пакеты из внутренней сети к 10.0.0.4, если он больше никаких функций не выполняет. ИМХО так правильней даже.

> маски уже свои подставить

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

8. "iptables -t filter и squid"  +/
Сообщение от ALex_hha (ok) on 21-Мрт-13, 16:03 
> можно просто дропать пакеты из внутренней сети к 10.0.0.4, если он больше
> никаких функций не выполняет. ИМХО так правильней даже.

не будет работать, имхо

Допустим клиент 10.0.0.100 открывает google.com, запрос идет на дефолт шлюз, 10.0.0.3, тот его редиректит на 10.0.0.4, а 10.0.0.4 отдает ответ напрямую клиенту 10.0.0.100, так как они в одной подсети.

И получается ситуация, клиент отправил запрос на 10.0.0.3, а тут приходит какой то левый ответ от 10.0.0.4. Такие пакеты будут просто дропаться.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

9. "iptables -t filter и squid"  +/
Сообщение от LSTemp (ok) on 23-Мрт-13, 03:20 
>> можно просто дропать пакеты из внутренней сети к 10.0.0.4, если он больше
>> никаких функций не выполняет. ИМХО так правильней даже.
> не будет работать, имхо
> Допустим клиент 10.0.0.100 открывает google.com, запрос идет на дефолт шлюз, 10.0.0.3,
> тот его редиректит на 10.0.0.4, а 10.0.0.4 отдает ответ напрямую клиенту
> 10.0.0.100, так как они в одной подсети.

не редиректит (редирект в терминах iptables - это проброс на другой порт той же самой машины), а днатит.

не вижу проблемы, так как прямое обращение из сети 10/8 к 10,0,04 будет заблокировано. все трансляции адресов будут выполнены на шлюзе.

возникает резонный вопрос - какой шлюз у 10,0,0,4. пока по инфе от вопрошающего...

дальше надо объяснять?

> И получается ситуация, клиент отправил запрос на 10.0.0.3, а тут приходит какой
> то левый ответ от 10.0.0.4. Такие пакеты будут просто дропаться.

PS
я прекрасно занаю, о чем Вы говорите (это классика), но я пытаюсь человека толкнуть на разбор полетов (чтобы он разобраться и понять попытался).

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "iptables -t filter и squid"  +/
Сообщение от LSTemp (ok) on 23-Мрт-13, 04:04 
>> можно просто дропать пакеты из внутренней сети к 10.0.0.4, если он больше
>> никаких функций не выполняет. ИМХО так правильней даже.
> не будет работать, имхо
> Допустим клиент 10.0.0.100 открывает google.com, запрос идет на дефолт шлюз, 10.0.0.3,
> тот его редиректит на 10.0.0.4, а 10.0.0.4

вот тут стоп. 10.0.0.4 должен послать запрос наружу ч/з свой шлюз до google.com, прежде чем ответ получит и попытается его напрямую по локалке передать. и тут начинается...

по сырцу - оно опять на 10,0,0,1 попрет - красиво.

> отдает ответ напрямую клиенту
> 10.0.0.100, так как они в одной подсети.
> И получается ситуация, клиент отправил запрос на 10.0.0.3, а тут приходит какой
> то левый ответ от 10.0.0.4. Такие пакеты будут просто дропаться.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

11. "iptables -t filter и squid"  +/
Сообщение от ALex_hha (ok) on 23-Мрт-13, 13:57 
у 10.0.0.4 шлюз 10.0.0.1


Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "iptables -t filter и squid"  +/
Сообщение от LSTemp (ok) on 25-Мрт-13, 05:54 
[cut]

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "iptables -t filter и squid"  +/
Сообщение от LSTemp (ok) on 25-Мрт-13, 06:03 
> у 10.0.0.4 шлюз 10.0.0.1

тут я скосячил  - .1 - шлюз наружу (я почему-то подумал, что .4 опять на .3 завернули).

однако никакой ошибки с моих в рекомендациях по правилам iptables нет.

Ваше:
"
Допустим клиент 10.0.0.100 открывает google.com, запрос идет на дефолт шлюз, 10.0.0.3, тот его редиректит на 10.0.0.4, а 10.0.0.4 отдает ответ напрямую клиенту 10.0.0.100, так как они в одной подсети.
"

косяк. большой косяк. не все профильтровали. второе правило нужно только при обращении локальных клиентов к локальным сервисам в ДМЗ (как правило = L3-сервисам). Надобность прямого доступа к .4 из локалки есть? я ее не вижу в упор (уточню - из постановки вопроса не вижу).

смотрим развернуто Ваш пример:

0) .100 идет на .3
1) .3 DNAT на .4
2) .4 DNAT на .1
3) от .1 идет запрос на гугл
4) ответ от гугл идет на .1
5) .1 обратный DNAT на .4
6) .4 обратный DNAT на .3
6) .3 обратный DNAT на .100
все в шоколаде. на кого послали - от того и получили.

проблемы, которые Вы оисали (второе Ваше правило) возникают только при прямом обращении к .4 из локальной сети. если его запретить (а нафиг там прямой доступ до этого сервиса нужен?), то и проблем не будет.

ИТОГО:
достаточно DNAT всех запроосв от локальных клиентов к веб-ресурсам .3->.4 и запрет прямого обращения к .4 из локлки.

PS
.4 фактически в ДМЗ конечно получается (хоть и в кривой немного), но прямой доступ к нему изнутри не требуется.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

7. "iptables -t filter и squid"  +/
Сообщение от LSTemp (ok) on 21-Мрт-13, 01:06 
> Основной шлюз 10.0.0.1.
> На машине 10.0.0.3 openwrt, включен ip_forward=1.
> На остальных машинах шлюзом 10.0.0.3. Т.е. машина идет на 10.0.0.3, оттуда 10.0.0.1,
> а оттуда уже в инет пакет уходит.
> Как настроить iptables на 10.0.0.3, чтобы работал прозрачный squid, находящийся на машине
> 10.0.0.4?
> стандартным методом iptables -t nat .... -j DNAT --to .... не работает...
> ведь через таблицу nat пакеты-то не ходят... А в таблице filter,
> что естественно, -j DNAT нет :(

какая ОС?
ifconfig и route на 10,0,0,3 покажите. и route на клиенте.


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру