前言:雖說linux系統安全,高效,穩定,但若是平時不注意安全優化,也不會安全。本章將介紹帳戶安全,系統引導和登陸的安全,以及弱口令檢測,網絡掃描工具的使用。linux
1、帳號安全控制ios
1、系統帳號清理shell
1)如下常見的非登陸用戶要確保不被人爲改動:vim
[root@localhost ~]# grep "/sbin/nologin$" /etc/passwd bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin mail:x:8:12:mail:/var/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin 2)各類非登陸帳戶中,還有一部分是不多用到的,如news,uucp,games,gopher,這些用戶可視爲冗餘帳號,直接刪除便可 [root@localhost ~]# useradd uucp [root@localhost ~]# useradd games 2)若不肯定可否被刪除,能夠暫時鎖定 [root@localhost ~]# usermod -L zhangsan //鎖定帳號 [root@localhost ~]# passwd -S zhangsan //查看帳號狀態 zhangsan LK 2018-02-28 0 99999 7 -1 (密碼已被鎖定。) [root@localhost ~]# usermod -U zhangsan //解鎖狀態 [root@localhost ~]# passwd -S zhangsan zhangsan LK 2018-02-28 0 99999 7 -1 (密碼已被鎖定。) 2)若是服務器中的帳戶已經固定,再也不進行更改,還能夠採用鎖定帳號配置文件的方法。 使用chattr命令,分別結合+i,-i來鎖定、解鎖。使用lsattr查看文件鎖定狀況。 [root@localhost ~]# chattr +i /etc/passwd /etc/shadow //鎖定文件 [root@localhost ~]# lsattr /etc/passwd /etc/shadow //查看鎖定的狀態 ----i--------e- /etc/passwd ----i--------e- /etc/shadow [root@localhost ~]# useradd user1 //測試鎖定文件是否能建立用戶 useradd: cannot open /etc/passwd [root@localhost ~]# chattr -i /etc/passwd /etc/shadow //解鎖文件 [root@localhost ~]# useradd user1 //建立用戶 [root@localhost ~]# lsattr /etc/passwd /etc/shadow //查看爲解鎖的狀態 -------------e- /etc/passwd -------------e- /etc/shadow
二、密碼安全控制
1)設置密碼有效期爲30天
安全
修改配置文件,適合新創建的用戶bash
[root@localhost ~]# vim /etc/login.defs //適用於新建的用戶 # PASS_MAX_DAYS 30 PASS_MIN_DAYS 0 PASS_MIN_LEN 5 PASS_WARN_AGE 7
[root@localhost ~]# chage -M 30 zhangsan //適用於已有的zhangsan用戶 1)設置用戶下次登陸時重設密碼 [root@localhost ~]# chage -d 0 zhangsan //強制要求用戶zhangsan下次登錄時重設密碼 而後使用張三登陸終端 先輸入原密碼,而後再輸入兩次新密碼,注意複雜性。 三、命令歷史,自動註銷 1)修改配置文件,設置最多紀錄200條歷史命令,若是紀錄太多,容易泄露信息。 Vi /etc/profile,適用於新登陸的用戶 [root@localhost ~]# vim /etc/profile HISTSIZE=200 //修改最多記錄200條 重啓系統或者執行source /etc/profile使之生效。 執行export HISTSIZE=10適用於當前的帳戶 [zhangsan@localhost ~]$ export HISTSIZE=10 [zhangsan@localhost ~]$ history 1 sudo 2 sudo zhangsan 3 cd 4 export histsize 10 5 export HISTSIZE 10 6 exit 7 sudo ~ zhangsan 8 export HISTSIZE=10 9 history 2)當用戶退出已登陸的bash環境後,清空歷史紀錄 [zhangsan@localhost ~]$ vim ~/.bash_logout # ~/.bash_logout history -c clear 而後重啓以後從新登陸系統,執行history發現沒有歷史紀錄 1)設置超時時間,指定時間沒有任何輸入就自動註銷。 Vi /etc/profile, 適用於新登陸的用戶。 export TMOUT=600 //須要添加 執行export TMOUT=10用於當前用戶(爲了測試方便,時間調10秒),10秒以內沒有任何輸入就退出系統。也可使用unset TMOUT取消設置 2、用戶切換與提權 一、su命令:用來切換用戶,具備該用戶的全部權限。 1)su切換用戶 [root@localhost ~]# su zhangsan [zhangsan@localhost root]$ 上圖的命令只切換用戶身份,不切換用戶環境,若是想切換身份的同時切換環境,須要在su後面加「-」,以下圖: [root@localhost ~]# su - zhangsan [zhangsan@localhost ~]$ pwd /home/zhangsan 2)容許個別用戶使用su命令進行切換,須要將受權使用su命令的用戶zhangsan添加到wheel組,修改/etc/pam.d/su認證配置 [root@localhost ~]# vim /etc/pam.d/su #%PAM-1.0 auth sufficient pam_rootok.so # Uncomment the following line to implicitly trust users in the "wheel" group. #auth sufficient pam_wheel.so trust use_uid # Uncomment the following line to require a user to be in the "wheel" group. auth required pam_wheel.so use_uid //把前面的#去掉 auth include system-auth account sufficient pam_succeed_if.so uid = 0 use_uid quiet account include system-auth password include system-auth session include system-auth session optional pam_xauth.so 重啓系統以後使用zhangsan登陸,執行su - root 能夠正常切換,可是使用其餘用戶提示密碼不正確,登陸失敗。 [zhangsan@localhost ~]$ su - root 密碼: [root@localhost ~]# su - user1 [user1@localhost ~]$ su - root 密碼: su: 密碼不正確 二、sudo命令,提高執行權限,可讓普通用戶擁有一部分管理權限,又不須要將root用戶的密碼告訴對方。 1)在配置文件/etc/sudoers中添加受權 例如:受權用戶jerry可以執行ifconfig命令修改ip地址,而wheel組的用戶不須要驗證密碼便可執行任何命令,能夠執行如下操做。 執行命令:Visudo user1 localhost=/sbin/ifconfig %whell ALL=NOPASSWD: ALL 當使用相同受權的用戶較多,或者受權的命令較多時,能夠採用集中定義的別名。用戶、主機、命令部分均可以定義爲別名(必須爲大寫) ,分別經過User_Alias、Host_Alias、Cmnd_Alias來進行設置如: user1 localhost=/sbin/ifconfig %whell ALL=NOPASSWD: ALL User_Alias OPERATORS=user1,lisi Host_Alias MAILSVERS=smtp,pop Cmnd_Alias PKGTOOLS=/bin/rpm,/usr/bin/yum OPERATORS MAILSVRS=PKGTOOLS 1)經過sudo命令測試特權命令 使用user1登陸系統,執行/sbin/ifconfig eth0:0 192.168.1.10,提示失敗,權限不夠。 [useer1@localhost ~]$ /sbin/ifconfig eth0:0 192.168.1.10 SIOCSIFADDR: 權限不夠 SIOCSIFFLAGS: 權限不夠 若是在命令前面加上sudo,執行成功 [user1@localhost ~]$ sudo /sbin/ifconfig eth0:0 192.168.1.10 [user1@localhost ~]$ 3、系統引導和登陸控制 一、開關機安全控制 1)調整biso引導控制 將第一引導設備設置爲當前系統所在磁盤,禁止從光盤,u盤,網絡等引導系統,將bios設置好管理密碼。 2)禁止ctrl+alt+del重啓系統系統 [root1@localhost ~]$ vim /etc/init/control-alt-delete.conf #start on control-alt-delete #exec /sbin/shutdown -r now "Control-Alt-Delete pressed" 重啓系統以後,按ctrl+alt+del沒法重啓系統(在終端中測試) 1)限制更改grub引導參數 首先使用grub-md5-mcypt生成加密的密碼 [root@localhost ~]# grub-md5-crypt //根據提示指定密碼 Password: Retype password: $1$KhOqk/$J2NoMloU58XvJ10jo/TBe1 //通過加密的密碼字符竄 而後修改配置文件,把密文添加到第一個title以前,以下: [root@localhost ~]# vim /boot/grub/grub.conf password --md5 $1$KhOqk/$J2NoMloU58XvJ10jo/TBe1 //添加到第一個title以前 title CentOS (2.6.32-431.el6.x86_64) 重啓系統進入grub菜單,若是想修改引導參數,必須先按p輸入密碼,而後按e才能編輯引導參數 而後按e就能夠編輯了 二、終端及登陸控制 1)減小開放的tty終端個數,禁用tty1,tty2,tty3 [root@localhost ~]# vim /etc/init/start-ttys.conf env ACTIVE_CONSOLES=/dev/tty[456] //修改成456 env X_TTY=/dev/tty1 [root@localhost ~]# vim /etc/sysconfig/init AUTOSWAP=no # What ttys should gettys be started on? ACTIVE_CONSOLES=/dev/tty[456] //修改成456 # Set to '/sbin/sulogin' to prompt for password on single-user mode # Set to '/sbin/sushell' otherwise SINGLE=/sbin/sushell 注意兩個文件都須要更改 2)禁止root用戶從tty5和tty6終端登陸 [root@localhost ~]# vim /etc/securetty ..... //省略部份內容 #tty5 #tty6 3)禁止普通用戶登陸,只須要創建/etc/nologin文件便可,若是恢復普通用戶登陸,刪除這個文件便可 Touch /etc/nologin 而後使用普通用戶登陸測試