* [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