SDR1.0(SHELL+Dialog+RSA)Linux主机管理[原创]
前言
07年上线的一个Linux集中式管理,基于bash shell+Dialog+mysql+python+mod_perl来实现,现在共享出来,希望平台的思想及实现方法能够给大家一些帮助,以下为系统的说明文档。
一、开发目的
为了使管理Linux服务器群变得更安全、简单、高效、智能。一定程度上缩小了维护成本,提高工作效率,做好应付将来管理上千台Linux服务器打好基础。
二、背景
目前管理Linux服务器的方式还是走SSH到终端的管理方式,此方式存在一定的全安隐患。管理这些服务器的passwd就很头疼,稍微不注意,passwd会被黑客获取,造成灾难性的后果。管理应用方面,同样也是通过管理员电脑到每台服务器去操作,同样的一个操作就得到每台服务器上面重复地去做,消耗了很多时间与精力。在服务器性能监控方面,目前在应用Cacti、nagios平台,全此方式让管理员很被动,一般都是等到故障发生了才发现问题,影响了用户体验。主要原因是不能提前了解到服务器的健康状态。没有实时的跟踪、报警、分析机制。以后服务器会翻倍地增加,目前这种管理方式很明显已经不适应发展的需求。
三、系统特点
安全性-管理系统具有很好的安全性,通过2048位RSA密钥进行监控服务器与被监控服务器的认证,可以省去输入繁琐和易泄露的密码。系统管理员只要对主监控服务器做好安全配置并保管好私钥即可,被监控服务器外网远程终端默认将会被关闭,系统会定期扫描被监控服务器内/外网安全情况,生成分析结果给管理员。系统管理员可以定期更换公钥、私钥来提高安全系数。登录监控平台需要密码(perl pack加密)认证,每个操作窗口都加入会话认证,整个系统编译后的文件都是以二进制方式存放。
智能化-监控服务器会根据被监控服务器上的应用部署相应的代理客户端,由代理客户端来检查、监控、分析本服务器的状态,分析结果将通过邮件、WEB、短信通知给系统管理员。让管理员不间隔了解到服务器的状态信息,代理客户端同时也具备管理本服务器应用的权力,当应用发生故障时它会自我修复并通知管理员。
易用性-系统是基于Linux shell模式下的对话框展示,中文环境,同时也支持鼠标操作,功能清晰明了,操作时系统也会提示相应的文字提示,非常简单。
高效率-新上架的服务器只要进行如下三步即可上线提供服务,即添加服务器->初始化->部署应用。如果要在多台服务器上进行一样的操作,只要选择好操作事件跟操作对象就可以了。
灵活性-升级被监控服务器上的对象很方便,只要在监控服务器上更新好相应对象代码,系统会自动到被监控服务器上去更新它们。
可扩展性-系统提供的高级应用功能,其它同事也可以编写自己的模块,根据不同应用可以定制不同的功能模块,系统提供这样的接口。
4、系统网络架构图
5、系统流程图
6、系统主界面
四、系统主要功能
SDR1.0是基于Linux bash shell+mysql+python+mod_perl工具开发,功能覆盖了Linux常用常用操作,下面详细介绍系统主要功能:
1、系统目录结构
/
│ add_firewall 添加防火墙
│ add_server 添加服务器
│ add_app 部署应用
│ add_agent 部署代理
│ authorized_keys 公钥
│ checkonline 登录验证
│ config 配制文件
│ c_server_class 多选服务器列表
│ go 登录
│ identity 私钥
│ list_server_do 选择服务器
│ list_server_info 服务器信息
│ main 功能选择
│ msgbox 提示信息
│ r_server_class 单选服务器
├─tyapp 应用安装脚本
│
├─bin
│ nohup.out tmpfile
│ syslog2mysql.sh syslogs to mysql shell
│ TyserverScan 服务器端口扫描(外网)
│
├─cron
│ TyserverwebScan 验证WEB状态主程序
│
├─document
│ document.txt 开发文档
│
├─key
│ identitybak old key
│
├─logs 系统操作日志目录
├─tyagent 代理程序目录
└─tysysadmin 前端cgi-bin目录
├─cgi-bin
│ config.pl
│ index.cgi 模块入口程序
│ sendmail.cgi 邮件报警接口
│
├─css
│ style.CSS
│
├─js
│ copyright.js
│
└─modules
└─Apache
ServerLoglist.pm 服务器日志列表
ServerScanport.pm 服务器端口扫描
ServerScanweb.pm 服务器状态扫描
五、功能介绍
5.1服务器列表
[功能]列表显示已添加至系统的服务器及其状态。
[操作方法]选择添加服务器->选择服务器分类->列表出此类别服务器信息,包括LAN IP、WAN IP、日志客户端、SSH终端、防火墙、部署代理等等信息。
5.2添加服务器
[功能]添加服务器到系统。
[操作方法]选择添加服务器->选择服务器分类->输入服务器名称、内网IP、外网IP,上下方向键切换输入框,这几项都不允许为空,输入完毕后点[Add]。
5.3安全检测
[功能]扫描服务器内网端口开放情况。
[操作方法]选择安全检测->选择服务器分类->选择服务器->显示扫描进度条并将结果写入数据库。
5.4部署代理
[功能]给服务器部署代理。
[操作方法]选择部署代理->选择服务器分类->选择服务器->选择代理类型->[OK]。
5.5连接状态
[功能]查看已添加的被监控服务器与主监控服务器的连接状态,在做其它操作之前查看此项是一个好习惯。
[操作方法]选择连接状态->显示探测进度条->生成结果。
5.6更换证书
[功能]更新主、被监控服务器的私、公钥,为了保障整个安全,定期更换证书是很有必要的。
[操作方法]选择更换证->显示探测进度条。
5.7管理终端
[功能]开/关远程访问被监控服务器SSH终端。
[操作方法] 选择管理终终->选择服务器分类->选择服务器->(开/关)->[OK]。
5.8操作日志
[功能]查看系统操作日志,方便查看历史操作记录。
[操作方法]选择操作日志->选择日期(TAB切换年/月/日,方向键选择日)->显示操作日志记录。
5.9部署日志
[功能]添加被监控服务器系统日志到日志服务器,实时观察其状态。
[操作方法] 选择部署日志->选择服务器分类->选择服务器(显示未添加的服务器列表) ->[OK]。
6.0部署应用
[功能]给服务器部署应用。
[操作方法]选择部署应用->选择服务器分类->选择服务器->选择应用类型->[OK]。
6.1部署防火墙
[功能]给服务器部署防火墙(Firewall)。
[操作方法]选择部署应用->选择服务器分类->选择服务器->选择防火墙类型->[OK]。
6.2初始化
[功能]初始化服务器,优化系统内核、删除无用用户、停止无用服务等等。
[操作方法]选择初始化->选择服务器分类->选择服务器-> [OK]。
6.3高级应用
[功能]本系统扩展的一个接口。
[操作方法]选择高级应用->进入命令行状态->运行相应接口(参数)。
6.4用户管理
[功能]本系统用户帐号管理。
[操作方法]选择用户管理->开发中…。
6.5退出文字
[功能]退出本系统。
[操作方法]选择退出->操作结束。
六、截图说明
[应用分类]
[服务器清单]
[添加服务器]
[安装应用平台]
[操作日志]
[安装功能代理]
[安全扫描]
七、使用指南
1、通过ssh登录监控管理器。
2、[root@sysadmin ~]#go
3、输入管理员密码:
4、验证通过进入管理窗口。
八、前端应用
1、定制作业
2、配置
将ServerLoglist.pm、ServerScanport.pm、ServerScanweb.pm复制到/opt/apache/perl/modules/Apache目录
#vi httpd.conf
3、服务器日志时时跟踪
http://192.168.100.10/ServerLoglist
4、服务器端口扫描
http://192.168.100.10/ServerScanport
5、服务器WEB状态监控
http://192.168.100.10/ServerScanweb
九、安装
yum -y install dialog
1、tar -zxvf SDR1.0.tar.gz
2、cd SDR1.0
3、vi config 修改成实际参数
4、创建Mysql数据库"sysadmin",并导入SDR1.0/sql/sysadmin.sql
5、修改系统环境
5.1环境变量:vi /etc/profile
export PATH=$PATH:/usr/local/bin:/home/SDR1.0
5.2配置ssh链接
ln -s /usr/bin/ssh /usr/bin/sshto
5.3、修改mysql客户端编码
vi /etc/my.cnf
[client]
default-character-set=utf8
6、安装nmap
yum -y install nmap
7、生成公私钥
#cd /home/SDR1.0
删除原公私钥
#rm -rf authorized_keys identity
#ssh-keygen -t dsa -b 2048 -f identity
#mv identity.pub authorized_keys
#chmod 600 identity authorized_keys
8、因修改了环境变量,退出终端exit再登录操作系统,进入/home/SDR1.0,运行"go",默认密码为“123456”。OVER:)
十、开发变量说明
十一、处理模块代码
如大家有什么疑问或感兴趣的话题可以通过weibo与我交流:http://t.qq.com/yorkoliu
07年上线的一个Linux集中式管理,基于bash shell+Dialog+mysql+python+mod_perl来实现,现在共享出来,希望平台的思想及实现方法能够给大家一些帮助,以下为系统的说明文档。
一、开发目的
为了使管理Linux服务器群变得更安全、简单、高效、智能。一定程度上缩小了维护成本,提高工作效率,做好应付将来管理上千台Linux服务器打好基础。
二、背景
目前管理Linux服务器的方式还是走SSH到终端的管理方式,此方式存在一定的全安隐患。管理这些服务器的passwd就很头疼,稍微不注意,passwd会被黑客获取,造成灾难性的后果。管理应用方面,同样也是通过管理员电脑到每台服务器去操作,同样的一个操作就得到每台服务器上面重复地去做,消耗了很多时间与精力。在服务器性能监控方面,目前在应用Cacti、nagios平台,全此方式让管理员很被动,一般都是等到故障发生了才发现问题,影响了用户体验。主要原因是不能提前了解到服务器的健康状态。没有实时的跟踪、报警、分析机制。以后服务器会翻倍地增加,目前这种管理方式很明显已经不适应发展的需求。
三、系统特点
安全性-管理系统具有很好的安全性,通过2048位RSA密钥进行监控服务器与被监控服务器的认证,可以省去输入繁琐和易泄露的密码。系统管理员只要对主监控服务器做好安全配置并保管好私钥即可,被监控服务器外网远程终端默认将会被关闭,系统会定期扫描被监控服务器内/外网安全情况,生成分析结果给管理员。系统管理员可以定期更换公钥、私钥来提高安全系数。登录监控平台需要密码(perl pack加密)认证,每个操作窗口都加入会话认证,整个系统编译后的文件都是以二进制方式存放。
智能化-监控服务器会根据被监控服务器上的应用部署相应的代理客户端,由代理客户端来检查、监控、分析本服务器的状态,分析结果将通过邮件、WEB、短信通知给系统管理员。让管理员不间隔了解到服务器的状态信息,代理客户端同时也具备管理本服务器应用的权力,当应用发生故障时它会自我修复并通知管理员。
易用性-系统是基于Linux shell模式下的对话框展示,中文环境,同时也支持鼠标操作,功能清晰明了,操作时系统也会提示相应的文字提示,非常简单。
高效率-新上架的服务器只要进行如下三步即可上线提供服务,即添加服务器->初始化->部署应用。如果要在多台服务器上进行一样的操作,只要选择好操作事件跟操作对象就可以了。
灵活性-升级被监控服务器上的对象很方便,只要在监控服务器上更新好相应对象代码,系统会自动到被监控服务器上去更新它们。
可扩展性-系统提供的高级应用功能,其它同事也可以编写自己的模块,根据不同应用可以定制不同的功能模块,系统提供这样的接口。
4、系统网络架构图
5、系统流程图
6、系统主界面
四、系统主要功能
SDR1.0是基于Linux bash shell+mysql+python+mod_perl工具开发,功能覆盖了Linux常用常用操作,下面详细介绍系统主要功能:
1、系统目录结构
/
│ add_firewall 添加防火墙
│ add_server 添加服务器
│ add_app 部署应用
│ add_agent 部署代理
│ authorized_keys 公钥
│ checkonline 登录验证
│ config 配制文件
│ c_server_class 多选服务器列表
│ go 登录
│ identity 私钥
│ list_server_do 选择服务器
│ list_server_info 服务器信息
│ main 功能选择
│ msgbox 提示信息
│ r_server_class 单选服务器
├─tyapp 应用安装脚本
│
├─bin
│ nohup.out tmpfile
│ syslog2mysql.sh syslogs to mysql shell
│ TyserverScan 服务器端口扫描(外网)
│
├─cron
│ TyserverwebScan 验证WEB状态主程序
│
├─document
│ document.txt 开发文档
│
├─key
│ identitybak old key
│
├─logs 系统操作日志目录
├─tyagent 代理程序目录
└─tysysadmin 前端cgi-bin目录
├─cgi-bin
│ config.pl
│ index.cgi 模块入口程序
│ sendmail.cgi 邮件报警接口
│
├─css
│ style.CSS
│
├─js
│ copyright.js
│
└─modules
└─Apache
ServerLoglist.pm 服务器日志列表
ServerScanport.pm 服务器端口扫描
ServerScanweb.pm 服务器状态扫描
五、功能介绍
5.1服务器列表
[功能]列表显示已添加至系统的服务器及其状态。
[操作方法]选择添加服务器->选择服务器分类->列表出此类别服务器信息,包括LAN IP、WAN IP、日志客户端、SSH终端、防火墙、部署代理等等信息。
5.2添加服务器
[功能]添加服务器到系统。
[操作方法]选择添加服务器->选择服务器分类->输入服务器名称、内网IP、外网IP,上下方向键切换输入框,这几项都不允许为空,输入完毕后点[Add]。
5.3安全检测
[功能]扫描服务器内网端口开放情况。
[操作方法]选择安全检测->选择服务器分类->选择服务器->显示扫描进度条并将结果写入数据库。
5.4部署代理
[功能]给服务器部署代理。
[操作方法]选择部署代理->选择服务器分类->选择服务器->选择代理类型->[OK]。
5.5连接状态
[功能]查看已添加的被监控服务器与主监控服务器的连接状态,在做其它操作之前查看此项是一个好习惯。
[操作方法]选择连接状态->显示探测进度条->生成结果。
5.6更换证书
[功能]更新主、被监控服务器的私、公钥,为了保障整个安全,定期更换证书是很有必要的。
[操作方法]选择更换证->显示探测进度条。
5.7管理终端
[功能]开/关远程访问被监控服务器SSH终端。
[操作方法] 选择管理终终->选择服务器分类->选择服务器->(开/关)->[OK]。
5.8操作日志
[功能]查看系统操作日志,方便查看历史操作记录。
[操作方法]选择操作日志->选择日期(TAB切换年/月/日,方向键选择日)->显示操作日志记录。
5.9部署日志
[功能]添加被监控服务器系统日志到日志服务器,实时观察其状态。
[操作方法] 选择部署日志->选择服务器分类->选择服务器(显示未添加的服务器列表) ->[OK]。
6.0部署应用
[功能]给服务器部署应用。
[操作方法]选择部署应用->选择服务器分类->选择服务器->选择应用类型->[OK]。
6.1部署防火墙
[功能]给服务器部署防火墙(Firewall)。
[操作方法]选择部署应用->选择服务器分类->选择服务器->选择防火墙类型->[OK]。
6.2初始化
[功能]初始化服务器,优化系统内核、删除无用用户、停止无用服务等等。
[操作方法]选择初始化->选择服务器分类->选择服务器-> [OK]。
6.3高级应用
[功能]本系统扩展的一个接口。
[操作方法]选择高级应用->进入命令行状态->运行相应接口(参数)。
6.4用户管理
[功能]本系统用户帐号管理。
[操作方法]选择用户管理->开发中…。
6.5退出文字
[功能]退出本系统。
[操作方法]选择退出->操作结束。
六、截图说明
[应用分类]
[服务器清单]
[添加服务器]
[安装应用平台]
[操作日志]
[安装功能代理]
[安全扫描]
七、使用指南
1、通过ssh登录监控管理器。
2、[root@sysadmin ~]#go
3、输入管理员密码:
4、验证通过进入管理窗口。
八、前端应用
1、定制作业
2、配置
将ServerLoglist.pm、ServerScanport.pm、ServerScanweb.pm复制到/opt/apache/perl/modules/Apache目录
#vi httpd.conf
3、服务器日志时时跟踪
http://192.168.100.10/ServerLoglist
4、服务器端口扫描
http://192.168.100.10/ServerScanport
5、服务器WEB状态监控
http://192.168.100.10/ServerScanweb
九、安装
yum -y install dialog
1、tar -zxvf SDR1.0.tar.gz
2、cd SDR1.0
3、vi config 修改成实际参数
4、创建Mysql数据库"sysadmin",并导入SDR1.0/sql/sysadmin.sql
5、修改系统环境
5.1环境变量:vi /etc/profile
引用
export PATH=$PATH:/usr/local/bin:/home/SDR1.0
5.2配置ssh链接
引用
ln -s /usr/bin/ssh /usr/bin/sshto
5.3、修改mysql客户端编码
vi /etc/my.cnf
引用
[client]
default-character-set=utf8
6、安装nmap
yum -y install nmap
7、生成公私钥
引用
#cd /home/SDR1.0
删除原公私钥
#rm -rf authorized_keys identity
#ssh-keygen -t dsa -b 2048 -f identity
#mv identity.pub authorized_keys
#chmod 600 identity authorized_keys
8、因修改了环境变量,退出终端exit再登录操作系统,进入/home/SDR1.0,运行"go",默认密码为“123456”。OVER:)
十、开发变量说明
十一、处理模块代码
下载文件 (已下载 2900 次)
如大家有什么疑问或感兴趣的话题可以通过weibo与我交流:http://t.qq.com/yorkoliu
$db_name=sysadmin
$mysql_bin -h $mysql_host -u$mysql_user -p$mysql_passwd -e "select * from sysadmin.ty_system_passwd;"
$mysql_bin -h $mysql_host -u$mysql_user -p$mysql_passwd $db_name -e "select * from ty_system_passwd;"
2011/06/20 10:26
一些选项打不开 我记录日志 是这个 帮忙看看
Can't make sub-window at (41,36), size (14,58).
刘天斯 回复于 2011/06/20 10:51
将SSH终端窗口拉大再点击。
这个我用 crt putty 全屏 也 报这错误。
Can't make sub-window at (41,36), size (14,58).
原来数据库名也要是sysadmin
刘天斯 回复于 2010/11/05 21:24
是的,请确认连接数据库是否正常。
我的连接数据库是正常的呀,怎么还是不行,报错,说密码错误呢?
[color=Red]
# mysql -usysadmin -p123456 -h 192.168.1.241
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 39
Server version: 5.0.77 Source distribution
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql>[/color]
原来数据库名也要是sysadmin