CentOS6.x基礎工作環境配置
一、系統安裝
系統安裝時采用最小化原則,只安裝base services。安裝完畢后首先運行yum update 更新系統,重啟。
二、基本系統配置
1、同步系統時間
ntpdate cn.pool.ntp.org;hwclock --systohc
將系統時間同步寫入crontab,每天零時自動校時。
crontab -e
0 * * * * ntpdate cn.pool.ntp.org;hwclock --systohc
2、禁用不必要的系統服務
chkconfig --level 0123456 cups off
chkconfig --level 0123456 ip6tables off
#如未啟用nfs,則相關服務可以關閉
chkconfig --level 0123456 netfs off
chkconfig --level 0123456 nfslock off
#如無郵件需求,則相關服務可以關閉
chkconfig --level 0123456 postfix off
3、刪除不必要的系統用戶
/usr/sbin/userdel adm
/usr/sbin/userdel lp
/usr/sbin/userdel shutdown
/usr/sbin/userdel halt
/usr/sbin/userdel news
/usr/sbin/userdel uucp
/usr/sbin/userdel operator
/usr/sbin/userdel games
/usr/sbin/userdel gopher
#如不使用ftp服務則刪除ftp用戶
/usr/sbin/userdel ftp
#如不使用同步服務則刪除sync用戶
/usr/sbin/userdel sync
4、處理/etc/sysctl.conf
編輯/etc/sysctl.conf添加如下內容,保存退出。
net.ipv4.tcp_max_syn_backlog = 4096 #限定SYN隊列的長度
net.ipv4.ip_forward = 0 #禁止ip轉發功能
net.ipv4.conf.all.send_redirects = 0 #禁止轉發重定向報文
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.rp_filter = 1 #打開反向路徑過濾功能,防止ip地址欺騙
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.accept_source_route = 0 #禁止包含源路由的ip包
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_redirects = 0 #禁止接收路由重定向報文,防止路由表被惡意更改
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0 #只接受來自網關的“重定向”icmp報文
net.ipv4.conf.default.secure_redirects = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1 # 禁止ICMP重定向
更改文件屬性
chmod 600 /etc/sysctl.conf
5、只允許root執行cron/at
echo root > /etc/cron.allow
echo root > /etc/at.allow
chown root:root /etc/cron.allow
chown root:root /etc/at.allow
chmod 400 /etc/cron.allow
chmod 400 /etc/at.allow
6、修改系統Banner
編輯 /etc/issue、/etc/issue.net兩個文件刪除所有系統相關信息,建議改為“Welcome to Server”。
7、處理/etc/hosts.equiv
A、不需要/etc/hosts.equiv
預先生成/etc/hosts.equiv文件,並且設置權限為0000,防止被寫入"++"。
B、需要/etc/hosts.equiv
·文件屬主確保為root,設置權限為0600,防止被寫入"++"。
·如果使用NIS或者NIS+的話,此文件中的組應該是容易管理的。
·信賴主機使用全名
·任何時候都不應該出現”+”字符
·文件中不要使用'!' 和'#'符號,因為在該文件中那並不表示注釋信息
·文件開始字符不應該為'-'.,請查閱C8
·確保該文件的訪問權限被設置成600。
·在每次安裝補丁程序或操作系統之后,都應該重新檢查該文件夾的設置情況
8、處理/etc/aliases
修改/etc/aliases文件,注釋掉decode、games、ingress、system、toor、manager,在文件最后加入root: <填寫管理員郵箱>,保存退出。使用/usr/bin/newaliases命令激活新配置。確保文件屬主為root。
9、禁止ctrl+alt+del重啟
CentOS 6.x :
編輯/etc/init/control-alt-delete.conf,注釋
start on control-alt-delete
exec /sbin/shutdown -r now "Control-Alt-Delete pressed"
保存退出,重啟后生效。
CentOS 5.x :
編輯/etc/inittab,注釋
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
保存退出。執行/sbin/init q ,使設置生效。
10、設置用戶口令安全機制
編輯 /etc/login.defs,修改如下內容
PASS_MAX_DAYS 90 #口令需要修改的天數,根據實際情況設置
PASS_MIN_DAYS 7 #口令不可修改的天數,根據實際情況設置
PASS_MIN_LEN 7 #口令最小長度
PASS_WARN_AGE 28 #警告期限
11、禁止root直接登陸
echo "console" > /etc/securetty
12、修改/etc/rc.d/init.d目錄中腳本文件權限,確保只有root帳號可以執行。
chmod -R 700 /etc/rc.d/init.d/*
13、禁止在/etc/passwd中包含個人信息
14、調整history大小
編輯/etc/profile,將HISTSIZE改為0或適當的值,保存退出。
清空當前history,執行history -c 。
立即寫入history,執行history -w 。
三、日常運維
1、查找無明確屬主的文件
find / -nouser -nogroup
2、查找所有用戶可寫文件和目錄
find / -type f -perm +002
find / -type d -perm +002
3、查找空口令用戶,應該為空
awk -F: '($2 == "") { print $1 }' /etc/shadow
4、查找UID為0的用戶,應該只有root
awk -F: '($3 == 0) { print $1 }' /etc/passwd
5、檢查/etc/profile,禁止$PATH含當前目錄".",也可通過下面的命令查找
echo $PATH | egrep '(^|:)(\.|:|$)'
6、查找具有suid、sgid權限的文件
find / -perm -6000
7、檢查除/dev以外,是否有特殊的塊文件
find / \( -type b -o -type c \) -print | grep -v '^/dev/'
四、重要文件及目錄權限配置標准
| 文件或目錄名稱 |
所屬 |
權限 |
| /etc/passwd |
root:root |
-rw-r--r-- |
| /etc/shadow |
root:root |
-rw-r--r-- |
| /etc/group |
root:root |
-rw-r--r-- |
| /etc/hosts |
root:root |
-rw-r--r-- |
| /etc/services |
root:root |
-rw-r--r-- |
| /tmp |
root:root |
-rw-rw-rwt |
| /var/tmp |
root:root |
-rw-rw-rwt |
五、其他
1、安全配置基本原則
只對外開放所需要的服務,關閉所有不需要的服務。對外提供的服務越少,所面臨的外部威脅越小。
將所需的不同服務分布在不同的主機上,這樣不僅提高系統的性能,同時便於配置和管理,減小系統的安全風險。
