14.安全加固

一. 賬號安全
1. 賬號鎖定
passwd -l scu
passwd -u scu

本質:在/etc/shadow密碼列前增加”!”

  1. 口令策略
    vi /etc/login.defs
    PASS_MAX_DAYS 90 # 密碼最長使用天數
    PASS_MIN_DAYS 0
    PASS_WARN_AGE 7 # 密碼到期提前預警天數
    PASS_MIN_LEN 8 # 密碼最小長度,若使用pam_cracklib,該參數不再有效

  2. 禁止非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

  1. 禁止新增用戶、刪除用戶和修改密碼
    chattr +i /etc/passwd
    chattr +i /etc/shadow

  2. root密碼不過期
    chage -M 99999 root

  3. 忘記root密碼
    1) 重啓進入單人模式,使用passwd修改
    2) 以Live CD開機後掛載根目錄,清空/etc/shadow中root密碼字段

二. 最小化服務
1. 運行級別
runlevel (who -r)

  1. 停止和禁用無關服務
    chkconfig –list
    service nfs stop
    chkconfig –level 3 nfs off

chkconfig –level 3,5 nfs on

三. 數據訪問控制
1. 設置系統全局umask
vi /etc/profile
umask 027

  1. 歡迎信息,不要在配置中暴露系統信息,刪除\r, \l等內核信息
    /etc/redhat-release
    /etc/SuSE-release
    /etc/issue
    /etc/motd

  2. 增強/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

  1. 增強/dev/shm的安全性
    vi /etc/fstab
    shm /dev/shm tmpfs defaults,nosuid,noexec,rw,size=24541576K 0 0

  2. 文件系統權限

所有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

  1. 限定ssh遠程登錄IP
    vi /etc/ssh/sshd_config
    AllowUsers @10.134..*

service sshd restart

  1. 禁止遠程root登錄
    vi /etc/ssh/sshd_config
    PermitRootLogin no

  2. 限定信任主機
    從配置文件中刪除不必要的主機
    /etc/hosts.equiv
    $HOME/.rhosts

  3. 屏蔽Banner信息
    vi /etc/ssh/sshd_config
    Banner NONE

vi /etc/motd (清空文件)

  1. 防止誤使用Ctrl+Alt+Del重啓系統
    vi /etc/inittab

ca::ctrlaltdel:/sbin/shutdown -r -t 4 now

  1. SSH安全,禁用sshv1,使用sshv2
    vi /etc/ssh/sshd_config
    Protocol 2

service sshd restart

ssh -2 [email protected]

  1. 禁用telnet
    vi /etc/xinetd.d/telnet
    disable = yes

service xinetd restart

  1. 限制訪問inet服務
    vi /etc/hosts.deny
    ALL : 10.137.5.155

  2. 監聽端口
    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

  1. 設置自動註銷時間
    vi /etc/profile
    export TMOUT=600 (600seconds)

  2. 限制ftp用戶登錄
    vi /etc/ftpusers
    root (禁止root用戶登錄ftp)

  3. 設置命令歷史數
    vi /etc/profile
    export HISTSIZE=1000
    export HISTFILESIZE=1000

  4. 禁用代碼編譯

添加編譯組

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

  1. 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

  1. 系統日誌個數和大小
    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
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章