Ubuntu系統加固方案


1、刪除系統不需要的默認賬號

# userdel lp
# groupdel lp
#passwd –l lp
如果下面這些系統默認帳號不需要的話,建議刪除。
lp, sync news, uucp, games, bin、man
修改一些系統帳號的shell變量,例如uucp,ftp和news等,還有一些僅僅需要FTP功能的帳號,一定不要給他們設置/bin/bash或者/bin/sh等Shell變量。可以在/etc/passwd中將它們的shell變量設為/bin/false或者/dev/null等,也可以使用usermod -s /dev/null

2、限制超級管理員遠程登錄
參考配置操作
SSH:
#vi /etc/ssh/sshd_config

PermitRootLogin yes
改為
PermitRootLogin no
重啟sshd服務
#service sshd restart

3、修改ssh端口
Vi /etc/ssh/sshd_config
修改
Port 22
修改成其他端口,迷惑非法試探者
Linux下SSH默認的端口是22,為了安全考慮,現修改SSH的端口為1433,修改方法如下 :
/usr/sbin/sshd -p 1433

CONSOLE:
在/etc/securetty文件中配置:CONSOLE = /dev/tty01

#service sshd restart

3、缺省密碼生存周期限制
cat /etc/login.defs
參考配置操作
PASS_MAX_DAYS 90
PASS_MIN_DAYS 0

4、設置關鍵目錄的權限

參考配置操作
通過chmod命令對目錄的權限進行實際設置。
補充操作說明
etc/passwd 必須所有用戶都可讀,root用戶可寫 –rw-r—r—
/etc/shadow 只有root可讀 –r--------
/etc/group 必須所有用戶都可讀,root用戶可寫 –rw-r—r—
使用如下命令設置:
chmod 644 /etc/passwd
chmod 600 /etc/shadow
chmod 644 /etc/group
如果是有寫權vi限,就需移去組及其它用戶對/etc的寫權限(特殊情況除外)
執行命令#chmod -R go-w /etc

 

5、修改umask值
參考配置操作
設置默認權限:
vi /etc/profile
vi /etc/bash.bashrc
在末尾增加umask 027
修改文件或目錄的權限,操作舉例如下:
#chmod 444 dir ; #修改目錄dir的權限為所有人都為只讀。
根據實際情況設置權限;
補充操作說明
如果用戶需要使用一個不同於默認全局系統設置的umask,可以在需要的時候通過命令行設置,或者在用戶的shell啟動文件中配置
補充說明
umask的默認設置一般為022,這給新創建的文件默認權限755(777-022=755),這會給文件所有者讀、寫權限,但只給組成員和其他用戶讀權限。
umask的計算:
umask是使用八進制數據代碼設置的,對於目錄,該值等於八進制數據代碼777減去需要的默認權限對應的八進制數據代碼值;對於文件,該值等於八進制數據代碼666減去需要的默認權限對應的八進制數據代碼值。

 

6、資源限制
參考配置操作
第一步
編輯limits.conf文件
(vi /etc/security/limits.conf),加入或改變下面這些行:
* soft core 0
* hard core 0
* hard rss 5000
* hard nproc 20
* soft nofile 10000
* hard nofile 10000

如果限制limitu用戶組對主機資源的使用,
加入:
@limitu soft core 0
@limitu hard nproc 30
@limitu - maxlogins 5

這些行的的意思是:“core 0”表示禁止創建core文件;“nproc 20”把最多進程數限制到20;“rss 5000”表示除了root之外,其他用戶都最多只能用5M內存。上面這些都只對登錄到系統中的用戶有效。通過上面這些限制,就能更好地控制系統中的用戶對進程、core文件和內存的使用情況。星號“*”表示的是所有登錄到系統中的用戶。
第二步

必須編輯/etc/pam.d/login文件,在文件末尾加入下面這一行:
session required /lib/security/pam_limits.so
補充說明:
加入這一行后“/etc/pam.d/sudologin”文件是這樣的:
#%PAM-1.0 auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_pwdb.so shadow nullok
auth required /lib/security/pam_nologin.so a
ccount required /lib/security/pam_pwdb.so password required /lib/security/pam_cracklib.so
password required /lib/security/pam_pwdb.so
nullok use_authtok md5 shadow
session required /lib/security/pam_pwdb.so
session required /lib/security/pam_limits.so
#session optional /lib/security/pam_console.sodaemon
統計進程數量 ps ax | grep httpd | wc -l

 

7、設置目錄權限

參考配置操作
查看重要文件和目錄權限:ls –l
更改權限:
對於重要目錄,建議執行如下類似操作:
# chmod -R 750 /etc/init.d/*
這樣只有root可以讀、寫和執行這個目錄下的腳本。

 

8、設置關鍵文件的屬性

# lsattr /etc/shadow
# lsattr /etc/passwd
# lsattr /etc/group
1、參考配置操作
# chattr +i /etc/shadow
# chattr +i /etc/passwd
# chattr +i /etc/group

建議管理員對關鍵文件進行特殊設置(不可更改或只能追加等)。

 

 

9、使用PAM禁止任何人su為root
參考配置操作
編輯su文件(vi /etc/pam.d/su),在開頭添加下面兩行:
auth sufficient /lib/security/pam_rootok.so
auth required /lib/security/pam_wheel.so group=wheel
這表明只有wheel組的成員可以使用su命令成為root用戶。你可以把用戶添加到wheel組,以使它可以使用su命令成為root用戶。添加方法為:
# chmod –G10 username

 

10、更改主機解析地址的順序

“/etc/host.conf” 說明了如何解析地址。編輯“/etc/host.conf” 文件(vi /etc/host.conf),加入下面該行:
# Lookup names via DNS first then fall back to /etc/hosts. order bind,hosts
multi on
# Check for IP address spoofing
nospoof on
第一項設置首先通過DNS解析IP地址,然后通過hosts文件解析。第二項設置檢測是否“/etc/hosts”文件中的主機是否擁有多個IP地址(比如有多個以太口網卡)。第三項設置說明要注意對本機未經許可的IP欺騙。

 


11、打開syncookie
# echo 1 > /proc/sys/net/ipv4/tcp_syncookies

net.ipv4.tcp_syncookies = 1

可以加入/etc/rc.d/rc.local中。/

12、
不響應ICMP請求:
# echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

13、
參考配置操作
sysctl -w net.ipv4.tcp_max_syn_backlog = 2048

永久有效需要在vim /etc/sysctl.conf 直接添加上述net.ipv4.tcp_max_syn_backlog = 2048,而后執行sysctl -p

上述操作主要是對ubuntu、Linux系統進行評估分析,做了幾個方面的安全加固,主要策略涉及到如下幾點:

  1.  取消所有服務器的root遠程ssh登錄,限制su - root的用戶權限,同時ssh登錄端口調整,外網ssh登錄全部調整;
  2. 調整密碼過期時間和復雜度;
  3. 調整網絡泛洪、SYN等防攻擊策略參數;
  4. 清理服務器無效賬戶如lp、news等,調整系統關鍵目錄權限;
  5. 優化服務器連接數參數;
  6. 日志管理:登錄認證記錄等;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM