На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модератор: SLEDopit

Ответить
NeverM
Сообщения: 248
ОС: gentoo

На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN

Сообщение NeverM »

Заранее прошу прощения за кривую формулировку.
Есть такая интересная задачка: есть определённый сервер в интернете (назовем 'inet-server') до которого можно достучаться только с определенных IP, один из этих IP есть на одном моем сервере (назовем мой сервер 'myserver') на этом моем сервере ('myserver') у одного сетевого интерфейса есть несколько IP адресов, у одного из которых и есть доступ на тот сервер ('inet-server'). Чтобы иметь доступ до 'inet-server' из дома я поднял OpenVPN на 'myserver' но т.к. на 'myserver' несколько IP адресов на сетевом интерфейсе (алиасы, скажем 1.1.1.1 основной и 1.1.1.2 алиас), запросы до 'inet-server' идут с основного IP адреса '1.1.1.1' у которого нет к нему доступа. Нужно сделать так чтобы запросы к 'inet-server' шли с 1.1.1.2 Как это сделать? я думаю это както должно решаться с помощью iptables.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN

Сообщение sash-kan »

NeverM писал(а):
27.04.2010 23:35
Нужно сделать так чтобы запросы к 'inet-server' шли с 1.1.1.2 Как это сделать? я думаю это както должно решаться с помощью iptables.
всё гораздо проще:
$ sudo ip r a <ip inet-server-а> dev <интерфейс> src 1.1.1.2


*в сторону
«алиасы». когда же люди, наконец, забудут этот термин? нету в сетевой подсистеме ядра linux alias-ов, нету. это пережиток прошлого века.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
NeverM
Сообщения: 248
ОС: gentoo

Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN

Сообщение NeverM »

Что то я и не подумал про это, спасибо, а если немного изменить задачу, допустим клиенту через OpenVPN (тоесть мне на домашний компьютер) выдавался определённый IP 192.168.250.2 и при этом нужно сделать так чтобы при обращении к любому серверу в интернете (через openvpn тунель) запросы шли с второго IP сервера 'myserver' 1.1.1.2. Повторюсь на 'myserver' на сетевом интерфейсе eth0 несколько IP адресов. Это можно реализовать?
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус
Контактная информация:

Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN

Сообщение KiWi »

NeverM писал(а):
27.04.2010 23:56
Что то я и не подумал про это, спасибо, а если немного изменить задачу, допустим клиенту через OpenVPN (тоесть мне на домашний компьютер) выдавался определённый IP 192.168.250.2 и при этом нужно сделать так чтобы при обращении к любому серверу в интернете (через openvpn тунель) запросы шли с второго IP сервера 'myserver' 1.1.1.2. Повторюсь на 'myserver' на сетевом интерфейсе eth0 несколько IP адресов. Это можно реализовать?

Также, как и с одним адресом -- прописать SNAT.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN

Сообщение sash-kan »

чуть расширю ответ, данный уважаемым KiWi:
NeverM писал(а):
27.04.2010 23:56
Это можно реализовать?
ну вам же в любом случае надо будет подменять source address, правильно? вот и подменяйте его на тот, который нужно.

upd. а пофантазировав, можно и такой вариант выдумать:
предположим, что адрес 1.1.1.2 нужен вам лишь для похождений этого самого openvpn-клиента. а в остальное время не нужен совсем.
насколько я понимаю ( http://xgu.ru/wiki/OpenVPN_Proxy_ARP ) в openvpn можно использовать ppp-шный механизм proxyarp.
следовательно, вы выдаёте клиенту внутри туннеля тот самый адрес 1.1.1.2, и он начинает «светиться» на внешнем ethernet-интерфейсе сервера. причём только в тот период, когда openvpn-туннель поднят.
в этом случае и подмена source address-а не нужна.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
BAF
Сообщения: 225
Статус: Я это я, какой есть такой есть.
ОС: Ubuntu
Контактная информация:

Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN

Сообщение BAF »

NeverM писал(а):
27.04.2010 23:35
Заранее прошу прощения за кривую формулировку.
Есть такая интересная задачка: есть определённый сервер в интернете (назовем 'inet-server') до которого можно достучаться только с определенных IP, один из этих IP есть на одном моем сервере (назовем мой сервер 'myserver') на этом моем сервере ('myserver') у одного сетевого интерфейса есть несколько IP адресов, у одного из которых и есть доступ на тот сервер ('inet-server'). Чтобы иметь доступ до 'inet-server' из дома я поднял OpenVPN на 'myserver' но т.к. на 'myserver' несколько IP адресов на сетевом интерфейсе (алиасы, скажем 1.1.1.1 основной и 1.1.1.2 алиас), запросы до 'inet-server' идут с основного IP адреса '1.1.1.1' у которого нет к нему доступа. Нужно сделать так чтобы запросы к 'inet-server' шли с 1.1.1.2 Как это сделать? я думаю это както должно решаться с помощью iptables.

Была похожая проблема, сделал так: route add IP(inrt server) netmask (его маска) dev нужный интерфейс или gw шлюз, но лучше man route там есть примеры.
Поправите меня, если я не прав, буду тока рад.
Спасибо сказали:
Аватара пользователя
arkhnchul
Сообщения: 2284
Статус: Толчковый инженер
ОС: Debian, Fedora
Контактная информация:

Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN

Сообщение arkhnchul »

«алиасы». когда же люди, наконец, забудут этот термин? нету в сетевой подсистеме ядра linux alias-ов, нету. это пережиток прошлого века.

а как это называть теперь, в новом веке?
Losing is fun!
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус
Контактная информация:

Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN

Сообщение KiWi »

arkhnchul писал(а):
28.04.2010 11:23
«алиасы». когда же люди, наконец, забудут этот термин? нету в сетевой подсистеме ядра linux alias-ов, нету. это пережиток прошлого века.

а как это называть теперь, в новом веке?

Второй, третий, четвёртый IP? Дополнительный IP?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN

Сообщение sash-kan »

arkhnchul писал(а):
28.04.2010 11:23
а как это называть теперь, в новом веке?
как и во все времена: ip-адрес.

p.s. ради того, чтоб ifconfig хоть как-то смог показать адреса, закреплённые за интерфейсом, каждому адресу можно опционально выдать label. man ip.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
arkhnchul
Сообщения: 2284
Статус: Толчковый инженер
ОС: Debian, Fedora
Контактная информация:

Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN

Сообщение arkhnchul »

ifconfig eth0:0 192.168.77.10 - не алиас?
Losing is fun!
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус
Контактная информация:

Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN

Сообщение KiWi »

arkhnchul писал(а):
28.04.2010 15:02
ifconfig eth0:0 192.168.77.10 - не алиас?

Не надо использовать ifconfig eth0:0. Это старые-престарые костыли.
Да, это алиас. Только сейчас он не нужен. И стоит смотреть в сторону iproute2 и ip addr add.
Спасибо сказали:
Аватара пользователя
arkhnchul
Сообщения: 2284
Статус: Толчковый инженер
ОС: Debian, Fedora
Контактная информация:

Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN

Сообщение arkhnchul »

ну какбэ старые костыли местами удобнее новых...
почему не надо, кстате? до сих пор не могу понять.
Losing is fun!
Спасибо сказали:
Аватара пользователя
BAF
Сообщения: 225
Статус: Я это я, какой есть такой есть.
ОС: Ubuntu
Контактная информация:

Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN

Сообщение BAF »

Видать что более гибко и информативнее работает, так?
Поправите меня, если я не прав, буду тока рад.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN

Сообщение sash-kan »

arkhnchul писал(а):
28.04.2010 15:27
до сих пор не могу понять.
в ядре (которое linux) версии 2.0, вышедшей ещё в конце прошлого века, была кардинально переписана сетевая подсистема.
замене подвергся и интерфейс управления сетевой подсистемой. старый (bsd-шный, видимо, но не суть) интерфейс был заменен на новый, cisco-like интерфейс.
ifconfig, route, arp (и, наверно, ещё какие-нибудь подобные программы) превратились просто в приблизительно-двусторонние ретрансляторы «старый-новый интерфейс».
полного соответствия, естественно, получить невозможно. в частности, из-за функциональной бедности старой реализации (и бедности соответствующего ей интерфейса).

очень образно говоря, в космический корабль в уголочке поставили для удобства автомобилистов руль, педали сцепления, тормоза и газа, рычаг коробки передач, переключатели поворотов и т.д.
и это даже как-то позволяет слегка «рулить» космическим кораблём.

давайте уж будем шагать в ногу со временем. раз автомобиль внезапно стал ракетой, неплохо бы наконец и поменять привычки.
кстати, весьма забавно, что сейчас достаточно трудно найти линуксоида, работавшего ещё с ядрами 1.x, а вот старые (непонятно чьи) привычки — доминируют.
отчасти виноваты и дистрибьюторы, которые много лет даже не включали пакет iproute (с юзерспейсными программами, реализующими новый интерфейс) в базовую инсталляцию. вероятно, какие-то причины для этого были (надеюсь, достаточно разумные), но кто их сейчас вспомнит…
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
arkhnchul
Сообщения: 2284
Статус: Толчковый инженер
ОС: Debian, Fedora
Контактная информация:

Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN

Сообщение arkhnchul »

ну да. Вот я и о том как раз: когда _удобнее_и_проще_и_вполне_достаточно_ рулить педалями и сцеплением на корабле через бескрайние просторы галактики в спирали - отчего бы этого не делать? о тех же алиасах: да, можно навесить через ip a a блабла еще один адрес. Но лично мне (и не только) eth0:0 роднее и ближе, плюс то, что такой псевдоинтерфейс без проблем везде (из встречавшихся дитров) добавляется штатными скриптами, в отличие от (?? хотя тут не берусь точно утверждать, но вроде как так).
Losing is fun!
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN

Сообщение Ленивая Бестолочь »

arkhnchul писал(а):
28.04.2010 22:09
Вот я и о том как раз: когда _удобнее_и_проще_и_вполне_достаточно_ рулить педалями и сцеплением на корабле через бескрайние просторы галактики в спирали - отчего бы этого не делать?

удобнее и проще - это необъективная оценка. ею аргументировать нельзя.
в остальном поддержу arkhnchul.
sash-kan, ты перебарщиваешь с советованием ip, каждый линуксойд в праве пользоваться теми утилями, которыми он хочет ;-)
я, кстати, сам юзаю ifconfig & route, хотя понимаю всю пользу ip, просто переучиться трудно.
знаю людей, которые пользуются lilo, например. и apt-get :)
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN

Сообщение sash-kan »

arkhnchul
Ленивая Бестолоч...
ну, что можно сказать в ответ на упоминание святого и неприкосновенного субъективного удобства? (улыбка)
разве что: добро пожаловать в реальный мир. на самом деле он не так уж страшен и ужасен. (улыбка)
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус
Контактная информация:

Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN

Сообщение KiWi »

Ленивая Бестолочь писал(а):
28.04.2010 23:41
знаю людей, которые пользуются lilo, например. и apt-get :)

Я-я-я! У меня apt-get. И пакеты debuild'ом собираю, да-да.

arkhnchul писал(а):
28.04.2010 22:09
Но лично мне (и не только) eth0:0 роднее и ближе, плюс то, что такой псевдоинтерфейс без проблем везде (из встречавшихся дитров) добавляется штатными скриптами, в отличие от (?? хотя тут не берусь точно утверждать, но вроде как так).

Здесь аналогично с IPv6 -- куча всего должна переделываться.
Но IPv6 быть и это факт.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN

Сообщение sash-kan »

Ленивая Бестолоч... писал(а):
28.04.2010 23:41
sash-kan, ты перебарщиваешь с советованием ip
возможно.
но я лично не вижу другого пути разорвать замкнутый круг, нежели время от времени напоминать новичкам, что… ну, не буду повторяться, вы все в курсе (улыбка).
если вдруг кто-то знает лучший метод разрыва, подскажите, с радостью выслушаю и приму на вооружение.

