Назад | Перейти на главную страницу

Постоянное соединение VPN с vpnc

Мне нужно знать, как установить 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