在各种Linux分发版中,大多数都已经默认集成了snmpd,比如在suse10中,你可以这样开启snmpd:
  
  suse10:~ # /etc/init.d/snmpd start
  
  如果没有默认安装,你要做的就是自己来编译snmpd,按照下边的步骤,非常简单。
  
  编译和安装

  对于Linux平台,我们推荐使用Net-SNMP,它实现了标准的SNMP协议,并且包括了代理程序以及各种SNMP工具。
  
  http://net-snmp.sourceforge.net/
  
  首先需要下载Net-SNMP的源代码,选择当前最新的版本5.4.2.1,地址如下:
  
  http://sourceforge.net/projects/net-snmp/files/net-snmp/5.4.2.1/
  
  接下来对下载的源代码包进行解压缩,如下
  
  ./configure –prefix=/usr/local/snmp –with-openssl=/usr/ –with-mib-modules=ucd-snmp/diskiomakemake installsuse10:~ # tar xzvf net-snmp-5.4.2.1.tar.gz
  
  然后通过configure来生成编译规则,如下:
  
  suse10:~ # cd net-snmp-5.4.2.1
  suse10:~ # ./configure —-prefix=/usr/local/snmp —-with-openssl=/usr/ ––with-mib-modules=ucd-snmp/diskio
  
  注意这里的—-with-mib-modules=ucd-snmp/diskio选项,它可以让服务器支持磁盘I/O监控。
  
  接下来,开始编译和安装
  
  suse10:~ # make
  suse10:~ # make install
  
  到现在为止,我们已经有了可以运行的SNMP代理程序,它位于/usr/local/snmp/sbin/snmpd,在启动它之前,我们还要进行一些必要的设置。
  
  设置安全的验证方式
  将SNMP代理程序暴露给网络上的所有主机是很危险的,为了防止其它主机访问你的SNMP代理程序,我们需要在SNMP代理程序上加入身份验证机制。SNMP支持不同的验证机制,这取决于不同的SNMP协议版本,目前支持v2c和v3两个版本,其中v2c版本的验证机制比较简单,它基于明文密码和授权IP来进行身份验证,而v3版本则通过用户名和密码的加密传输来实现身份验证,我们建议使用v3,当然,只要按照以下的介绍进行配置,不论是v2c版本还是v3版本,都可以保证一定的安全性,你可以根据情况来选择。
  
  注意一点,SNMP协议版本和SNMP代理程序版本是两回事,刚才说的v2c和v3是指SNMP协议的版本,而Net-SNMP是用来实现SNMP协议的程序套件,目前它的最新版本是刚才提到的5.4.2.1。
  
  v2c
  
  先来看如何配置v2c版本的SNMP代理,我们来创建snmpd的配置文件,默认情况下它是不存在的,我们来创建它,如下:
  
  suse10:~ # vi /usr/local/snmp/share/snmp/snmpd.conf
  
  然后我们需要创建一个只读帐号,也就是read-only community,在snmpd.conf中添加以下内容:
  
  rocommunity ixdba 61.189.220.66
  
  注意,这里的“rocommunity”表示这是一个只读的访问权限,ixdba只可以从你的服务器上获取信息,而不能对服务器进行任何设置。
  
  紧接着的“ixdba”相当于密码,很多平台喜欢使用“public”这个默认字符串。这里的“ixdba”只是一个例子,你可以设置其它字符串作为密码。
  
  最右边的“61.189.220.66”代表指定的监控点IP,这个IP地址是监控专用的监控点,这意味着只有监控有权限来访问你的SNMP代理程序。
  
  所以,以上这段配置中,只有“ixdba”是需要你进行修改的,同时添加服务器的时候,需要提供这个字符串。
  
  v3c
  
  当然,我们建议您使用v3c版本来进行身份验证。对于一些早期版本的Linux分发版,其内置的SNMP代理程序可能并不支持v3c,所以我们建议您按照前边介绍的方法,编译和安装最新的Net-Snmp。
  
  v3c支持另一种验证方式,要创建一个v3c的帐号,我们同样修改以下配置文件:
  
  suse10:~ # vi /usr/local/snmp/share/snmp/snmpd.conf
  
  然后添加一个只读帐号,如下:
  
  rouser ixdba auth
  
  可以看到,在v3c中,“rouser”用于表示只读帐号类型,随后的“ixdba”是指定的用户名,后边的“auth”指明需要验证。
  
  接下来,我们还要添加“ixdba”这个用户,这就是v3c中的特殊机制,我们打开以下配置文件:
  
  suse10:~ # vi /var/net-snmp/snmpd.conf
  
  这个文件会在snmpd启动的时候被自动调用,我们需要在它里边添加创建用户的指令,如下:
  
  createUser ixdba MD5 mypassword
  
  这行配置的意思是创建一个名为“ixdba”的用户,密码为“mypassword”,并且用MD5进行加密传输。这里要提醒的是,密码至少要有8个字节,这是SNMP协议的规定,如果小于8个字节,通信将无法进行。
  
  值得注意的是,一旦snmpd启动后,出于安全考虑,以上这行配置会被snmpd自动删除,当然,snmpd会将这些配置以密文的形式记录在其它文件中,重新启动snmpd是不需要再次添加这些配置的,除非你希望创建新的用户。
  
  以上配置中的用户名、密码和加密方式,在监控添加服务器的时候需要添加。
  
  启动SNMP代理程序
  经过配置后,现在可以启动snmpd,如下:
  
  /usr/local/snmp/sbin/snmpd
  
  如果要关闭,则可以直接kill这个进程,如下:
  
  killall -9 snmpd
  
  增强的安全机制
  有了以上的验证机制,你就可以放心的使用SNMP代理了。但是,如果你的SNMP代理程序版本较低,可能会有一些别有用心的破坏者利用一些固有的漏洞进行破坏,比如发送较长的数据导致SNMP代理程序内存泄漏或者拒绝服务等,为此,你还可以使用防火墙(iptables)来进行增强的安全过滤。
  
  在Linux中,我们用iptables来实现防火墙,一般情况下,除了流入指定端口的数据包以外,我们应该将其它流入的IP数据包抛弃。你可能已经配置了一定的防火墙规则,那么只要增加针对SNMP的规则即可。
  
  SNMP代理程序默认监控在udp161端口,为你的iptables增加以下规则:
  
  
  iptables -A INPUT -i eth0 -p udp -s 61.189.220.66 --dport 161 -j ACCEPT

  注意,在以上的dport选项之前,是两个“-”符号,由于排版显示的问题,这里可能会不正常。另外,在以上设置中,假设你的服务器外网网卡是eth0,你可以根据实际情况来修改。
  这样一来,只有指定的专用监控器可以发送UDP数据包到你的服务器的161端口,与SNMP代理程序进行通信。
    
  填写完后,点击提交按钮,这时候使用这些信息来尝试连接你的SNMP监控代理,需要一些时间,这一步非常重要。
  
  不妙,如果你填写的信息无法连接到服务器的SNMP代理程序,这时候,请你仔细检查之前介绍的那些配置,以及防火墙策略,也许你没有开放udp161端口。

