溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

CentOS 7中系統(tǒng)安全及應(yīng)用

發(fā)布時(shí)間:2020-06-10 14:01:19 來源:網(wǎng)絡(luò) 閱讀:767 作者:SiceLc 欄目:系統(tǒng)運(yùn)維

賬戶安全控制

用戶賬號(hào)是計(jì)算機(jī)使用者的身份憑證或標(biāo)識(shí),每個(gè)要訪問系統(tǒng)資源的人,必須憑借其用戶賬號(hào)才能進(jìn)入計(jì)算機(jī)。

基本安全措施

1、系統(tǒng)賬號(hào)清理
  • 將非登錄用戶的shell設(shè)為/sbin/nologin

  • 刪除無用的賬號(hào)

  • 鎖定長期不使用的賬號(hào)

    chattr +i 鎖定文件

    chattr -i 解鎖文件

    lsattr 查看文件鎖定情況

  • 我們可以通過鎖定passwd、shadow文件阻止創(chuàng)建新的用戶
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow  //鎖定passwd、shadow文件
[root@localhost ~]# lsattr /etc/passwd /etc/shadow    //查看鎖定情況
----i----------- /etc/passwd
----i----------- /etc/shadow   //文件已鎖定
[root@localhost ~]# useradd siti    //創(chuàng)建用戶
useradd:無法打開 /etc/passwd       //無法打開文件,用戶無法創(chuàng)建
[root@localhost ~]# chattr -i /etc/passwd /etc/shadow   //解鎖文件
[root@localhost ~]# lsattr /etc/passwd /etc/shadow     //查看文件鎖定信息
---------------- /etc/passwd                   //文件已解鎖
---------------- /etc/shadow
[root@localhost home]# useradd st11             //創(chuàng)建用戶
[root@localhost home]# echo "123123" | passwd --stdin st11  //設(shè)置用戶密碼
更改用戶 st11 的密碼 。
passwd:所有的身份驗(yàn)證令牌已經(jīng)成功更新。          //設(shè)置成功
2、密碼安全控制
  • 設(shè)置密碼有效期
    • vim /etc/login.defs配置文件中設(shè)置。適用于新建用戶
    • 用過命令chage -M [密碼有效期] [用戶名]設(shè)置用戶密碼有效期
[root@localhost home]# vim /etc/shadow   //查看所用戶密碼信息

root:$6$DErFk.wqtcw55ui.$sbinnItTXo1wtxsOmThAEwBXHluuCC04as2tSUvoCEdDTHMTumpl/VcjH6KCYkJh0xc3KqLdcTq2NTe3K7nTi1::0:99999:7:::   //root用戶密碼有效期為99999
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
...//省略部分內(nèi)容...
tcpdump:!!:18117::::::
sun:$6$g2hmfiVD2XG/zY37$53BhBT.2ILsuF22KZ2BRaE/6hmG/HsylLi1EuARoWzc8EgBbqN64T0DmyCfGsowWGFuCKDubUkBIxh2TM69Vv0:18117:0:99999:7:::   //sun用戶密碼有效期為99999
st11:$6$ZGozUglO$ymyQEtkL//rzx8UdgDcy1yd3WVLiET9K6xrC.dT0lUnNH17dzkuSxkqepAC5plPlad5VWrewJOkAKJxdmiYLZ.:18136:0:99999:7:::        //st11用戶密碼有效期為99999
:q                             //退出

[root@localhost home]# vim /etc/login.defs   //進(jìn)入密碼配置文件,設(shè)置密碼有效期

...//省略部分內(nèi)容...
#       PASS_MIN_DAYS   Minimum number of days allowed between password changes.
#       PASS_MIN_LEN    Minimum acceptable password length.
#       PASS_WARN_AGE   Number of days warning given before a password expires.
#
PASS_MAX_DAYS   30          //密碼最長有效期 更改99999為30
PASS_MIN_DAYS   0           //密碼最短有效期
PASS_MIN_LEN    5           //密碼最短字符長度
PASS_WARN_AGE   7           //密碼過期前提前幾天提醒
...//省略部分內(nèi)容...
/99999                   //查找定位99999位置   
//更改完成后:wq保存退出

[root@localhost ~]# useradd siti      //創(chuàng)建用戶
[root@localhost ~]# passwd siti       //設(shè)置用戶密碼
更改用戶 siti 的密碼 。
新的 密碼:
無效的密碼: 密碼少于 8 個(gè)字符
重新輸入新的 密碼:
passwd:所有的身份驗(yàn)證令牌已經(jīng)成功更新。

[root@localhost ~]# vim /etc/shadow    //查看所有用戶密碼信息

