Такая вот проблема.
Есть iptables.
Сеть на 50 компов. Роутер подключен к модему(ip роутера 192.168.1.2). У них выставлен шлюз - 192.168.1.1(там висит squid)
http у них идёт через прокси. А вот почта не идёт (так как squid не держит smtp и pop3 сессий.) Как сделать так, чтобы средствами iptables перенаправить запросы с 192.168.1.1:25 на 192.168.1.2:25?
>Такая вот проблема.
>Есть iptables.
>Сеть на 50 компов. Роутер подключен к модему(ip роутера 192.168.1.2). У них
>выставлен шлюз - 192.168.1.1(там висит squid)
>http у них идёт через прокси. А вот почта не идёт (так
>как squid не держит smtp и pop3 сессий.) Как сделать так,
>чтобы средствами iptables перенаправить запросы с 192.168.1.1:25 на 192.168.1.2:25?iptables -A FORWARD -j ACCEPT --dport 25
iptables -A FORWARD -j ACCEPT --sport 25 -m state --state RELATED,ESTABLISHEDecho 1 > /proc/sys/net/ipv4/ip_forward
или для автозагрузки в файле /etc/sysctl.conf
net.ipv4.ip_forward = 1
И помоему еще SNAT иначе 192.168.1.2, ответит напрямую клиенту
не работает. iptables ругается на неизвестные аргументы
>iptables -A FORWARD -j ACCEPT --dport 25
>iptables -A FORWARD -j ACCEPT --sport 25 -m state --state RELATED,ESTABLISHEDА где указание куда переправить??? На какой адрес.
отправятся согласно таблицы маршрутизации
>отправятся согласно таблицы маршрутизациимда.... ну все равно у меня эти строчки - выводят ошибку...
>>отправятся согласно таблицы маршрутизации
>
>мда.... ну все равно у меня эти строчки - выводят ошибку...ошибку в студию
неужели это сложно?
>>>отправятся согласно таблицы маршрутизации
>>
>>мда.... ну все равно у меня эти строчки - выводят ошибку...
>
>ошибку в студию
>неужели это сложно?iptables -A FORWARD -j ACCEPT --dport 25
выводит - iptables v1.2.9: Unknown arg `--dport`
>>>>отправятся согласно таблицы маршрутизации
>>>
>>>мда.... ну все равно у меня эти строчки - выводят ошибку...
>>
>>ошибку в студию
>>неужели это сложно?
>
>iptables -A FORWARD -j ACCEPT --dport 25
>
>выводит - iptables v1.2.9: Unknown arg `--dport`Нет определенного модуля, скорее всего поэтому и не работает
>iptables -A FORWARD -j ACCEPT --dport 25
>
>выводит - iptables v1.2.9: Unknown arg `--dport`упс!!
прошу прощения, при фильтрации по портам обязательное указание протокола т.е.
iptables -A FORWARD -j ACCEPT -p tcp --dport 25и во второе правило тоже добавить
но если у вас в цепочке FORWARD политика ACCEPT, то эти правила не обязательны, главное разрешить FORWARD
>[оверквотинг удален]
>>
>>выводит - iptables v1.2.9: Unknown arg `--dport`
>
>упс!!
> прошу прощения, при фильтрации по портам обязательное указание протокола т.е.
>iptables -A FORWARD -j ACCEPT -p tcp --dport 25
>
>и во второе правило тоже добавить
>но если у вас в цепочке FORWARD политика ACCEPT, то эти правила
>не обязательны, главное разрешить FORWARDспасибо конечно.... но пользователь всё равно не может отправить почту......
> спасибо конечно.... но пользователь всё равно не может отправить почту......Как это можно реализовать бы? Ещё какими нибудь способами
192.168.1.1 у клиентов стоит именно шлюзом или адресом прокси?на 192.168.1.2 надеюсь разрешены пакеты на 25 порт.
с 192.168.1.1- машины покажи вывод route и iptables-save
route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
link-local * 255.255.0.0 U 0 0 0 eth1
loopback * 255.0.0.0 U 0 0 0 lo
default 192.168.1.2 0.0.0.0 UG 0 0 0 eth1# Generated by iptables-save v1.2.9 on Fri Aug 31 15:43:08 2007
*filter
:INPUT ACCEPT [5003:1660857]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [3749:1222158]
-A FORWARD -p tcp -m tcp --dport 25 -j ACCEPT
-A FORWARD -p tcp -m tcp --sport 25 -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Fri Aug 31 15:43:08 2007
# Generated by iptables-save v1.2.9 on Fri Aug 31 15:43:08 2007
*nat
:PREROUTING ACCEPT [3765:307862]
:POSTROUTING ACCEPT [3379:202484]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 5
COMMIT
# Completed on Fri Aug 31 15:43:08 2007При выставлении шлюзом роутер - все работает.. Значит 25 порт открыт.
> спасибо конечно.... но пользователь всё равно не может отправить почту......скопировал ваше первое сообщение
>Такая вот проблема.
>Есть iptables.
>Сеть на 50 компов. Роутер подключен к модему(ip роутера 192.168.1.2). У них
>выставлен шлюз - 192.168.1.1(там висит squid)
>http у них идёт через прокси. А вот почта не идёт (так
>как squid не держит smtp и pop3 сессий.) Как сделать так,
>чтобы средствами iptables перенаправить запросы с 192.168.1.1:25 на 192.168.1.2:25?это на какой машие
>Есть iptables."у них"
>http у них идёт через прокси.вот "у них" идолжны быть такие правила
а не проще клиентам (пользователям) настроить почтовик на работу через прокси, это есть в свойсвах подключения любого почтового клиента
нет. надо чтобы всё было прозрачно.
iptables там же где и сквид. на 192.168.1.1
если это добавить на 192.168.1.1
-A POSTROUTING -p tcp --dport 25 -j SNAT --to-source 192.168.1.1
>нет. надо чтобы всё было прозрачно.
>iptables там же где и сквид. на 192.168.1.1сквида делает маскарадинг, подставляет на все проходящие через неё пакеты ИП исходящего интерфейса, для всего остального у вас нет маскарада
iptables -t nat -A POSTROUTING -o $eth_out -j MASQUERADEили как советовал reader
iptables -t nat -A POSTROUTING -o $eth_out -j SNAT --to-source $IP_out
>>нет. надо чтобы всё было прозрачно.
>>iptables там же где и сквид. на 192.168.1.1
>
>сквида делает маскарадинг, подставляет на все проходящие через неё пакеты ИП исходящего
>интерфейса, для всего остального у вас нет маскарада
>iptables -t nat -A POSTROUTING -o $eth_out -j MASQUERADE
>
>или как советовал reader
>iptables -t nat -A POSTROUTING -o $eth_out -j SNAT --to-source $IP_outВсё!! Всем большое спасибо!! Просто забыл - echo 1 > /proc/sys/net/ipv4/ip_forward