LINUX.ORG.RU
решено ФорумAdmin

Ограничить используемые IP для сервиса

 ,


0

1

Привет!

Есть система с несколькими публичными IP. Есть демон, который слушает один из этих адресов и иногда создаёт исходящие соединения. Проблема в том, что соединения создаются с первого попавшегося адреса, что несколько портит всю радость. Есть ли способ через systemd или ещё как-то ограничить демону адреса для исходящих соединений?

Это должно делаться в настройках сервиса. Если в нём задаётся только порт, который он слушает - это значит, что он будет слушать на всех сетевых интерфейсах или если задано в формате 0.0.0.0:port.

Укажи в конфигурации сервиса конкретный IP и порт, который он слушает.

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

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от kostik87

Это должно делаться в настройках сервиса. Если в нём задаётся только порт, который он слушает - это значит, что он будет слушать на всех сетевых интерфейсах или если задано в формате 0.0.0.0:port.

Это сделано в настройках сервиса, там задан IP и он реально слушает только на нём. Вопрос в исходящих соединениях, которые к этой настройке отношения, очевидно, не имеют.

Guillaume_de_Nogare
() автор топика
Ответ на: комментарий от Guillaume_de_Nogare

Тогда проблема в настроенной тобой маршрутизации и src-nat. Если в сервисе задан корректный внешний IP - то пакеты с него только и будут уходить.

Всё зависит от того, что дальше делается на уровне NAT и маршрутизации.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от kostik87

Тогда проблема в настроенной тобой маршрутизации и src-nat. Если в нём задан корректный внешний IP - то пакеты с него только и будут уходить.

Там нет NAT. У хоста внешние публичные адреса. Маршрутизации тоже нет, если не считать дефолтного шлюза.

$ ip r
default via XXX.XXX.XXX.1 dev eth0 proto static 
XXX.XXX.XXX.0/24 dev eth0 proto kernel scope link src XXX.XXX.XXX.5

Или ты имеешь ввиду, что можно src здесь во второй строчке поправить? А какая команда это делает и можно ли это сделать только для одного сервиса?

Guillaume_de_Nogare
() автор топика
Ответ на: комментарий от Guillaume_de_Nogare

Это называется «маршрутизация». Делаешь отдельную таблицу маршрутизации для этого сервиса, ассайнишь ее через ip rule … fwmark, fwmark проставляешь где-нибудь в prerouting в iptables на основании например gid/uid

no-dashi-v2 ★★★
()