[sisyphus] Работа с openvpn из сизифа

Nikolay A. Fetisov =?iso-8859-1?q?naf_=CE=C1_naf=2Enet=2Eru?=
Пт Май 19 11:54:03 MSD 2006


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. 


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



Подробная информация о списке рассылки Sisyphus