root:$6$DErFk.wqtcw55ui.$sbinnItTXo1wtxsOmThAEwBXHluuCC04as2tSUvoCEdDTHMTumpl/VcjH6KCYkJh0xc3KqLdcTq2NTe3K7nTi1::0:99999:7:::  //密碼有效期未變
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
nome-initial-setup:!!:18117::::::
...//省略部分內(nèi)容...
avahi:!!:18117::::::
postfix:!!:18117::::::
tcpdump:!!:18117::::::
sun:$6$g2hmfiVD2XG/zY37$53BhBT.2ILsuF22KZ2BRaE/6hmG/HsylLi1EuARoWzc8EgBbqN64T0DmyCfGsowWGFuCKDubUkBIxh2TM69Vv0:18117:0:99999:7:::    //密碼有效期未變
st11:$6$ZGozUglO$ymyQEtkL//rzx8UdgDcy1yd3WVLiET9K6xrC.dT0lUnNH17dzkuSxkqepAC5plPlad5VWrewJOkAKJxdmiYLZ.:18136:0:99999:7:::   //密碼有效期未變
siti:$6$RUXRmwz/$046PV4WYKzGpp.32FT7GKu04jvaCkut/d2GjtseMi1MnU1YfGMy1.AJdtOPZByWCyfP05LqoRNe0OT5tz1FUv1:18136:0:30:7:::  //新創(chuàng)建的用戶siti用戶密碼有效期為30天
[root@localhost ~]# chage -M 30 st11     //更改st11用戶密碼有效期為30天
[root@localhost ~]# vim /etc/shadow      //查看所有用戶密碼信息

root:$6$DErFk.wqtcw55ui.$sbinnItTXo1wtxsOmThAEwBXHluuCC04as2tSUvoCEdDTHMTumpl/VcjH6KCYkJh0xc3KqLdcTq2NTe3K7nTi1::0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
...//省略部分內(nèi)容...
tcpdump:!!:18117::::::
sun:$6$g2hmfiVD2XG/zY37$53BhBT.2ILsuF22KZ2BRaE/6hmG/HsylLi1EuARoWzc8EgBbqN64T0DmyCfGsowWGFuCKDubUkBIxh2TM69Vv0:18117:0:99999:7:::
st11:$6$ZGozUglO$ymyQEtkL//rzx8UdgDcy1yd3WVLiET9K6xrC.dT0lUnNH17dzkuSxkqepAC5plPlad5VWrewJOkAKJxdmiYLZ.:18136:0:30:7:::    //st11用戶密碼有效期更改未30天
siti:$6$RUXRmwz/$046PV4WYKzGpp.32FT7GKu04jvaCkut/d2GjtseMi1MnU1YfGMy1.AJdtOPZByWCyfP05LqoRNe0OT5tz1FUv1:18136:0:30:7:::
  • 要求用戶下次登錄時(shí)修改密碼

    chage -d 0 用戶名:強(qiáng)制用戶在下次登錄時(shí)更改密碼

    使用這條命令后,當(dāng)指定用戶登錄設(shè)置密碼時(shí),設(shè)置的密碼是有條件的,就是設(shè)置的密碼不允許用連續(xù)的字母和阿拉伯?dāng)?shù)字設(shè)置密碼,否則無法重新設(shè)置密,因此此命令不建議使用。

[root@localhost ~]# chage -d -0 st11

CentOS 7中系統(tǒng)安全及應(yīng)用CentOS 7中系統(tǒng)安全及應(yīng)用CentOS 7中系統(tǒng)安全及應(yīng)用CentOS 7中系統(tǒng)安全及應(yīng)用

3、歷史命令的限制
  • 歷史命令查看與清除

    history:查看歷史命令

    history -c:清除歷史命令

[root@localhost ~]# history   //查看歷史命令
    1  vim /ect/sysconfig/network-scripts/ifcfg-ens33
    2  vim /etc/sysconfig/network-scripts/ifcfg-ens33 
    3  vim /ect/sysconfig/network-scripts/ifcfg-ens33 
    4  vim /ect/sysconfig/network-scripts/ifcfg-ens33
    5  vim /ect/sysconfig/netwok-scripts/ifcfg-ens33 
    6  vim /etc/sysconfig/network-scripts/ifcfg-ens-33 
    7  vim /etc/sysconfig/network-scirpts/ifcfg-ens33 
    8  vim /etc/sysconfig/network-scripts/ifcfg-ens33
    9  vim /etc/sysconfig/network-scirpts/ifcfg-ens33
   10  vim /etc/sysconfig/network-scripts/ifcfg-ens33
   11  service network restart
   12  ifconfig
   13  chattr +i /etc/passwd /etc/shadow
   14  lsattr /etc/passwd /etc/shadow
   15  chattr -i /etc/passwd /etc/shadow
   16  lsattr /etc/passwd /etc/shadow
   17  chattr +i /etc/passwd/ /etc/shadow
   18  chattr +i /etc/passwd /etc/shadow
   19  lsattr 
   20  lsattr /etc/passwd /etc/shadow
   21  useradd siti
   22  chattr -i /etc/passwd /etc/shadow
   23  lsattr /etc/passwd /etc/shadow
   24  useradd siti
   25  passwd siti
   26  history