在Linux服务器上如何开启安全的SNMP代理相关推荐

  1. Windows/Linux服务器上Tomcat开启远程调试,使用IDEA本地调试

    注意:要保证本地的代码与服务器上部署的代码完全一致

  2. Linux服务器上最简单的Nginx反向代理配置

    2019独角兽企业重金招聘Python工程师标准>>> Nginx不但是一款高性能的Web服务器,也是高性能的反向代理服务器.简单的可以理解为直接让当前的访问地址跳转到其他的网站上去 ...

  3. 使用rsync同步linux服务器上的文件到windows上

    需求: 在windows客户端上执行计划任务同步脚本,从linux服务器上同步对应模块下的目录内容到windows客户端的D:\data目录下. 步骤: 1. rsync服务端操作略: (百度一下都有 ...

  4. Linux服务器上监控网络带宽与监控性能命令大全

    [51CTO精选译文]本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量分开来显示. 一些命令可以 ...

  5. 转:PHP网站在Linux服务器上安全设置方案

    PHP网站在Linux服务器上安全设置方案 本文总结了PHP网站在Linux服务器上一些安全设置(ps:还有一些设置给忘了),在<lnmp一键安装包>大多数参数已经包含,如果有什么更多的设 ...

  6. linux如何查看jupyter日志_在Linux服务器上运行Jupyter notebook server教程

    在Linux服务器上运行Jupyter notebook server教程 很多deep learning教程都推荐在jupyter notebook运行python代码,方便及时交互.但只在本地运行 ...

  7. 微信公众号 多台服务器,在多台 Linux 服务器上搭建 Pulsar 集群

    作者:高天赐 编辑:Irene Pulsar 是一个支持多租户的.高性能的消息中间件.上一篇我们介绍了如何在 Mac 上搭建 Pulsar 集群,本文详细介绍如何在 3 台 Linux 服务器上搭建 ...

  8. 在linux服务器上部署禅道环境

    转载自:https://www.cnblogs.com/yoyoketang/p/10184072.html?from=timeline&isappinstalled=0 前言 以前出去面试总 ...

  9. 项目部署到Linux服务器上 (全)linux服务器安装java mysql 配置

    项目部署到Linux服务器上 (全) 1.服务器准备 首先你需要购买一台云服务器 我是领取的阿里云的服务器 选择linux系统 设置好 服务器的密码 忘记可以在 控制台首页 云服务器ECS 里面找到购 ...

最新文章

  1. Nat. Mach. Intell. | FFPred-GAN:“以假乱真“—基于GAN创建合成特征样本改进蛋白质功能预测...
  2. ActionScript 3.0 实现树形菜单。
  3. MapReduce词频统计
  4. mysql数据库open函数_C#访问Mysql数据库方法,以及库函数
  5. 如何查看git是否添加到环境变量 - cmd篇
  6. OpenShift 4 Hands-on Lab (0) - 教程说明和准备环境
  7. mysql xml生成工具_mybatis-generator 代码自动生成工具
  8. win10未能连接网络连接到服务器,win10以太网无法连接网络解决办法
  9. 2021年将最流行的10大JavaScript库
  10. 各种单点登录方案调研
  11. 直连服务器ping有丢包,为何ping服务器会丢包严重?
  12. 数字藏品 传承优秀传统文化的新载体
  13. 俄罗斯方块shell脚本
  14. 让TXT文本等其他任意格式的文件,不在IE中打开,而直接下载的方法
  15. 疯狂java讲义第七章补充习题第12题答案
  16. python中Excel表的读写改详解
  17. pytorch中transform的使用
  18. 【软件工程大作业】对于一款具有个性化推荐功能的购物网站的可行性分析
  19. 7-25 念数字(15 分)Java与C++
  20. 无人便利店代理合作——从智能行业风口分析无人便利店前景

热门文章

  1. Spark RDD的窄依赖和宽依赖
  2. uni-app 即时聊天:朋友圈
  3. 战地系列服务器架设,战地3服务器架设数据库
  4. 奥运会运动项目名称汇总
  5. R语言----逻辑回归各统计量解读
  6. Tarena - 关联查询
  7. 拯救者Y7000关闭的流程
  8. 手机web端唤醒qq客户端以及电脑web端唤醒qq客户端
  9. DZ游戏网站模板 小鱼游戏风影传说商业GBK+UTF8版模板
  10. 钱多多第二阶段冲刺04