使用 curl 命令对深信服上网行为管理进行认证

使用 curl 命令对深信服上网行为管理进行认证

简介

深信服上网行为管理系统是企业网络中常用的网络管理设备。在 Linux 环境下,我们可以使用 curl 命令来实现自动化认证登录,避免每次手动打开浏览器进行认证的麻烦。

认证命令

基本命令格式


curl -H "Content-Type: application/x-www-form-urlencoded" -X POST --data 'opr=pwdLogin&userName=用户名&pwd=密码&rememberPwd=0' http://深信服地址/ac_portal/login.php

参数说明

  • -H "Content-Type: application/x-www-form-urlencoded": 设置请求头,指定内容类型为表单数据

  • -X POST: 指定使用 POST 方法发送请求

  • --data: 指定要发送的表单数据

  • opr=pwdLogin: 操作类型为密码登录

  • userName=用户名: 你的登录用户名

  • pwd=密码: 你的登录密码

  • rememberPwd=0: 不记住密码(设置为 1 则记住密码)

  • http://深信服地址/ac_portal/login.php: 深信服认证服务器的地址

使用示例

示例 1:基本认证

假设你的用户名是 zhangsan,密码是 123456,深信服地址是 192.168.1.1


curl -H "Content-Type: application/x-www-form-urlencoded" -X POST --data 'opr=pwdLogin&userName=zhangsan&pwd=123456&rememberPwd=0' http://192.168.1.1/ac_portal/login.php

示例 2:查看详细响应信息

添加 -v 参数可以查看详细的请求和响应信息,便于调试:


curl -v -H "Content-Type: application/x-www-form-urlencoded" -X POST --data 'opr=pwdLogin&userName=zhangsan&pwd=123456&rememberPwd=0' http://192.168.1.1/ac_portal/login.php

示例 3:保存响应结果

将认证结果保存到文件:


curl -H "Content-Type: application/x-www-form-urlencoded" -X POST --data 'opr=pwdLogin&userName=zhangsan&pwd=123456&rememberPwd=0' http://192.168.1.1/ac_portal/login.php -o response.txt

自动化脚本

创建认证脚本

创建一个名为 sangfor_login.sh 的脚本文件:


#!/bin/bash

# 深信服认证配置

SANGFOR_URL="http://192.168.1.1/ac_portal/login.php"

USERNAME="你的用户名"

PASSWORD="你的密码"

# 执行认证

curl -H "Content-Type: application/x-www-form-urlencoded" -X POST --data "opr=pwdLogin&userName=${USERNAME}&pwd=${PASSWORD}&rememberPwd=0" ${SANGFOR_URL}

# 检查返回状态

if [ $? -eq 0 ]; then

echo "认证请求已发送"

else

echo "认证请求失败"

fi

使用脚本

  1. 赋予脚本执行权限:

chmod +x sangfor_login.sh

  1. 运行脚本:

./sangfor_login.sh

开机自动认证

如果需要开机自动认证,可以将脚本添加到 crontab:


# 编辑 crontab

crontab -e

# 添加以下行(在系统启动后 1 分钟执行)

@reboot sleep 60 && /path/to/sangfor_login.sh

或者添加到系统启动脚本(如 /etc/rc.local)。

注意事项

  1. 安全性:脚本中包含明文密码,请注意文件权限设置:

chmod 600 sangfor_login.sh

  1. 网络连接:确保你的设备已经连接到需要认证的网络

  2. 地址确认:不同的深信服设备可能使用不同的认证地址,请根据实际情况修改

  3. 测试连接:认证后可以使用 ping 命令测试网络连通性:


ping -c 4 www.baidu.com

  1. 错误排查:如果认证失败,可以:
  • 使用 -v 参数查看详细信息

  • 检查用户名和密码是否正确

  • 确认深信服服务器地址是否正确

  • 查看返回的响应内容判断失败原因

注销命令

如果需要注销认证,可以使用类似的命令:


curl -H "Content-Type: application/x-www-form-urlencoded" -X POST --data 'opr=logout' http://深信服地址/ac_portal/login.php

总结

使用 curl 命令进行深信服认证可以大大简化 Linux 环境下的网络认证流程,特别适合服务器或无图形界面的系统。通过编写自动化脚本,可以实现开机自动认证,提高工作效率。

参考资源