文章目錄
一、資源安全管理
1、保護關鍵分區
在Linux系統中,可以將不同的應用安裝在不同的分區上,每個分區分別進行不同的配置,可以將關鍵分區設置爲只讀,這樣可以大大提高Linux文件系統的安全。Linux文件系統可以分爲幾個主要的分區,一般情況下至少需要建立/boot
、/lib
、/sbin
、/usr/local
、/var
和/home
等分區。
/usr
可以安裝成只讀,並且可以被認爲是不可修改的,如果/usr
中有任何文件發生了改變,那麼系統將立即發出安全報警。
/boot
、/lib
和/sbin
的安裝和設置也一樣,在安裝時儘量將它們設爲只讀。
不過有些分區是不能設爲只讀的,比如/var
。
[hyh@localhost ~]$su - root 切換root用戶
Password:
[root@localhost ~]# cd /
[root@localhost /]# ls 查看根目錄有哪些分區
[root@localhost /]# ls -l 查看分區的權限位
[root@localhost /]# ls -ld /usr 查看usr分區的權限位
[root@localhost /]# ls -ld /var查看var分區的權限位
[root@localhost /]# ls -ld /bin查看bin分區的權限位
[root@localhost /]# touch /bin/test.txt root用戶在/BIN 分區創建新文件test.txt
[root@localhost /]# ls /bin 驗證創建成功否?
[root@localhost /]# chattr +i /bin 加i屬性使得root用戶也不能在/BIN 創建改變文件
[root@localhost /]# lsattr -d /bin 驗證i屬性加成功否?
[root@localhost /]# touch /bin/test2.txt 驗證root已不能創建文件?
2、保護文件
在ext3
文件系統中有“不可變
”和“只添加
”這兩種文件屬性,使用他們可以進一步提高文件的安全級別。標記爲“不可變
”的文件不能被修改,根用戶也不能修改。標記爲“只添加
”的文件可以被修改,但是只能在它的後面添加新內容,根用戶也是如此。可以使用lsattr
命令查看這些屬性,可以使用chattr
命令來修改文件的這些屬性。
比如系統管理員可以將log
文件屬性設置爲“只添加
”。
[root@localhost log]# chattr +a /var/log/yum.log “a”屬性yum.log文件屬性設置爲“只添加”
[root@localhost log]# lsattr /var/log/yum.log 驗證文件屬性
[root@localhost ~]# echo "hello,alice" >> /var/log/yum.log 向yum.log 添加數據"hello,alice"
[root@localhost ~]# vi /var/log/yum.log 驗證添加成功否?
:
加q
退出vi編輯器
[root@localhost ~]# cat /var/log/yum.log 瀏覽文件內容
二、網絡安全管理
1、取消不必要的服務
Linux中有兩種服務類型:一種是僅在有需要時才執行的服務;另一種是一直在執行的服務。
(1)需要時才執行的服務。早期的Linux版本中,每一個不同的網絡服務都有一個服務程序在後臺運行,現在的版本用統一的xinetd
服務器程序擔此重任。
xinetd(eXtendedInterNET services Daemon)
被稱爲“擴展的超級服務器”(之前是inetd
),其作用是根據網絡請求裝入網絡程序。xinetd
同時監視多個網絡端口,一旦接收到外界傳來的連接信息,就執行相應的TCP或UDP網絡服務。要取消不必要的服務可以修改/etc/xinetd.conf
文件。
[root@localhost ~]# vi /etc/xinetd.conf 修改文件
(2)一直在執行的服務。這類服務在系統啓動時就開始執行,需要修改/etc/rc.d/rc5.d/
中的文件,比如提供文件服務的NFS服務器
和提供NNTP新聞服務
的news服務器都屬於這類服務,如果沒有必要,最好將這些服務取消。
(3)/etc/services
文件使得服務器和客戶端的程序能夠將服務的名字轉成端口號,只有root
用戶纔有權修改這個文件,而且通常情況下這個文件是沒有必要修改的,因爲這個文件中已經包含了常用的服務所對應的端口號。爲了提高安全性,可以執行#chattr +i /etc/services
命令,避免該文件未經授權的刪除和修改。
[root@localhost rc5.d]# vi /etc/services
[root@localhost rc5.d]#chattr +i /etc/services 使得包括root在內的任何用戶都不能改變services文件設置
2、隱藏系統信息
默認情況下,登錄提示信息包括Linux發行版的名稱、版本、內核版本和主機名等信息,這些信息對於黑客入侵是很有幫助的,因此,出於服務器的安全考慮,需要將這些信息修改或註釋掉。應該只顯示一個“login:
”提示符。
操作時刪除/etc/issue
和/etc/issue.net
文件中的內容即可。
[root@localhost rc5.d]# vi /etc/issue issue文件是用戶從本地登錄時看到的提示(註釋或刪除內容)
[root@localhost rc5.d]# vi /etc/issue.net issue.net文件是用戶從網絡登錄(如telnet、ssh)系統時看到的登錄提示(註釋或刪除內容)。
3.登錄終端設置
在/etc/securetty
文件指定了允許root用戶登錄的tty
設備,由/bin/login
程序讀取,其格式是一個被允許的名字列表,可以編輯/etc/securetty
且註釋掉如下所示的行:
# vi /etc/securetty
console
tty1
# tty2
# tty3
# tty4
...
這樣,root用戶只能在tty1
終端登錄。
4.tcp_wrappers(服務訪問控制程序/應用級防火牆)
可以使用tcp_wrappers
來阻止一些外部入侵。最好的策略就是先阻止所有的主機,然後再建立允許訪問該系統的主機列表。
(1)編輯/etc/hosts.deny
文件,加入:ALL: ALL@ALL, PARANOID
(2)編輯/etc/hosts.allow
文件,加入允許訪問的主機列表,比如:ftp: 202.196.0.101 ztg.edu.com
,202.196.0.101
是允許訪問ftp服務的IP地址,ztg.edu.com
是允許訪問ftp服務的主機名。
(3)使用tcpdchk
命令檢查tcp wrapper
的設置是否正確。
5.定期檢查系統中的日誌
(1)/var/log/messages
日誌文件。檢查/var/log/messages
日誌文件,查看外部用戶的登錄情況。
(2)history
文件。檢查用戶主目錄/home/username
下的歷史文件,即“.history
”文件。
6.防止ping
在/etc/rc.d/rc.local
文件增加:“echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
”,防止別人ping自己的系統,從而增加系統的安全性。
vi /etc/rc.d/rc.local
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
7.防IP欺騙
在/etc/host.conf
文件增加一行:“nospoof on
”,防止IP欺騙。
8.使用ssh遠程登錄Linux系統。
9.刪除或禁用r字頭命令(rm
,rmdir
,reboot
)。
[root@localhost /]# rm –r /var/log/ yum.log 刪除文件
[root@localhost /]#cd /var/log
[root@localhost log]# rm -rf * 強行刪除當前目錄內所有文件(非常不安全!)
[root@localhost log]# whereisrm
[root@localhost log]# ls -l /bin/rm
-rwxr-xr-x. 1 root root 58960 Nov 22 2013 /bin/rm
利用alias 修改命令功能以到達禁用原命令功能的目的
10.使用防火牆iptables,防止網絡攻擊。
11.使用表中的命令對系統進行系統安全檢查。
#Whoami 當前用戶?
#W 所有登錄用戶包括網絡登錄的?
#Who 所有登錄用戶包括網絡登錄的?
#history 歷史命令記錄
#clear 清屏
#last 曾經登錄的用戶
#top 活動進程
#netstat 查看網絡狀態