日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux安全学习总结

發(fā)布時(shí)間:2025/4/14 linux 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux安全学习总结 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

linux系統(tǒng)安全詳解

一,BIOS安全(硬件上的安全)

1,最基本最簡單的安全配置,保障計(jì)算機(jī)硬件配置等不被別人更改.給BIOS設(shè)置密


碼,防止改變啟動(dòng)順序從軟盤或


光盤啟動(dòng).防止特殊的啟動(dòng)盤啟動(dòng)用戶的系統(tǒng),進(jìn)入rescue或其他模式.改變或刪


除當(dāng)前配置等.每一個(gè)細(xì)心的網(wǎng)


管每個(gè)細(xì)節(jié)都不應(yīng)該忽視!
2,禁止使用contral+alt+delete重起機(jī)器
編輯/etc/inittab文件,注釋掉下面一行.
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
該成:(使用#)
# ca::ctrlaltdel:/sbin/shutdown -t3 -r now
?

二,帳號安全

口令,系統(tǒng)的第一道防線,目前大多數(shù)數(shù)攻擊都是截獲口令或猜測口令等口令攻擊


開始的.
/etc 目錄下主要存放系統(tǒng)的配置文件.我們要對這個(gè)目錄下的好多文件進(jìn)行修改


.
1,/etc/login.defs文件是login程序的配置文件.口令的長度和口令的有效期等


可以在這里設(shè)置.
[root@tp ~]# vi /etc/login.defs
...
PASS_MAX_DAYS ? 9999 ?密碼被用最多天數(shù)
PASS_MIN_DAYS ? 0 ? ? 密碼被用最少天數(shù)
PASS_MIN_LEN ? ?5 ? ? 系統(tǒng)默認(rèn)密碼長度5,我們可以該成8或更多.
PASS_WARN_AGE ? 7 ? ? 密碼有效期警告,超過7天將提示用戶更換新的密碼.
...
?
2,/etc/profile文件是環(huán)境變量設(shè)置文件.在此文件設(shè)置環(huán)境變量將對所有用戶


生效.我們要在此文件設(shè)置自動(dòng)


注銷帳戶的時(shí)間.及命令的歷史記錄數(shù).
[root@tp ~]# vi /etc/profile
...
HOSTNAME=`/bin/hostname`
HISTSIZE=1000 這里1000代表用戶操作命令的歷史記錄.應(yīng)盡量小一些.設(shè)置成0


也可以,呵呵.
tmout=600 添加此行,如果系統(tǒng)用戶在600秒(10分鐘)內(nèi)不做任何操作,將自動(dòng)注


銷這個(gè)用戶.
...
3,/etc/passwd文件存放系統(tǒng)用戶名,用戶標(biāo)識(UID),組標(biāo)識(GID)等的地方.我們


要在這里找到并清除沒有設(shè)置


口令的用戶.同時(shí)還要清除一些特別帳號(因?yàn)榭赡軙?huì)存在潛在的危險(xiǎn)).
[root@tp ~]# vi /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
...
wh::500:501::/home/wh:/bin/bash
仔細(xì)觀察上面的一行(wh用戶),在第二項(xiàng),兩個(gè)冒號中間什么都沒有,而上面的的


用戶(如root用戶)都是x. 這表


明此用戶沒有密碼.要不添加上,要不刪掉.
4,特別帳號的處理
如果不啟動(dòng)用sendmail,刪除如下用戶
[root@tp wh]# userdel adm
[root@tp wh]# userdel lp
[root@tp wh]# userdel sync
[root@tp wh]# userdel shudown
[root@tp wh]# userdel halt
[root@tp wh]# userdel mail
如果不用X windows服務(wù)器.可有刪除
[root@tp wh]# userdel news
[root@tp wh]# userdel uucp
[root@tp wh]# userdel operator
[root@tp wh]# userdel games
如果不允許匿名FTP帳號登陸,可刪除
[root@tp wh]# userdel gopher
[root@tp wh]# userdel ftp
?

三,重要文件的安全設(shè)置.

首先要了解兩個(gè)命令
1,chmod:改變文件的屬主
2,chattr:改變文件屬性
我們要做的是把重要文件的屬主改成root并給相應(yīng)的權(quán)限,還有就是改變文件的


屬性讓它禁止被修改
我們來統(tǒng)計(jì)一下重要文件:(其實(shí),只要你不想讓其他用戶更改的文件都可以這么


做,我這里只是為安全而選擇了


下面的文件.)
1,/etc/passwd,passwd-,passwd.OLD,group,group- 用戶,組的ID等信息文件.
2,/etc/shadow,shadow-,gshadow,gshadow- 用戶,組密碼加密文件.
3,/etc/xinetd.conf 網(wǎng)絡(luò)守護(hù)進(jìn)程主配置文件
4,/etc/inittab ?系統(tǒng)在啟動(dòng)是會(huì)讀取這個(gè)文件里的內(nèi)容.
5,/etc/services 防止未經(jīng)許可的刪除或添加服務(wù)
6,/etc/rc.d/rc.sysinit 系統(tǒng)啟動(dòng)是需要讀取的文件,
7,/etc/rc.d/init.d/* ?
以一個(gè)文件為例,其它都一樣
[root@tp etc]# chmod 700 passwd
[root@tp etc]# chattr +i passwd
當(dāng)chattr +i時(shí)就是禁止對文件進(jìn)行修改,當(dāng)我們要添加用戶時(shí),就會(huì)有麻煩,因?yàn)?


passwd文件禁止修改寫入.所以


我們還要該掉它的屬性.chattr -i.
?

四,防止攻擊系統(tǒng)安全設(shè)置

1,限制用戶使用系統(tǒng)資源,主要包括資源最大進(jìn)程數(shù),內(nèi)存使用量等.這樣可以防


止DOS類型攻擊.
需要編輯文件
[root@tp /]# vi /etc/security/limits.conf
...
(這三行是添加的) www.2cto.com
* hard core 0 ? ?禁止創(chuàng)建core文件
* hard rss 5000 ?其他用戶(除root)最多使用5M內(nèi)存
* hard nproc 20 ?最多進(jìn)程數(shù)限制在20
注:*表示所有登陸到linux的用戶.
# End of file
[root@tp /]# vi /etc/pam.d/login
...
在文件末尾加入下面一行
session required /lib/security/pam_limits.so
2,限制控制臺的訪問
[root@tp /]# vi /etc/securetty
...
我們注釋掉
tty1
# tty2
# tty3
# tty4
# tty5
# tty6
只留下tty1,這時(shí),root僅可在tty1終端登錄
3,禁止外來ping請求.
[root@tp /]# vi /etc/rc.d/rc.local
...
在最后加入一行
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
4,防止IP地址欺騙
[root@tp /]# vi /etc/host.conf
加入如下幾行
order bind,hosts
multi off
nospoof on
5,禁止su命令進(jìn)入root(這一部我反復(fù)測試總是不成功,group組里的用戶依然不


能su成root用戶.希望知道的朋


友告訴我,謝謝)
[root@tp pam.d]# vi /etc/pam.d/su
...
在下面加入如下兩行
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=xxx
這表示只有xxx組的用戶可以su成root.
6,使用TCP_WRAPPER
在默認(rèn)情況下linux系統(tǒng)允許所有請求,可用TCP_WRAPPER增強(qiáng)安全性,
在/etc/hosts.deny寫入"ALL:ALL"禁止所有請求
[root@tp etc]# vi /etc/hosts.deny
#
# hosts.deny ? ?This file describes the names of the hosts which are
# ? ? ? ? ? ? ? *not* allowed to use the local INET services, as?


decided
# ? ? ? ? ? ? ? by the '/usr/sbin/tcpd' server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow. ?In?


particular
# you should know that NFS uses portmap!
? ?"ALL:ALL"
把允許訪問的客戶,或服務(wù)添加到/etc/hosts.allow,冒號左邊為服務(wù),冒號右邊


為授權(quán)的機(jī)器
[root@tp etc]# vi /etc/hosts.allow
#
# hosts.allow ? This file describes the names of the hosts which are
# ? ? ? ? ? ? ? allowed to use the local INET services, as decided
# ? ? ? ? ? ? ? by the '/usr/sbin/tcpd' server.
#
vsftp:211.101.46.253 ? ?注:僅如許IP地址為211.101.46.253的機(jī)器訪問FIP服


務(wù)器
7.刪減登錄信息
? [root@tp ~]# rm -f /etc/issue
? [root@tp ~]# rm -f /etc/issue.net
 [root@tp ~]# touch /etc/issue
? [root@tp ~]# touch /etc/issue.net
?

五,確保開啟服務(wù)的安全性

我們先來看一下自己系統(tǒng)開啟了多少服務(wù).
[root@tp ~]# ps -eaf | wc -l
55
我的是55
我們可以通過當(dāng)前的進(jìn)程里在來看一下都是什么服務(wù)
[root@tp ~]# ps -aux
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-


3.2.3/FAQ
USER ? ? ? PID %CPU %MEM ? VSZ ?RSS TTY ? ? ?STAT START ? TIME COMMAND
root ? ? ? ? 1 ?0.0 ?0.2 ?2592 ?560 ? ? ? ? ?S ? ?21:02 ? 0:00 init?


[3] ? ? ? ? ? ? ? ? ? ? ? ? ??


? ? ? ? ? ? ? ? ??
root ? ? ? ? 2 ?0.0 ?0.0 ? ? 0 ? ?0 ? ? ? ? ?SN ? 21:02 ? 0:00?


[ksoftirqd/0]
root ? ? ? ? 3 ?0.0 ?0.0 ? ? 0 ? ?0 ? ? ? ? ?S< ? 21:02 ? 0:00?


[events/0]
root ? ? ? ? 4 ?0.0 ?0.0 ? ? 0 ? ?0 ? ? ? ? ?S< ? 21:02 ? 0:00?


[khelper]
root ? ? ? ? 5 ?0.0 ?0.0 ? ? 0 ? ?0 ? ? ? ? ?S< ? 21:02 ? 0:00?


[kacpid]
root ? ? ? ?20 ?0.0 ?0.0 ? ? 0 ? ?0 ? ? ? ? ?S< ? 21:02 ? 0:00?


[kblockd/0]
root ? ? ? ?30 ?0.0 ?0.0 ? ? 0 ? ?0 ? ? ? ? ?S ? ?21:02 ? 0:00?


[pdflush]
root ? ? ? ?31 ?0.0 ?0.0 ? ? 0 ? ?0 ? ? ? ? ?S ? ?21:02 ? 0:00?


[pdflush]
root ? ? ? ?33 ?0.0 ?0.0 ? ? 0 ? ?0 ? ? ? ? ?S< ? 21:02 ? 0:00 [aio/0]
root ? ? ? ?21 ?0.0 ?0.0 ? ? 0 ? ?0 ? ? ? ? ?S ? ?21:02 ? 0:00 [khubd]
root ? ? ? ?32 ?0.0 ?0.0 ? ? 0 ? ?0 ? ? ? ? ?S ? ?21:02 ? 0:00?


[kswapd0]
root ? ? ? 107 ?0.0 ?0.0 ? ? 0 ? ?0 ? ? ? ? ?S ? ?21:02 ? 0:00?


[kseriod]
root ? ? ? 181 ?0.0 ?0.0 ? ? 0 ? ?0 ? ? ? ? ?S< ? 21:03 ? 0:00?


[kmirrord]
root ? ? ? 182 ?0.0 ?0.0 ? ? 0 ? ?0 ? ? ? ? ?S< ? 21:03 ? 0:00?


[kmir_mon]
root ? ? ? 190 ?0.0 ?0.0 ? ? 0 ? ?0 ? ? ? ? ?S ? ?21:03 ? 0:00?


[kjournald]
root ? ? ?1085 ?0.0 ?0.1 ?2604 ?444 ? ? ? ? ?S<s ?21:03 ? 0:00 udevd
root ? ? ?1611 ?0.0 ?0.0 ? ? 0 ? ?0 ? ? ? ? ?S< ? 21:03 ? 0:00?


[kauditd]
root ? ? ?1745 ?0.0 ?0.0 ? ? 0 ? ?0 ? ? ? ? ?S< ? 21:03 ? 0:00?


[kmpathd/0]
root ? ? ?1769 ?0.0 ?0.0 ? ? 0 ? ?0 ? ? ? ? ?S ? ?21:03 ? 0:00?


[kjournald]
root ? ? ?2250 ?0.0 ?0.2 ?2668 ?632 ? ? ? ? ?Ss ? 21:03 ? 0:00 syslogd?


-m 0
root ? ? ?2254 ?0.0 ?0.1 ?3352 ?472 ? ? ? ? ?Ss ? 21:03 ? 0:00 klogd?


-x
rpc ? ? ? 2274 ?0.0 ?0.2 ?2220 ?572 ? ? ? ? ?Ss ? 21:03 ? 0:00 portmap
rpcuser ? 2294 ?0.0 ?0.2 ?2108 ?756 ? ? ? ? ?Ss ? 21:03 ? 0:00?


rpc.statd
root ? ? ?2322 ?0.0 ?0.3 ?5344 ?992 ? ? ? ? ?Ss ? 21:03 ? 0:00?


rpc.idmapd
root ? ? ?2399 ?0.0 ?0.3 ?2612 ?816 ? ? ? ? ?S ? ?21:03 ? 0:00?


/usr/sbin/smartd
root ? ? ?2409 ?0.0 ?0.2 ?3176 ?540 ? ? ? ? ?Ss ? 21:03 ? 0:00?


/usr/sbin/acpid
root ? ? ?2440 ?0.0 ?1.4 11192 3680 ? ? ? ? ?Ss ? 21:03 ? 0:00 cupsd
root ? ? ?2497 ?0.0 ?0.6 ?5044 1712 ? ? ? ? ?Ss ? 21:03 ? 0:00?


/usr/sbin/sshd
root ? ? ?2526 ?0.0 ?0.3 ?2760 ?876 ? ? ? ? ?Ss ? 21:03 ? 0:00 xinetd?


-stayalive -pidfile


/var/run/xinetd.pid
root ? ? ?2536 ?0.0 ?0.2 ?1788 ?528 ? ? ? ? ?Ss ? 21:03 ? 0:00 gpm -m?


/dev/input/mice -t imps2
htt ? ? ? 2565 ?0.0 ?0.1 ?1960 ?316 ? ? ? ? ?Ss ? 21:03 ? 0:00?


/usr/sbin/htt -retryonerror 0
htt ? ? ? 2566 ?0.0 ?1.1 ?8256 3024 ? ? ? ? ?S ? ?21:03 ? 0:00?


htt_server -nodaemon
canna ? ? 2578 ?0.0 ?6.8 19932 17628 ? ? ? ? Ss ? 21:03 ? 0:00?


/usr/sbin/cannaserver -syslog -u


canna
root ? ? ?2590 ?0.0 ?0.4 ?7428 1204 ? ? ? ? ?Ss ? 21:03 ? 0:00 crond
xfs ? ? ? 2628 ?0.0 ?1.3 ?5692 3332 ? ? ? ? ?Ss ? 21:03 ? 0:00 xfs -


droppriv -daemon
root ? ? ?2638 ?0.0 ?0.2 ?2092 ?640 ? ? ? ? ?SNs ?21:03 ? 0:00 anacron?


-s
root ? ? ?2647 ?0.0 ?0.2 ?3712 ?740 ? ? ? ? ?Ss ? 21:03 ? 0:00?


/usr/sbin/atd
dbus ? ? ?2657 ?0.0 ?0.5 13296 1324 ? ? ? ? ?Ssl ?21:03 ? 0:00 dbus-


daemon-1 --system
root ? ? ?2668 ?0.0 ?0.4 ?3156 1040 ? ? ? ? ?Ss ? 21:03 ? 0:00 cups-


config-daemon
root ? ? ?2679 ?0.0 ?1.7 ?6540 4424 ? ? ? ? ?Ss ? 21:03 ? 0:00 hald
root ? ? ?2688 ?0.0 ?0.5 ?2916 1288 ? ? ? ? ?Ss ? 21:03 ? 0:00 login?


-- root ? ?
root ? ? ?2689 ?0.0 ?0.1 ?1528 ?404 tty2 ? ? Ss+ ?21:03 ? 0:00?


/sbin/mingetty tty2
root ? ? ?2690 ?0.0 ?0.1 ?2048 ?404 tty3 ? ? Ss+ ?21:03 ? 0:00?


/sbin/mingetty tty3
root ? ? ?2691 ?0.0 ?0.1 ?3488 ?404 tty4 ? ? Ss+ ?21:03 ? 0:00?


/sbin/mingetty tty4
root ? ? ?2692 ?0.0 ?0.1 ?2368 ?404 tty5 ? ? Ss+ ?21:03 ? 0:00?


/sbin/mingetty tty5
root ? ? ?2693 ?0.0 ?0.1 ?3296 ?404 tty6 ? ? Ss+ ?21:03 ? 0:00?


/sbin/mingetty tty6
root ? ? ?3136 ?0.0 ?0.5 ?5920 1396 tty1 ? ? Ss+ ?21:05 ? 0:00 -bash
root ? ? ?3574 ?0.0 ?0.8 ?8400 2276 ? ? ? ? ?Ss ? 21:05 ? 0:00 sshd:?


root@pts/0
root ? ? ?3576 ?0.0 ?0.5 ?6896 1388 pts/0 ? ?Ss ? 21:05 ? 0:00 -bash
root ? ? ?3608 ?0.0 ?0.4 ?6584 1216 pts/0 ? ?S+ ? 21:05 ? 0:00 ntsysv
root ? ? ?4019 ?0.0 ?0.8 ?8408 2276 ? ? ? ? ?Rs ? 21:09 ? 0:00 sshd:?


root@pts/1
root ? ? ?4021 ?0.0 ?0.5 ?6912 1388 pts/1 ? ?Ss ? 21:09 ? 0:00 -bash
root ? ? ?4084 ?0.0 ?0.2 ?2852 ?748 pts/1 ? ?R+ ? 21:17 ? 0:00 ps -aux
這些進(jìn)程,服務(wù),都是開機(jī)自動(dòng)加載的!我們可以用命令來看一下,
[root@tp ~]# ntsysv
?
那些前面有*號的就是開機(jī)自動(dòng)啟動(dòng)的服務(wù).也就是說我們開機(jī)的話就要同時(shí)開啟


這么多的服務(wù).(和我們windows


里的服務(wù)是一樣的,沒用的完全可以關(guān)了).
我們要掌握一個(gè)原則:就是運(yùn)行的服務(wù)越少,肯定系統(tǒng)就越安全.
上面看的是系統(tǒng)開機(jī)都會(huì)開啟那些服務(wù).那么那些服務(wù)是正在運(yùn)行的呢?
[root@tp ~]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address ? ? ? ? ? ? ? Foreign Address ? ? ? ?


? ? ?State ? ??
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:32768 ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ?


? ? ?LISTEN ? ??
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:111 ? ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ?


? ? ?LISTEN ? ??
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:113 ? ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ?


? ? ?LISTEN ? ??
tcp ? ? ? ?0 ? ? ?0 127.0.0.1:631 ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ?


? ? ?LISTEN ? ??
tcp ? ? ? ?0 ? ? ?0 :::80 ? ? ? ? ? ? ? ? ? ? ? :::* ? ? ? ? ? ? ? ? ??


? ? ?LISTEN ? ??
tcp ? ? ? ?0 ? ? ?0 :::22 ? ? ? ? ? ? ? ? ? ? ? :::* ? ? ? ? ? ? ? ? ??


? ? ?LISTEN ? ??
tcp ? ? ? ?0 ? ? ?0 :::443 ? ? ? ? ? ? ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ??


? ? ?LISTEN ? ??
tcp ? ? ? ?0 ? ?880 ::ffff:192.168.0.1:22 ? ? ??


::ffff:192.168.0.5:2683 ? ? ESTABLISHED
udp ? ? ? ?0 ? ? ?0 0.0.0.0:32768 ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ?


? ? ? ? ? ? ? ??
udp ? ? ? ?0 ? ? ?0 0.0.0.0:111 ? ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ?


? ? ? ? ? ? ? ??
udp ? ? ? ?0 ? ? ?0 0.0.0.0:631 ? ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ?


? ? ? ? ? ? ? ??
udp ? ? ? ?0 ? ? ?0 0.0.0.0:764 ? ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ?


? ? ? ? ? ? ? ??
帶有LISTEN的代表正在開啟的端口,開啟的服務(wù).
如果你對linux系統(tǒng)的啟動(dòng)過程了解的話.(建議先去看看,我以后也會(huì)寫的)
我們進(jìn)入這個(gè)目錄
[root@tp ~]# cd /etc/rc.d
[root@tp rc.d]# ls
init.d ?rc ?rc0.d ?rc1.d ?rc2.d ?rc3.d ?rc4.d ?rc5.d ?rc6.d ?rc.local ?


rc.sysinit
如果你的系統(tǒng)是X(圖形化啟動(dòng)的話)運(yùn)行級別是5,那就是rc5.d,我的是rc3.d,運(yùn)


行級別是3.(多用戶模式)
是哪個(gè)模式就進(jìn)入哪個(gè)目錄,看一下
[root@tp rc.d]# cd rc3.d/
[root@tp rc3.d]# ls
K01yum ? ? ? ? ? ? K16rarpd ? ? ? ? ? K35cyrus-imapd ?K50snmptrapd ?


K84bgpd ? ? ? ?K96ipmi ? ? ? ?


? ? ?S13irqbalance ?S55sshd
K02NetworkManager ?K20bootparamd ? ? ?K35dhcpd ? ? ? ?K50tux ? ? ? ?


K84ospf6d ? ? ?K99readahead ??


? ? ?S13portmap ? ? S56rawdevices
K03rhnsd ? ? ? ? ? K20netdump-server ?K35smb ? ? ? ? ?K50vsftpd ? ??


K84ospfd ? ? ??


K99readahead_early ?S14nfslock ? ? S56xinetd
K05atd ? ? ? ? ? ? K20nfs ? ? ? ? ? ? K35vncserver ? ?K54dovecot ? ?


K84ripd ? ? ? ?


S00microcode_ctl ? ?S15mdmonitor ? S85gpm
K05innd ? ? ? ? ? ?K20rstatd ? ? ? ? ?K35winbind ? ? ?K61ldap ? ? ??


K84ripngd ? ? ?S01sysstat ? ??


? ? ?S18rpcidmapd ? S87iiim
K05saslauthd ? ? ? K20rusersd ? ? ? ? K36dhcp6s ? ? ? K65kadmin ? ??


K85mdmpd ? ? ? S05kudzu ? ? ??


? ? ?S19rpcgssd ? ? S90canna
K10dc_server ? ? ? K20rwhod ? ? ? ? ? K36lisa ? ? ? ? K65kprop ? ? ?


K85zebra ? ? ? S06cpuspeed ? ?


? ? ?S25netfs ? ? ? S90crond
K10psacct ? ? ? ? ?K24irda ? ? ? ? ? ?K36mysqld ? ? ? K65krb524 ? ??


K87auditd ? ? ?


S08arptables_jf ? ? S26apmd ? ? ? ?S95anacron
K10radiusd ? ? ? ? K25squid ? ? ? ? ? K36postgresql ? K65krb5kdc ? ?


K87multipathd ?S08ip6tables ??


? ? ?S26lm_sensors ?S97messagebus
K10xfs ? ? ? ? ? ? K28amd ? ? ? ? ? ? K45arpwatch ? ? K73ypbind ? ??


K88opensm ? ? ?S08iptables ? ?


? ? ?S28autofs ? ? ?S98cups-config-daemon
K12dc_client ? ? ? K30sendmail ? ? ? ?K45named ? ? ? ?K74nscd ? ? ??


K89iscsi ? ? ? S09isdn ? ? ? ?


? ? ?S40smartd ? ? ?S98haldaemon
K12FreeWnn ? ? ? ? K30spamassassin ? ?K46radvd ? ? ? ?K74ntpd ? ? ??


K89netplugd ? ?S09pcmcia ? ? ?


? ? ?S44acpid ? ? ? S99local
K12mailman ? ? ? ? K34dhcrelay ? ? ? ?K50netdump ? ? ?K74ypserv ? ??


K90bluetooth ? S10network ? ??


? ? ?S54hpoj
K15httpd ? ? ? ? ? K34yppasswdd ? ? ? K50snmpd ? ? ? ?K74ypxfrd ? ??


K94diskdump ? ?S12syslog ? ? ?


? ? ?S55cups
linux在開機(jī)時(shí)會(huì)讀取/etc/rc.d/rcX.d(根據(jù)X的運(yùn)行級別)
終止K開頭的服務(wù).
開啟S開頭的服務(wù).
我們通過ntsysv命令所做的更改都會(huì)在這里體現(xiàn)出來.
好,現(xiàn)在應(yīng)該到我們的重點(diǎn)了,就是要開啟那些服務(wù),關(guān)閉那些服務(wù).
我把每一個(gè)服務(wù)都代表什么寫出來,大家自己根據(jù)自己的需要來決定.
amd:自動(dòng)安裝NFS(網(wǎng)絡(luò)文件系統(tǒng))守侯進(jìn)程
apmd:高級電源管理
Arpwatch:記錄日志并構(gòu)建一個(gè)在LAN接口上看到的以太網(wǎng)地址和IP地址對數(shù)據(jù)



atd 運(yùn)行用戶用At命令調(diào)度的任務(wù)。也在系統(tǒng)負(fù)荷比較低時(shí) 運(yùn)行批處理任務(wù)。
Autofs:自動(dòng)安裝管理進(jìn)程automount,與NFS相關(guān),依賴于NIS
Bootparamd:引導(dǎo)參數(shù)服務(wù)器,為LAN上的無盤工作站提供引導(dǎo)所需的相關(guān)信息
crond:Linux下的計(jì)劃任務(wù)
Dhcpd:啟動(dòng)一個(gè)DHCP(動(dòng)態(tài)IP地址分配)服務(wù)器
Gated:網(wǎng)關(guān)路由守候進(jìn)程,使用動(dòng)態(tài)的OSPF路由選擇協(xié)議
gpm gpm為文本模式下的Linux程序如mc(Midnight Commander)提供了
鼠標(biāo)的支持。它也支持控制臺鼠標(biāo)的拷貝,粘貼操作以及彈出式菜單。
Httpd:WEB服務(wù)器
Inetd:支持多種網(wǎng)絡(luò)服務(wù)的核心守候程序
Innd:Usenet新聞服務(wù)器
keytable 該程序的功能是轉(zhuǎn)載您在/etc/sysconfig/keyboards里說明的鍵盤
映射表,該表可以通過kbdconfig工具進(jìn)行選 擇。您應(yīng)該使該程序
處于激活狀態(tài)。
ldap LDAP代表Lightweight Directory Access Protocol, 實(shí)現(xiàn)了目錄
訪問協(xié)議的行業(yè)標(biāo)準(zhǔn)。
Linuxconf:允許使用本地WEB服務(wù)器作為用戶接口來配置機(jī)器
Lpd:打印服務(wù)器
Mars-nwe:mars-nwe文件和用于Novell的打印服務(wù)器
mcserv Midnight Commander服務(wù)進(jìn)程允許遠(yuǎn)程機(jī)器上的用戶通過Midnight
Commander文件管理器操作本機(jī)文件。服務(wù)進(jìn)程用PAM來驗(yàn)證用戶,
需要給出“用戶名/口令”以通過驗(yàn)證
named:DNS服務(wù)器
netfs:安裝NFS、Samba和NetWare網(wǎng)絡(luò)文件系統(tǒng)
network:激活已配置網(wǎng)絡(luò)接口的腳本程序
nfs:打開NFS服務(wù)
nscd:nscd(Name Switch Cache daemon)服務(wù)器,用于NIS的一個(gè)支持服務(wù),它


高速緩存用戶口令和組成成員關(guān)



Pcmcia pcmcia主要用于支持筆記本電腦。
portmap:RPC portmap管理器,與inetd類似,它管理基于RPC服務(wù)的連接
postgresql:一種SQL數(shù)據(jù)庫服務(wù)器
random 保存和恢復(fù)系統(tǒng)的高質(zhì)量隨機(jī)數(shù)生成器,這些隨機(jī)數(shù)是系統(tǒng)一些隨
機(jī)行為提供的
routed:路由守候進(jìn)程,使用動(dòng)態(tài)RIP路由選擇協(xié)議
rstatd:一個(gè)為LAN上的其它機(jī)器收集和提供系統(tǒng)信息的守候程序
ruserd:遠(yuǎn)程用戶定位服務(wù),這是一個(gè)基于RPC的服務(wù),它提供關(guān)于當(dāng)前記錄到


LAN上一個(gè)機(jī)器日志中的用戶信



rwalld:激活rpc.rwall服務(wù)進(jìn)程,這是一項(xiàng)基于RPC的服務(wù),允許用戶給每個(gè)注


冊到LAN機(jī)器上的其他終端寫消



rwhod:激活rwhod服務(wù)進(jìn)程,它支持LAN的rwho和ruptime服務(wù)
sendmail:郵件服務(wù)器sendmail
smb:Samba文件共享/打印服務(wù)
snmpd:本地簡單網(wǎng)絡(luò)管理候進(jìn)程
squid:激活代理服務(wù)器squid
syslog:一個(gè)讓系統(tǒng)引導(dǎo)時(shí)起動(dòng)syslog和klogd系統(tǒng)日志守候進(jìn)程的腳本
Webmin webmin是基于web的集系統(tǒng)管理與網(wǎng)絡(luò)管理于一身的強(qiáng)大管理工具。
利用webmin的強(qiáng)大功能,用戶可以通過web瀏覽器來方便地設(shè)置自
己的服務(wù)器、dns、samba、nfs、本地/遠(yuǎn)程文件系統(tǒng)以及許多其他的
系統(tǒng)配置。
xfs:X Window字型服務(wù)器,為本地和遠(yuǎn)程X服務(wù)器提供字型集
xntpd:網(wǎng)絡(luò)時(shí)間服務(wù)器
ypbind:為NIS(網(wǎng)絡(luò)信息系統(tǒng))客戶機(jī)激活ypbind服務(wù)進(jìn)程
yppasswdd:NIS口令服務(wù)器
ypserv:NIS主服務(wù)器
gpm:管鼠標(biāo)的
identd:AUTH服務(wù),在提供用戶信息方面與finger類似
可能還有不全的解釋,希望大家能補(bǔ)上.
?

六,日志的安全.

我在這里只講解日志的安全問題,也就是通過日志來查看那些可疑的用戶登陸過


機(jī)器.不會(huì)詳細(xì)介紹日志方面的


知識.(關(guān)于linux日志我認(rèn)為是很重要的東西,作為一名系統(tǒng)維護(hù)人員,必須對


linux日志有一定了解.我也會(huì)馬上


詳細(xì)寫這方面的文章.)
三個(gè)重要的日志文件
/var/log/wtmp 記錄每個(gè)用戶登陸和推出時(shí)間的永久記錄.
/var/run/utmp 記錄當(dāng)前登陸到系統(tǒng)的每個(gè)用戶信息.
/var/log/lastlog 每個(gè)用戶最后一次登陸的信息(最新的信息)
wtmp和utmp都是二進(jìn)制文件,它們要用命令來查看內(nèi)容.
1,命令who,查看utmp文件當(dāng)前的每個(gè)用戶的信息,它默認(rèn)輸出包括用戶名,終端類


型,登陸時(shí)間及遠(yuǎn)程主機(jī).
如下:
[root@tp log]# who
root ? ? pts/0 ? ? ? ?May ?4 22:10 (192.168.0.5)
如果指明了文件,則回顯示自wtmp創(chuàng)建以來所有登陸的用戶信息.
[root@tp log]# who /var/log/wtmp
root ? ? tty1 ? ? ? ? May ?4 20:44
root ? ? pts/0 ? ? ? ?May ?4 20:52 (211.101.46.195)
root ? ? tty1 ? ? ? ? May ?4 21:05
root ? ? pts/0 ? ? ? ?May ?4 21:05 (211.101.46.195)
root ? ? pts/1 ? ? ? ?May ?4 21:09 (192.168.0.5)
root ? ? pts/0 ? ? ? ?May ?4 21:38 (192.168.0.5)
root ? ? pts/0 ? ? ? ?May ?4 22:10 (192.168.0.5)
2,命令w,查看utmp文件并顯示當(dāng)前系統(tǒng)中每個(gè)用戶和它所運(yùn)行的進(jìn)程信息.
如:
[root@tp log]# w
?23:00:48 up 54 min, ?1 user, ?load average: 0.00, 0.00, 0.00
USER ? ? TTY ? ? ?FROM ? ? ? ? ? ? ?LOGIN@ ? IDLE ? JCPU ? PCPU WHAT
root ? ? pts/0 ? ?192.168.0.5 ? ? ?22:10 ? ?0.00s ?0.03s ?0.00s w
3,users,顯示當(dāng)前當(dāng)前登陸的用戶數(shù)量.
如,
[root@tp log]# users
root root
這表明兩個(gè)root用戶在同時(shí)登陸這臺機(jī)器.
4,last命令,用來顯示wtmp文件第一次 創(chuàng)建以來所有登陸過的用戶.
如:
[root@tp log]# last
root ? ? pts/1 ? ? ? ?192.168.0.5 ? ? ?Fri May ?4 23:01 - 23:02 ?


(00:00) ??
root ? ? pts/0 ? ? ? ?192.168.0.5 ? ? ?Fri May ?4 22:10 ? still logged?


in ?
reboot ? system boot ?2.6.9-34.EL ? ? ?Fri May ?4 22:07 ? ? ? ? ?


(00:59) ??
root ? ? pts/0 ? ? ? ?192.168.0.5 ? ? ?Fri May ?4 21:38 - down ??


(00:27) ??
reboot ? system boot ?2.6.9-34.EL ? ? ?Fri May ?4 21:36 ? ? ? ? ?


(00:29) ??
root ? ? pts/1 ? ? ? ?192.168.0.5 ? ? ?Fri May ?4 21:09 - down ??


(00:25) ??
root ? ? pts/0 ? ? ? ?211.101.46.195 ? Fri May ?4 21:05 - down ??


(00:29) ??
root ? ? tty1 ? ? ? ? ? ? ? ? ? ? ? ? ?Fri May ?4 21:05 - down ??


(00:30) ??
reboot ? system boot ?2.6.9-34.EL ? ? ?Fri May ?4 21:03 ? ? ? ? ?


(00:31) ??
root ? ? pts/0 ? ? ? ?211.101.46.195 ? Fri May ?4 20:52 - crash ?


(00:11) ??
root ? ? tty1 ? ? ? ? ? ? ? ? ? ? ? ? ?Fri May ?4 20:44 - crash ?


(00:18) ??
reboot ? system boot ?2.6.9-34.EL ? ? ?Fri May ?4 20:32 ? ? ? ? ?


(01:02) ??
reboot ? system boot ?2.6.9-34.EL ? ? ?Tue May ?1 08:32 ? ? ? ??


(3+13:02) ?
reboot ? system boot ?2.6.9-34.EL ? ? ?Tue May ?1 08:27 ? ? ? ??


(3+13:07) ?
reboot ? system boot ?2.6.9-34.EL ? ? ?Tue May ?1 08:24 ? ? ? ??


(3+13:10) ?
reboot ? system boot ?2.6.9-34.EL ? ? ?Tue May ?1 08:13 ? ? ? ??


(3+13:22) ?
wtmp begins Tue May ?1 08:13:04 2007
我們也可以指明用戶,[root@tp log]# last root
root ? ? pts/1 ? ? ? ?192.168.0.5 ? ? ?Fri May ?4 23:01 - 23:02 ?


(00:00) ??
root ? ? pts/0 ? ? ? ?192.168.0.5 ? ? ?Fri May ?4 22:10 ? still logged?


in ?
root ? ? pts/0 ? ? ? ?192.168.0.5 ? ? ?Fri May ?4 21:38 - down ??


(00:27) ??
root ? ? pts/1 ? ? ? ?192.168.0.5 ? ? ?Fri May ?4 21:09 - down ??


(00:25) ??
root ? ? pts/0 ? ? ? ?211.101.46.195 ? Fri May ?4 21:05 - down ??


(00:29) ??
root ? ? tty1 ? ? ? ? ? ? ? ? ? ? ? ? ?Fri May ?4 21:05 - down ??


(00:30) ??
root ? ? pts/0 ? ? ? ?211.101.46.195 ? Fri May ?4 20:52 - crash ?


(00:11) ??
root ? ? tty1 ? ? ? ? ? ? ? ? ? ? ? ? ?Fri May ?4 20:44 - crash ?


(00:18) ??
wtmp begins Tue May ?1 08:13:04 2007
5,命令ac,根據(jù)wtmp文件中每個(gè)用戶進(jìn)入和退出時(shí)間.(以小時(shí)計(jì)算),不用參數(shù)代


表全部
[root@tp log]# ac
? ? ? ? total ? ? ? ?2.88
[root@tp log]# ac -d 代表每天總連接時(shí)間
Today ? total ? ? ? ?2.89
[root@tp log]# ac -p 代表每個(gè)用戶總連接時(shí)間
? ? ? ? root ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.89
? ? ? ? total ? ? ? ?2.89
我們要養(yǎng)成經(jīng)常查看日志來觀察有無可疑用戶等問題的存在.
========

linux系統(tǒng)安全日志



我們主要講一下Linux環(huán)境中的系統(tǒng)記帳和系統(tǒng)日志管理以及怎么用一些工具更


加方便有效的管理日志信息。
當(dāng)我們用上面的方法進(jìn)行了 Linux 服務(wù)器的安裝和一些基本的設(shè)置后,我們的


服務(wù)器應(yīng)該說來是比較安全的。但是總是還會(huì)有黑客可以通過各種方法利用系統(tǒng)


管理員的疏忽侵入我們的系統(tǒng)。他們的一舉一動(dòng)都會(huì)記錄到系統(tǒng)的日志之中,盡


管他們可能可以改變這些日志信息,甚至用自己的程序替換掉我們系統(tǒng)本身的命


令程序,但是通過日志我們總還是能找到一些蛛絲馬跡。下面我們主要講一下?


Linux 環(huán)境中的系統(tǒng)記帳和系統(tǒng)日志管理以及怎么用一些工具更加方便有效的管


理日志信息。


1 系統(tǒng)記帳



最初開發(fā)的系統(tǒng)記帳用于跟蹤用戶資源消費(fèi)情況,從用戶帳號中提取費(fèi)用為目地


的。現(xiàn)在我們可以把它用于安全目的,給我們提供有關(guān)在系統(tǒng)中發(fā)生的各種活動(dòng)


的有價(jià)值信息。


系統(tǒng)記帳主要非為兩類:


1) 連接記帳


連接記帳是跟蹤當(dāng)前用戶當(dāng)前對話、用戶登錄和退出的活動(dòng)。在 Linux 系統(tǒng)中


使用 utmp (動(dòng)態(tài)用戶對話)和 wtmp (登錄/退出日志記錄)工具來完成這一記帳


過程。Wtmp 工具同時(shí)維護(hù)重新引導(dǎo)和系統(tǒng)狀態(tài)變化信息。各種程序?qū)@些工具


進(jìn)行刷新和維護(hù),因此無須進(jìn)行特殊的后臺進(jìn)程或程序。然而,utmp 和 wtmp?


輸出結(jié)果文件必須存在,如果這些文件不存在會(huì)關(guān)閉連接記帳。與 utmp 和?


wtmp 有關(guān)的所有數(shù)據(jù)將分別保存在 /var/run/utmp 和 /var/log/wtmp 中。這


些文件歸根用戶所有。這些文件中的數(shù)據(jù)是用戶不可讀的,但也有工具可以轉(zhuǎn)換


成可讀的形式。


dump-utmp 可以轉(zhuǎn)換連接記帳數(shù)據(jù)為可讀的 ASCII 格式數(shù)據(jù)。


ac 命令提供了有關(guān)用戶連接的大概統(tǒng)計(jì),我們可以使用帶有標(biāo)志 d 和 p 的 ac?


命令。標(biāo)志 d 顯示了一天的總連接統(tǒng)計(jì),標(biāo)志 p 顯示了每一個(gè)用戶的連接時(shí)間


。這種統(tǒng)計(jì)信息的方式對了解與探測入侵有關(guān)的用戶情況及其他活動(dòng)很有幫助。


Last 和 who 是出于安全角度定期使用的最常用命令。


last 命令提供每一個(gè)用戶的登錄時(shí)間,退出登錄時(shí)間,登錄位置,重新引導(dǎo)系


統(tǒng)及運(yùn)行級別變化的信息。last -10 表示 last 的最多輸出結(jié)果為最近的 10?


條信息。缺省時(shí) last 將列出在 /var/log/wtmp 中記錄的每一連接和運(yùn)行級別


的變化。從安全角度考慮,last 命令提供了迅速查看特定系統(tǒng)連接活動(dòng)的一種


方式。觀察每天的輸出結(jié)果是個(gè)好習(xí)慣,從中可以捕獲異常輸入項(xiàng)。Last 命令


的 -x 選項(xiàng)可以通知系統(tǒng)運(yùn)行級別的變化。


who 命令主要作用是報(bào)告目前正在登錄的用戶、登錄設(shè)備、遠(yuǎn)程登錄主機(jī)名或使


用的 Xwindows 的 X 顯示值、會(huì)話閑置時(shí)間以及會(huì)話是否接受 write 或 talk?


信息。


例如: who -iwH 的輸出結(jié)果:


USER ? ? MESG ? ?LINE ? LOGIN-TIME ? ? ?IDLE ? ?FROM
Denny ? ? ?- ? ? tty1 ? Feb 18 08:42 ? ?old
這就表示用戶 Denny 不能接受 write 或 talk 信息,2月18日8:42 從 tty1 登


錄。該命令的安全值提供了用戶連接的大致情況,這也為監(jiān)視可疑活動(dòng)提供了條


件。 其他的有關(guān)命令有 lastlog 命令,該命令報(bào)告了有關(guān) /var/log/lastlog?


中記錄的最后一次登錄的數(shù)據(jù)信息。


2) 進(jìn)程記帳


進(jìn)程記帳是對進(jìn)程活動(dòng)的記錄。原數(shù)據(jù)保存在 /var/log/pacct 文件中,其許可


權(quán)限為 600。該文件的存在是進(jìn)程記帳有效的保障。與連接記帳不同,進(jìn)程記帳


必須處于打開狀態(tài),使用下面的命令設(shè)置打開狀態(tài).


# ? ?accton ?/var/log/pacct
可以使用自選文件代替 /var/log/pacct,但必須記住這一文件并且設(shè)置適當(dāng)?shù)?


許可權(quán)限。必須在每次引導(dǎo)的時(shí)候執(zhí)行該命令,可以在 /etc/rc.d/rc.local 中


輸入以下腳本:


# ?initiate ?process account
if ?[ -x ?/sbin/accton ?]
then
/sbin/accton ? /var/log/pacct
echo ?"process ?accounting ?initiated"
fi
一旦在系統(tǒng)中配置進(jìn)程記帳后,將使用 3 個(gè)命令解釋在 /var/log/pacct 中的


非用戶可讀的原數(shù)據(jù)。這些命令分別為 dump-acct,該命令與 dump-utmp 完全


相似,sa 命令用于統(tǒng)計(jì)系統(tǒng)進(jìn)程記帳的大致情況,最后一個(gè)是 lastcomm 命令


列出了系統(tǒng)執(zhí)行的命令。


1 sa 命令


與 ac 命令一樣,sa 是一個(gè)統(tǒng)計(jì)命令。該命令可以獲得每個(gè)用戶或每個(gè)命令的


進(jìn)程使用的大致情況,并且提供了系統(tǒng)資源的消費(fèi)信息。在很大程度上,sa 又


是一個(gè)記帳命令,對于識別特殊用戶,特別是已知特殊用戶使用的可疑命令十分


有用。另外,由于信息量很大,需要處理腳本或程序篩選這些信息。


可以用這樣的命令單獨(dú)限制用戶:


# ? ?sa -u |grep joe
joe ? ? 0.00 ? cpu ? bash
joe ? ? 0.00 ? cpu ? ls
joe ? ? 0.01 ? cpu ? ls
joe ? ? 0.01 ? cpu ? lastcomm
joe ? ? 0.01 ? cpu ? tcpdump
joe ? ? 0.01 ? cpu ? reboot
輸出結(jié)果從左到右依次為:用戶名、CPU 使用時(shí)間秒數(shù)、命令(最多為 16 個(gè)字


符)。


2 lastcomm 命令


與 sa 命令不同,lastcomm 命令提供每一個(gè)命令的輸出結(jié)果,同時(shí)打印出與執(zhí)


行每個(gè)命令有關(guān)的時(shí)間印戳。就這一點(diǎn)而說,lastcomm 比 sa 更有安全性。


lastcomm 命令使用命令名,用戶名或終端名作為變量。該命令可以查詢進(jìn)程記


帳數(shù)據(jù)庫。下面顯示 lastcomm joe 的輸出結(jié)果,每行表示命令的執(zhí)行情況,從


左到右為:用戶、設(shè)備、使用的 cpu 時(shí)間秒數(shù)、執(zhí)行命令的日期和時(shí)間。


# ? lastcomm joe
reboot ? ? joe ? ?ttyp1 ? ?0.01 ? ?secs ?Fri ?Feb 26 ?18:40
tcpdump ? joe ? ?ttyp1 ? ?0.01 ? ?secs ?Fri ?Feb 26 ?18:39
lastcomm ?joe ? ?ttyp1 ? ?0.01 ? ?secs ?Fri ?Feb 26 ?18:32
ls ? ? ? ?joe ? ?ttyp1 ? ?0.01 ? ?secs ? Fri ?Feb 26 ?18:30
ls ? ? ? ?joe ? ?ttyp1 ? ?0.00 ? ?secs ? Fri ?Feb 26 ?18:28
bash ? ? ?joe ? ?ttyp1 ? ?0.00 ? ?secs ? Fri ?Feb 26 ?18:25
如果系統(tǒng)被入侵,請不要相信在 lastlog、utmp、wtmp、pacct 中記錄的信息,


但也不要忽略,因?yàn)檫@些信息可能被修改過了。另外有可能有人替換了who程序


來掩人耳目。


通常,在已經(jīng)識別某些可疑活動(dòng)后,進(jìn)程記帳可以有效的發(fā)揮作用。使用?


lastcomm 可以隔絕用戶活動(dòng)或在特定時(shí)間執(zhí)行命令。但是使用該命令必須設(shè)置


為打開狀態(tài)。


基本上,/var/log/pacct,/var/run/utmp, /var/log/pacct是動(dòng)態(tài)數(shù)據(jù)庫文件。


其中/var/log/pacct和/var/log/wtmp文件隨著輸入項(xiàng)的增加和修改而增加。問


題在于這些文件處于動(dòng)態(tài)增加狀態(tài),因此到一定程度就會(huì)變的很大。


我們可以通過一個(gè)叫 logrotate 的程序來解決上面這個(gè)問題,該程序讀?


/etc/logrotate.conf 配置文件,該配置文件告訴 logrotate 所要讀?


/etc/logrotate.d 目錄中的文件??梢酝ㄟ^它來設(shè)定日志文件的循環(huán)時(shí)間。


2 系統(tǒng)日志



在 Linux 下使用各種日志文件,有些用于某些特殊用途,例


如:/var/log/xferlog 用于記錄文件傳輸協(xié)議 FTP 的信息。其他日志文件,例


如 /var/log/messages 文件通常包含許多系統(tǒng)和內(nèi)核工具的輸入項(xiàng)。這些日志


文件為系統(tǒng)的安全狀態(tài)提供了信息。


我們主要講解兩個(gè)日志守護(hù)程序---syslog和klogd------并且簡要敘述了由


Linux操作系統(tǒng)生成的其他其他日志文件。目的是提供基本的配置情況。


2.1 syslog系統(tǒng)日志工具


大部分的 Linux 系統(tǒng)中都要使用 syslog 工具,它是相當(dāng)靈活的,能使系統(tǒng)根


據(jù)不同的日志輸入項(xiàng)采取不同的活動(dòng)。下面將詳細(xì)討論syslog 的工作機(jī)制以及


在配置文件 /etc/syslog.conf 中的配置,還將論述利用 syslog 靈活性和功能


性進(jìn)行工作的各種方法。


1) 概述


非常簡單,syslog 工具由一個(gè)守護(hù)程序組成。它能接受訪問系統(tǒng)的日志信息并


且根據(jù) /etc/syslog.conf 配置文件中的指令處理這些信息。程序,守護(hù)進(jìn)程和


內(nèi)核提供了訪問系統(tǒng)的日志信息。因此,任何希望生成日志信息的程序都可以向?


syslog 接口呼叫生成該信息。


通常,syslog 接受來自系統(tǒng)的各種功能的信息,每個(gè)信息都包括重要


級。/etc/syslog.conf 文件通知 syslogd 如何根據(jù)設(shè)備和信息重要級別來報(bào)告


信息。


2) etc/syslog.conf


/etc/syslog.conf 文件使用下面的形式


facility.level ? ?action
空白行和以#開頭的行可以忽略。Facility.level 字段也被稱做 seletor。應(yīng)該


使用一次或多次 tab 鍵分隔 facility 和 action。大部分 Linux 使用這些空


格為分隔符。現(xiàn)在分析一下 /etc/syslog.conf 中的三個(gè)要素。


facility 指定 syslog 功能,主要包括以下這些:


auth ?由 pam_pwdb 報(bào)告的認(rèn)證活動(dòng)。
authpriv 包括特權(quán)信息如用戶名在內(nèi)的認(rèn)證活動(dòng)
cron ?與 cron 和 at 有關(guān)的信息。
daemon 與 inetd 守護(hù)進(jìn)程有關(guān)的信息。
kern ?內(nèi)核信息,首先通過 klogd 傳遞。
lpr ? 與打印服務(wù)有關(guān)的信息。
mail ?與電子郵件有關(guān)的信息
mark ?syslog 內(nèi)部功能用于生成時(shí)間戳
news ?來自新聞服務(wù)器的信息
syslog ?由 syslog 生成的信息
user ? 由用戶程序生成的信息
uucp ? 由 uucp 生成的信息
local0----local7 ? 與自定義程序使用,例如使用 local5 做為 ssh 功能
* ? 通配符代表除了 mark 以外的所有功能
與每個(gè)功能對應(yīng)的優(yōu)先級是按一定順序排列的,emerg 是最高級,其次是 alert


,依次類推。缺省時(shí),在 /etc/syslog.conf 記錄中指定的級別為該級別和更高


級別。如果希望使用確定的級別可以使用兩個(gè)運(yùn)算符號!(不等)和=。


user.=info


表示告知 syslog 接受所有在 info 級別上的 user 功能信息。


syslog 級別如下:


emerg 或 panic ? 該系統(tǒng)不可用
alert ? ? ? ? ? ?需要立即被修改的條件
crit ? ? ? ? ? ? 阻止某些工具或子系統(tǒng)功能實(shí)現(xiàn)的錯(cuò)誤條件
err ? ? ? ? ? ? 阻止工具或某些子系統(tǒng)部分功能實(shí)現(xiàn)的錯(cuò)誤條件
warning ? ? ? ? 預(yù)警信息
notice ? ? ? ? ? 具有重要性的普通條件
info ? ? ? ? ? ? 提供信息的消息
debug ? ? ? ? ? 不包含函數(shù)條件或問題的其他信息
none ? ? ? ? ? ?沒有重要級,通常用于排錯(cuò)
* ? ? ? ? ? ? ? 所有級別,除了none
action字段所表示的活動(dòng)具有許多靈活性,特別是,可以使用名稱管道的作用是


可以使 syslogd 生成后處理信息。


syslog 主要支持以下活動(dòng)


file ? ? 指定文件的絕對路徑
terminal 或 print ? ?完全的串行或并行設(shè)備標(biāo)志符
@host ? 遠(yuǎn)程的日志服務(wù)器
username ?發(fā)送信息到使用 write 的指定用戶中
named pipe ?指定使用 mkfifo 命令來創(chuàng)建的 FIFO 文件的絕對路徑。




?
3) 調(diào)用 syslogd 守護(hù)程序


syslog 守護(hù)程序是由 /etc/rc.d/init.d/syslog 腳本在運(yùn)行級2下被調(diào)用的,


缺省不使用選項(xiàng)。但有兩個(gè)選項(xiàng) -r 和 -h 很有用。


如果將要使用一個(gè)日志服務(wù)器,必須調(diào)用 syslogd -r。缺省情況下 syslog 不


接受來自遠(yuǎn)程系統(tǒng)的信息。當(dāng)指定 -r 選項(xiàng),syslogd 將會(huì)監(jiān)聽從 514 端口上


進(jìn)來的 UDP 包。


如果還希望日志服務(wù)器能傳送日志信息,可以使用 -h 標(biāo)志。缺省時(shí),syslogd?


將忽略使其從一個(gè)遠(yuǎn)程系統(tǒng)傳送日志信息到另一個(gè)系統(tǒng)的/etc/syslog.conf 輸


入項(xiàng)。


4) klogd 守護(hù)進(jìn)程


klogd 守護(hù)進(jìn)程獲得并記錄 Linux 內(nèi)核信息。通常,syslogd 會(huì)記錄 klogd 傳


來的所有信息,然而,如果調(diào)用帶有 -f filename 變量的 klogd 時(shí),klogd 就


在 filename 中記錄所有信息,而不是傳給 syslogd。當(dāng)指定另外一個(gè)文件進(jìn)行


日志記錄時(shí),klogd 就向該文件中寫入所有級別或優(yōu)先權(quán)。Klogd 中沒有和?


/etc/syslog.conf 類似的配置文件。使用 klogd 而避免使用 syslogd 的好處


在于可以查找大量錯(cuò)誤。如果有人入侵了內(nèi)核,使用 klogd 可以修改錯(cuò)誤。


5) 其他日志


在 /var/log 和不同版本的系統(tǒng)中以及自己配置的應(yīng)用程序中都可以找到其他日


志文件。當(dāng)然,/etc/syslog.conf 列出了由 syslogd 管理的所有日志文件名和


位置。其他日志由其他應(yīng)用程序管理。例如在 Redhat6.2 中,apache server?


生成 /var/log/htmlaccess.log 文件記錄客戶訪問,生成?


/var/log/httpd/error.log 文件在 syslog 以外查找錯(cuò)誤。


cron 工具維護(hù)的信息日志文件 /var/log/cron。當(dāng) Linuxconf 工具記錄系統(tǒng)重


新配置信息時(shí),將生成日志文件如 /var/log/nerconf.log。samba 在?


/var/log/samba 中維護(hù)其日志信息。


另外由于 syslogd 在系統(tǒng)非常繁忙時(shí),可能會(huì)丟失信息,所以,可以用 cyclog?


替換 syslog。
========

Linux下常用安全策略設(shè)置的六個(gè)方法

?
?  “安全第一”對于linux管理界乃至計(jì)算機(jī)也都是一個(gè)首要考慮的問題。加


密的安全性依賴于密碼本身而非算法!而且,此處說到的安全是指數(shù)據(jù)的完整性


,由此,數(shù)據(jù)的認(rèn)證安全和完整性高于數(shù)據(jù)的私密安全,也就是說數(shù)據(jù)發(fā)送者的


不確定性以及數(shù)據(jù)的完整性得不到保證的話,數(shù)據(jù)的私密性當(dāng)無從談起!


1. 禁止系統(tǒng)響應(yīng)任何從外部/內(nèi)部來的ping請求攻擊者一般首先通過ping命令檢


測此主機(jī)或者IP是否處于活動(dòng)狀態(tài) ,如果能夠ping通 某個(gè)主機(jī)或者IP,那么攻


擊者就認(rèn)為此系統(tǒng)處于活動(dòng)狀態(tài),繼而進(jìn)行攻擊或破壞。如果沒有人能ping通機(jī)


器并收到響應(yīng),那么就可以大大增強(qiáng)服務(wù)器的安全性,linux下可以執(zhí)行如下設(shè)


置,禁止ping請求:


  [root@localhost ~]#echo “1”>?


/proc/sys/net/ipv4/icmp_echo_ignore_all默認(rèn)情況


下“icmp_echo_ignore_all”的值為“0”,表示響應(yīng)ping操作。


  可以加上面的一行命令到/etc/rc.d/rc.local文件中,以使每次系統(tǒng)重啟后


自動(dòng)運(yùn)行。


2.禁止Control-Alt-Delete組合鍵重啟系統(tǒng)


  在linux的默認(rèn)設(shè)置下,同時(shí)按下Control-Alt-Delete鍵,系統(tǒng)將自動(dòng)重啟


,這是很不安全的,因此要禁止Control-Alt-Delete組合鍵重啟系統(tǒng),只需修改


/etc/inittab文件:


  代碼如下:


  [root@localhost ~]#vi /etc/inittab


  找到此行:ca::ctrlaltdel:/sbin/shutdown -t3 -r now在之前加上“#”


  然后執(zhí)行:


  代碼如下:


  [root@localhost ~]#telinit q


3.限制Shell記錄歷史命令大小


  默認(rèn)情況下,bash shell會(huì)在文件$HOME/.bash_history中存放多達(dá)1000條


命令記錄(根據(jù)系統(tǒng)不同,默認(rèn)記錄條數(shù)不同)。系統(tǒng)中每個(gè)用戶的主目錄下都有


一個(gè)這樣的文件。


  這么多的歷史命令記錄,肯定是不安全的,因此必須限制該文件的大小。


  可以編輯/etc/profile文件,修改其中的選項(xiàng)如下:


  HISTSIZE=30


  表示在文件$HOME/.bash_history中記錄最近的30條歷史命令。如果


將“HISTSIZE”設(shè)置為0,則表示不記錄歷史命令,那么也就不能用鍵盤的上下


鍵查找歷史命令了。


 4.刪除系統(tǒng)默認(rèn)的不必要用戶和組


  Linux提供了各種系統(tǒng)賬戶,在系統(tǒng)安裝完畢,如果不需要某些用戶或者組


,就要立即刪除它,因?yàn)橘~戶越多,系統(tǒng)就越不安全,越容易受到攻擊。


  刪除系統(tǒng)不必要的用戶用下面命令


  代碼如下:


  [root@localhost ~]# userdel username


  刪除系統(tǒng)不必要的組用如下命令:


  代碼如下:


  [root@localhost ~]# groupdel groupname


  Linux系統(tǒng)中可以刪除的默認(rèn)用戶和組有:


  刪除的用戶,如


adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher等。


  刪除的組,如adm,lp,news,uucp,games,dip,pppusers,popusers,slipusers


等。


5. 關(guān)閉selinux


  SELinux是 Security-Enhanced Linux的簡稱,是一種內(nèi)核強(qiáng)制訪問控制安


全系統(tǒng),目前SELinux已經(jīng)集成到Linux 2.6內(nèi)核的主線和大多數(shù)Linux發(fā)行版上


,由于SELinux與現(xiàn)有Linux應(yīng)用程序和Linux內(nèi)核模塊兼容性還存在一些問題,


因此建議初學(xué)者先關(guān)閉selinux,等到對linux有了深入的認(rèn)識后,再對selinux


深入研究不遲!


  查看linux系統(tǒng)selinux是否啟用,可以使用getenforce命令:


  代碼如下:


  [root@localhost ~]# getenforce


  Disabled


  關(guān)閉selinux,在redhat系列發(fā)行版中,可以直接修改如下文件:


  代碼如下:


  [root@localhost ~]#vi /etc/sysconfig/selinux# This file controls?


the state of SELinux on the system.


  # SELINUX= can take one of these three values:


  # enforcing - SELinux security policy is enforced.


  # permissive - SELinux prints warnings instead of enforcing.


  # disabled - SELinux is fully disabled.


  SELINUX=enforcing


  # SELINUXTYPE= type of policy in use. Possible values are:


  # targeted - Only targeted network daemons are protected.


  # strict - Full SELinux protection.


  SELINUXTYPE=targeted


  將SELINUX=enforcing修改為SELINUX=disabled, 重啟系統(tǒng)后將會(huì)停止


SElinux。


6.設(shè)定tcp_wrappers防火墻


  Tcp_Wrappers是一個(gè)用來分析TCP/IP封包的軟件,類似的IP封包軟件還有


iptables,linux默認(rèn)都安裝了此軟件,作為一個(gè)安全的系統(tǒng),Linux本身有兩層


安全防火墻,通過IP過濾機(jī)制的iptables實(shí)現(xiàn)第一層防護(hù),iptables防火墻通過


直觀地監(jiān)視系統(tǒng)的運(yùn)行狀況,阻擋網(wǎng)絡(luò)中的一些惡意攻擊,保護(hù)整個(gè)系統(tǒng)正常運(yùn)


行,免遭攻擊和破壞。關(guān)于iptables的實(shí)現(xiàn),將在下個(gè)章節(jié)詳細(xì)講述。如果通過


了第一層防護(hù),那么下一層防護(hù)就是tcp_wrappers了,通過Tcp_Wrappers可以實(shí)


現(xiàn)對系統(tǒng)中提供的某些服務(wù)的開放與關(guān)閉、允許和禁止,從而更有效地保證系統(tǒng)


安全運(yùn)行。


  Tcp_Wrappers的使用很簡單,僅僅兩個(gè)配置文件:/etc/hosts.allow


和/etc/hosts.deny(1) 查看系統(tǒng)是否安裝了Tcp_Wrappers


  [root@localhost ~]#rpm -q tcp_wrappers 或者[root@localhost ~]#rpm?


-qa | grep tcp


  tcp_wrappers-7.6-37.2


  tcpdump-3.8.2-10.RHEL4


  如果有上面的類似輸出,表示系統(tǒng)已經(jīng)安裝了tcp_wrappers模塊。如果沒有


顯示,可能是沒有安裝,可以從linux系統(tǒng)安裝盤找到對應(yīng)RPM包進(jìn)行安裝。


  (2)tcp_wrappers防火墻的局限性


  系統(tǒng)中的某個(gè)服務(wù)是否可以使用tcp_wrappers防火墻,取決于該服務(wù)是否應(yīng)


用了libwrapped庫文件,如果應(yīng)用了就可以使用tcp_wrappers防火墻,系統(tǒng)中默


認(rèn)的一些服務(wù)如:sshd、portmap、sendmail、xinetd、vsftpd、tcpd等都可以


使用tcp_wrappers防火墻。


  (3) tcp_wrappers設(shè)定的規(guī)則


  tcp_wrappers防火墻的實(shí)現(xiàn)是通過/etc/hosts.allow和/etc/hosts.deny兩


個(gè)文件來完成的,首先看一下設(shè)定的格式:


  service:host(s) [:action]


  l service:代表服務(wù)名,例如sshd、vsftpd、sendmail等。


  l host(s):主機(jī)名或者IP地址,可以有多個(gè),例如192.168.60.0、


www.ixdba.netl action:動(dòng)作, 符合條件后所采取的動(dòng)作。


  幾個(gè)關(guān)鍵字:


  l ALL:所有服務(wù)或者所有IP。


  l ALL EXCEPT:所有的服務(wù)或者所有IP除去指定的。


  例如:ALL:ALL EXCEPT 192.168.60.132


  表示除了192.168.60.132這臺機(jī)器,任何機(jī)器執(zhí)行所有服務(wù)時(shí)或被允許或被


拒絕。


  了解了設(shè)定語法后,下面就可以對服務(wù)進(jìn)行訪問限定。


  例如互聯(lián)網(wǎng)上一臺linux服務(wù)器,實(shí)現(xiàn)的目標(biāo)是:僅僅允許222.90.66.4、


61.185.224.66以及域名softpark.com通過SSH服務(wù)遠(yuǎn)程登錄到系統(tǒng),設(shè)置如下:


  首先設(shè)定允許登錄的計(jì)算機(jī),即配置/etc/hosts.allow文件,設(shè)置很簡單,


只要修改/etc/hosts.allow(如果沒有此文件,請自行建立)這個(gè)文件即可。


  只需將下面規(guī)則加入/etc/hosts.allow即可。


  sshd: 222.90.66.4 61.185.224.66 softpark.com接著設(shè)置不允許登錄的機(jī)


器,也就是配置/etc/hosts.deny文件了。


  一般情況下,linux會(huì)首先判斷/etc/hosts.allow這個(gè)文件,如果遠(yuǎn)程登錄


的計(jì)算機(jī)滿足文件/etc/hosts.allow設(shè)定的話,就不會(huì)去使用/etc/hosts.deny


文件了,相反,如果不滿足hosts.allow文件設(shè)定的規(guī)則的話,就會(huì)去使用


hosts.deny文件了,如果滿足hosts.deny的規(guī)則,此主機(jī)就被限制為不可訪問


linux服務(wù)器,如果也不滿足hosts.deny的設(shè)定,此主機(jī)默認(rèn)是可以訪問linux服


務(wù)器的,因此,當(dāng)設(shè)定好/etc/hosts.allow文件訪問規(guī)則之后,只需設(shè)


置/etc/hosts.deny為“所有計(jì)算機(jī)都不能登錄狀態(tài)”即可。


  sshd:ALL


  這樣,一個(gè)簡單的tcp_wrappers防火墻就設(shè)置完畢了。
========

LINUX安全加固


Redhat是目前企業(yè)中用的最多的一類Linux,而目前針對Redhat攻擊的黑客也越


來越多了。我們要如何為這類服務(wù)器做好安全加固工作呢?

一. 賬戶安全

  1.1 鎖定系統(tǒng)中多余的自建帳號
  檢查方法:
  執(zhí)行命令
  #cat /etc/passwd
  #cat /etc/shadow
  查看賬戶、口令文件,與系統(tǒng)管理員確認(rèn)不必要的賬號。對于一些保留的系


統(tǒng)偽帳戶如:bin, sys,adm,uucp,lp, nuucp,hpdb, www, daemon等可根據(jù)


需要鎖定登陸。
  備份方法:
  #cp -p /etc/passwd /etc/passwd_bak
  #cp -p /etc/shadow /etc/shadow_bak
  加固方法:
  使用命令passwd -l <用戶名>鎖定不必要的賬號。
  使用命令passwd -u <用戶名>解鎖需要恢復(fù)的賬號。
  


  圖1
  風(fēng)險(xiǎn):
  需要與管理員確認(rèn)此項(xiàng)操作不會(huì)影響到業(yè)務(wù)系統(tǒng)的登錄
  1.2設(shè)置系統(tǒng)口令策略
  檢查方法:
  使用命令
  #cat /etc/login.defs|grep PASS查看密碼策略設(shè)置
  備份方法:
  cp -p /etc/login.defs /etc/login.defs_bak
  加固方法:
  #vi /etc/login.defs修改配置文件
  PASS_MAX_DAYS 90 #新建用戶的密碼最長使用天數(shù)
  PASS_MIN_DAYS 0 #新建用戶的密碼最短使用天數(shù)
  PASS_WARN_AGE 7 #新建用戶的密碼到期提前提醒天數(shù)
  PASS_MIN_LEN 9 #最小密碼長度9
  


  圖2
  風(fēng)險(xiǎn):無可見風(fēng)險(xiǎn)
  1.3禁用root之外的超級用戶
  檢查方法:
  #cat /etc/passwd 查看口令文件,口令文件格式如下:
  login_name:password:user_ID:group_ID:comment:home_dir:


command
  login_name:用戶名
  password:加密后的用戶密碼
  user_ID:用戶ID,(1 ~ 6000) 若用戶ID=0,則該用戶擁有超級用戶的權(quán)限


。查看此處是否有多個(gè)ID=0。
  group_ID:用戶組ID
  comment:用戶全名或其它注釋信息
  home_dir:用戶根目錄
  command:用戶登錄后的執(zhí)行命令
  備份方法:
  #cp -p /etc/passwd /etc/passwd_bak
  加固方法:
  使用命令passwd -l <用戶名>鎖定不必要的超級賬戶。
  使用命令passwd -u <用戶名>解鎖需要恢復(fù)的超級賬戶。
  風(fēng)險(xiǎn):需要與管理員確認(rèn)此超級用戶的用途。
  1.4 限制能夠su為root的用戶
  檢查方法:
  #cat /etc/pam.d/su,查看是否有auth required?


/lib/security/pam_wheel.so這樣的配置條目
  備份方法:#cp -p /etc/pam.d /etc/pam.d_bak
  加固方法:
  #vi /etc/pam.d/su
  在頭部添加:
  auth required /lib/security/pam_wheel.so group=wheel
  這樣,只有wheel組的用戶可以su到root
  #usermod -G10 test 將test用戶加入到wheel組
  


  圖3
  風(fēng)險(xiǎn):需要PAM包的支持;對pam文件的修改應(yīng)仔細(xì)檢查,一旦出現(xiàn)錯(cuò)誤會(huì)導(dǎo)


致無法登陸;和管理員確認(rèn)哪些用戶需要su。
  當(dāng)系統(tǒng)驗(yàn)證出現(xiàn)問題時(shí),首先應(yīng)當(dāng)檢查/var/log/messages或


者/var/log/secure中的輸出信息,根據(jù)這些信息判斷用戶賬號的有效
  性。如果是因?yàn)镻AM驗(yàn)證故障,而引起root也無法登錄,只能使用single?


user或者rescue模式進(jìn)行排錯(cuò)。
  1.5 檢查shadow中空口令帳號
  檢查方法:
  #awk -F: '( == "") { print }' /etc/shadow
  備份方法:cp -p /etc/shadow /etc/shadow_bak
  加固方法:對空口令賬號進(jìn)行鎖定,或要求增加密碼
  


  圖4
  風(fēng)險(xiǎn):要確認(rèn)空口令賬戶是否和應(yīng)用關(guān)聯(lián),增加密碼是否會(huì)引起應(yīng)用無法連


接。

二、最小化服務(wù)

  2.1 停止或禁用與承載業(yè)務(wù)無關(guān)的服務(wù)
  檢查方法:
  #who –r或runlevel 查看當(dāng)前init級別
  #chkconfig --list 查看所有服務(wù)的狀態(tài)
  備份方法:記錄需要關(guān)閉服務(wù)的名稱
  加固方法:
  #chkconfig --level <服務(wù)名> on|off|reset 設(shè)置服務(wù)在個(gè)init級別下開


機(jī)是否啟動(dòng)
  


  圖5
  風(fēng)險(xiǎn):某些應(yīng)用需要特定服務(wù),需要與管理員確認(rèn)。

三、數(shù)據(jù)訪問控制

  3.1 設(shè)置合理的初始文件權(quán)限
  檢查方法:
  #cat /etc/profile 查看umask的值
  備份方法:
  #cp -p /etc/profile /etc/profile_bak
  加固方法:
  #vi /etc/profile
  umask=027
  風(fēng)險(xiǎn):會(huì)修改新建文件的默認(rèn)權(quán)限,如果該服務(wù)器是WEB應(yīng)用,則此項(xiàng)謹(jǐn)慎


修改。

四、網(wǎng)絡(luò)訪問控制

  4.1 使用SSH進(jìn)行管理
  檢查方法:
  #ps –aef | grep sshd 查看有無此服務(wù)
  備份方法:
  加固方法:
  使用命令開啟ssh服務(wù)
  #service sshd start
  風(fēng)險(xiǎn):改變管理員的使用習(xí)慣
  4.2 設(shè)置訪問控制策略限制能夠管理本機(jī)的IP地址
  檢查方法:
  #cat /etc/ssh/sshd_config 查看有無AllowUsers的語句
  備份方法:
  #cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak
  加固方法:
  #vi /etc/ssh/sshd_config,添加以下語句
  AllowUsers *@10.138.*.* 此句意為:僅允許10.138.0.0/16網(wǎng)段所有用戶


通過ssh訪問
  保存后重啟ssh服務(wù)
  #service sshd restart
  風(fēng)險(xiǎn):需要和管理員確認(rèn)能夠管理的IP段
  4.3 禁止root用戶遠(yuǎn)程登陸
  檢查方法:
  #cat /etc/ssh/sshd_config 查看PermitRootLogin是否為no
  備份方法:
  #cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak
  加固方法:
  #vi /etc/ssh/sshd_config
  PermitRootLogin no
  保存后重啟ssh服務(wù)
  service sshd restart
  


  圖6
  風(fēng)險(xiǎn):root用戶無法直接遠(yuǎn)程登錄,需要用普通賬號登陸后su
  4.4 限定信任主機(jī)
  檢查方法:
  #cat /etc/hosts.equiv 查看其中的主機(jī)
  #cat /$HOME/.rhosts 查看其中的主機(jī)
  備份方法:
  #cp -p /etc/hosts.equiv /etc/hosts.equiv_bak
  #cp -p /$HOME/.rhosts /$HOME/.rhosts_bak
  加固方法:
  #vi /etc/hosts.equiv 刪除其中不必要的主機(jī)
  #vi /$HOME/.rhosts 刪除其中不必要的主機(jī)
  風(fēng)險(xiǎn):在多機(jī)互備的環(huán)境中,需要保留其他主機(jī)的IP可信任。
  4.5 屏蔽登錄banner信息
  檢查方法:
  #cat /etc/ssh/sshd_config 查看文件中是否存在Banner字段,或banner字


段為NONE
  #cat /etc/motd 查看文件內(nèi)容,該處內(nèi)容將作為banner信息顯示給登錄用


戶。
  備份方法:
  #cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak
  #cp -p /etc/motd /etc/motd_bak
  加固方法:
  #vi /etc/ssh/sshd_config
  banner NONE
  #vi /etc/motd
  刪除全部內(nèi)容或更新成自己想要添加的內(nèi)容
  風(fēng)險(xiǎn):無可見風(fēng)險(xiǎn)
  4.6 防止誤使用Ctrl+Alt+Del重啟系統(tǒng)
  檢查方法:
  #cat /etc/inittab|grep ctrlaltdel 查看輸入行是否被注釋
  備份方法:
  #cp -p /etc/inittab /etc/inittab_bak
  加固方法:
  #vi /etc/inittab
  在行開頭添加注釋符號“#”
  #ca::ctrlaltdel:/sbin/shutdown -t3 -r now
  


  圖7
  風(fēng)險(xiǎn):無可見風(fēng)險(xiǎn)

五、用戶鑒別

  5.1 設(shè)置帳戶鎖定登錄失敗鎖定次數(shù)、鎖定時(shí)間
  檢查方法:
  #cat /etc/pam.d/system-auth 查看有無auth required pam_tally.so條目


的設(shè)置
  備份方法:
  #cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth_bak
  加固方法:
  #vi /etc/pam.d/system-auth
  auth required pam_tally.so onerr=fail deny=6 unlock_time=300 設(shè)置


為密碼連續(xù)錯(cuò)誤6次鎖定,鎖定時(shí)間300秒
  解鎖用戶 faillog -u <用戶名> -r
  風(fēng)險(xiǎn):需要PAM包的支持;對pam文件的修改應(yīng)仔細(xì)檢查,一旦出現(xiàn)錯(cuò)誤會(huì)導(dǎo)


致無法登陸;
  當(dāng)系統(tǒng)驗(yàn)證出現(xiàn)問題時(shí),首先應(yīng)當(dāng)檢查/var/log/messages或


者/var/log/secure中的輸出信息,根據(jù)這些信息判斷用戶賬號的有效
  性。
  5.2 修改帳戶TMOUT值,設(shè)置自動(dòng)注銷時(shí)間
  檢查方法:
  #cat /etc/profile 查看有無TMOUT的設(shè)置
  備份方法:
  #cp -p /etc/profile /etc/profile_bak
  加固方法:
  #vi /etc/profile
  增加
  TMOUT=600 無操作600秒后自動(dòng)退出
  風(fēng)險(xiǎn):無可見風(fēng)險(xiǎn)
  5.3 Grub/Lilo密碼
  檢查方法:
  #cat /etc/grub.conf|grep password 查看grub是否設(shè)置密碼
  #cat /etc/lilo.conf|grep password 查看lilo是否設(shè)置密碼
  備份方法:
  #cp -p /etc/grub.conf /etc/grub.conf_bak
  #cp -p /etc/lilo.conf /etc/lilo.conf_bak
  加固方法:為grub或lilo設(shè)置密碼
  風(fēng)險(xiǎn):etc/grub.conf通常會(huì)鏈接到/boot/grub/grub.conf
  5.4 限制FTP登錄
  檢查方法:
  #cat /etc/ftpusers 確認(rèn)是否包含用戶名,這些用戶名不允許登錄FTP服務(wù)
  備份方法:
  #cp -p /etc/ftpusers /etc/ftpusers_bak
  加固方法:
  #vi /etc/ftpusers 添加行,每行包含一個(gè)用戶名,添加的用戶將被禁止登


錄FTP服務(wù)
  風(fēng)險(xiǎn):無可見風(fēng)險(xiǎn)
  5.5 設(shè)置Bash保留歷史命令的條數(shù)
  檢查方法:
  #cat /etc/profile|grep HISTSIZE=
  #cat /etc/profile|grep HISTFILESIZE= 查看保留歷史命令的條數(shù)
  備份方法:
  #cp -p /etc/profile /etc/profile_bak
  加固方法:
  #vi /etc/profile
  修改HISTSIZE=5和HISTFILESIZE=5即保留最新執(zhí)行的5條命令
  


  圖8
  風(fēng)險(xiǎn):無可見風(fēng)險(xiǎn)

六、審計(jì)策略

  6.1 配置系統(tǒng)日志策略配置文件
  檢查方法:
  #ps –aef | grep syslog 確認(rèn)syslog是否啟用
  #cat /etc/syslog.conf 查看syslogd的配置,并確認(rèn)日志文件是否存在
  系統(tǒng)日志(默認(rèn))/var/log/messages
  cron日志(默認(rèn))/var/log/cron
  安全日志(默認(rèn))/var/log/secure
  備份方法:
  #cp -p /etc/syslog.conf
  


  圖9
  6.2 為審計(jì)產(chǎn)生的數(shù)據(jù)分配合理的存儲(chǔ)空間和存儲(chǔ)時(shí)間
  檢查方法:
  #cat /etc/logrotate.conf 查看系統(tǒng)輪詢配置,有無
  # rotate log files weekly
  weekly
  # keep 4 weeks worth of backlogs
  rotate 4 的配置
  備份方法:
  #cp -p /etc/logrotate.conf /etc/logrotate.conf_bak
  加固方法:
  #vi /etc/logrotate.d/syslog
  增加
  rotate 4 日志文件保存?zhèn)€數(shù)為4,當(dāng)?shù)?個(gè)產(chǎn)生后,刪除最早的日志
  size 100k 每個(gè)日志的大小
  加固后應(yīng)類似如下內(nèi)容:
  /var/log/syslog/*_log {
  missingok
  notifempty
  size 100k # log files will be rotated when they grow bigger that?


100k.
  rotate 5 # will keep the logs for 5 weeks.
  compress # log files will be compressed.
  sharedscripts
  postrotate
  /etc/init.d/syslog condrestart >/dev/null 2>1 || true
  endscript
  }
  
========

總結(jié)

以上是生活随笔為你收集整理的Linux安全学习总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。