ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
* [sisyphus] Работа с openvpn из сизифа
@ 2006-05-18 21:19 Konstantin A. Lepikhov
  2006-05-19  5:08 ` Nikolay A. Fetisov
  0 siblings, 1 reply; 8+ messages in thread
From: Konstantin A. Lepikhov @ 2006-05-18 21:19 UTC (permalink / raw)
  To: ALT Linux Sisyphus List

[-- Attachment #1: Type: text/plain, Size: 682 bytes --]

Hi!

К сборке имеется ряд вопросов:
1) зачем нужна пауза 1с после загрузки модуля tun? Например, у меня есть
из-за этого проблема - т.к. система с openvpn является host'ом для
vserver'ов, то, например, sshd там слушает только на тех интерфейсах,
которые перечислены и существуют. Но из-за этой паузы, он успевает
запуститься раньше, чем openvpn сконфигурирует интерфейс и потом зайти по
ssh на vpn становится невозможно без перезапуска sshd. Можно конечно
запихать openvpn в vserver, но лень и не хочется давать ей там слишком
крутые привилегии :) Отсюда вытекает вопрос N2, а именно
2) Что делать с up скриптами, получается, в chroot они бесполезны.

-- 
WBR et al.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [sisyphus] Работа с openvpn из сизифа
  2006-05-18 21:19 [sisyphus] Работа с openvpn из сизифа Konstantin A. Lepikhov
@ 2006-05-19  5:08 ` Nikolay A. Fetisov
  2006-05-19  6:16   ` Konstantin A. Lepikhov
  0 siblings, 1 reply; 8+ messages in thread
From: Nikolay A. Fetisov @ 2006-05-19  5:08 UTC (permalink / raw)
  To: sisyphus

[-- Attachment #1: Type: text/plain, Size: 4628 bytes --]

On Fri, 19 May 2006 01:19:02 +0400
Konstantin A. Lepikhov wrote:

> К сборке имеется ряд вопросов:
> 1) зачем нужна пауза 1с после загрузки модуля tun? Например, у меня есть
> из-за этого проблема - т.к. система с openvpn является host'ом для
> vserver'ов, то, например, sshd там слушает только на тех интерфейсах,
> которые перечислены и существуют. Но из-за этой паузы, он успевает
> запуститься раньше, чем openvpn сконфигурирует интерфейс и потом зайти по
> ssh на vpn становится невозможно без перезапуска sshd. 

Хм... Давно было, года полтора назад. Понадобилось для работы на
достаточно слабой машинке, типa AMD K6-300. Что конкретно было - сейчас
не скажу, и к машине в данный момент доступа, увы, нет. Попробую убрать
и посмотреть, что будет.

С другой стороны: /etc/openvpn/openvpn-startup выполняется из
стартового скрипта. У нас вроде бы параллельного запуска скриптов из
/etc/init.d пока не наблюдается, и sshd в любом случае должен
запускаться _после_ завершения работы /etc/init.d/openvpn. А modprobe
должен отработать _до_ запуска самого openvpn из стартового скрипта.
Точно ли из-за этой паузы проблема? 


В принципе, если очень мешает - можно выкинуть. Можно загружать tun и
из /etc/modules, а openvpn-startup оставить пустым. Можно вообще
его удалить. Хотя, на мой взгляд, в данном случае проблему оно не решит.


Я подобную проблему решал несколько прямолинейней: 
- использовал для запуска SSH не v_sshd, а стандартый sshd;
- напрямую указывал адреса IP-интерфейсов в sshd_config через
  ListenAddress; запуская sshd на lo и внутренней сетке;
- перенаправлял соединения с остальных интерфейсов на 127.0.0.1
  средствами iptables. 

> Можно конечно
> запихать openvpn в vserver, но лень и не хочется давать ей там слишком
> крутые привилегии 

А какие там могут быть привилегии принципиально большие по сравнению с
выполнением на хост-системе? Хотя, наверное, это действительно лишнее.

> :) Отсюда вытекает вопрос N2, а именно
> 2) Что делать с up скриптами, получается, в chroot они бесполезны.

С какими из :-) ? В OpenVPN таких скриптов достаточно много:
- openvpn-startup выполняется _до_ запуска каких-либо каналов, и до
  перехода в chroot.
- <channel>-start.sh выполняется _до_ запуска конкретного канала, и до
  перехода в chroot.
- из конфигурации канала можно задать скрипт 'up', он будет вызываться
  самим openvpn после поднятия канала, но _до_ сброса привилегий.
- client-connect - выполняется при подключении клиента, и изнутри
  chroot.

А так - можно и не запускать openvpn в chroot, см. параметры CHROOT,
OPENVPNUSER, OPENVPNGROUP в /etc/sysconfig/openvpn. 
С 'CHROOT=no' при запуске openvpn будет выполнен переход
в /var/lib/openvpn/cache; если пути к файлам статистики и пр. в
конфигурации стоят относительные, то править их не придётся.

-- 
С уважением,	
Николай Фетисов

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [sisyphus] Работа с openvpn из сизифа
  2006-05-19  5:08 ` Nikolay A. Fetisov
@ 2006-05-19  6:16   ` Konstantin A. Lepikhov
  2006-05-19  7:00     ` Andrei Bulava
  2006-05-19  7:54     ` Nikolay A. Fetisov
  0 siblings, 2 replies; 8+ messages in thread
From: Konstantin A. Lepikhov @ 2006-05-19  6:16 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

[-- Attachment #1: Type: text/plain, Size: 4479 bytes --]

Hi Nikolay!

Friday 19, at 09:08:22 AM you wrote:

> On Fri, 19 May 2006 01:19:02 +0400
> Konstantin A. Lepikhov wrote:
> 
> > К сборке имеется ряд вопросов:
> > 1) зачем нужна пауза 1с после загрузки модуля tun? Например, у меня есть
> > из-за этого проблема - т.к. система с openvpn является host'ом для
> > vserver'ов, то, например, sshd там слушает только на тех интерфейсах,
> > которые перечислены и существуют. Но из-за этой паузы, он успевает
> > запуститься раньше, чем openvpn сконфигурирует интерфейс и потом зайти по
> > ssh на vpn становится невозможно без перезапуска sshd. 
> 
> Хм... Давно было, года полтора назад. Понадобилось для работы на
> достаточно слабой машинке, типa AMD K6-300. Что конкретно было - сейчас
> не скажу, и к машине в данный момент доступа, увы, нет. Попробую убрать
> и посмотреть, что будет.
> 
> С другой стороны: /etc/openvpn/openvpn-startup выполняется из
> стартового скрипта. У нас вроде бы параллельного запуска скриптов из
> /etc/init.d пока не наблюдается, и sshd в любом случае должен
> запускаться _после_ завершения работы /etc/init.d/openvpn. А modprobe
> должен отработать _до_ запуска самого openvpn из стартового скрипта.
> Точно ли из-за этой паузы проблема? 
вот что получается у меня при загрузке:
May 12 18:03:47 disaster openvpn: Adjusting environment for openvpn:
succeeded
May 12 18:03:47 disaster kernel: tun: Universal TUN/TAP device driver, 1.6
May 12 18:03:47 disaster kernel: tun: (C) 1999-2004 Max Krasnyansky
<maxk@qualcomm>
May 12 18:03:49 disaster openvpn[3972]: OpenVPN 2.0.6 x86_64-alt-linux-gnu
[SSL] [LZO] [EPOLL] built on Apr 10 2006
May 12 18:03:49 disaster openvpn[3972]: IMPORTANT: OpenVPN's default port
number is now 1194, based on an official po
rt number assignment by IANA.  OpenVPN 2.0-beta16 and earlier used 5000 as
the default port.
May 12 18:03:49 disaster openvpn[3972]: WARNING: No server certificate
verification method has been enabled.  See htt
p://openvpn.net/howto.html#mitm for more info.
May 12 18:03:49 disaster openvpn[3972]: LZO compression initialized
May 12 18:03:49 disaster openvpn[3973]: NOTE: chroot will be delayed
because of --client, --pull, or --up-delay
May 12 18:03:49 disaster openvpn[3973]: NOTE: UID/GID downgrade will be
delayed because of --client, --pull, or --up-
delay
May 12 18:03:49 disaster openvpn[3973]: UDPv4 link local: [undef]
May 12 18:03:49 disaster openvpn[3973]: UDPv4 link remote:
195.18.33.162:1194
May 12 18:03:49 disaster openvpn: openvpn startup succeeded
May 12 18:03:49 disaster sshd[4009]: Server listening on xxx.xxx.xxx.xxx port
22.
May 12 18:03:49 disaster sshd: sshd startup succeeded
...
May 12 18:04:01 disaster udevd-event[4444]: rename_net_if: error changing
net interface name: Invalid argument <- вот тут уже создается интерфейс

- т.е. интерфейс создается только через полсекунды, и sshd уже успевает
  запуститься. Впрочем, возможно и не из-за паузы дело - оно же явно
  говорит "because of --client, --pull, or --up-delay"

> 
> 
> В принципе, если очень мешает - можно выкинуть. Можно загружать tun и
> из /etc/modules, а openvpn-startup оставить пустым. Можно вообще
> его удалить. Хотя, на мой взгляд, в данном случае проблему оно не решит.
> 
> 
> Я подобную проблему решал несколько прямолинейней: 
> - использовал для запуска SSH не v_sshd, а стандартый sshd;
> - напрямую указывал адреса IP-интерфейсов в sshd_config через
>   ListenAddress; запуская sshd на lo и внутренней сетке;
> - перенаправлял соединения с остальных интерфейсов на 127.0.0.1
>   средствами iptables. 
так у меня и сделано, только в ListenAddress написаны адреса vpn
интерфейсов.

> 
> > Можно конечно
> > запихать openvpn в vserver, но лень и не хочется давать ей там слишком
> > крутые привилегии 
> 
> А какие там могут быть привилегии принципиально большие по сравнению с
> выполнением на хост-системе? Хотя, наверное, это действительно лишнее.
[root@disaster ~]# cat /etc/vservers/crash/bcapabilities 
NET_ADMIN
NET_RAW
..
некошерно.

<skip>
> - из конфигурации канала можно задать скрипт 'up', он будет вызываться
>   самим openvpn после поднятия канала, но _до_ сброса привилегий.
о! вот это мне и нужно. проще там сказать service sshd condrestart и не
заморачиваться. Я-то думал, что этот скрипт вызывается после сброса
привилегий, а в сорцы было лень лезть.

PS Думаю, есть смысл эту информацию отразить в README.ALT

-- 
WBR et al.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [sisyphus] Работа с openvpn из сизифа
  2006-05-19  6:16   ` Konstantin A. Lepikhov
