欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

linux系統(tǒng)提供安全功能如何

林玟書2年前25瀏覽0評論

linux系統(tǒng)提供安全功能如何?

linux系統(tǒng)提供安全功能非??孔V。

一、賬號安全控制

用戶賬號是計算機使用者的身份憑證或標識,每個要訪問系統(tǒng)資源的人,必須憑借其用戶賬號才能進入計算機。在Linux系統(tǒng)中,提供了多種機制來確保用戶賬號的正當、安全地使用。

1.基本(必要)的安全措施

(1)系統(tǒng)賬號的清理

在Linux系統(tǒng)中,除了用戶手動創(chuàng)建的各種賬號之外,還包括隨系統(tǒng)或程序安裝過程而產生的其他大量的系統(tǒng)賬號。除了超級用戶root之外,其他大量賬號只是用來維護系統(tǒng)運行服務進程,一般情況是絕不允許登錄系統(tǒng)的,因此也被稱為非登錄用戶賬號。

常見的非登錄用戶賬號的登錄shell通常是/sbin/nologin,表示禁止終端登錄,應確保不被認為改動,比如:

[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

……………… //省略部分內容

各種非登錄用戶賬號中,還有相當一部分是很少用到的,比如games。這些用戶賬號被稱為冗余賬號(建議刪除)。除此之外,還有一些隨應用程序安裝的用戶賬號,若卸載應用程序后未能自動刪除,則需管理員手動將其刪除。

對于Linux服務器中長期不用的用戶賬號,若無法確定是否應該刪除,可以暫時將其鎖定。比如:

[root@localhost ~]# usermod -L q1 //鎖定賬號

[root@localhost ~]# passwd -S q1 //查看賬號狀態(tài)

q1 LK 2019-08-27 0 99999 7 -1 (密碼已被鎖定。)

[root@localhost ~]# usermod -U q1 //解鎖賬號

[root@localhost ~]# passwd -S q1

q1 PS 2019-08-27 0 99999 7 -1 (密碼已設置,使用 SHA512 算法。)

如果服務器中的用戶賬號已經固定,不再進行修改,還可以采取鎖定賬號配置文件的方法,進一步保障賬號的安全性。比如:

[root@localhost ~]# chattr +i /etc/passwd /etc/shadow //鎖定文件

[root@localhost ~]# lsattr /etc/passwd /etc/shadow //查看為鎖定的狀態(tài)

----i----------- /etc/passwd

----i----------- /etc/shadow

[root@localhost ~]# chattr -i /etc/passwd /etc/shadow //解鎖文件

[root@localhost ~]# lsattr /etc/passwd /etc/shadow //查看為解鎖的狀態(tài)

---------------- /etc/passwd

---------------- /etc/shadow

在賬號文件被鎖定的情況下,其內容將不允許被修改。因此也就無法添加、刪除賬號,也不能更改用戶的密碼、登錄shell、宿主目錄等屬性信息。

[root@localhost ~]# chattr +i /etc/passwd /etc/shadow

[root@localhost ~]# lsattr /etc/passwd /etc/shadow

----i----------- /etc/passwd

----i----------- /etc/shadow

[root@localhost ~]# useradd a1

useradd:無法打開 /etc/passwd

(2)密碼安全控制

在不安全的網絡環(huán)境中,為了降低密碼被猜出或被暴力破解的風險,用戶應養(yǎng)成定期修改密碼的習慣,避免長期使用同一個密碼。管理員可以在服務器端限制用戶密碼的最大有效天數(shù),對于密碼已過期的用戶,登錄時被要求重新設置密碼,否則將拒絕登錄。

以下操作可以將密碼的有效期設為30天:

[root@localhost ~]# vim /etc/login.defs //適用于修改完文件新建的用戶

……………… //省略部分內容

PASS_MAX_DAYS 30 //默認存在,修改即可

[root@localhost ~]# chage -M 30 q1 //適用于已經存在的q1用戶

在某些特殊情況下,如要求批量創(chuàng)建用戶初次登錄時必須自設密碼。比如:

[root@localhost ~]# chage -d 0 q1 //新建的用戶、已存在的用戶都適用

Localhost login:q1

password:

You are required to change your password immediately (root enforced)

WARNING: Your password has expired.

You must change your password now and login again!

更改用戶 q1 的密碼 。

為 q1 更改 STRESS 密碼。

(當前)UNIX 密碼:

(3)命令歷史、自動注銷

Shell環(huán)境的命令歷史機制為用戶提供了極大的便利,但另一方面也給用戶帶來了潛在的風險,只要獲得用戶的命令歷史文件,該用戶的命令操作過程將會一覽無遺,如果曾經在命令行輸入了明文的密碼,則會給服務器帶來巨大的風險。

Bash終端環(huán)境中,歷史命令的記錄條目是由變量HISTSIZE控制,默認是1000條,通過修改其配置文件,可以影響系統(tǒng)中的所有用戶。比如:

[root@localhost ~]# vim /etc/profile //適用于新登錄的用戶

………… //省略部分內容,添加以下內容

HISTSIZE=200

[root@localhost ~]# export HISTSIZE=200

//適用于當前用戶,export的作用:將一個變量設置為全局變量

除此之外,還可以修改用戶宿主目錄中的~/.bash_logout文件,添加情況歷史命令的操作語句:

[root@localhost ~]# vim ~/.bash_logout //打開配置文件,添加以下內容

history -c //清空歷史命令

clear //清屏

這樣,當用戶退出已登錄Bash環(huán)境后,所記錄的歷史命令將自動清空。

Bash終端環(huán)境中,還可以設置一個閑置超時時間,當超過指定的時間見沒有任何輸入時自動注銷終端,這樣可以有效避免當管理員不在時其他人員對服務器的誤操作風險,閑置超時由變量TMOUT來控制,默認單位為秒(s)。

[root@localhost ~]# vim /etc/profile //適用于新登錄的用戶

………… //省略部分內容,添加以下內容

export TMOUT=600

[root@localhost ~]# export TMOUT=600 //適用于當前用戶

注意:當正在執(zhí)行程序代碼編譯時,修改系統(tǒng)配置等耗時較長的操作時,應避免設置TMOUT變量。必要時可以使用“unset TMOUT”命令取消TMOUT變量設置。

2.用戶切換與提權

大多數(shù)Linux服務器并不建議用戶直接以root用戶進行登錄,一方面可以大大減少因誤操作而導致的破壞;另一方面也降低了特權密碼在不安全的網絡中被泄露的風險。針對這些原因,需要為普通用戶提供一種身份或權限提升機制,以便在必要的時候執(zhí)行管理任務。

Linux系統(tǒng)為我們提供了su、sudo兩種命令,其中su命令主要用來切換用戶,而sudo命令用來提升執(zhí)行權限。

(1)su命令——切換用戶

使用su命令,可以切換為指定的另一個用戶,從而具有該用戶的所有權限。當然,切換時需要對目標用戶的密碼進行驗證(從root用戶切換為其他用戶時除外)。例如:

[root@localhost ~]# su - xiaoli

[xiaoli@localhost ~]$ su - root

密碼: //輸入用戶root密碼

[root@localhost ~]# //驗證成后獲得root權限

上述命令中,選項“-”等同于“--login”或“-l”,表示切換用戶后進入目標用戶的登錄shell環(huán)境,若不添加“-”選項,則表示僅切換身份,不切換用戶環(huán)境。對于切換為root用戶的情況時,“root”可以省略。

默認情況下,任何用戶都允許使用su命令。從而有機會反復嘗試其他用戶(如root)的登錄密碼。這樣帶來了很大的安全風險,為了加強su命令的使用控制,可以借助于pam_wheel認證模塊,只允許極個別用戶可以使用su命令進行切換。實現(xiàn)過程:

[root@localhost ~]# gpasswd -a xiaoli wheel

//正在將用戶“xiaoli”加入到“wheel”組中

[root@localhost ~]# grep "wheel" /etc/group

wheel:x:10:xiaoli

[root@localhost ~]# vim /etc/pam.d/su

auth sufficient pam_rootok.so //默認存在

………… //省略部分內容

auth required pam_wheel.so use_uid //默認存在,去掉“#”號即可!

………… //省略部分內容

啟用pam_wheel認證后,未加入wheel組內的其他用戶將無法使用su命令,嘗試進行切換時,將提示“拒絕權限”,從而將切換用戶的權限控制在最小范圍內。

[xiaozhang@localhost ~]$ su - root

密碼: //不論密碼正確與否,都將提示拒絕權限

su: 拒絕權限

對用戶的任何操作(添加、刪除、切換)等操作都將記錄在/var/log/secure 文件中,根據(jù)需要即可進行查看。

(2)sudo命令——提升執(zhí)行權限

通過su命令可以非常方便地切換到另一個用戶,但是前提條件是必須知道目標用戶的登錄密碼(從root用戶切換為其他用戶時除外),從任意用戶切換至root用戶就必須得知道root用戶的密碼。對于生產環(huán)境中的Linux服務器,root用戶的密碼,知道的人,越少越好,否則就會存在巨大的風險。

有一種方法,既可以讓普通用戶擁有一部分的管理權限,又不需要知道root用戶的密碼,那就是使用——sudo命令。

使用sudo命令皆可以提升執(zhí)行權限。不過,需要由管理員預先執(zhí)行授權,指定哪些用戶以超級用戶(或其他用戶)的身份來執(zhí)行哪些命令。

1)在配置文件/etc/sudoers中添加授權

sudo機制的配置文件為/etc/sudoers,文件的默認權限是400,需使用專門的visudo工具進行編寫,雖然可以通過“vim”進行編輯,但是保存時必須執(zhí)行“:w!”命令強制操作,否則系統(tǒng)將提示只讀文件而拒絕保存。

配置文件/etc/sudoers中,授權記錄的基本配置格式:

用戶 主機名列表=命令程序列表

授權配置主要包括用戶、主機、命令三個部分,即授權哪些人在哪些主機上執(zhí)行哪些命令。各部分的具體含義:

用戶:直接授權指定的用戶名,或者采用“%組名”的方式(授權一個組的所有用戶);主機:使用此配置文件的主機名稱。此部分主要是方便在多個主機間共用一份sudoers文件,一般設置為localhost或實際的主機名即可;命令:允許授權的用戶通過sudo方式制定的特權命令,需填寫命令程序的完整路徑,多個命令執(zhí)行用逗號“,”進行分隔;

典型的sudo配置記錄中,每行對應一個用戶或組的sudo授權配置。比如:

[root@localhost ~]# visudo

……………… //省略部分內容

xiaozhang localhost=/sbin/ifconfig //允許用戶xiaozhang在本機使用ifconfig命令

%wheel ALL=NOPASSWD:ALL //允許wheel組中的成員在任意主機上不需要使用密碼即可執(zhí)行任意命令

當使用相同授權的用戶較多,或者授權的命令較多時,可以采用集中定義的別名。用戶、主機、命令部分都可以定義為別名(必須為大寫)分別通過關鍵字User_Alias、Host_Alias、Cmnd_Alias來進行設置。比如:

[root@localhost ~]# visudo

……………… //省略部分內容

User_Alias OPERATORS=user1,user2,user3 //定義用戶名列表

Host_Alias MAILSVRS=smtp,pop //定義主機列表

Cmnd_Alias PKGTOOLS=/bin/rpm,/usr/bin/yum //定義命令列表

OPERATORS MAILSVRS=PKGTOOLS //使定義的列表全部關聯(lián)起來

sudo配置記錄的命令部分允許使用通配符“*”、取反符號“!”,當需要授權某個目錄下的所有命令或取消其中個別命令時特別有用。比如:

[root@localhost ~]# visudo

……………… //省略部分內容

xiaowang localhost=/bin/*,!/bin/passwd root

//允許xiaowang用戶在本機使用/bin路徑下的所有命令,但是不允許給root用戶修改密碼

通常情況下,通過sudo方式執(zhí)行的操作并不記錄,若要啟用sudo日志記錄以備查看,應該這么做:

[root@localhost ~]# visudo

……………… //省略部分內容

Defaults logfile="/var/log/sudo"

2)通過sudo執(zhí)行特權命令

對于已獲得授權的用戶,通過sudo方式執(zhí)行特權命令時,只需在正常的命令前加“sudo”即可!

[xiaosun@localhost ~]$ sudo ifconfig ens33 192.168.1.1/24

We trust you have received the usual lecture from the local System

Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.

#2) Think before you type.

#3) With great power comes great responsibility.

[sudo] password for xiaosun:

xiaosun 不在 sudoers 文件中。此事將被報告。

//因為xiaosun沒獲得特權命令的授權

[xiaozhang@localhost ~]$ ifconfig ens33 192.168.1.1/24

SIOCSIFADDR: 不允許的操作

SIOCSIFFLAGS: 不允許的操作

SIOCSIFNETMASK: 不允許的操作

[xiaozhang@localhost ~]$ sudo ifconfig ens33 192.168.1.1/24

We trust you have received the usual lecture from the local System

Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.

#2) Think before you type.

#3) With great power comes great responsibility.

[sudo] password for xiaozhang:

//執(zhí)行命令時需要輸入自己的密碼進行驗證(如果不希望輸入密碼應在命令前添加“NOPASSWD”)

//xiaozhang 可以使用特權命令(已經獲得授權)

在當前會話中,第一次通過sudo執(zhí)行命令時,必須知道用戶本身的密碼(并不是root的密碼)進行驗證,此后再使用sudo命令時,只要與前一次sudo操作的間隔時間不超過5分鐘,則不需要重復驗證。

若想查看用戶自己獲得哪些特權命令、環(huán)境變量,可以執(zhí)行“sudo -l”命令。

[xiaozhang@localhost ~]$ sudo -l

[sudo] password for xiaozhang:

匹配此主機上 xiaozhang 的默認條目:

!visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME

HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG

LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION

LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC

LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS

_XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin,

logfile=/var/log/sudo

用戶 xiaozhang 可以在該主機上運行以下命令:

(root) /sbin/ifconfig

//查看已經授權的用戶

[root@localhost ~]# su - xiaosun

上一次登錄:二 8月 27 21:41:40 CST 2019pts/0 上

[xiaosun@localhost ~]$ sudo -l

[sudo] password for xiaosun:

對不起,用戶 xiaosun 不能在 localhost 上運行 sudo。

//查看為授權的用戶

如果啟用sudo日志,則可以查看用戶sudo的操作記錄。

[root@localhost ~]# tail /var/log/sudo

Aug 27 21:41:07 : xiaoli : TTY=pts/0 ; PWD=/home/xiaoli ; USER=root ;

COMMAND=/sbin/ifconfig ens33 192.168.1.1/24

Aug 27 21:42:53 : xiaozhang : TTY=pts/0 ; PWD=/home/xiaozhang ; USER=root ;

COMMAND=/sbin/ifconfig ens33 192.168.1.1/24

二、系統(tǒng)引導和登錄控制

在互聯(lián)網環(huán)境中,大部分服務器是通過遠程登錄的方式來進行管理的,而本地引導和終端登錄往往容易被忽視,從而留下安全隱患。特別是當服務器所在的機房環(huán)境卻反嚴格、安全的管理制度時,如何防止其他用戶的非法介入就成為必須重視的問題。

1.開關機安全控制

對于服務器主機,除了物理上的安全防護之外。在開關機安全控制方面,除了要做好物理安全防護以外,還要做好系統(tǒng)本身的一些安全措施。

(1)調整BIOS引導設置

將第一引導設備設為當前系統(tǒng)所在硬盤;

禁止從其他設備(光盤、U盤、網絡)引導系統(tǒng);

將安全級別設為setup,并設置管理員密碼;

(2)禁止ctrl+Alt+Del快捷鍵重啟

快捷鍵重啟功能為服務器本地維護提供了方便,但對于多終端登錄的Linux服務器,禁用此功能是比較安全的選擇。操作如下:

[root@localhost ~]# cat /etc/inittab //查看提供ctrl+Alt+Del快捷鍵的文件

……………… //省略部分內容

# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target

[root@localhost ~]# ll /usr/lib/systemd/system/ctrl-alt-del.target

lrwxrwxrwx. 1 root root 13 7月 14 18:54 /usr/lib/systemd/system/ctrl-alt-del.target -> reboot.target

//查看得知它是reboot.target文件的軟連接

不影響reboot.target文件的前提下執(zhí)行以下命令即可禁用ctrl+Alt+Del快捷鍵

[root@localhost ~]# systemctl mask ctrl-alt-del.target //注銷ctrl+Alt+Del服務

Created symlink from /etc/systemd/system/ctrl-alt-del.target to /dev/null.

[root@localhost ~]# systemctl daemon-reload //重新加載systemd配置

[root@localhost ~]# systemctl unmask ctrl-alt-del.target //重新開啟ctrl+Alt+Del服務

Removed symlink /etc/systemd/system/ctrl-alt-del.target.

[root@localhost ~]# systemctl daemon-reload //重新加載systemd配置

(3)限制更改GRUB引導參數(shù)

從系統(tǒng)安全的角度來看,如果人很都能夠修改GRUB引導參數(shù),對服務器本身顯然是一個極大的安全隱患。為了加強對引導過程的安全控制,可以為GRUB菜單設置一個密碼,只有提供正確的密碼才被允許修改引導參數(shù)。為GRUB菜單設置的密碼建議采用“grub2-mkpasswd-PBKDF2 ”命令生成。為GRUB菜單設置的密碼建議采用“grub2-mkpasswd-pbkdf2 ”命令生成。

[root@localhost ~]# grub2-mkpasswd-pbkdf2 //根據(jù)提示輸入密碼

輸入口令:

Reenter password:

PBKDF2 hash of your password is

//“is”之后是經過加密的密碼字串符(由于限制,不可發(fā)布)

[root@localhost ~]# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak

[root@localhost ~]# cp /etc/grub.d/00_header /etc/grub.d/00_header.bak

//建議做個備份(實驗環(huán)境,無所謂)

[root@localhost ~]# vim /etc/grub.d/00_header //這是通過密鑰工具生成密碼的配置文件

…………………… //省略部分內容

cat << EOF

set superusers="root" //設置用戶名

password_pbkdf2 root

//填寫剛才通過密鑰工具生成的密鑰文件(就是剛才生成密鑰文件“is”之后的內容,由于限制不可發(fā)布)

//設置用戶名的密碼

EOF

[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg

//重新生成配置文件

重新計算機測試,按“e”鍵進入GRUB菜單時,將提示:

輸入正確的用戶名和密碼方可進入(實驗用的是 root,跟系統(tǒng)中的root沒有任何關系)!

2.終端及登錄控制

(1)限制root用戶的登錄

在Linux系統(tǒng)中,login程序會讀取/etc/securetty文件,以決定root用戶從哪些終端上登錄系統(tǒng)。

[root@localhost ~]# vim /etc/securetty

…………………… //省略部分內容

#tty5

#tty6

//禁止root用戶從tty5、tty6登錄系統(tǒng)

(2)禁止普通用戶登錄

當服務器正在進行備份或調試等維護工作時,可能不希望再有新的用戶登錄系統(tǒng),這時,只需建立/etc/nologin空文件即可;反之則允許普通用戶登錄。

[root@localhost ~]# touch /etc/nologin //禁止普通用戶登錄

[root@localhost ~]# rm -rf /etc/nologin //允許普通用戶登錄

注意:僅建議在服務器維護期間、測試期間使用!

三、弱口令檢測、端口掃描

本次實驗使用的安全工具是——John the Ripper和NMAP。John the Ripper工具網盤鏈接:https://pan.baidu.com/s/1HQNCPFnKNBQWmjSNSEZ7_Q提取碼:q1b0NMAP工具使用yum安裝即可!

1.弱口令檢測工具——John the Ripper

對于任何一個承擔著安全責任的管理員,及時找出這些弱口令是非常必要的,這樣便于采取進一步的安全措施(修改口令)。

John the Ripper是一款開源的密 碼 破 解 工具,能夠在已知密文的情況下快速分析出明文的密碼字串,支持DES、MD5等多種加密算法,而且允許使用字典進行破解。

(1)安裝John the Ripper

[root@localhost ~]# tar zxf john-1.8.0.tar.gz -C /usr/src

[root@localhost ~]# cd /usr/src/john-1.8.0/

[root@localhost john-1.8.0]# ls

doc README run src

//doc目錄是手冊文檔、README是鏈接的說明文件、run是運行程序、src是源碼文件

[root@localhost john-1.8.0]# cd src

[root@localhost src]# make clean 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

//確認有john可執(zhí)行程序產生

(2)檢測弱口令賬號

以實驗環(huán)境Linux系統(tǒng)為例(如果檢測別的密文文件,可以復制一份到本地):

[root@localhost run]# ./john /etc/shadow

Loaded 6 password hashes with 6 different salts (crypt, generic crypt(3) [?/64])

Press 'q' or Ctrl-C to abort, almost any other key for status

123456 (user1)

123456 (xiaowang)

123456 (xiaosun)

123456 (xiaoli)

123456 (xiaozhang)

……………… 按Ctrl+C組合鍵終止后續(xù)過程

//密碼破譯需要時間,需耐心等待

(3)使用密碼字典進行破解

[root@localhost run]# :>john.opt

//情況已破解的賬戶列表,以便重新分析、破解

[root@localhost run]# ./john --wordlist=./password.lst /etc/shadow

//使用工具本身自帶的密碼字典進行破解

Loaded 6 password hashes with 6 different salts (crypt, generic crypt(3) [?/64])

Press 'q' or Ctrl-C to abort, almost any other key for status

123456 (user1)

123456 (xiaowang)

123456 (xiaosun)

123456 (xiaoli)

123456 (xiaozhang)

……………… 按Ctrl+C組合鍵終止后續(xù)過程

2.網絡掃描工具——NMAP

(1)安裝NMAP軟件包

[root@localhost ~]# yum -y install nmap

(2)掃描語法及類型

nmap [掃描類型] [選項] <掃描目標 ...>

常用的選項有:“-p”用來指定掃描的端口信息;“-n”表示禁用反向DNS解析(加快掃描速度);

常用的幾種掃描類型,如圖:

(3)掃描操作示例

[root@localhost ~]# nmap 127.0.0.1

//掃描本機開啟的TCP端口

[root@localhost ~]# nmap -sU 127.0.0.1

//掃描本機開啟的UDP端口

[root@localhost ~]# nmap -p 21 192.168.1.0/24

//掃描192.168.1.0網段中哪些主機提供了FTP服務

[root@localhost ~]# nmap -n -sP 192.168.1.0/24

//掃描192.168.1.0網段存活的主機(可以ping通)

[root@localhost ~]# nmap -p 139,445 192.168.1.0/24

//掃描192.168.1.0網段中開啟共享服務的主機

可以根據(jù)實際的需求更換不同的選項!

php運行ping源碼,linux系統(tǒng)提供安全功能如何