[root@localhost ~]# history -c    //清除歷史命令
[root@localhost ~]# history       //查看歷史命令
    1  history
  • 減少記錄的命令條數(shù)

    vim /etc/profile :系統(tǒng)環(huán)境變量配置文件今日其中更改歷史命令記錄條數(shù)

    source /etc/profile:使更改的配置生效

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

CentOS 7中系統(tǒng)安全及應(yīng)用CentOS 7中系統(tǒng)安全及應(yīng)用

[root@localhost ~]# history                //查看歷史命令,這個(gè)時(shí)候設(shè)置并沒有生效
    1  history
    2  vim /etc/profile
    3  history
[root@localhost ~]# source /etc/profile   //輸入命令,使更改的配置生效
[root@localhost ~]# history               //再次查看歷史命令
    4  history                            //只顯示一條命令
  • 閑置自動(dòng)注銷

    vim /etc/profile 配置文件中編輯添加閑置注銷條目,并設(shè)定自動(dòng)注銷時(shí)間

    export TMOUT=時(shí)間(單位:秒):設(shè)定限制注銷時(shí)間條目

[root@localhost ~]# vim /etc/profile        //進(jìn)入編輯配置文件

    pathmunge /usr/local/sbin after
    pathmunge /usr/sbin after
# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc

# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
...//省略部分內(nèi)容...
        fi
    fi
done

unset i
unset -f pathmunge
export TMOUT=60                         //添加設(shè)定條目
~                                                                                         
:wq                           //保存退出

[root@localhost ~]# source /etc/profile   //輸入命令,使更添加的條目生效

設(shè)置完成后系統(tǒng)將在60秒后自動(dòng)注銷。注銷時(shí)間可以根據(jù)自己的操作習(xí)慣設(shè)置。

  • 注銷時(shí)自動(dòng)清空命令歷史

    vim ~/.basf_logout:用戶環(huán)境變量配置文件

在用戶環(huán)境變量文件中添加history -c、clear命令,可以使用戶注銷時(shí)自動(dòng)清除歷史命令與緩存,提高安全性。

[root@localhost ~]# cd /home               //進(jìn)入用戶家目錄
[root@localhost home]# ls                  //查看用戶
siti  st11  sun
[root@localhost home]# cd st11           //進(jìn)入到st11用戶目錄
[root@localhost st11]# ls -a               //查看目錄中隱藏文件是否有 .bash_logout配置文件
.   .bash_logout   .bashrc  .config    .ICEauthority  .mozilla  模板  圖片  下載  桌面
..  .bash_profile  .cache   .esd_auth  .local         公共      視頻  文檔  音樂
[root@localhost st11]# vim .bash_logout              //進(jìn)入編輯配置文件
# ~/.bash_logout
history -c            //添加命令清除歷史命令
clear                 //添加命令清除緩存
~                                                                                         
~
~
:wq             //保存退出
4、用戶切換與提權(quán)

大多數(shù) Linux 服務(wù)器并不建議用戶直接以 root 用戶進(jìn)行登錄。一方面可以大大減少因誤操作而導(dǎo)致的破壞,另一方面也降低了特權(quán)密碼在不安全的網(wǎng)絡(luò)中被泄露的風(fēng)險(xiǎn)。

  • su 命令
    • su命令:切換用戶
    • su - 命令:切換用戶后直接到用戶家目錄
[root@localhost /]# su siti                //切換到siti用戶
[siti@localhost /]$                        //進(jìn)入siti用戶
[siti@localhost /]$ su - root              //切換到root用戶,并回到家目錄
密碼:
上一次登錄:三 8月 28 11:55:19 CST 2019從 192.168.144.1pts/0 上
[root@localhost ~]#                     //進(jìn)入root用戶,并在家目錄下
  • PAM認(rèn)證

    PAM(Pluggable Authentication Modules),是 Linux 系統(tǒng)可插拔認(rèn)證模塊,是一種高效而且靈活便利的用戶級(jí)別的認(rèn)證方式,它也是當(dāng)前 Linux 服務(wù)器普遍使用的認(rèn)證方式 。

  • PAM 認(rèn)證原理

    • PAM 認(rèn)證一般遵循的順序:Service(服務(wù))→PAM(配置文件)→pam_*.so
    • PAM認(rèn)證首先要確定哪一項(xiàng)服務(wù),然后加載相應(yīng)的PAM的配置文件(位于/etc/pam.d下),最后調(diào)用認(rèn)證文件(位于/lib/security 下)進(jìn)行安全認(rèn)證。
    • 用戶訪問服務(wù)器的時(shí)候,服務(wù)器的某一個(gè)服務(wù)程序把用戶的請(qǐng)求發(fā)送到 PAM 模塊進(jìn)行認(rèn)證。不同的應(yīng)用程序所對(duì)應(yīng)的 PAM 模塊也是不同的。
  • PAM 認(rèn)證類型包括四種

    認(rèn)證管理:接受用戶名和密碼,進(jìn)而對(duì)該用戶的密碼進(jìn)行認(rèn)證;
    帳戶管理:檢查帳戶是否被允許登錄系統(tǒng),帳號(hào)是否已經(jīng)過期,帳號(hào)的登錄是否有時(shí)間段的限制等;
    密碼管理:主要是用來修改用戶的密碼;
    會(huì)話管理:主要是提供對(duì)會(huì)話的管理和記賬。

  • 控制類型,用于 PAM 驗(yàn)證類型的返回結(jié)果

    • required 驗(yàn)證失敗時(shí)仍然繼續(xù),但返回 Fail
    • requisite 驗(yàn)證失敗則立即結(jié)束整個(gè)驗(yàn)證過程,返回 Fail
    • sufficient 驗(yàn)證成功則立即返回,不再繼續(xù),否則忽略結(jié)果并繼續(xù)
    • optional 不用于驗(yàn)證,只是顯示信息(通常用于 session 類型)
      CentOS 7中系統(tǒng)安全及應(yīng)用

可以通過查看PAM配置文件目錄來查看支持PAM認(rèn)證的服務(wù)項(xiàng)

[root@localhost ~]# ls /etc/pam.d                //查看pam配置文件目錄
atd                     gdm-pin           postlogin-ac       su
chfn                    gdm-smartcard     ppp                sudo
chsh                    ksu               remote             sudo-i
config-util             liveinst          runuser            su-l
crond                   login             runuser-l          system-auth
cups                    other             setup              system-auth-ac
fingerprint-auth        passwd            smartcard-auth     systemd-user
fingerprint-auth-ac     password-auth     smartcard-auth-ac  vlock
gdm-autologin           password-auth-ac  smtp               vmtoolsd
gdm-fingerprint         pluto             smtp.postfix       xserver
gdm-launch-environment  polkit-1          sshd 
gdm-password            postlogin         sssd-shadowutils   //支持認(rèn)證的服務(wù)項(xiàng)

每一個(gè)服務(wù)項(xiàng)目錄下都存放著不同的安全認(rèn)證配置文件,在/etc/security目錄下同樣存放在安全認(rèn)證的配置文件。

[root@localhost ~]# ls /etc/security
access.conf   console.handlers  group.conf   namespace.conf  opasswd         sepermit.conf
chroot.conf   console.perms     limits.conf  namespace.d     pam_env.conf    time.conf
console.apps  console.perms.d   limits.d     namespace.init  pwquality.conf

進(jìn)入pam配置文件下目錄服務(wù)項(xiàng)目錄,查看安全認(rèn)證信息。

