Привет всем!
есть cisco vpnclient заходит к удаленному серверу по ipsec, локально сам поднимает модули которые нужны для работы и та та та.
задача - исключить участие рута в установлении и поддержки коннекта в ручную.
с консоли запускается с нужными параметрами = можно заранее ввести
логин/пароль- но при установлении коннекта удаленный сервер просит
подтвердить желание устанавливать коннект.
кроме того отваливается по таймауту, который нигде в свойствах локально не конфигурируется. т.е. отваливает сервер.
чтобы исключить рута из этих действий пишем скрипт (script.anita)
___________________________-
#!/usr/bin/expect -f
set force_conservative 0
if {$force_conservative} {
set send_slow {1 .1}
proc send {ignore arg} {
sleep .1
exp_send -s -- $arg
}
}
spawn "/bin/bash"
send "vpnclient connect Amanda_VPN user LoGiN pwd PaSsWoRd nocertpwd\r"
expect -exact "Do you wish to continue? (y/n): "
send -- "y\r"
expect -exact "Local LAN Access is disabled\r"
send \032
send "bg\r"
interact
-----------------
запускаем. expect отвечает "у" в каком нужно месте. скрипт переводит процесс в background. что можно увидеть после набора jobs.
теперь пробую сделать это так, чтобы в случае обвала коннекта (по тайм ауту или какой то другой причине) все поднялось без присутствия админа - автоматом.
пишу crontab : 0-59/2 * * * * /home/anita/croncisco
______________________
#!/bin/bash
SHELL=/bin/bash
TERM=xterm
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
if [ ! -f /var/run/cvpnd.pid ]; then
expect -f /home/anita/script.anita
fi
--------------
и крон действительно присылает мне лог на mail что все сработало - я вижу что он создал консоль - там отработал - выдал "y" - и даже в background перевел. вот этот е-мейл
___________________________
spawn /bin/bash
vpnclient connect Amanda_VPN user LoGiN pwd PaSsWoRd nocertpwd
]0;@mail:~[root@mail root]# vpnclient connect Amanda_VPN user LoGiN pwd
PaSsWoRd nocertpwd
Cisco Systems VPN Client Version 3.7.2 (Rel)
Copyright (C) 1998-2002 Cisco Systems, Inc. All Rights Reserved.
Client Type(s): Linux
Running on: Linux 2.4.20-Anita3 #12 Mon Aug 9 13:58:53 MSD 2004 i586
WARNING:
Using the "pwd" option may allow other users
on this computer to see your password.
Initializing the IPSec link.
Initiating TCP to vpn_server_ip, port 10000
Contacting the gateway at vpn_server_ip
Authenticating user.
Negotiating security policies.
Securing communication channel.
Hello Amanda User
Do you wish to continue? (y/n): y
Your link is secure.
IPSec tunnel information.
Client address: 10.254.142.186
Server address: vpn_server_ip
Encryption: 168-bit 3-DES
Authentication: HMAC-MD5
IP Compression: None
NAT passthrough is active on port TCP 10000
Local LAN Access is disabled
[1]+ Stopped vpnclient connect Amanda_VPN user LoGiN pwd
PaSsWoRd nocertpwd
]0;@mail:~bg
[root@mail root]# bg
[1]+ vpnclient connect Amanda_VPN user LoGiN pwd PaSsWoRd nocertpwd &
]0;@mail:~
--------------------
но! крон закрывает задачу - и вместе с ней ее background.
и таким образом коннект убивается.
что делать?
может есть другие решения?
cron / expect script / без завершения процесса
Модераторы: Trinity admin`s, Free-lance moderator`s
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя