存档

‘Open Source’ 分类的存档

cacti+spine+其他常用plugins的整合安装

2011年8月20日 没有评论
adduser cacti
cd /tmp
wget http://www.cacti.net/downloads/cacti-0.8.7g.tar.gz
wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7g.tar.gz
wget http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7g-PA-v2.8.tar.gz
wget http://www.cacti.net/downloads/spine/patches/0.8.7g/unified_issues.patch
cd /opt
tar xzvf /tmp/cacti-0.8.7g.tar.gz
ln -s cacti-0.8.7g cacti
cd cacti
chown -R cacti rra/ log/
mysql

进入mysql交互式模式

CREATE DATABASE cacti;
GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cactipasswd';
FLUSH privileges;
exit;
mysql cacti<cacti.sql
echo "*/5 * * * * cacti php /opt/cacti/poller.php > /dev/null 2>&1" >> /etc/crontab
echo "Alias \"/cacti\" \"/opt/cacti\"" > /etc/httpd/conf.d/cacti.conf
vim include/config.php

修改文件include/config.php的下面几行如下所示:

$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactipasswd";
service httpd restart

好啦,cacti设置完了,打开浏览器,输入http://xx.xx.xx.xx/cacti(“xx.xx.xx.xx”是服务器ip)
再一步步走安装,仅需2步吧,就完成安装了,再用admin/admin登录进去,修改密码,就可以用了。
下面再装spine:

分类: Open Source 标签:

用ldapsearch来dump出openldap库里的记录

2011年6月11日 没有评论

  需求来源于我用phpldapadmin来管理openldap库,经常需要添加新的记录(比如有人入职),以前添加记录的脚本(模板)忘了,只能看着以前的记录来添加,其中有个属性叫uidNumber,根据我的理解,这个是uid的id号,这个跟uid一样也是不能重的,所以需要知道已有的最大的uidNumber!于是就像用脚本把所有记录导出来再分析。
  导出记录的命令如下:

ldapsearch -h 192.168.0.1 -p 389 -x -D "cn=root,dc=xxx,dc=com" -w 1111 -b "dc=xxx,dc=cn"

  其中,”192.168.0.1″是openldap server的ip,由于未启用tls加密,所以还要加参数”-x”,”cn=root,dc=xxx,dc=com”是rootdn;1111是密码

Linux主机安全

2011年5月12日 没有评论

Linux主机安全

如果服务器都在防火墙的保护下,主机这个层面的安全可以做的不那么苛刻。但是本着一切靠自己的原则,在主机这个层面把安全方面的工作先做充分了,反正这也是有百利而无一害的。

基本原则

  1. 及时更新服务软件包,以防止最新威胁
  2. 尽可能使用安全的协议
  3. 严格监控所有的服务器以便及时发现问题
  4. 关注最新安全信息

帐号安全

  • 每个需要登录的用户一个独立的普通帐号;每个服务使用单独的帐号(没有设置密码、没有合法的shell,不能登录)
  • 如果实在需要ftp服务,ftp的用户使用虚拟帐号
  • 禁止除了root、系统维护人员帐号之外其他所有系统帐号使用shell的权限
  • 锁定临时不用的帐号
  • 系统管理员离职要及时修改超级密码
  • 普通用户离职要及时删除其帐号

口令安全

因为我们都是public_key认证,所以这块儿基本上就是超级用户的口令安全。

  1. 定时重新生成超级用户口令(用密码生成器生成,综合数字、大小写字母以及特殊字符的组合,10字符以上)
  2. 定时重新生成普通用户密钥对

系统参数、属性安全设置

1,TMOUT:设置这个环境变量以防用户忘记退出登录,例如:

export TMOUT=3600

当需要保持session的时候,请用命令screen新建一个screen来实现。

2,更改shell的历史的格式
修改文件/etc/profile,设置HISTTIMEFORMAT为’<%F %T>’

远程登录安全

禁止root直接登录

修改文件/etc/ssh/sshd_config,设置:PermitRootLogin: no

sshd绑定私网网卡

修改文件/etc/ssh/sshd_config,设置:ListenAddress为私网网卡地址

public_key认证用户

不用任何修改,缺省就是支持的。

启动服务安全

在缺省启动里去除不需要的服务

Linux(不管是哪个发行版)启动都会缺省起好些服务,其中有很大一部分都不是 必须要起的,这样既浪费资源,又影响安全(尤其是开tcp端口的服务),于是不管怎样,都要把不需要的服务从缺省启动里干掉。方法主要是:使用 ntsysv命令,把不是必须要起的服务都取消勾选,然后再重启机器(如果允许的话,否则用命令service xxx stop一个一个的停服务)

启动服务最小化

  • 尽量禁止ftp服务,取而代之的是sftp或winscp,或者rz和sz这样利用xmodem的程序
  • mysql如果仅本机用,推荐skip-networking,用unix socks来连(这样性能还更好),否则,也只能听在私网网卡上,绝对不要开在公网上
  • 使用开源的代码的web服务,尽量不要在公网上提供服务(比如phpmyadmin,比如本站用的dokiwiki)
  • 只有对最终用户服务的应用,才能开服务端口于公网上。最理想的情况是在公网网卡上最多只开一个tcp80端口(管理口、数据口都是开在私网上的)

web应用安全

mod_security

基于国外基本上所有的虚拟主机提供商都会启用一种第三方的apache模块儿:mod_security,而且国内业界对其也很推崇,有人说,国内大 多的web防火墙都是基于这个(mod_security)改的。既然评价这么高,我曾想过在公司的web server上推这个东东的,但是结果是:缺省的策略非常不好用,很多开源的应用基本上都跑不了,所以……,还需要好好研究下mod_security, 定制一套适合我们的策略之后,才能在我们的web server上推广使用。

php的安全模式

相对mod_security的缺省设置的不好用,php的安全模式应该还是温和很多的,在忠波同学的强力推荐下,我觉得这个东西还是值得一推的。关 键是要在开发阶段就在开发服务器上把这个(php的安全模式)打开,最后才能在上线的时候在线上服务器上打开(php的安全模式)

日志安全

本地保留日志,同时日志还同步汇总到日志服务器。

kernel及tcp/ip安全

net.ipv4.ip_forward = 0    /* 可忽略,因为缺省就是0 */
net.ipv4.tcp_syncookies = 1    /* 防syn flood攻击 */
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.rp_filter = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.vs.timeout_timewait = 60

这部分内容可以直接写入/etc/sysctl.conf文件中。

系统自我检测

  • 每台机器安装tripwire来保持系统完整性
  • 每台机器定时使用tiger之类的本地检测工具自检

iptable策略

  • 接受从lo界面上进来的数据包
  • 接受从私网网卡(一般是eth1)上进来且源地址是私网地址的数据包(这里可以配置的更严厉一些)
  • 接受从公网网卡(一般是eth0)上进来且源地址不是私网地址且目标端口是22、80等端口的数据包
  • 接受状态是关联的或已建立连接的数据包
  • 其他包都drop掉

网络安全

刨除系统层面的安全,网络安全也是非常重要的。

内外网分离

只有内外网彻底分离了,才能保证内网上流动的敏感信息的安全。

入侵监测系统(ids)的搭建

机房网络上会部署入侵检测系统(ids),用来检测网络安全问题。

分类: Open Source 标签: ,

用preseed做了一个debian的usb安装盘

2010年12月11日 没有评论

  第一步,usb盘分区
  在Linux下用fdisk将usb盘一个Fat16的分区(假设是/dev/sdb1)并将其设为可启动
  第二步,格式化分区

mkdosfs /dev/sdb1

如果没有mkdosfs命令的话请先apt-get install dosfstools安装
  第三步,安装syslinux到usb硬盘

syslnux /dev/sdb1

如果没有syslinux命令的话,请先 apt-get install mtools 安装
  第四步,下载所需要的vmlinux、initrd.gz和相应的iso文件到usb盘

mount /dev/sdb1 /mnt;cd /mnt;wget ftp://ftp.debian.org/debian/dists/lenny/main/installer-amd64/current/images/hd-media/vmlinuz;wget ftp://ftp.debian.org/debian/dists/lenny/main/installer-amd64/current/images/hd-media/initrd.gz;wget http://cdimage.debian.org/debian-cd/5.0.7/amd64/iso-cd/debian-507-amd64-CD-1.iso

  第五步,创建需要的syslinux配置文件syslinux.cfg
cd /mnt;vim syslinux.cfg
使得其中有如下几句:

default vmlinuz
append initrd=initrd.gz preseed/file=/hd-media/preseed.cfg

即可
  第六步,安装mbr到usb盘

umount /mnt;install-mbr /dev/sdb

如果没有命令install-mbr的话请先apt-get install mbr
我的preseed.cfg的例子

hiphop for php from facebook

2010年2月11日 没有评论

hiphop for php是facebook开发的一款的php转换软件
他能将php代码转换成高度优化的c++代码
然后再用g++编译成二进制文件
用这样得到的二进制文件跑在服务器上取代php代码以提高性能
据说能将系统的cpu占有率降低50%

BTW:
据说hiphop for php将在2010年早期由facebook放出
我们拭目以待

个性化定制cacti中thold插件的报警邮件的收件人

2009年12月9日 1 条评论

cacti+thold维护的机器很多
而且每台机器至少都用thold监控硬盘使用率、负载大小2种情况
其报警邮件的收件人虽然可以设
(可以在Threshold Templates里按模板设置
也可以进每一个Threshold来进行设置)
但相当的麻烦
(单独设置某一个Threshold的收件人,需要先取消从模板继承)
thold插件提供的命令行工具也没有维护这个的功能
没办法
我只有直接进mysql库里去看
还别说
真让我发现了点什么……
阅读全文…

cacti command line interface?

2009年8月1日 没有评论

呵呵
在这之前一直在找一种东西
类似于cacti api之类的
因为管理的机器多了
手工维护服务器在cacti里的纪录就非常不方便了

我有个初始化脚本
每来一台机器
我都上去跑一下
同样
每新加一台服务器
缺省也需要将其添加到cacti系统里
(其实也需要添加到nagios里
只不过nagios的配置文件都是程序生查库成的
而server list的信息
库里都有)
因此我需要一种简单实用的方法能在初始化脚本里将机器添加到cacti里
最早我想的是直接插库
直到我发现了这个东东
在cacti的主目录下的目录cli(我的理解是command line interface)
不多的php程序通过命令行方式执行
可以完成简单的cacti种信息的维护工作
比如添加删除devices、graphics等等
……(这里省去具体用法1000余字)
感觉这真是个好东东
只是在客户端上跑的初始化脚本怎样调用cacti服务器上的命令行php程序
还值得好好斟酌斟酌

分类: Open Source 标签: , ,

ext3grep can recover deleted files on an ext3 file system?!

2009年7月6日 没有评论

ext2的文件系统一般会用debugfs来做类似的事情
ext3下呢?
具体介绍在这里:

http://www.xs4all.nl/~carlo17/howto/undelete_ext3.html

fedora core 8下可以直接

yum install ext3grep

安装
具体用法我也还得再学习学习……

apache的LogLevel可以在虚机(virtual host)的设置里用

2009年6月15日 没有评论

今天用到LogLevel于VirtualHost中了
查了文档确认了一下
特此记录

用Net::SSH::Perl连服务器巨慢……

2009年2月4日 1 条评论

工作上需要个脚本连服务器
本想用python
但是貌似python的那个ssh模块儿只支持ssh2
而我们有好多还是跑的ssh1
故而使用了perl
perl的模块儿Net::SSH::Perl倒是ssh1、ssh2大小通吃
但是也有个问题
连ssh2的时候
速度巨慢
google了一下
网上有人说是因为少装了个模块儿:Math::BigInt::GMP
导致和sshd服务器端交换key的时候计算非常慢
同时,还提到2个perl模块儿:YAMLMath::BigInt
说也需要
于是我就装上了
再一跑程序
果然是快了不少