背景
CentOS7直接用yum方式安装snmpwalk版本为5.7.2并且鉴权协议只支持MD5 SHA
这两种,但是测试过程中我需要用到SHA-512
的鉴权协议以及AES256
的加密协议
解决办法
查看官网 http://www.net-snmp.org/发现最新版本为5.9.1支持 SHA-512
鉴权协议,于是尝试安装5.9.1版本但是CentOS系统只能编译安装,不能直接用yum或者rpm方式安装.
安装步骤
1. 下载安装包
点击 https://jaist.dl.sourceforge.net/project/net-snmp/net-snmp/5.9.1/net-snmp-5.9.1.tar.gz 下载安装包
2. root用户下安装
执行sudo su
切换到root用户执行后续命令
用scp命令或者其他方式上传安装包, 如果安装机器可以连外网还可以直接执行下面的 命令获取安装包
wget https://jaist.dl.sourceforge.net/project/net-snmp/net-snmp/5.9.1/net-snmp-5.9.1.tar.gz
- 卸载老版本snmpwalk
yum remove -y net-snmp net-snmp-utils
- 安装依赖,解决
Can't locate ExtUtils/MakeMaker.pm in @INC
问题
yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker -y
- 安装依赖,解决
configure: error: Blumenthal draft requires OpenSSL with AES functions enabled.
问题
参考 https://sourceforge.net/p/net-snmp/code/merge-requests/14/
yum -y install openssl-libs openssl openssl-devel
- 解压安装包
tar -zxvf net-snmp-5.9.1.tar.gz
- 进入解压目录执行
./configure
后一直按回车键确认,然后执行make && make install
编译安装
cd net-snmp-5.9.1
# 启用加密协议AES192和AES256, 其余定制选项可以用 ./configure -h查看
./configure --enable-blumenthal-aes
# 安装
make && make install
- 修改环境变量
/etc/profile
在PATH
那一行的行尾后面添加:/usr/local/bin
vi /etc/profile
#PATH那一行的行尾后面添加:/usr/local/bin 例如
PATH=$PATH:/usr/local/python/bin:/usr/local/bin
- 引用环境变量并修改目录权限
source /etc/profile
chmod -R 755 /usr/local/share
-
验证
执行snmpwalk -h
可以查看帮助信息,安装成功后会支持SHA-512
的鉴权协议,如果配置过程直接执行的是./configure
而不是./configure --enable-blumenthal-aes
就会发现加密协议只支持AES
和DES
两种加密协议不支持AES-256
加密协议, 如下图:
按照./configure --enable-blumenthal-aes
配置的话会支持AES256
如下图:
-
卸载
如果不想使用snmpwalk 5.9.1了可以到解压目录下用root
用户执行make uninstall
命令卸载. 例如:
sudo su
cd net-snmp-5.9.1
make uninstall