Мне нужно знать, как установить VPN-соединение с Cisco VPN с помощью vpnc на Centos 5.6. Я могу запустить соединение, но через некоторое время процесс vpnc не существует в списке процессов при запуске
# pgrep vpnc
Я не знаю, это из-за того, что само соединение прерывается или что? ... если да, то как я могу сделать соединение постоянным?
Файл конфигурации выглядит так
## generated by pcf2vpnc
IPSec ID xxxx
IPSec gateway xx.xx.xx.xx
IPSec secret xxxxx
Xauth username xxxxxx
Xauth password xxxxxx
Я попробовал решение из этой статьи Вот но это не решило проблему!
Кто-нибудь может мне помочь в этом?
Заранее спасибо,
Специально не относится к vpnc
но я предлагаю то, что могу придумать ...
Обычно клиентские VPN-подключения прерываются из-за периода бездействия в туннеле. Самый простой способ преодолеть это - сохранить ping -t
к известному устройству на другом конце туннеля.
В противном случае, если ваш vpnc
процесс не работает, это может быть связано с тем, что конечная точка VPN перегружена, либо конечная точка отправляет пакеты, которые другая конечная точка считает недействительными и поэтому разорвала их, либо vpnc
якобы сломан. Посмотрите, упоминается ли что-нибудь в связанных с ним файлах журнала.
Следует отметить, что, насколько я понимаю vpnc
это клиент инструмент, а не сервис / демон. Возможно, для вашей конечной точки было бы более подходящим использовать более сервис-ориентированный инструмент (или даже дешевый аппаратный межсетевой шлюз / межсетевой экран / маршрутизатор). Не уверен, какие программные решения могут это сделать.
Оставшаяся альтернатива - это скрипт / кодирование ваших процессов, чтобы они проверяли наличие адреса целевого сервера и / или vpnc
процесс и начать vpnc
если не найден, перед каждой единицей работы.
Но на самом деле для постоянного подключения следует использовать аппаратное устройство. Вы можете подобрать базовое устройство Linksys / Netgear / D-Link / и т. Д., Которое может достаточно дешево использовать базовые протоколы.
Я написал сценарий, который позаботится об этом.
Linux vpnc - Как определить конкретный номер tunX в vpnc
Возможно, вы захотите попробовать это с необходимыми адаптациями, например:
#!/bin/bash
# Run script as # nohup ./vpn-monitor.sh /dev/null 2>&1 &
vpn_clientA(){
vpnName="clientA"
endpoint="10.10.10.10" # endpoint1 inside tunnel
endpoint2="10.20.30.40" # endpoint2 inside tunnel
count=$( ping -c 3 $endpoint | grep icmp* | wc -l )
count2=$( ping -c 3 $endpoint2 | grep icmp* | wc -l )
if [ $count -eq 0 -a $count2 -eq 0 ] # Echo reply not received.
then
# Ping failed
echo "Ping FAILED $(date)" >> /var/log/vpnc/$vpnName.log
# Sending email notification
echo "Ping for $endpoint FAILED! More info /var/log/vpnc/$vpnName.log " | mail -s "VPN $vpnName failed " my@domain.com
# restart connection
# pkill vpnc
/usr/sbin/vpnc /etc/vpnc/vpn_clientA --local-port 0 >> /var/log/vpnc/$vpnName.log &
else
echo "Ping replied $(date)" >> /var/log/vpnc/$vpnName.log
fi
}
while : # infinite cycle
do
# call function every 30 seconds
vpn_clientA
sleep 30
done