您的位置:首页 > 运维架构 > Linux

CentOS系统安装步骤(2)

2015-05-13 21:15 162 查看
l 让服务器支持安全 HTTP 协议( HTTPS ) l 病毒查杀系统的构建( Clam AntiVirus ) l 入侵监测系统的构建( chkrootkit ) CentOS[/b]系统安装步骤([/b]2[/b])[/b][/b] [align=center] [/align] 作者:88443 ( http://bbs.88443.net/ ShowPost.asp?ThreadID=2184 ) 发表时间:2006-11-30 23:54:00 l 让服务器支持安全 HTTP 协议( HTTPS ) l 病毒查杀系统的构建( Clam AntiVirus ) l 入侵监测系统的构建( chkrootkit ) 让服务器支持安全 HTTP 协议( HTTPS )
前  言
  在我们通常用“http://”这样的方式来访问网站的时候,传输内容是可能被别人截获的,因为其内容是通过平文传输,所以在传递一些隐私、以及密码相关的信息时,就显得非常的不安全。在一些比较正式的网站、以及一些银行相关的网站中,一些需要提交隐私或者重要级别比较高的密码时,都采用 “https://”的方式,来将传输内容加密,从而保证用户安全和避免隐私的泄漏。

  在这里,我们通过mod_ssl来使我们的服务器也支持HTTPS。
安装 mod_ssl
  首先通过yum来在线安装mod_ssl。
[root@localhost html]# yum -y install mod_ssl  ← 在线安装mod_ssl Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Reducing Dag RPM Repository for Red Hat Enterprise Linux to included packages only
Finished
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for mod_ssl to pack into transaction set.
mod_ssl-2.0.52-28.ent.cen 100% |=========================| 25 kB 00:00
---> Package mod_ssl.i386 1:2.0.52-28.ent.centos4 set to be updated
--> Running transaction check
--> Processing Dependency: libnal.so.1 for package: mod_ssl
--> Processing Dependency: libdistcache.so.1 for package: mod_ssl
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for distcache to pack into transaction set.
distcache-1.4.5-6.i386.rp 100% |=========================| 7.2 kB 00:00
---> Package distcache.i386 0:1.4.5-6 set to be updated
--> Running transaction check Dependencies Resolved =============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
mod_ssl i386 1:2.0.52-28.ent.centos4 base 98 k
Installing for dependencies:
distcache i386 1.4.5-6 base 111 k Transaction Summary
=============================================================================
Install 2 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 209 k
Downloading Packages:
(1/2): distcache-1.4.5-6. 100% |=========================| 111 kB 00:00
(2/2): mod_ssl-2.0.52-28. 100% |=========================| 98 kB 00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: distcache ######################### [1/2]
Installing: mod_ssl ######################### [2/2] Installed: mod_ssl.i386 1:2.0.52-28.ent.centos4
Dependency Installed: distcache.i386 0:1.4.5-6
Complete!
为 HTTP 服务器配置 mod_ssl
[1] 建立服务器密钥
[root@localhost conf]# cd /etc/httpd/conf  ← 进入HTTP服务器配置文件所在目录

[root@localhost conf]# rm -f ssl.*/server.*  ← 删除默认或残留的服务器证书相关文件

[root@localhost conf]# make genkey  ← 建立服务器密钥
umask 77 ;
/usr/bin/openssl genrsa -des3 1024 > /etc/httpd/conf/ssl.key/server.key
Generating RSA private key, 1024 bit long modulus
................++++++
.................................................................................................++++++
e is 65537 (0x10001)
Enter pass phrase:  ← 在这里输入口令
Verifying - Enter pass phrase:  ← 确认口令,再次输入

[root@localhost conf]# openssl rsa -in ssl.key/server.key -out ssl.key/server.key  ← 从密钥中删除密码(以避免系统启动后被询问口令)

Enter pass phrase for ssl.key/server.key:  ← 输入口令
writing RSA key
[2] 建立服务器公钥
[root@localhost conf]# make certreq  ← 建立服务器密钥

umask 77 ;
/usr/bin/openssl req -new -key /etc/httpd/conf/ssl.key/server.key -out /etc/httpd/conf/ssl.csr/server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:CN  ← 输入国名
State or Province Name (full name) [Berkshire]:Heilongjiang  ← 输入省名
Locality Name (eg, city) [Newbury]:Harbin  ← 输入城市名
Organization Name (eg, company) [My Company Ltd]:www.centospub.com  ← 输入组织名(任意)
Organizational Unit Name (eg, section) []:  ← 不输入,直接回车
Common Name (eg, your name or your server's hostname) []:www.centospub.com  ← 输入通称(任意)
Email Address []:yourname@yourserver.com   ← 输入电子邮箱地址 Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:  ← 不输入,直接回车
An optional company name []:   ← 不输入,直接回车
[3] 建立服务器证书
[root@localhost conf]# openssl x509 -in ssl.csr/server.csr -out ssl.crt/server.crt -req -signkey ssl.key/server.key -days 365  ← 建立服务器证书

Signature ok
subject=/C=CN/ST=Heilongjiang/L=Harbin/O=myserver.digeast.com/CN=myserver.digeast.com/emailAddress=yourname@yourserver.com
Getting Private key
[4] 设置SSL
[root@localhost conf]# vi /etc/httpd/conf.d/ssl.conf  ← 修改SSL的设置文件

#DocumentRoot "/var/www/html"  ← 找到这一行,将行首的“#”去掉
 ↓
DocumentRoot "/var/www/html"  ← 变为此状态
[5] 重新启动HTTP服务器,让SSL生效
[root@localhost conf]# /etc/rc.d/init.d/httpd restart  ← 重新启动HTTP服务器

Stopping httpd:               [ OK ]
Starting httpd:              [ OK ]
[6] 设置防火墙允许SSL
[root@localhost conf]# vi /etc/sysconfig/iptables   ← 编辑防火墙配置文件

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT  ← 添加这一行,开放433号端口,允许SSL
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

[root@localhost conf]# /etc/rc.d/init.d/iptables restart   ← 重新启动防火墙,使设置生效

Flushing firewall rules:            [ OK ]
Setting chains to policy ACCEPT: filter    [ OK ]
Unloading iptables modules:         [ OK ]
Applying iptables firewall rules:       [ OK ]
分栏目
  可以通过自用PC来测试SSL。打开浏览器,在地址栏输入“https://服务器IP地址”或者“https://你的域名”后,如果出现提示安装服务器证明书的窗口(图样如下),说明服务器已经支持SSL。

  这时,如果选择“永远接受此证书”,然后点击确定后,再次通过HTTPS协议访问该站点,将不会再弹出此窗口提示安装服务器证书。 病毒查杀系统的构建( Clam AntiVirus )
前  言
  UNIX下的杀毒软件有好多是商业版本的。但和Windows系统下一样,杀毒软件的质量决定于病毒库的量已及更新的速度。在这里,我们使用自由软件 Clam AntiVirus 来建立Linux下的病毒查杀系统。并且为了消除后来的隐患,建议务必在服务器公开以前构建病毒查杀系统。
安装 Clam AntiVirus
  在这里,通过yum来在线安装 Clam Antivirus 。
[root@localhost ~]# rpm --import http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt  ← 导入dag的GPG数字签名

[root@localhost ~]# vi /etc/yum.repos.d/dag.repo   ← 建立dag的yum库文件

[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
includepkgs=clamd clamav* [root@localhost ~]# yum -y install clamd  ← 在线安装 Clam AntiVirus
Setting up Install Process
Setting up repositories
dag 100% |=========================| 1.1 kB 00:00
update 100% |=========================| 951 B 00:00
base 100% |=========================| 1.1 kB 00:00
addons 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
Reading repository metadata in from local files
primary.xml.gz 100% |=========================| 1.6 MB 00:08
dag : ################################################## 4610/4610
Added 4610 new packages, deleted 0 old in 94.91 seconds
primary.xml.gz 100% |=========================| 103 kB 00:05
update : ################################################## 256/256
Added 56 new packages, deleted 0 old in 4.25 seconds
Reducing Dag RPM Repository for Red Hat Enterprise Linux to included packages only
Finished
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for clamd to pack into transaction set.
clamd-0.88.4-1.el4.rf.i38 100% |=========================| 5.3 kB 00:00
---> Package clamd.i386 0:0.88.4-1.el4.rf set to be updated
--> Running transaction check
--> Processing Dependency: clamav = 0.88.4-1.el4.rf for package: clamd
--> Processing Dependency: libclamav.so.1 for package: clamd
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for clamav to pack into transaction set.
clamav-0.88.4-1.el4.rf.i3 100% |=========================| 8.1 kB 00:00
---> Package clamav.i386 0:0.88.4-1.el4.rf set to be updated
--> Running transaction check
--> Processing Dependency: clamav-db = 0.88.4-1.el4.rf for package: clamav
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for clamav-db to pack into transaction set.
clamav-db-0.88.4-1.el4.rf 100% |=========================| 3.2 kB 00:00
---> Package clamav-db.i386 0:0.88.4-1.el4.rf set to be updated
--> Running transaction check Dependencies Resolved =============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
clamd i386 0.88.4-1.el4.rf dag 64 k
Installing for dependencies:
clamav i386 0.88.4-1.el4.rf dag 724 k
clamav-db i386 0.88.4-1.el4.rf dag 5.6 M Transaction Summary
=============================================================================
Install 3 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 6.4 M
Downloading Packages:
(1/3): clamd-0.88.4-1.el4 100% |=========================| 64 kB 00:01
(2/3): clamav-0.88.4-1.el 100% |=========================| 724 kB 00:04
(3/3): clamav-db-0.88.4-1 100% |=========================| 5.6 MB 00:25
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: clamav-db ######################### [1/3]
Installing: clamav ######################### [2/3]
Installing: clamd ######################### [3/3] Installed: clamd.i386 0:0.88.4-1.el4.rf
Dependency Installed: clamav.i386 0:0.88.4-1.el4.rf clamav-db.i386 0:0.88.4-1.el4.rf
Complete!   ← 安装完毕!
配置 Clam AntiVirus
  接下来配置 Clam Antivirus 。
[root@localhost ~]# vi /etc/clamd.conf  ← 修改clamd的配置文件

User clamav  ← 找到这一行,在行首加上“#”(不允许一般用户控制)
 ↓
#User clamav  ← 变为此状态

ArchiveBlockMax ← 找到这一行,在行首加上“#”(不把大容量的压缩文件看作被感染病毒的文件)
 ↓
#ArchiveBlockMax ← 变为此状态
运行 Clam AntiVirus
  让 Clam Antivirus 开始运行,并设置其为自启动。
[root@localhost ~]# /etc/rc.d/init.d/clamd start  ← 启动clamd服务(运行Clam AntiVirus)

Starting Clam AntiVirus Daemon:      [ OK ]  ← 启动成功

[root@localhost ~]# chkconfig clamd on   ← 将其设置为自系统启动后启动

[root@localhost ~]# chkconfig --list clamd
clamd 0:off 1:off 2:on 3:on 4:on 5:on 6:off  ← 确认2--5为on的状态就OK
更新 Clam AntiVirus 的病毒库
  安装后建议立即更新病毒库,以保证最新病毒的查杀。
[root@localhost ~]# freshclam  ← 更新clam的病毒库

ClamAV update process started at Fri Aug 25 18:39:26 2006
Downloading main.cvd [*]
main.cvd updated (version: 40, sigs: 64138, f-level: 8, builder: tkojm)
Downloading daily.cvd [*]
daily.cvd updated (version: 1728, sigs: 2565, f-level: 8, builder: ccordes)
Database updated (66703 signatures) from db.cn.clamav.net (IP: 58.221.253.171)
Clamd successfully notified about the update.
病毒扫描
  然后进行病毒扫描的测试,在这里,我们首先下载测试用的病毒文件。
[root@localhost ~]# clamdscan  ← 进行病毒扫描

/root: OK ----------- SCAN SUMMARY -----------
Infected files: 0  ← 没有发现病毒
Time: 5.074 sec (0 m 5 s)

[root@localhost ~]# wget http://www.eicar.org/download/eicar.com  ← 下载带毒文件

[root@localhost ~]# wget http://www.eicar.org/download/eicar.com.txt  ← 下载带毒文件

[root@localhost ~]# wget http://www.eicar.org/download/eicar_com.zip  ← 下载带毒文件

[root@localhost ~]# wget http://www.eicar.org/download/eicarcom2.zip  ← 下载带毒文件
  然后,再次进行病毒到描。附加“remove”选项后,会在查出病毒后自动删除染毒文件。
[root@localhost ~]# clamdscan --remove  ← 再次进行病毒扫描,并附加删除选项

/root/eicarcom2.zip: Eicar-Test-Signature FOUND  ← 发现被病毒感染的文件
/root/eicarcom2.zip: Removed.  ← 删除被病毒感染的文件
/root/eicar.com: Eicar-Test-Signature FOUND  ← 发现被病毒感染的文件
/root/eicar.com: Removed.  ← 删除被病毒感染的文件
/root/eicar.com.txt: Eicar-Test-Signature FOUND  ← 发现被病毒感染的文件
/root/eicar.com.txt: Removed.  ← 删除被病毒感染的文件
/root/eicar_com.zip: Eicar-Test-Signature FOUND  ← 发现被病毒感染的文件
/root/eicar_com.zip: Removed.  ← 删除被病毒感染的文件 ----------- SCAN SUMMARY -----------
Infected files: 4
Time: 2.201 sec (0 m 2 s)
让病毒扫描定期运行
[root@localhost ~]# vi clamscan  ← 建立自动扫描脚本,如下: #!/bin/bash PATH=/usr/bin:/bin
CLAMSCANTMP=`mktemp`
clamdscan --recursive --remove / > $CLAMSCANTMP
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] &&
grep FOUND $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root
rm -f $CLAMSCANTMP

[root@localhost ~]# chmod +x clamscan  ← 赋予脚本可被执行的权限

[root@localhost ~]# mv ./clamscan /etc/cron.daily/  ← 移动脚本到每天自动运行的目录中
入侵监测系统的构建( chkrootkit )
前  言
  所谓rootkit,是一类入侵者经常使用的工具。这类工具通常非常的隐秘、令用户不易察觉,通过这类工具,入侵者建立了一条能够总能够入侵系统,或者说对系统进行实时控制的途径。所以,我们用自由软件chkrootkit来建立入侵监测系统,来保证对系统是否被安装了rootkit进行监测。

  chkrootkit在监测rootkit是否被安装的过程中,需要使用到一些操作系统本身的命令。但不排除一种情况,那就是入侵者有针对性的已经将 chkrootkit使用的系统命令也做修改,使得chkrootkit无法监测rootkit,从而达到即使系统安装了chkrootkit也无法检测 出rootkit的存在,从而依然对系统有着控制的途径,而达到入侵的目的。那样的话,用chkrootkit构建入侵监测系统将失去任何意义。对此,我们在操作系统刚被安装之后,或者说服务器开放之前,让chkrootkit就开始工作。而且,在服务器开放之前,备份chkrootkit使用的系统命 令,在一些必要的时候(怀疑系统命令已被修改的情况等等),让chkrootkit使用初始备份的系统命令进行工作。
安装 chkrootkit
  首先来下载和安装 chkrootkit 工具。
[root@localhost ~]# wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz ← 下载chkrootkit

--03:05:31-- ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz => `chkrootkit.tar.gz'
Resolving ftp.pangeia.com.br... 200.239.53.35
Connecting to ftp.pangeia.com.br|200.239.53.35|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD /pub/seg/pac ... done.
==> PASV ... done. ==> RETR chkrootkit.tar.gz ... done.
Length: 37,140 (36K) (unauthoritative) 100%[====================================>] 37,140 5.67K/s ETA 00:00 03:05:46 (5.30 KB/s) - `chkrootkit.tar.gz' saved [37140]

[root@localhost ~]# tar zxvf chkrootkit.tar.gz  ← 展开被压缩的源代码

[root@localhost ~]# cd chkrootkit*  ← 进入chkrootkit源代码的目录

[root@localhost chkrootkit-0.46a]# make sense  ← 编译

[root@localhost chkrootkit-0.46a]# cd ..  ← 返回上层目录

[root@localhost ~]# cp -r chkrootkit-* /usr/local/chkrootkit  ← 复制编译后文件所在的目录到指定位置

[root@localhost ~]# rm -rf chkrootkit*  ← 删除遗留的源代码目录及相关文件
测试 chkrootkit
  然后测试 chkrootkit 是否能够正常运行。
[root@localhost ~]# cd /usr/local/chkrootkit  ← 进入chkrootkit的目录

[root@localhost chkrootkit]# ./chkrootkit | grep INFECTED  ← 测试运行chkrootkit
稍等片刻…如果没有显示“INFECTED”字样,而直接出现命令行提示符,说明一切OK!

[root@localhost chkrootkit]# cd   ← 回到root用户目录
让 chkrootkit 的监测自动化
  用Shell Script编写一段脚本,通过这个脚本让chkrootkit的监测自动化。如有rootkit被发现的时候,发送邮件通知root用户,并且将运行结果保存在/var/log/messages文件中。
[root@localhost ~]# vi chkrootkit  ← 建立chkrootkit自动运行脚本

#!/bin/bash PATH=/usr/bin:/bin TMPLOG=`mktemp` # Run the chkrootkit
/usr/local/chkrootkit/chkrootkit > $TMPLOG # Output the log
cat $TMPLOG | logger -t chkrootkit # bindshe of SMTPSllHow to do some wrongs
if [ ! -z "$(grep 465 $TMPLOG)" ] &&
[ -z $(/usr/sbin/lsof -i:465|grep bindshell) ]; then
sed -i '/465/d' $TMPLOG
fi # If the rootkit have been found,mail root
[ ! -z "$(grep INFECTED $TMPLOG)" ] &&
grep INFECTED $TMPLOG | mail -s "chkrootkit report in `hostname`" root rm -f $TMPLOG

[root@localhost ~]# chmod 700 chkrootkit  ← 赋予脚本可被执行的权限

[root@localhost ~]# mv chkrootkit /etc/cron.daily/  ← 将脚本移动到每天自动运行的目录中
chkrootkit 相关的系统命令的备份
  如前言所述,当chkrootkit使用的系统命令被入侵者更改后,chkrootkit对 rootkit的监测将失效。所以,我们事前将chkrootkit使用的系统命令进行备份,在需要的时候使用备份的原始命令,让chkrootkit对 rootkit进行检测。
[root@localhost ~]# mkdir /root/commands/  ← 建立暂时容纳命令备份的目录

[root@localhost ~]# cp `which --skip-alias awk cut echo egrep find head id ls netstat ps strings sed uname` /root/commands/  ← (连续输入无换行)备份系统命令到建立好的目录

[root@localhost ~]# /usr/local/chkrootkit/chkrootkit -p /root/commands|grep INFECTED  ← 用备份的命令运行chkrootkit

[root@localhost ~]# tar cvf /root/commands.tar /root/commands/ ← 将命令打包

[root@localhost ~]# gzip /root/commands.tar  ← 将打包的文件压缩
然后将压缩后的commands.tar.gz用SCP软件下载到安全的地方

[root@localhost ~]# rm -rf commands*   ← 为安全起见,删除服务器端备份的系统命令及相关文件
  如果以后想通过备份的原始系统命令来运行chkrootkit的时候,只需用SCP软件将备份的命令打包压缩文件上传至服务器端已知位置并解压缩,然后运行在chkrootkit的时候指定相应的目录即可。例如,假设已经将备份上传至root用户目录的情况如下:
[root@localhost ~]# tar zxvf /root/commands.tar.gz  ← 解开压缩的命令备份

[root@localhost ~]# /usr/local/chkrootkit/chkrootkit -p /root/commands|grep INFECTED ← 用备份的命令运行chkrootkit
  然后在运行后删除相应遗留文件即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: