一. 賬號安全
1. 賬號鎖定
passwd -l scu
passwd -u scu
本質:在/etc/shadow密碼列前增加”!”
口令策略
vi /etc/login.defs
PASS_MAX_DAYS 90 # 密碼最長使用天數
PASS_MIN_DAYS 0
PASS_WARN_AGE 7 # 密碼到期提前預警天數
PASS_MIN_LEN 8 # 密碼最小長度,若使用pam_cracklib,該參數不再有效禁止非wheel組用戶su至root
vi /etc/pam.d/su
auth required /lib/security/pam_wheel.so # 默認group=wheel
auth required /lib/security/pam_wheel.so group=users
vi /etc/login.defs (Redhat)
SU_WHEEL_ONLY yes
禁止新增用戶、刪除用戶和修改密碼
chattr +i /etc/passwd
chattr +i /etc/shadowroot密碼不過期
chage -M 99999 root忘記root密碼
1) 重啓進入單人模式,使用passwd修改
2) 以Live CD開機後掛載根目錄,清空/etc/shadow中root密碼字段
二. 最小化服務
1. 運行級別
runlevel (who -r)
- 停止和禁用無關服務
chkconfig –list
service nfs stop
chkconfig –level 3 nfs off
chkconfig –level 3,5 nfs on
三. 數據訪問控制
1. 設置系統全局umask
vi /etc/profile
umask 027
歡迎信息,不要在配置中暴露系統信息,刪除\r, \l等內核信息
/etc/redhat-release
/etc/SuSE-release
/etc/issue
/etc/motd增強/tmp目錄的安全性
備份/tmp目錄
mdkir /tmp_backup
cp -pr /tmp/* /tmp_backup 或者cp -R /tmp/ /tmp_backup
創建100M空文件
dd if=/dev/zero of=/dev/tmp bs=1024 count=100000
設置爲擴展文件系統
mke2fs /dev/tmp
掛載文件系統
chmod 0777 /tmp
mount -o loop,rw,nosuid,noexec /dev/tmp /tmp
還原備份文件
cp -pr /tmp_backup/* /tmp
rm -rf /tmp_backup
添加到fstab
vi /etc/fstab
/dev/tmp /tmp ext3 loop,rw,nosuid,noexec 0 0
增強/dev/shm的安全性
vi /etc/fstab
shm /dev/shm tmpfs defaults,nosuid,noexec,rw,size=24541576K 0 0文件系統權限
所有suid和sgid的文件
find / -type f -perm -4000 -o -perm 2000 | xargs ls -lg
沒有屬主或屬組的文件
find / -nouser -o -nogroup
group或others具有可讀權限
find / -type f -perm -2 -o -perm -20 | xargs ls -lg
find / -type d -perm -2 -o -perm -20 | xargs ls -ldg
suid和sgid文件,MD5值檢查
find / -user root -type f -perm 2000 -exec md5sum {} \;
find / -user root -type f -perm 4000 -exec md5sum {} \;
四. 網絡訪問控制
1. 開啓ssh
ps -ef | grep sshd
service sshd start
- 限定ssh遠程登錄IP
vi /etc/ssh/sshd_config
AllowUsers @10.134..*
service sshd restart
禁止遠程root登錄
vi /etc/ssh/sshd_config
PermitRootLogin no限定信任主機
從配置文件中刪除不必要的主機
/etc/hosts.equiv
$HOME/.rhosts屏蔽Banner信息
vi /etc/ssh/sshd_config
Banner NONE
vi /etc/motd (清空文件)
- 防止誤使用Ctrl+Alt+Del重啓系統
vi /etc/inittab
ca::ctrlaltdel:/sbin/shutdown -r -t 4 now
- SSH安全,禁用sshv1,使用sshv2
vi /etc/ssh/sshd_config
Protocol 2
service sshd restart
ssh -2 [email protected]
- 禁用telnet
vi /etc/xinetd.d/telnet
disable = yes
service xinetd restart
限制訪問inet服務
vi /etc/hosts.deny
ALL : 10.137.5.155監聽端口
netstat -tulp
lsof -i -n | egrep ‘COMMAND|LISTEN|UDP’
五. 用戶鑑別
1. 設置賬戶最大登錄失敗次數及鎖定時間
vi /etc/pam.d/system-auth
連續輸錯三次密碼,鎖定用戶5分鐘
auth required pam_tally.so onerr=fail deny=3 unlock_time=5
root用戶遵循上面的規則,並鎖定10分鐘
auth required pam_tally.so deny=3 unlock_time=5 even_deny_root root_unlock_time=10
解鎖用戶
faillog -u bmp -r
faillog -r
設置自動註銷時間
vi /etc/profile
export TMOUT=600 (600seconds)限制ftp用戶登錄
vi /etc/ftpusers
root (禁止root用戶登錄ftp)設置命令歷史數
vi /etc/profile
export HISTSIZE=1000
export HISTFILESIZE=1000禁用代碼編譯
添加編譯組
groupadd compiler
修改編譯器屬組
cd /usr/bin
chgrp compiler cc
chgrp compiler ++
chgrp compiler ld
chgrp compiler as
設置權限
chmod 750 cc
chmod 750 ++
chmod 750 ld
chmod 750 as
添加用戶到compiler組
vi /etc/group
compiler:x:520:user1,user2
- history安全,禁止清除和刪除命令歷史
chattr +a .bash_history
chattr +i .bash_history
六. 審計策略
1. 系統日誌策略
vi /etc/syslog-ng/syslog-ng.conf
destination messages { file(“/var/log/messages”); };
log { source(src); filter(f_messages); destination(messages); };
destination warn { file(“/var/log/warn” fsync(yes)); };
log { source(src); filter(f_warn); destination(warn); };
vi /etc/rsyslog.conf (Redhat)
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
- 系統日誌個數和大小
vi /etc/logrotate.conf
rotate log files weekly
weekly
keep 4 weeks worth of backlogs
rotate 4
create new (empty) log files after rotating old ones
create
uncomment these to switch compression to bzip2
compresscmd /usr/bin/bzip2
uncompresscmd /usr/bin/bunzip2
vi /etc/logrotate.d/syslog
/var/log/warn /var/log/messages {
compress
dateext
maxage 365
rotate 99
missingok
notifempty
size +4096k
create 640 root root
sharedscripts
postrotate
/etc/init.d/syslog reload
endscript
}