[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            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

每一行都是一個(gè)獨(dú)立的認(rèn)證過程;每一行可以區(qū)分為三個(gè)字段:
auth:認(rèn)證類型
sufficient:控制類型
pam_rook.soPAM 模塊及其參

在此模式下開啟pam認(rèn)證。

[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   //去掉此條目前# 開啟pam認(rèn)證
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
  • wheel組

    在Linux中wheel組就類似于一個(gè)管理員的組。在pam認(rèn)證開啟的情況下只有wheel組內(nèi)的用戶才可以通過su命令通過root用戶密碼進(jìn)入root用戶界面。如果不在wheel組內(nèi)的普通用戶即使有root密碼也無法用su命令切換至root用戶。這樣也大大提高了root用戶的安全性。

[root@localhost ~]# vim /etc/group        //查看組

...//省略部分內(nèi)容...
mem:x:8:
kmem:x:9:
wheel:x:10:sun     //wheel組,現(xiàn)在只有sun一個(gè)用戶
cdrom:x:11:
mail:x:12:postfix
man:x:15:
dialout:x:18:
...//省略部分內(nèi)容...
[root@localhost ~]# su - sun                    //切換至sun用戶
上一次登錄:三 8月 28 16:22:56 CST 2019pts/0 上
[sun@localhost ~]$ su - root                    //切換到root用戶
密碼:
上一次登錄:三 8月 28 16:23:23 CST 2019pts/0 上
[root@localhost ~]# su - siti                  //切換到siti用戶
上一次登錄:三 8月 28 16:23:14 CST 2019pts/0 上
[siti@localhost ~]$ su - root                   //切換到root用戶
密碼:
su: 拒絕權(quán)限                                    //無法切換,拒絕訪問
[siti@localhost ~]$       
  • sudo提權(quán)

    通過 su 命令可以非常方便地切換為另一個(gè)用戶,但前提條件是必須知道目標(biāo)用戶的登錄密碼。對(duì)于生產(chǎn)環(huán)境中的 Linux 服務(wù)器,每多一個(gè)人知道特權(quán)密碼,其安全風(fēng)險(xiǎn)也就增加一分。這個(gè)時(shí)候可以使用 sudo 命令就提升執(zhí)行權(quán)限。不過,需要由管理員預(yù)先進(jìn)行授權(quán),指定允許哪些用戶以超級(jí)用戶(或其他普通用戶)的身份來執(zhí)行哪些命令。

    在配置文件/etc/sudoersvisudo 中添加授權(quán)

    授權(quán)記錄的基本配置格式

    用戶 主機(jī)名列表=命令程序列表

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

首先我們先查看wheel組中的成員,然后用不在wheel組中的用戶登錄系統(tǒng),來執(zhí)行更改網(wǎng)絡(luò)地址的指令,看是否能夠更改。

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

...//省略部分內(nèi)容...
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:sun      //只有sun一個(gè)用戶
cdrom:x:11:
mail:x:12:postfix
man:x:15:
dialout:x:18:
ppy:x:19:
...//省略部分內(nèi)容...
[siti@localhost ~]$ ifconfig               //查看網(wǎng)卡信息
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.144.133  netmask 255.255.255.0  broadcast 192.168.144.255
        inet6 fe80::a85a:c203:e2e:3f3c  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:5b:d3:a0  txqueuelen 1000  (Ethernet)
        RX packets 49  bytes 7062 (6.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 86  bytes 9493 (9.2 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
...//省略部分內(nèi)容...
[siti@localhost ~]$ ifconfig ens33 192.168.144.138   //更改ens33網(wǎng)卡IP地址
SIOCSIFADDR: 不允許的操作               //提示不允許操作
SIOCSIFFLAGS: 不允許的操作
[siti@localhost ~]$ sudo ifconfig ens33 192.168.144.138  //用sudo執(zhí)行
[sudo] siti 的密碼:
siti 不在 sudoers 文件中。此事將被報(bào)告。      //不在sudo中,無法執(zhí)行
[siti@localhost ~]$ ifconfig          //查看網(wǎng)卡,看IP地址是否更改
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.144.133  netmask 255.255.255.0  broadcast 192.168.144.255
        inet6 fe80::a85a:c203:e2e:3f3c  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:5b:d3:a0  txqueuelen 1000  (Ethernet)
        RX packets 27  bytes 5649 (5.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 89  bytes 9710 (9.4 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>
        ...//省略部分內(nèi)容...

這個(gè)時(shí)候我們來在root用戶來給siti用戶添加授權(quán)條目

[root@localhost ~]# vim /etc/sudoers
...//省略部分內(nèi)容...
## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
#ar groups
## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname 
## rather than USERALIAS
# User_Alias ADMINS = jsmith, mikem
siti localhost = /sbin/ifconfig     //輸入授權(quán)記錄,注意:命令路徑要寫全
## Command Aliases
...//省略部分內(nèi)容...
## Installation and management of software
# Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum

## Services
@                                                                                              @                                                                                              
:w!         //強(qiáng)制保存,在輸入:q退出                               

完成操作后注銷系統(tǒng),用siti用戶登錄,使用sudo提權(quán)再來更改IP地址,看是否可以更改。

[siti@localhost ~]$ sudo ifconfig ens33 192.168.144.138   //使用sudo命令提權(quán)執(zhí)行命令
[sudo] siti 的密碼:
[siti@localhost ~]$ ifconfig    //查看IP是否更改
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.144.138  netmask 255.255.255.0  broadcast 192.168.144.255
        inet6 fe80::a85a:c203:e2e:3f3c  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:5b:d3:a0  txqueuelen 1000  (Ethernet)
        RX packets 445  bytes 39033 (38.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
...//省略部分內(nèi)容...                  //IP地址已更改
5、開關(guān)機(jī)安全控制
  • 調(diào)整BIOS引導(dǎo)設(shè)置

    • 將第一優(yōu)先引導(dǎo)設(shè)備設(shè)為當(dāng)前系統(tǒng)所在磁盤。
    • 禁止其他設(shè)備引導(dǎo)系統(tǒng),對(duì)應(yīng)的設(shè)置項(xiàng)為“Disabled”。
    • 將BIOS安全級(jí)別改為“setup”,并設(shè)置好管理密碼,以防止未授權(quán)的修改。
  • 限制更改GRUB引導(dǎo)參數(shù)
    • 使用grub2-mkpasswd-pbkdf2生成密鑰
    • 修改/etc/grub.d/00_header文件中,添加密碼記錄
    • 生成新的grud.cfg配置文件
[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   //備份配置文件
[root@localhost ~]# grub2-mkpasswd-pbkdf2   //制作grub的哈希密碼
輸入口令:                              //輸入密碼
Reenter password:                   //再次輸入確認(rèn)密碼
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.DFD8DA01D53B3B06F6023E9FF1D2C293B897FB5240235A28FD2B3633E53AEFA3920E8F04F59054995C305A00BE0EAC51381199F61351D3B75522B0D8FF9024E6.FB8C7B18FB79AC3AD20C1D5F580791DAB4C63A31DAD407E4F35DD2CBBA9C3AA6305B4B9DFBEC8743ECE211EBBC1ECD9E62241D80936E3602B17C1E1DA145394B             //生成的哈希密碼,復(fù)制PBKDF2 hash of your password is后面的部分
[root@localhost ~]# vim /etc/grub.d/00_header    //編輯grub的頭部配置文件

...//省略部分內(nèi)容...
  echo "play ${GRUB_INIT_TUNE}"
fi

if [ "x${GRUB_BADRAM}" != "x" ] ; then
  echo "badram ${GRUB_BADRAM}"
fi
cat << EOF                      //添加條目,設(shè)置grub密碼
set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DFD8DA01D53B3B06F6023E9FF1D2C293B897FB5240235A28FD2B3633E53AEFA3920E8F04F59054995C305A00BE0EAC51381199F61351D3B75522B0D8FF9024E6.FB8C7B18FB79AC3AD20C1D5F580791DAB4C63A31DAD407E4F35DD2CBBA9C3AA6305B4B9DFBEC8743ECE211EBBC1ECD9E62241D80936E3602B17C1E1DA145394B
~
:wq         //完成后保存退出   
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg  //從新制作grub配置文件
Generating grub configuration file ...
/etc/grub.d/00_header: line 362: warning: here-document at line 359 delimited by end-of-file (wanted `EOF')
Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-53d38298b286406e9641157795cda5db
Found initrd image: /boot/initramfs-0-rescue-53d38298b286406e9641157795cda5db.img
done                //配置完成
[root@localhost ~]# init 6    //重啟系統(tǒng)

CentOS 7中系統(tǒng)安全及應(yīng)用CentOS 7中系統(tǒng)安全及應(yīng)用CentOS 7中系統(tǒng)安全及應(yīng)用

6、禁止 root 用戶登錄

Linux 系統(tǒng)中,login 程序會(huì)讀取/etc/securetty 文件,以決定允許 root 用戶從哪些終端(安全終端)登錄系統(tǒng)。若要禁止 root 用戶從指定的終端登錄,只需從該文件中刪除或者注釋掉對(duì)應(yīng)的行即可。若要禁止 root 用戶從 tty5、tty6 登錄,可以修改/etc/securetty 文件,將 tty5、tty6 行注釋掉。

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

...//省略部分內(nèi)容...
tty4
#tty5
#tty6
tty7
...//省略部分內(nèi)容...
~
:wq     

弱口令檢測(cè)

Internet 環(huán)境中,過于簡(jiǎn)單的口令是服務(wù)器面臨的最大風(fēng)險(xiǎn)。盡管大家都知道設(shè)置一個(gè)更長、更復(fù)雜的口令會(huì)更加安全,但總是會(huì)有一些用戶因貪圖方便而采用簡(jiǎn)單、易記的口令字串。對(duì)于任何一個(gè)承擔(dān)著安全責(zé)任的管理員,及時(shí)找出這些弱口令賬號(hào)是非常必要的,這樣便于采取進(jìn)一步的安全措施。

1、安裝弱口令檢測(cè)軟件john

我的john安裝包在我的宿主機(jī)中,通過文件共享的方式讓虛擬機(jī)Linux系統(tǒng)查找到john軟件包,并安裝使用。

[root@localhost ~]# smbclient -L //192.168.144.128/    //查看宿主機(jī)共享信息
Enter SAMBA\root's password:     //我共享的主機(jī)沒有設(shè)置密碼,直接回車
OS=[Windows 10 Enterprise 10240] Server=[Windows 10 Enterprise 6.3]

    Sharename       Type      Comment
    ---------       ----      -------
    ADMIN$          Disk      遠(yuǎn)程管理
    C$              Disk      默認(rèn)共享
    IPC$            IPC       遠(yuǎn)程 IPC
    share           Disk                  //john軟件包存放位置
    Users           Disk      
Connection to 192.168.144.128 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
NetBIOS over TCP disabled -- no workgroup available
[root@localhost ~]# mount.cifs //192.168.144.128/share /mnt/tast   //將目錄掛載到本地目錄中
Password for root@//192.168.144.128/share:         //回車 
[root@localhost ~]# df -h
文件系統(tǒng)                 容量  已用  可用 已用% 掛載點(diǎn)
/dev/sda2                 20G  3.6G   17G   18% /
devtmpfs                 898M     0  898M    0% /dev
tmpfs                    912M     0  912M    0% /dev/shm
tmpfs                    912M  9.0M  903M    1% /run
tmpfs                    912M     0  912M    0% /sys/fs/cgroup
/dev/sda5                 10G   37M   10G    1% /home
/dev/sda1                6.0G  174M  5.9G    3% /boot
tmpfs                    183M   12K  183M    1% /run/user/42
tmpfs                    183M     0  183M    0% /run/user/0
//192.168.144.128/share   60G   11G   50G   18% /mnt/tast   //成功掛載
[root@localhost ~]# cd /mnt/tast      //到掛載的目錄下查看
[root@localhost tast]# ls
john-1.8.0.tar.gz          //john軟甲包
[root@localhost tast]# tar zxvf john-1.8.0.tar.gz -C /mnt  //將軟件包解壓到mnt目錄下
john-1.8.0/README
john-1.8.0/doc/CHANGES
john-1.8.0/doc/CONFIG
john-1.8.0/doc/CONTACT
...//省略部分內(nèi)容...
[root@localhost tast]# cd ..    //回到mnt目錄
[root@localhost mnt]# ls     //查看
john-1.8.0  tast          //顯示解壓的軟件包
[root@localhost mnt]# cd john-1.8.0/    //進(jìn)入軟件包查看信息
[root@localhost john-1.8.0]# ls
doc  README  run  src       
[root@localhost john-1.8.0]# cd run    
[root@localhost run]# ls  //進(jìn)入run目錄查看可執(zhí)行文件,這個(gè)時(shí)候是沒有可執(zhí)行文件的,需要我們自己來配置
ascii.chr  digits.chr  john.conf  lm_ascii.chr  mailer  makechr  password.lst  relbench
[root@localhost run]# yum install gcc gcc-c++    //安裝源碼包,來配置john執(zhí)行文件
已加載插件:fastestmirror, langpacks
base                                                                            | 3.6 kB  00:00:00     
extras                                                                          | 3.4 kB  00:00:00     
updates                                                                         | 3.4 kB  00:00:00     
Loading mirror speeds from cached hostfile
 * base: centos.ustc.edu.cn
 * extras: mirrors.cn99.com
 * updates: mirrors.163.com
正在解決依賴關(guān)系
--> 正在檢查事務(wù)
---> 軟件包 gcc.x86_64.0.4.8.5-36.el7_6.2 將被 安裝
--> 正在處理依賴關(guān)系 libgomp = 4.8.5-36.el7_6.2,它被軟件包 gcc-4.8.5-3
...//省略部分內(nèi)容...
[root@localhost run]# cd ..      //回到上一層目錄
[root@localhost john-1.8.0]# ls     //查看
doc  README  run  src
[root@localhost john-1.8.0]# cd src   //進(jìn)入源碼包  
[root@localhost src]# ls           //查看是否有源碼信息
AFS_fmt.c   charset.h   DES_std.c   john.asm      MD5_fmt.c  pa-risc.h   signals.c   unshadow.c
alpha.h     common.c    DES_std.h   john.c        MD5_std.c  path.c      signals.h   vax.h
alpha.S     common.h    detect.c    john.com      MD5_std.h  path.h      single.c    wordlist.c
batch.c     compiler.c  dummy.c     john.h        memory.c   ppc32alt.h  single.h    wordlist.h
...//省略部分內(nèi)容...
[root@localhost src]# make linux-x86-64    //在源碼包目錄下直接編譯
ln -sf x86-64.h arch.h
make ../run/john ../run/unshadow ../run/unafs ../run/unique \
    JOHN_OBJS="DES_fmt.o DES_std.o DES_bs.o DES_bs_b.o BSDI_fmt.o MD5_fmt.o MD5_std.o BF_fmt.o BF_std.o AFS_fmt.o LM_fmt.o trip_fmt.o dummy.o batch.o bench.o charset.o common.o compiler.o config.o cracker.o crc32.o external.o formats.o getopt.o idle.o inc.o john.o list.o loader.o logger.o math.o memory.o misc.o options.o params.o path.o recovery.o rpp.o rules.o signals.o single.o status.o tty.o wordlist.o unshadow.o unafs.o unique.o c3_fmt.o x86-64.o" \
    CFLAGS="-c -Wall -Wdeclaration-after-statement -O2 -fomit-frame-pointer  -DHAVE_CRYPT" \
    LDFLAGS="-s  -lcrypt"
make[1]: 進(jìn)入目錄“/mnt/john-1.8.0/src”
gcc -c -Wall -Wdeclaration-after-statement -O2 -fomit-frame-pointer  -DHAVE_CRYPT -funroll-loops DES_fmt.c
...//省略部分內(nèi)容...
rm -f ../run/unshadow
ln -s john ../run/unshadow
rm -f ../run/unafs
ln -s john ../run/unafs
rm -f ../run/unique
ln -s john ../run/unique
make[1]: 離開目錄“/mnt/john-1.8.0/src”           //編譯完成
[root@localhost src]# cd /mnt/john-1.8.0/run/    //進(jìn)入run目錄
[root@localhost run]# ls      //查看可執(zhí)行腳本文件是否出現(xiàn)
ascii.chr   john       lm_ascii.chr  makechr       relbench  unique
digits.chr  john.conf  mailer        password.lst  unafs     unshadow
//目錄下成功編譯出john執(zhí)行腳本文件,這樣就成功完成了john的安裝
2、利用john軟件檢測(cè)弱口令
[root@localhost ~]# cd /mnt/john-1.8.0/run       //進(jìn)入run目錄
[root@localhost run]# ls                         //查看執(zhí)行確定可執(zhí)行腳本
ascii.chr   john       lm_ascii.chr  makechr       relbench  unique
digits.chr  john.conf  mailer        password.lst  unafs     unshadow
[root@localhost run]# ./john /etc/shadow       //執(zhí)行john軟件檢查用戶密碼存放目錄shadow目錄
Loaded 2 password hashes with 2 different salts (crypt, generic crypt(3) [?/64])
Press 'q' or Ctrl-C to abort, almost any other key for status
123123           (root)                            //成功檢測(cè)出用戶弱口令密碼
123123           (sun)
2g 0:00:00:15 100% 2/3 0.1332g/s 420.1p/s 452.0c/s 452.0C/s leslie..boston
Use the "--show" option to display all of the cracked passwords reliably
Session completed

網(wǎng)絡(luò)端口掃描

利用nmap工具檢測(cè)網(wǎng)絡(luò)連接的端口,可以找出網(wǎng)絡(luò)中不可控的應(yīng)用服務(wù),及時(shí)關(guān)閉不安全的服務(wù),
減小安全風(fēng)險(xiǎn)。

1、安裝nmap工具

[root@localhost run]# yum install nmap -y   //可以直接用yum安裝工具就可以了
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: centos.ustc.edu.cn
 * extras: centos.ustc.edu.cn
 * updates: centos.ustc.edu.cn
正在解決依賴關(guān)系
--> 正在檢查事務(wù)
---> 軟件包 nmap.x86_64.2.6.40-16.el7 將被 安裝
--> 正在處理依賴關(guān)系 nmap-ncat = 2:6.40-16.el7,它被軟件包 2:nmap-6.40-16.el7.x86_64 需要
--> 正在檢查事務(wù)
...//省略部分內(nèi)容...

2、是使用你nmap工具檢測(cè)網(wǎng)絡(luò)端口

  • 命令格式

    nmap [掃描類型] [選項(xiàng)] &lt;掃描目標(biāo)...&gt;

  • 常用的掃描類型

    -sSTCP SYN 掃描,只向目標(biāo)發(fā)出 SYN 數(shù)據(jù)包,如果收到 SYN/ACK 響應(yīng)包就認(rèn)為目標(biāo)端口正在監(jiān)聽,并立即斷開連接;否則認(rèn)為目標(biāo)端口并未開放。

    -sTTCP 連接掃描,這是完整的 TCP 掃描方式,用來建立一個(gè) TCP 連接,如果成功則認(rèn)為目標(biāo)端口正在監(jiān)聽服務(wù),否則認(rèn)為目標(biāo)端口并未開放。

    -sFTCP FIN 掃描,開放的端口會(huì)忽略這種數(shù)據(jù)包,關(guān)閉的端口會(huì)回應(yīng) RST 數(shù)據(jù)包。

    -sUUDP 掃描:探測(cè)目標(biāo)主機(jī)提供哪些 UDP 服務(wù),UDP 掃描的速度會(huì)比較慢。

    -sPICMP 掃描:類似于 ping 檢測(cè),快速判斷目標(biāo)主機(jī)是否存活,不做其他掃描。

    -P0:跳過 ping 檢測(cè):這種方式認(rèn)為所有的目標(biāo)主機(jī)是存活的,當(dāng)對(duì)方不響應(yīng) ICMP請(qǐng)求時(shí),使用這種方式可以避免因無法 ping 通而放棄掃描。

[root@localhost run]# nmap -sT 127.0.0.1        //檢測(cè)本地開放的TCP端口

Starting Nmap 6.40 ( http://nmap.org ) at 2019-09-02 03:19 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00082s latency).
Not shown: 996 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
25/tcp  open  smtp
111/tcp open  rpcbind
631/tcp open  ipp

Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
[root@localhost run]# nmap -sU 127.0.0.1      //檢測(cè)本地開放的TCP端口

Starting Nmap 6.40 ( http://nmap.org ) at 2019-09-02 03:21 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000049s latency).
Not shown: 997 closed ports
PORT     STATE         SERVICE
68/udp   open|filtered dhcpc
111/udp  open          rpcbind
5353/udp open|filtered zeroconf

Nmap done: 1 IP address (1 host up) scanned in 48.95 seconds
[root@localhost run]# nmap -sP 192.168.31.12     //檢測(cè)地址主機(jī)是否存活

Starting Nmap 6.40 ( http://nmap.org ) at 2019-09-02 03:24 CST
Nmap scan report for 192.168.31.12
Host is up (0.00067s latency).
Nmap done: 1 IP address (1 host up) scanned in 0.17 seconds
[root@localhost run]# nmap -sT 192.168.31.12   //檢測(cè)目標(biāo)地址主機(jī)開放的TCP端口

Starting Nmap 6.40 ( http://nmap.org ) at 2019-09-02 03:30 CST
Nmap scan report for 192.168.31.12
Host is up (0.0019s latency).
Not shown: 995 filtered ports
PORT    STATE SERVICE
135/tcp open  msrpc
139/tcp open  netbios-ssn
443/tcp open  https
445/tcp open  microsoft-ds
902/tcp open  iss-realsecure

Nmap done: 1 IP address (1 host up) scanned in 9.32 seconds

謝謝觀看?。?!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI