1.帳號安全控制
2.系統引導和登陸控制
3.弱口令檢測
4.端口掃描linux
(1)在Linux系統中,除了用戶手動建立的各類帳號以外,還包括一些隨系統或程序安裝過程而產生的其餘大量帳號。除了root用戶,大部分的非登陸用戶(bin、daemon、adm、nobody、lp、apache等)是不能登陸的。c++
使用grep命令能夠查看非登陸用戶以下:git
[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 operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:999:998:User for polkitd:/:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin libstoragemgmt:x:998:996:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin colord:x:997:995:User for colord:/var/lib/colord:/sbin/nologin saslauth:x:996:76:Saslauthd user:/run/saslauthd:/sbin/nologin rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin chrony:x:995:991::/var/lib/chrony:/sbin/nologin rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin geoclue:x:994:989:User for geoclue:/var/lib/geoclue:/sbin/nologin qemu:x:107:107:qemu user:/:/sbin/nologin radvd:x:75:75:radvd user:/:/sbin/nologin setroubleshoot:x:993:988::/var/lib/setroubleshoot:/sbin/nologin sssd:x:992:987:User for sssd:/:/sbin/nologin gdm:x:42:42::/var/lib/gdm:/sbin/nologin gnome-initial-setup:x:991:986::/run/gnome-initial-setup/:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologi avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin
(2)而對於Linux服務器中長期不用的用戶帳號,若沒法肯定是否應該刪除,能夠暫時將其鎖定。shell
[root@localhost ~]# usermod -L zhangsan [root@localhost ~]# passwd -S zhangsan zhangsan LK 2019-11-15 0 99999 7 -1 (密碼已被鎖定。) [root@localhost ~]# passwd -u zhangsan 解鎖用戶 zhangsan 的密碼。 passwd: 操做成功
(3)固然,在服務器中若是說用戶帳號已經固定,再也不更改,還能夠採起鎖定帳號配置文件的方法,使用chattr(change attribution —更改文件狀態)命令。apache
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow [root@localhost ~]# lsattr /etc/passwd /etc/shadow ----i----------- /etc/passwd ----i----------- /etc/shadow [root@localhost ~]# useradd lisi useradd:沒法打開 /etc/passwd [root@localhost ~]# chattr -i /etc/passwd /etc/shadow [root@localhost ~]# lsattr /etc/passwd /etc/shadow ---------------- /etc/passwd ---------------- /etc/shadow [root@localhost ~]# useradd lisi
命令解釋:+i表示鎖定,-i表示解鎖,lsattr表示查看狀態vim
設定密碼期限的方法結合實例來說述安全
[root@localhost ~]#head -25 /etc/login.defs |tail -1 PASS_MAX_DAYS 99999 [root@localhost ~]# vim /etc/login.defs [root@localhost ~]# head -25 /etc/login.defs |tail -1 PASS_MAX_DAYS 30 [root@localhost ~]# useradd wangwu [root@localhost ~]# passwd wangwu 更改用戶 wangwu 的密碼 。 新的 密碼: 無效的密碼: 密碼少於 8 個字符 從新輸入新的 密碼: passwd:全部的身份驗證令牌已經成功更新。 [root@localhost ~]# tail -1 /etc/shadow wangwu:$6$pDVLca5K$iy9JAb4PzbG14d3XfG8ei7dV0YnJFjOwRJVMzs3bMFyp.XPEkv0WO5XaGViv.4.n1jp5fPSCDHanJh2j3Am4f1:18215:0:30:7:::
操做解釋:查看/etc/login.defs文件中第25行內容,用vim編輯器進去修改,將其改成30,表示最長使用時間,即密碼的有效期爲30天。該方式只針對以後新建的用戶,那麼對於原有用戶如何操做呢?答案是使用chage命令。bash
[root@localhost ~]# tail -3 /etc/passwd zhangsan:x:1001:1001::/home/zhangsan:/bin/bash lisi:x:1002:1002::/home/lisi:/bin/bash wangwu:x:1003:1003::/home/wangwu:/bin/bash [root@localhost ~]# chage -M 20 lisi [root@localhost ~]# chage -M 20 wangwu [root@localhost ~]# tail -3 /etc/shadow zhangsan:$6$WsyIZguS$ZsJObVyyFzwxT2p0RoIemdrQjLUmoKDkzY8DlrtctYLBzxl0ja3rcp84BP3D5MTHfK.pj1IKAZpezYUwv1d/p0:18215:0:99999:7::: lisi:$6$yo1cSlqf$tR5J63h7yOdhqearLDVb8nOfpBlJE6Oem9h4bkREzCRDBA.7OsT.wsX5zJ3I.BUbHxfaw56JbP0IkDyAGwbCi0:18215:0:20:7::: wangwu:$6$pDVLca5K$iy9JAb4PzbG14d3XfG8ei7dV0YnJFjOwRJVMzs3bMFyp.XPEkv0WO5XaGViv.4.n1jp5fPSCDHanJh2j3Am4f1:18215:0:20:7:::
固然了,若是是批量建立的用戶初次登陸時必須自設密碼,由管理員執行強制策略,以便下次登陸時必須修改密碼。使用「chage -d 0 用戶名」來進行設置。服務器
通常狀況下,歷史命令默認是記錄1000條,對於新登陸用戶修改/etc/profile文件將HISTSIZE更改便可網絡
當前用戶則直接在當前bash終端更改:export HISTSIZE=100
[root@localhost ~]# echo "HISTSIZE=10" >> /etc/profile //對於新登陸用戶 [root@localhost ~]# tail -1 /etc/profile HISTSIZE=10 [root@localhost ~]#su - lisi [lisi@localhost ~]$ history 22 clear 23 ls 24 cd /etc/ 25 ls 26 cd .. 27 cd 28 ls 29 history 30 ls 31 history [root@localhost ~]# export HISTSIZE=5 //對於當前bash終端用戶 [root@localhost ~]# history 6 grub2-mkconfig -o /boot/grub2/grub.cfg 7 init 6 8 cd 9 export HISTSIZE=5 10 history
固然,還能夠修改用戶宿主目錄下的~/.bash_logout文件,當用戶退出後所記錄的歷史命令將自動清空。
也能夠設置一個閒置超時時間——多久不操做就自動註銷(修改TMOUT變量,不推薦)
[root@localhost ~]# cat ~/.bash_logout # ~/.bash_logout [root@localhost ~]# echo "history -c" >> ~/.bash_logout [root@localhost ~]# echo "clear" >> ~/.bash_logout [root@localhost ~]# cat ~/.bash_logout # ~/.bash_logout history -c clear [root@localhost ~]# source ~/.bash_logout [root@localhost ~]# history 3 history [root@localhost ~]#
通常狀況下,大多數Linux服務器不建議用戶直接以root用戶進行登陸。一方面能夠大大減小因誤操做而致使的破壞,另外一方面也下降了特權密碼在不安全的網絡中被泄露的風險。
在Linux系統爲咱們提供su、sudo兩種命令,其中su命令主要用來切換用戶,而sudo命令用來提高執行的權限。
su命令,能夠切換爲指定的另外一個用戶,從而具備該用戶的全部權限。其中選項「-」表示切換用戶後進入目標用戶的登陸shell環境,若沒有選擇該選項,則只是切換用戶,不切換用戶環境。對於切換爲root用戶的狀況,「root」能夠省略。
默認狀況下,任何用戶都容許使用su命令,從而有機會反覆嘗試其餘用戶的登陸密碼,帶來安全風險。爲了增強su命令的使用控制,能夠藉助於pam_wheel認證模塊,只容許個別用戶使用su命令進行切換。具體實例以下:
[root@localhost ~]# su - lisi 上一次登陸:五 11月 15 10:24:08 CST 2019pts/0 上 [lisi@localhost ~]$ su - 密碼: 上一次登陸:五 11月 15 10:25:26 CST 2019從 192.168.68.1pts/1 上 [root@localhost ~]# su zhangsan [zhangsan@localhost root]$ su 密碼: [root@localhost ~]# gpasswd -a zhangsan wheel 正在將用戶「zhangsan」加入到「wheel」組中 [root@localhost ~]# grep wheel /etc/group wheel:x:10:zhangsan [root@localhost ~]# head -6 /etc/pam.d/su | tail -1 #auth required pam_wheel.so use_uid [root@localhost ~]# vim /etc/pam.d/su [root@localhost ~]# head -6 /etc/pam.d/su | tail -1 auth required pam_wheel.so use_uid [root@localhost ~]# su - lisi 上一次登陸:五 11月 15 10:48:56 CST 2019pts/1 上 [lisi@localhost ~]$ su - 密碼: su: 拒絕權限 [lisi@localhost ~]$ exit 登出 [root@localhost ~]# su - zhangsan 上一次登陸:五 11月 15 10:49:10 CST 2019pts/1 上 最後一次失敗的登陸:五 11月 15 10:56:24 CST 2019pts/1 上 最有一次成功登陸後有 1 次失敗的登陸嘗試。 [zhangsan@localhost ~]$ su - 密碼: 上一次登陸:五 11月 15 10:49:17 CST 2019pts/1 上 最後一次失敗的登陸:五 11月 15 10:57:26 CST 2019pts/1 上 最有一次成功登陸後有 2 次失敗的登陸嘗試。
命令解釋:
使用gpasswd命令將zhangsan用戶添加到wheel組中,編輯/etc/pam.d/su文件,刪除第6行的#號,嘗試切換其餘用戶,因爲lisi不在wheel組中,因此是拒絕權限的,可是張三能夠正常切換到root,是由於他在wheel組中。su命令的執行操做將會記錄到安全日誌/var/log/secure中。
[root@localhost ~]# vim /var/log/secure 1 Nov 14 11:43:22 localhost polkitd[572]: Loading rules from directory /etc/polkit-1/rules.d 2 Nov 14 11:43:22 localhost polkitd[572]: Loading rules from directory /usr/share/polkit-1/rules.d 3 Nov 14 11:43:22 localhost polkitd[572]: Finished loading, compiling and executing 8 rules 4 Nov 14 11:43:22 localhost polkitd[572]: Acquired the name org.freedesktop.PolicyKit1 on the system bus 5 Nov 14 11:43:23 localhost sshd[1030]: Server listening on 0.0.0.0 port 22. 6 Nov 14 11:43:23 localhost sshd[1030]: Server listening on :: port 22. 7 Nov 14 11:44:00 localhost polkitd[572]: Registered Authentication Agent for unix-process:10820:4415 (system bus name :1.133 [/usr/bin/pkttyagent --no tify-fd 5 --fallback], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8) 8 Nov 14 11:44:00 localhost polkitd[572]: Unregistered Authentication Agent for unix-process:10820:4415 (system bus name :1.133, object path /org/freed esktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8) (disconnected from bus) 9 Nov 14 11:44:00 localhost polkitd[572]: Registered Authentication Agent for unix-process:10843:4423 (system bus name :1.134 [/usr/bin/pkttyagent --no tify-fd 5 --fallback], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8) 10 Nov 14 11:44:00 localhost polkitd[572]: Unregistered Authentication Agent for unix-process:10843:4423 (system bus name :1.134, object path /org/freed esktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8) (disconnected from bus) 11 Nov 14 11:44:00 localhost gdm-launch-environment]: pam_unix(gdm-launch-environment:session): session opened for user gdm by (uid=0) 12 Nov 14 11:44:01 localhost polkitd[572]: Registered Authentication Agent for unix-session:c1 (system bus name :1.140 [/usr/bin/gnome-shell], object pa th /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8) 13 Nov 14 11:44:11 localhost gdm-password]: pam_unix(gdm-password:session): session opened for user root by (uid=0) 14 Nov 14 11:44:11 localhost polkitd[572]: Unregistered Authentication Agent for unix-session:c1 (system bus name :1.140, object path /org/freedesktop/P olicyKit1/AuthenticationAgent, locale zh_CN.UTF-8) (disconnected from bus) 15 Nov 14 11:44:12 localhost polkitd[572]: Registered Authentication Agent for unix-session:1 (system bus name :1.161 [/usr/bin/gnome-shell], object pat h /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8) 16 Nov 14 20:21:09 localhost polkitd[572]: Registered Authentication Agent for unix-process:19734:78501 (system bus name :1.254 [/usr/bin/pkttyagent --n otify-fd 5 --fallback], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8) 17 Nov 14 20:21:11 localhost polkitd[572]: Unregistered Authentication Agent for unix-process:19734:78501 (system bus name :1.254, object path /org/free desktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8) (disconnected from bus) 18 Nov 14 20:21:25 localhost sshd[20138]: Accepted password for root from 192.168.68.1 port 59169 ssh2 19 Nov 14 20:21:25 localhost sshd[20138]: pam_unix(sshd:session): session opened for user root by (uid=0) 20 Nov 14 20:21:46 localhost sshd[20138]: pam_unix(sshd:session): session closed for user root 21 Nov 15 09:24:35 localhost polkitd[572]: Registered Authentication Agent for unix-process:24514:117799 (system bus name :1.302 [/usr/bin/pkttyagent -- notify-fd 5 --fallback], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8) 22 Nov 15 09:25:41 localhost polkitd[555]: Loading rules from directory /etc/polkit-1/rules.d 23 Nov 15 09:25:41 localhost polkitd[555]: Loading rules from directory /usr/share/polkit-1/rules.d 24 Nov 15 09:25:41 localhost polkitd[555]: Finished loading, compiling and executing 8 rules 25 Nov 15 09:25:41 localhost polkitd[555]: Acquired the name org.freedesktop.PolicyKit1 on the system bus 26 Nov 15 09:25:42 localhost sshd[951]: Server listening on 0.0.0.0 port 22. 27 Nov 15 09:25:42 localhost sshd[951]: Server listening on :: port 22.
注意:務必編輯/etc/pam.d/su文件!才能正常操做,不然都是默認正常切換的。
(1)在配置文件/etc/sudoers中添加受權(注意須要:wq!強制保存)
首先咱們來看一下這個配置文件
[root@localhost ~]# grep -v "^#" /etc/sudoers //反向檢索出不是以#號開頭的內容 Defaults !visiblepw Defaults always_set_home Defaults match_group_by_gid Defaults env_reset Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS" Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE" Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES" Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE" Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY" Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin root ALL=(ALL) ALL %wheel ALL=(ALL) ALL
其中咱們看最後的兩個,root 和%wheel,分別表示root用戶能夠執行全部權限,在wheel組中的成員也能夠執行全部權限。
那咱們使用一個不屬於wheel組的用戶,賦予他一個修改ip地址的權限來驗證。
[root@localhost ~]# vim /etc/sudoers //在該文件中添加命令:lisi localhost=/sbin/ifconfig [root@localhost ~]# su - lisi 上一次登陸:五 11月 15 10:55:54 CST 2019pts/1 上 [lisi@localhost ~]$ su - 密碼: su: 拒絕權限 [lisi@localhost ~]$ ifconfig ens33 1.1.1.1 //沒有使用sudo是沒法操做的 SIOCSIFADDR: 不容許的操做 SIOCSIFFLAGS: 不容許的操做 [lisi@localhost ~]$ sudo ifconfig ens33 1.1.1.1 //第一次須要輸入本身的密碼,只要不超過5min,就無需再次輸入 咱們信任您已經從系統管理員那裏瞭解了平常注意事項。 總結起來無外乎這三點: #1) 尊重別人的隱私。 #2) 輸入前要先考慮(後果和風險)。 #3) 權力越大,責任越大。 [sudo] lisi 的密碼: [lisi@localhost ~]$ ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 1.1.1.1 netmask 255.0.0.0 broadcast 1.255.255.255 inet6 fe80::7eb1:2dde:8a54:6927 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:56:d3:4a txqueuelen 1000 (Ethernet) RX packets 3105 bytes 231965 (226.5 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 981 bytes 150502 (146.9 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (Local Loopback) RX packets 16 bytes 1752 (1.7 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 16 bytes 1752 (1.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255 ether 52:54:00:71:37:09 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
PAM(Pluggable Authentication Modules),是Linux系統可插拔認證模塊。
(1)高效且靈活的用戶級別認證方式,也是當前Linux服務器廣泛使用的認證方式;
(2)其提供看=了對全部服務進行認證的中央機制,適用於login,遠程登陸等;
(3)系統管理員經過PAM配置文件來制定不一樣應用程序的不一樣認證策略。
一、認證管理(authentication management)
主要是接受用戶名和密碼,進而對該用戶的密碼進行認證,並負責設置用戶的一些祕密
信息。
二、賬戶管理(account management)
主要是檢查賬戶是否被容許登陸系統,賬號是否已通過期,賬號的登陸是否有時間段的
限制等等。
三、密碼管理(password management)
主要是用來修改用戶的密碼。
四、會話管理(session management)
主要是提供對會話的管理和記帳(accounting)。
(1)PAM認證通常遵循這樣的順序:Service(服務)→PAM(配置文件)→pam_*.so
(2)PAM認證首先要肯定那一項服務,而後加載相應的PAM的配置文件(位於/etc/pam.d下),最後調用認證文件(位於/lib/security下)進行安全認證。
例如查看su的PAM配置文件
[root@localhost ~]# cat /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 substack system-auth auth include postlogin account sufficient pam_succeed_if.so uid = 0 use_uid quiet account include system-auth password include system-auth session include system-auth session include postlogin session optional pam_xauth.so
(1)每一行都是一個獨立的認證過程
(2)每一行能夠區分爲三個字段:認證類型、控制類型和PAM模塊及其參數
備註:禁止從其餘設備引導系統操做,感受如果出現忘記root密碼就可能沒法從光驅去修改,因此仍是謹慎操做
修改/etc/securetty文件,禁止root用戶從tty6登陸就將該行註釋掉
[root@localhost ~]# vim /etc/securetty [root@localhost ~]# head -18 /etc/securetty |tail -1 #tty6
只須要建立一個/etc/nologin文件便可
[root@localhost ~]# touch /etc/nologin
[root@localhost tarpkg]# ls apr-1.4.6.tar.gz apr-util-1.4.1.tar.gz httpd-2.4.2.tar.gz john-1.8.0.tar.gz [root@localhost tarpkg]# tar zxf john-1.8.0.tar.gz -C /opt/ //解壓縮到/opt下 [root@localhost tarpkg]# ls /opt/ john-1.8.0 rh [root@localhost tarpkg]# cd /opt/john-1.8.0/ [root@localhost john-1.8.0]# ls doc README run src root@localhost john-1.8.0]# cd src/ //查看文件信息,根據內容咱們知道須要安裝編譯器 [root@localhost src]# ls AFS_fmt.c config.c ia64.h MD5_fmt.c ppc64alt.h trip_fmt.c alpha.h config.h idle.c MD5_std.c ppc64.h tty.c alpha.S cracker.c idle.h MD5_std.h recovery.c tty.h batch.c cracker.h inc.c memory.c recovery.h unafs.c batch.h crc32.c inc.h memory.h rpp.c unique.c bench.c crc32.h john.asm mips32.h rpp.h unshadow.c bench.h DES_bs_b.c john.c mips64.h rules.c vax.h best.c DES_bs.c john.com misc.c rules.h wordlist.c best.sh DES_bs.h john.h misc.h sboxes.c wordlist.h BF_fmt.c DES_fmt.c list.c nonstd.c sboxes-s.c x86-64.h BF_std.c DES_std.c list.h options.c signals.c x86-64.S BF_std.h DES_std.h LM_fmt.c options.h signals.h x86-any.h BSDI_fmt.c detect.c loader.c os.h single.c x86-mmx.h c3_fmt.c dummy.c loader.h params.c single.h x86-mmx.S charset.c external.c logger.c params.h sparc32.h x86.S charset.h external.h logger.h pa-risc.h sparc64.h x86-sse.h common.c formats.c Makefile path.c status.c x86-sse.S common.h formats.h Makefile.dep path.h status.h compiler.c getopt.c math.c ppc32alt.h symlink.c compiler.h getopt.h math.h ppc32.h times.h [root@localhost src]# ls ../run ascii.chr john.conf mailer password.lst digits.chr lm_ascii.chr makechr relbench
(2)安裝編譯器編譯安裝,獲得可執行文件john,而後運行便可破解簡單密碼。
[root@localhost src]# yum install -y gcc gcc-c++ ... //省略過程 完畢! [root@localhost src]# rpm -q gcc gcc-4.8.5-39.el7.x86_64 [root@localhost src]# rpm -q gcc-c+ [root@localhost src]# make linux-x86-64 //進行編譯 ... //省略過程 [root@localhost src]# cd ../run [root@localhost run]# ls ascii.chr john lm_ascii.chr makechr relbench unique digits.chr john.conf mailer password.lst unafs unshadow [root@localhost run]# ./john /etc/passwd /etc/shadow Loaded 3 password hashes with 3 different salts (crypt, generic crypt(3) [?/64]) Press 'q' or Ctrl-C to abort, almost any other key for status 123456 (lokott) 123456 (root) 2g 0:00:01:06 7% 2/3 0.03025g/s 284.7p/s 287.6c/s 287.6C/s pookie1..mary1 Use the "--show" option to display all of the cracked passwords reliably
根據以上步驟,咱們便可獲取root和lokott用戶的密碼了。
NMAP是個強大的端口掃描類安全評測工具,檢測主機數量衆多的巨大網絡,支持ping掃描、多端口檢測、OS識別等多種技術。使用NMAP按期掃描內部網絡,能夠找出網絡中不可控的應用服務,及時關閉不安全的服務,減少安全風險。
nmap命令
命令格式:nmap [掃描類型] [選項] <掃描目標...>
-sS:TCP SYN掃描(半開掃描)
-sT:TCP 鏈接掃描
-sF:TCP FIN掃描
-sU:UDP掃描
-sP: ICMP掃描
-P0:跳過ping檢測
[root@localhost ~]# rpm -q nmap nmap-6.40-19.el7.x86_64 [root@localhost ~]# netstat -ntap //查看tcp Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1267/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 942/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 944/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1252/master tcp 0 52 192.168.68.130:22 192.168.68.1:52378 ESTABLISHED 3578/sshd: root@pts tcp6 0 0 :::111 :::* LISTEN 1/systemd tcp6 0 0 :::22 :::* LISTEN 942/sshd tcp6 0 0 ::1:631 :::* LISTEN 944/cupsd tcp6 0 0 ::1:25 :::* LISTEN 1252/master [root@localhost ~]# netstat -nuap //查看udp Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name udp 0 0 0.0.0.0:58802 0.0.0.0:* 3456/dhclient udp 0 0 0.0.0.0:46033 0.0.0.0:* 563/avahi-daemon: r udp 0 0 192.168.122.1:53 0.0.0.0:* 1267/dnsmasq udp 0 0 0.0.0.0:67 0.0.0.0:* 1267/dnsmasq udp 0 0 0.0.0.0:68 0.0.0.0:* 3456/dhclient udp 0 0 0.0.0.0:5353 0.0.0.0:* 563/avahi-daemon: r udp6 0 0 :::42353 :::* 3456/dhclient
咱們安裝一個httpd服務,而且啓動httpd服務,會發現80端口被使用了。
[root@localhost ~]# yum install -y httpd 已加載插件:fastestmirror, langpacks ... //省略內容 [root@localhost ~]# systemctl start httpd.service [root@localhost ~]# nmap -sT 127.0.0.1 Starting Nmap 6.40 ( http://nmap.org ) at 2019-11-15 13:32 CST Nmap scan report for localhost (127.0.0.1) Host is up (0.00060s latency). Not shown: 995 closed ports PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 80/tcp open http 111/tcp open rpcbind 631/tcp open ipp Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds
本文主要介紹的是Linux/Centos7系統管理中系統安全與應用的理論知識,經過實例操做來增強對命令的理解。經過本文的學習,能夠方便查找安全隱患,從而及時採起有針對性的防禦措施。