требуется утилита которая может подменять source ip у входящих не маршрутизипуемых пакетов
iptables этого делать не может
Может кто знает
>iptables этого делать не может
Проверяли??? не утверждаю, но что если попробовать такое правило
iptables -t nat POSTROUTING -i $external_iface -j SNAT --to-source $ip
Критерий -i можно использовать только в цепочках INPUT, FORWARD и PREROUTING.
>Критерий -i можно использовать только в цепочках INPUT, FORWARD и PREROUTING.
да, действительно :)
Кстати, Джонатан, помните вы мне про натинг гре говорили про патчоматик, поставил, заработало, спасибо большое :)
>>Критерий -i можно использовать только в цепочках INPUT, FORWARD и PREROUTING.
>да, действительно :)
>Кстати, Джонатан, помните вы мне про натинг гре говорили про патчоматик, поставил,
>заработало, спасибо большое :)т.е. способа сменить source ip у входяших пакетов нет вообще?
>>iptables этого делать не может
>Проверяли??? не утверждаю, но что если попробовать такое правило
>iptables -t nat POSTROUTING -i $external_iface -j SNAT --to-source $ipвходяшие не маршрутизируемые пакеты в postrouting не пападают
Опишите задачу подробнее.
>Опишите задачу подробнее.Задача такая
есть сервер
сервисы которого настроены на работу с клиентом с определенным ip выделенкавдруг по причине пропадания основного канала клиенты начинают выходить в
интернет с помощью dialup с другого ip адреса
в реэультате сервисы не доступнычтобы сделать сервисы доступными трнбуется поправить различные конфиги
перестартовать сервисы и.т.дчтобы этого не делать хотелось бы подменить source ip у определенных входяших пакетов на адрес уже разрешенный к доступу у сервисов
>интернет с помощью dialup с другого ip адреса
Я так понимаю, заранее не известны ip адреса этих dialup соединений?
>>интернет с помощью dialup с другого ip адреса
>Я так понимаю, заранее не известны ip адреса этих dialup соединений?
Да адреса не известны
но становятся известны когда соединение получено
iptables -t nat -A PREROUTING -d pppip.pppip.pppip.pppip -p tcp --dport 1000 -j DNAT --to-destination lanip.lanip.lanip.lanip:1000что-то типа этого.
в этом случае все приходящие пакеты на интерфейс pppip.pppip.pppip.pppip на порт 1000 будут переправляться на lanip.lanip.lanip.lanip:1000
это надо?
>iptables -t nat -A PREROUTING -d pppip.pppip.pppip.pppip -p tcp --dport 1000 -j
>DNAT --to-destination lanip.lanip.lanip.lanip:1000
>
>что-то типа этого.
>в этом случае все приходящие пакеты на интерфейс pppip.pppip.pppip.pppip на порт 1000
>будут переправляться на lanip.lanip.lanip.lanip:1000
>это надо?
И где здесь меняется source ip?
>iptables -t nat -A PREROUTING -d pppip.pppip.pppip.pppip -p tcp --dport 1000 -j
>DNAT --to-destination lanip.lanip.lanip.lanip:1000
>
>что-то типа этого.
>в этом случае все приходящие пакеты на интерфейс pppip.pppip.pppip.pppip на порт 1000
>будут переправляться на lanip.lanip.lanip.lanip:1000
>это надо?
нет надо чтобы заменялся source ip для входящих не проходящих маршрутизации пакетов
>Да адреса не известны
>но становятся известны когда соединение получено
Что значит получено? Откуда Вы знаете, что это соединение пришло от вашего клиента, если по dialup он будет получать разные ip?
Может ли Ваш сервис ограничивать доступ не только по ip, но и по именам?
Если перед сервером стоит роутер (linux, cisco...) и ответы от сервера идут через него, то можно попробовать на нем настроить SNAT этих адресов на нужные.
Еще вариант с сервером удаленного доступа. Т.е. клиенты сначала содиняются с Вашим VPN-сервером (pptp и т.п.), получают определенные для них адреса независимо source ip. На сервере настроить доступ только с этих VPN-подсетей.
>>Да адреса не известны
>>но становятся известны когда соединение получено
>Что значит получено? Откуда Вы знаете, что это соединение пришло от вашего
>клиента, если по dialup он будет получать разные ip?можно удаленно на сервере выполнить по ssh скрипт после получения dialup
соединения
ему же передать адрес от которого будут исходить соединения.
вход на ssh по приватному ключу.>Может ли Ваш сервис ограничивать доступ не только по ip, но и
>по именам?
>Если перед сервером стоит роутер (linux, cisco...) и ответы от сервера идут
>через него, то можно попробовать на нем настроить SNAT этих
>адресов на нужные.роутер наверняка есть но он мне не доступен он админится провайдером
Кстати iproute2 утилиты не могут делать snat для входящих пакетов ?
>Кстати iproute2 утилиты не могут делать snat для входящих пакетов ?
Нет. Подмена source ip только у исходящих пакетов.
Если Ваш сервер может ограничивать доступ по именам, то посмотрите в сторону dymanic dns. Можно использовать внешние сервисы (http://www.dtdns.com, http://www.dyndns.org и т.п.) или поставить свой. У клиента утитилита обновляет информацию (по паролю) о текущем ip. Где-то встречал одного из таких клиентов, который может сохранять свой ip и на FTP-сервере.
>>Кстати iproute2 утилиты не могут делать snat для входящих пакетов ?
>Нет. Подмена source ip только у исходящих пакетов.
>Если Ваш сервер может ограничивать доступ по именам, то посмотрите в сторону
>dymanic dns. Можно использовать внешние сервисы (http://www.dtdns.com, http://www.dyndns.org и т.п.) или
>поставить свой. У клиента утитилита обновляет информацию (по паролю) о текущем
>ip.может это и подойдет если в courier-imap,apache,postfix можно прописать
имена а не ip
>>>Кстати iproute2 утилиты не могут делать snat для входящих пакетов ?
>>Нет. Подмена source ip только у исходящих пакетов.
>>Если Ваш сервер может ограничивать доступ по именам, то посмотрите в сторону
>>dymanic dns. Можно использовать внешние сервисы (http://www.dtdns.com, http://www.dyndns.org и т.п.) или
>>поставить свой. У клиента утитилита обновляет информацию (по паролю) о текущем
>>ip.
>
>может это и подойдет если в courier-imap,apache,postfix можно прописать
>имена а не ip
Помоему чтото типа такогоiptables -t nat -A POSTROUTING -d pppip.pppip.pppip.pppip -p tcp --dport 1000 -j SNAT --to-source lanip.lanip.lanip.lanip
>>>>Кстати iproute2 утилиты не могут делать snat для входящих пакетов ?
>>>Нет. Подмена source ip только у исходящих пакетов.
>>>Если Ваш сервер может ограничивать доступ по именам, то посмотрите в сторону
>>>dymanic dns. Можно использовать внешние сервисы (http://www.dtdns.com, http://www.dyndns.org и т.п.) или
>>>поставить свой. У клиента утитилита обновляет информацию (по паролю) о текущем
>>>ip.
>>
>>может это и подойдет если в courier-imap,apache,postfix можно прописать
>>имена а не ip
>Помоему чтото типа такого
>
> iptables -t nat -A POSTROUTING -d pppip.pppip.pppip.pppip -p tcp --dport 1000
>-j SNAT --to-source lanip.lanip.lanip.lanipэто правило будет работать только для пакетов проходящих маршрутизацию
>>>>>Кстати iproute2 утилиты не могут делать snat для входящих пакетов ?
>>>>Нет. Подмена source ip только у исходящих пакетов.
>>>>Если Ваш сервер может ограничивать доступ по именам, то посмотрите в сторону
>>>>dymanic dns. Можно использовать внешние сервисы (http://www.dtdns.com, http://www.dyndns.org и т.п.) или
>>>>поставить свой. У клиента утитилита обновляет информацию (по паролю) о текущем
>>>>ip.
>>>
>>>может это и подойдет если в courier-imap,apache,postfix можно прописать
>>>имена а не ip
>>Помоему чтото типа такого
>>
>> iptables -t nat -A POSTROUTING -d pppip.pppip.pppip.pppip -p tcp --dport 1000
>>-j SNAT --to-source lanip.lanip.lanip.lanip
>
>это правило будет работать только для пакетов проходящих маршрутизацию
ну тогда можно попробовать завернуть dnat-om или iproute2 на localhost , чтоб пакет посчитался транзитным для входящего интерфейса и попробовать snat, не уверен но можно попробовать
>может это и подойдет если в courier-imap,apache,postfix можно прописать
>имена а не ip
Конечно можно.
postfix
man 5 access
apache
Allow from host.example.com
courier-imap
Точно не знаю, но должен.К тому же, насколько я помню, все они могут использовать TCP Wrappers (файлы /etc/hosts.(allow|deny), в которых можно указывать имена хостов). Не проще вообще использовать возможность этих продуктов аутентифицировать по паролю?
Пардон. postfix не поддерживает TCP Wrappers.
Спасибо за помощь
>>Опишите задачу подробнее.
>
>Задача такая
>есть сервер
>сервисы которого настроены на работу с клиентом с определенным ip выделенка
>
>вдруг по причине пропадания основного канала клиенты начинают выходить в
>интернет с помощью dialup с другого ip адреса
>в реэультате сервисы не доступны
>
>чтобы сделать сервисы доступными трнбуется поправить различные конфиги
>перестартовать сервисы и.т.д
>
>чтобы этого не делать хотелось бы подменить source ip у определенных входяших
>пакетов на адрес уже разрешенный к доступу у сервисовЕсли я правильно понял, это сделано для секьюрности, тогда выходом будет использование пптп, так как если вы будете изменять исходящий адрес, то любой человек сможет подключиться к сервису, вы не сможете проверить, тот ли это, кому можно, в случае с диалапом...
Так что, имхо:
1) ВПН
2) использование ssl в случае с каждым сервисом.