Cisco ASA5520 VPN线路的监控和自动重启

目录

Cisco ASA5520 VPN线路的监控和重启

公司从事第三方支付工作,跟很多银行都有合作关系,拉了很多专线直通银行,双方建立VPN,两端都是Cisco的设备,但是,这些线路有时候会莫名其妙的断掉,关键是程序不知道啊,老是重连,一直等到客服反映客户投诉,查一圈程序后才知道。这在生产环境上可是行不通的,找来了所谓Cisco高手,也搞不明白为什么老断,没办法,于是写了两个监控脚本,使用Ping检测VPN对端的状况,一旦Ping不通,就用脚本登陆防火墙,自动重启VPN。

在安装之前,先安装一个能从命令行发送邮件的软件Email来发送报警邮件,否则每台机器都起sendmail,没什么必要:

 1https://github.com/muquit/mailsend-go
 2
 3
 4#发送实例
 5mailsend-go -smtp smtp.126.com -port 25 \
 6auth \
 7  -user xxx@126.com -pass xxx \
 8  -from xxx@126.com -to  "xxx@126.com" \
 9-sub "Test" \
10body -msg 'hello world'
11
12126邮箱这里的密码用的是授权码 授权密码,不是邮箱密码

说明一下场景:

  • 210.210.210.3是对端Cisco vpn设备的公网IP
  • 192.168.101.99是建立了VPN后,对端服务器的私网IP地址;
  • 192.168.1.1是己方Cisco ASA5520的私网地址。
 1#!/bin/sh
 2
 3while [ "1" -eq "1" ]  
 4do  
 5    live=`ping -c4 "192.168.101.99"|wc -l`
 6    if [ $live -eq 5 ] ; then
 7        /usr/local/bin/mailsend-go -debug -to "ranrui.zhang@rendoumi.com" -from monit@ddky.com -ssl -port 465 -smtp smtp.qiye.aliyun.com \
 8             auth -user "monit@ddky.com" -pass "xxxxxxxx" \
 9             -sub "vpn断了" body -msg "`date +%Y`年`date +%m`月`date +%d`日 vpn断了!!!" \
10             -cs "utf-8"
11        /usr/local/bin/revpn.sh
12        echo "`date +%Y`年`date +%m`月`date +%d`日 `date +%H`点`date +%M`分
13                线路不能到达王府井机房,重启VPN。"
14        sleep 60
15    fi;
16    sleep 60
17done  

以下是用expect自动登录Cisco路由器重启vpn的脚本 revpn.sh

 1#!/usr/bin/expect
 2
 3set timeout 30  
 4spawn ssh pix@192.168.1.1  
 5expect "password:"  
 6send "xxxxxxxx\n"  
 7expect "ASAtoTelecom>"  
 8send "en\n"  
 9expect "Password:"  
10send "xxxxxxxx\n"  
11expect "ASAtoTelecom#"  
12send "clear isakmp sa\n"  
13expect "ASAtoTelecom#"  
14send "clear ipsec sa peer 210.210.210.3\n"  
15expect "ASAtoTelecom#"  
16send "exit\n"  
17expect eof  
18exit 0  

出国旅行安装一个FreePBX的voip电话自用
Openvpn服务器端无法开通udp端口的故障排除
comments powered by Disqus