p.s. сразу предупреждаю: варианту «забей», при всей его привлекательности для моей ленивой натуры, увы, последовать не могу…
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN

Сообщение sash-kan »

arkhnchul писал(а):
28.04.2010 22:09
такой псевдоинтерфейс без проблем везде (из встречавшихся дитров) добавляется штатными скриптами
во-первых, это не псевдоинтерфейс. интерфейсы и ip-адреса — это совершенно разные сущности. даже с приставкой «псевдо-» говорить об ip-адресе, как об интерфейсе, imho, некорректно.
во-вторых, а что это за «штатные скрипты» и в каком дистрибутиве они ещё сохранились?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
arkhnchul
Сообщения: 2284
Статус: Толчковый инженер
ОС: Debian, Fedora
Контактная информация:

Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN

Сообщение arkhnchul »

во-первых, это не псевдоинтерфейс. интерфейсы и ip-адреса — это совершенно разные сущности. даже с приставкой «псевдо-» говорить об ip-адресе, как об интерфейсе, imho, некорректно.

ifconfig и ip кажут eth0:0 как отдельный интерфейс. В конфигах, где упоминается интерфейс, а не адрес, его можно вбить и работать так. iptables вроде как тоже правила с ним вполне воспринимает. Отчего же название некорректно, если оно внешне - интерфейс, пусть и не физический?
во-вторых, а что это за «штатные скрипты» и в каком дистрибутиве они ещё сохранились?

в редхатообразных, например, те, что парсят разные ifcfg-eth0. Вполне можно просто создать еще один конфиг ifcfg-eth0:0 со стандартным собержимым, оно подцепится и будет создаваться само. Как таким образом навесить второй адрес на интерфейс - не знаю.
Losing is fun!
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN

Сообщение sash-kan »

arkhnchul писал(а):
29.04.2010 10:59
ip кажут eth0:0 как отдельный интерфейс
да ну?

Код: Выделить всё

ip a sh blabla1
3: blabla1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 00:04:79:67:b4:93 brd ff:ff:ff:ff:ff:ff
    inet 10.10.10.1/24 brd 10.10.10.255 scope global blabla1
    inet 192.168.1.11/24 scope global blabla1:2
    inet 192.168.0.2/30 scope global blabla1:3
    inet 172.16.22.22/24 scope global blabla1
    inet 172.16.22.23/24 scope global secondary blabla1:10

arkhnchul писал(а):
29.04.2010 10:59
iptables вроде как тоже правила с ним вполне воспринимает.
нет:

Код: Выделить всё

$ sudo iptables -A INPUT -i blabla1:10 -j DROP
Warning: weird character in interface `blabla1:10' (No aliases, :, ! or *).


arkhnchul писал(а):
29.04.2010 10:59
Отчего же название некорректно, если оно внешне - интерфейс, пусть и не физический?
ну, в бытовом плане можно ip-адреса вообще как угодно называть (улыбка)

arkhnchul писал(а):
29.04.2010 10:59
в редхатообразных, например, те, что парсят разные ifcfg-eth0.
вот-вот. это ещё один из элементов того самого замкнутого круга.
можно, конечно, добавить обработку переменных IPADDRn/NETMASKn, но это потребует, в частности, внесения изменений в те же редхатовские курсы. а это огромнейшие расходы, редхату совсем не нужные. это так, к слову.
кстати, ещё к слову:

Код: Выделить всё

$ grep -r ifconfig /etc/sysconfig/network-scripts/if{up,down}-eth | wc -l
0
$ grep -r 'ip ' /etc/sysconfig/network-scripts/if{up,down}-eth | wc -l
22
$ lsb_release -a
LSB Version:    :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description:    CentOS release 5.4 (Final)
Release:        5.4
Codename:       Final


NeverM
ваш вопрос про openvpn & proxyarp я выделил в отдельную тему: openvpn proxyarp
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Ответить