@ 2006-05-19  7:00     ` Andrei Bulava
  2006-05-19  7:06       ` Konstantin A. Lepikhov
  2006-05-19  8:09       ` Nikolay A. Fetisov
  2006-05-19  7:54     ` Nikolay A. Fetisov
  1 sibling, 2 replies; 8+ messages in thread
From: Andrei Bulava @ 2006-05-19  7:00 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

Konstantin A. Lepikhov wrote:
> Hi Nikolay!
> 
> Friday 19, at 09:08:22 AM you wrote:
> 
>> - из конфигурации канала можно задать скрипт 'up', он будет вызываться
>>   самим openvpn после поднятия канала, но _до_ сброса привилегий.
> о! вот это мне и нужно. проще там сказать service sshd condrestart и не
> заморачиваться. Я-то думал, что этот скрипт вызывается после сброса
> привилегий, а в сорцы было лень лезть.
> 
> PS Думаю, есть смысл эту информацию отразить в README.ALT

openvpn(8):
--up cmd
Shell command to run after successful TUN/TAP device open (pre --user
UID change).

Или речь об отражении какой-то другой информации?

-- 
// AB1002-UANIC



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [sisyphus] Работа с openvpn из сизифа
  2006-05-19  7:00     ` Andrei Bulava
@ 2006-05-19  7:06       ` Konstantin A. Lepikhov
  2006-05-19  8:09       ` Nikolay A. Fetisov
  1 sibling, 0 replies; 8+ messages in thread
From: Konstantin A. Lepikhov @ 2006-05-19  7:06 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

[-- Attachment #1: Type: text/plain, Size: 827 bytes --]

Hi Andrei!

Friday 19, at 10:00:09 AM you wrote:

> Konstantin A. Lepikhov wrote:
> > Hi Nikolay!
> > 
> > Friday 19, at 09:08:22 AM you wrote:
> > 
> >> - из конфигурации канала можно задать скрипт 'up', он будет вызываться
> >>   самим openvpn после поднятия канала, но _до_ сброса привилегий.
> > о! вот это мне и нужно. проще там сказать service sshd condrestart и не
> > заморачиваться. Я-то думал, что этот скрипт вызывается после сброса
> > привилегий, а в сорцы было лень лезть.
> > 
> > PS Думаю, есть смысл эту информацию отразить в README.ALT
> 
> openvpn(8):
> --up cmd
> Shell command to run after successful TUN/TAP device open (pre --user
> UID change).
> 
> Или речь об отражении какой-то другой информации?
ну тогда ничего не надо :) спасибо, теперь ясно что делать.

-- 
WBR et al.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [sisyphus] Работа с openvpn из сизифа
  2006-05-19  6:16   ` Konstantin A. Lepikhov
  2006-05-19  7:00     ` Andrei Bulava
@ 2006-05-19  7:54     ` Nikolay A. Fetisov
  2006-05-20  7:21       ` Konstantin A. Lepikhov
  1 sibling, 1 reply; 8+ messages in thread
From: Nikolay A. Fetisov @ 2006-05-19  7:54 UTC (permalink / raw)
  To: sisyphus

Hi Konstantin!

On Fri, 19 May 2006 10:16:15 +0400
Konstantin A. Lepikhov wrote:

> Friday 19, at 09:08:22 AM you wrote:
> 
> > On Fri, 19 May 2006 01:19:02 +0400
> > Konstantin A. Lepikhov wrote:
> > 
> > > К сборке имеется ряд вопросов:
> > > 1) зачем нужна пауза 1с после загрузки модуля tun? 
> .......
> вот что получается у меня при загрузке:
> May 12 18:03:47 disaster openvpn: Adjusting environment for openvpn:
> succeeded
> May 12 18:03:47 disaster kernel: tun: Universal TUN/TAP device driver, 1.6
> May 12 18:03:47 disaster kernel: tun: (C) 1999-2004 Max Krasnyansky
> <maxk@qualcomm>

Вот здесь выполняется этот sleep.

> May 12 18:03:49 disaster openvpn[3972]: OpenVPN 2.0.6 x86_64-alt-linux-gnu
> [SSL] [LZO] [EPOLL] built on Apr 10 2006

Это и далее - вывод от запустившегося openvpn. Который перешёл в
фоновый режим, и выполняется параллельно с дальнейшей обработкой
скриптов из init.d/.

> ......
> May 12 18:03:49 disaster openvpn[3973]: NOTE: chroot will be delayed
> because of --client, --pull, or --up-delay
> May 12 18:03:49 disaster openvpn[3973]: NOTE: UID/GID downgrade will be
> delayed because of --client, --pull, or --up-
> delay
А, OpenVPN запускается как клиент? Он может достаточно долго пытаться
связаться с сервером. Пока не пройдёт авторизация на сервер, клиент не
знает назначаемых ему IP и не может сконфигурировать сетевой интерфейс.
Сбросить привилегии и уйти в chroot он сможет только после
конфигурирования tun0, о чём и говорит.

> May 12 18:03:49 disaster openvpn[3973]: UDPv4 link local: [undef]
> May 12 18:03:49 disaster openvpn[3973]: UDPv4 link remote:
> 195.18.33.162:1194
> May 12 18:03:49 disaster openvpn: openvpn startup succeeded

Кстати, в этот момент openvpn запустился (т.е. прочитал файл
конфигурации и всё прочее), но отнюдь не соединился с сервером. И
интерфейса tun0 в этот момент ещё нет.

> May 12 18:03:49 disaster sshd[4009]: Server listening on xxx.xxx.xxx.xxx port
> 22.
> May 12 18:03:49 disaster sshd: sshd startup succeeded
> ...
> May 12 18:04:01 disaster udevd-event[4444]: rename_net_if: error changing
> net interface name: Invalid argument <- вот тут уже создается интерфейс
Ну да, клиент авторизовался на сервере, получил от сервера
локальные настройки и создал tun0. Потом сбросил привилегии и ушёл в
chroot. А sshd к этому времени уже запустился.

> .....
> > Я подобную проблему решал несколько прямолинейней: 
> > - использовал для запуска SSH не v_sshd, а стандартый sshd;
> > - напрямую указывал адреса IP-интерфейсов в sshd_config через
> >   ListenAddress; запуская sshd на lo и внутренней сетке;
> > - перенаправлял соединения с остальных интерфейсов на 127.0.0.1
> >   средствами iptables. 
> так у меня и сделано, только в ListenAddress написаны адреса vpn
> интерфейсов.

А есть гарантии, что _клиент_ всегда будет получать от сервера
одинаковый известный заранее IP?
 
> > 
> > > Можно конечно
> > > запихать openvpn в vserver, но лень и не хочется давать ей там слишком
> > > крутые привилегии 
> > 
> > А какие там могут быть привилегии принципиально большие по сравнению с
> > выполнением на хост-системе? Хотя, наверное, это действительно лишнее.
> [root@disaster ~]# cat /etc/vservers/crash/bcapabilities 
> NET_ADMIN
> NET_RAW
> ..
> некошерно.

[JT] Ну да. А разве этими же возможностями openvpn не обладает
(по-умолчанию, и с добавлением всего остального) на хост-системе?
Работа в vserver'е может только урезать права openvpn по сравнению с
работой в хост-системе.

> <skip>
> > - из конфигурации канала можно задать скрипт 'up', он будет вызываться
> >   самим openvpn после поднятия канала, но _до_ сброса привилегий.
> о! вот это мне и нужно. проще там сказать service sshd condrestart и не
> заморачиваться. Я-то думал, что этот скрипт вызывается после сброса
> привилегий, а в сорцы было лень лезть.
> 

IMHO правильнее всё-таки делать redirect средствами iptables. 


-- 
С уважением,	
Николай Фетисов


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [sisyphus] Работа с openvpn из сизифа
  2006-05-19  7:00     ` Andrei Bulava
  2006-05-19  7:06       ` Konstantin A. Lepikhov
@ 2006-05-19  8:09       ` Nikolay A. Fetisov
  1 sibling, 0 replies; 8+ messages in thread
From: Nikolay A. Fetisov @ 2006-05-19  8:09 UTC (permalink / raw)
  To: sisyphus

On Fri, 19 May 2006 10:00:09 +0300
Andrei Bulava wrote:

> Konstantin A. Lepikhov wrote:
> > .....
> > PS Думаю, есть смысл эту информацию отразить в README.ALT
> 
> openvpn(8):
> --up cmd
> Shell command to run after successful TUN/TAP device open (pre --user
> UID change).
> 
> Или речь об отражении какой-то другой информации?

Хм... Я тоже хотел указать на man и HOWTO :-) . Прочитал сам. В man'е
нашёл даже пример использования. Посмотрел. Подумал. Отразить 
действительно надо, но в-основном по поводу тех скриптов, которые
могут вызываться после ухода в chroot...

-- 
С уважением,	
Николай Фетисов


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [sisyphus] Работа с openvpn из сизифа
  2006-05-19  7:54     ` Nikolay A. Fetisov
@ 2006-05-20  7:21       ` Konstantin A. Lepikhov
  0 siblings, 0 replies; 8+ messages in thread
From: Konstantin A. Lepikhov @ 2006-05-20  7:21 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

[-- Attachment #1: Type: text/plain, Size: 1389 bytes --]

Hi Nikolay!

Friday 19, at 11:54:03 AM you wrote:

> А есть гарантии, что _клиент_ всегда будет получать от сервера
> одинаковый известный заранее IP?
да, поскольку он там один :)

<skip>
> > > А какие там могут быть привилегии принципиально большие по сравнению с
> > > выполнением на хост-системе? Хотя, наверное, это действительно лишнее.
> > [root@disaster ~]# cat /etc/vservers/crash/bcapabilities 
> > NET_ADMIN
> > NET_RAW
> > ..
> > некошерно.
> 
> [JT] Ну да. А разве этими же возможностями openvpn не обладает
> (по-умолчанию, и с добавлением всего остального) на хост-системе?
> Работа в vserver'е может только урезать права openvpn по сравнению с
> работой в хост-системе.
просто vserver делают не только для openvpn, а давать еще кому-то такие
права не хочется.

<skip>
> > > - из конфигурации канала можно задать скрипт 'up', он будет вызываться
> > >   самим openvpn после поднятия канала, но _до_ сброса привилегий.
> > о! вот это мне и нужно. проще там сказать service sshd condrestart и не
> > заморачиваться. Я-то думал, что этот скрипт вызывается после сброса
> > привилегий, а в сорцы было лень лезть.
> > 
> 
> IMHO правильнее всё-таки делать redirect средствами iptables. 
это будет оправдано, если у меня клиентов будет > 3, а для одного можно и
лишний раз sshd передернуть. Тем более, надо это всего один раз.

-- 
WBR et al.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2006-05-20  7:21 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-05-18 21:19 [sisyphus] Работа с openvpn из сизифа Konstantin A. Lepikhov
2006-05-19  5:08 ` Nikolay A. Fetisov
2006-05-19  6:16   ` Konstantin A. Lepikhov
2006-05-19  7:00     ` Andrei Bulava
2006-05-19  7:06       ` Konstantin A. Lepikhov
2006-05-19  8:09       ` Nikolay A. Fetisov
2006-05-19  7:54     ` Nikolay A. Fetisov
2006-05-20  7:21       ` Konstantin A. Lepikhov

ALT Linux Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sisyphus


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git