千家信息网

Linux/Centos7系统管理之系统安全及应用

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,Linux/Centos7系统管理之系统安全及应用1.账号安全控制2.系统引导和登录控制3.弱口令检测4.端口扫描一、账号安全控制1.1基本安全措施1.1.1系统账号清理​ (1)在Linux系统中,
千家信息网最后更新 2024年09月22日Linux/Centos7系统管理之系统安全及应用

Linux/Centos7系统管理之系统安全及应用

1.账号安全控制
2.系统引导和登录控制
3.弱口令检测
4.端口扫描

一、账号安全控制

1.1基本安全措施

1.1.1系统账号清理

​ (1)在Linux系统中,除了用户手动创建的各种账号之外,还包括一些随系统或程序安装过程而产生的其他大量账号。除了root用户,大部分的非登录用户(bin、daemon、adm、nobody、lp、apache等)是不能登录的。

使用grep命令可以查看非登录用户如下:

[root@localhost ~]# grep "/sbin/nologin$" /etc/passwdbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinmail:x:8:12:mail:/var/spool/mail:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologingames:x:12:100:games:/usr/games:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologinnobody:x:99:99:Nobody:/:/sbin/nologinsystemd-network:x:192:192:systemd Network Management:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinpolkitd:x:999:998:User for polkitd:/:/sbin/nologinabrt:x:173:173::/etc/abrt:/sbin/nologinlibstoragemgmt:x:998:996:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologinrpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologincolord:x:997:995:User for colord:/var/lib/colord:/sbin/nologinsaslauth:x:996:76:Saslauthd user:/run/saslauthd:/sbin/nologinrtkit:x:172:172:RealtimeKit:/proc:/sbin/nologinpulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologinchrony:x:995:991::/var/lib/chrony:/sbin/nologinrpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologinnfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologinntp:x:38:38::/etc/ntp:/sbin/nologintss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologinusbmuxd:x:113:113:usbmuxd user:/:/sbin/nologingeoclue:x:994:989:User for geoclue:/var/lib/geoclue:/sbin/nologinqemu:x:107:107:qemu user:/:/sbin/nologinradvd:x:75:75:radvd user:/:/sbin/nologinsetroubleshoot:x:993:988::/var/lib/setroubleshoot:/sbin/nologinsssd:x:992:987:User for sssd:/:/sbin/nologingdm:x:42:42::/var/lib/gdm:/sbin/nologingnome-initial-setup:x:991:986::/run/gnome-initial-setup/:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologiavahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologintcpdump:x:72:72::/:/sbin/nologin

​ (2)而对于Linux服务器中长期不用的用户账号,若无法确定是否应该删除,可以暂时将其锁定。

[root@localhost ~]# usermod -L zhangsan[root@localhost ~]# passwd -S zhangsanzhangsan LK 2019-11-15 0 99999 7 -1 (密码已被锁定。)[root@localhost ~]# passwd -u zhangsan解锁用户 zhangsan 的密码。passwd: 操作成功

​ (3)当然,在服务器中如果说用户账号已经固定,不再更改,还可以采取锁定账号配置文件的方法,使用chattr(change attribution -更改文件状态)命令。

[root@localhost ~]# chattr +i /etc/passwd /etc/shadow[root@localhost ~]# lsattr /etc/passwd /etc/shadow----i----------- /etc/passwd----i----------- /etc/shadow[root@localhost ~]# useradd lisiuseradd:无法打开 /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表示查看状态

1.1.2密码安全控制

​ 设定密码期限的方法结合实例来讲述

 [root@localhost ~]#head -25 /etc/login.defs  |tail -1PASS_MAX_DAYS   99999[root@localhost ~]# vim /etc/login.defs [root@localhost ~]# head -25 /etc/login.defs |tail -1PASS_MAX_DAYS   30[root@localhost ~]# useradd wangwu[root@localhost ~]# passwd wangwu更改用户 wangwu 的密码 。新的 密码:无效的密码: 密码少于 8 个字符重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新。[root@localhost ~]# tail -1 /etc/shadowwangwu:$6$pDVLca5K$iy9JAb4PzbG14d3XfG8ei7dV0YnJFjOwRJVMzs3bMFyp.XPEkv0WO5XaGViv.4.n1jp5fPSCDHanJh3j3Am4f1:18215:0:30:7:::

操作解释:查看/etc/login.defs文件中第25行内容,用vim编辑器进去修改,将其改为30,表示最长使用时间,即密码的有效期为30天。该方式只针对之后新建的用户,那么对于原有用户如何操作呢?答案是使用chage命令。

[root@localhost ~]# tail -3 /etc/passwdzhangsan:x:1001:1001::/home/zhangsan:/bin/bashlisi:x:1002:1002::/home/lisi:/bin/bashwangwu:x:1003:1003::/home/wangwu:/bin/bash[root@localhost ~]# chage -M 20 lisi[root@localhost ~]# chage -M 20 wangwu[root@localhost ~]# tail -3 /etc/shadowzhangsan:$6$WsyIZguS$ZsJObVyyFzwxT2p0RoIemdrQjLUmoKDkzY8DlrtctYLBzxl0ja3rcp84BP3D5MTHfK.pj1IKAZpezYUwv1d/p0:18215:0:99999:7:::lisi:$6$yo1cSlqf$tR5J63h7yOdhqearLDVb8nOfpBlJE6Oem9h5bkREzCRDBA.7OsT.wsX5zJ3I.BUbHxfaw56JbP0IkDyAGwbCi0:18215:0:20:7:::wangwu:$6$pDVLca5K$iy9JAb4PzbG14d3XfG8ei7dV0YnJFjOwRJVMzs3bMFyp.XPEkv0WO5XaGViv.4.n1jp5fPSCDHanJh3j3Am4f1:18215:0:20:7:::

当然了,如果是批量创建的用户初次登录时必须自设密码,由管理员执行强制策略,以便下次登录时必须修改密码。使用"chage -d 0 用户名"来进行设置。

1.1.3命令历史、自动注销

一般情况下,历史命令默认是记录1000条,对于新登录用户修改/etc/profile文件将HISTSIZE更改即可

当前用户则直接在当前bash终端更改:export HISTSIZE=100

[root@localhost ~]# echo "HISTSIZE=10" >> /etc/profile   //对于新登录用户[root@localhost ~]# tail -1 /etc/profileHISTSIZE=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_logouthistory -cclear[root@localhost ~]# source ~/.bash_logout [root@localhost ~]# history     3  history [root@localhost ~]# 

1.2用户切换与提权

​ 一般情况下,大多数Linux服务器不建议用户直接以root用户进行登录。一方面可以大大减少因误操作而导致的破坏,另一方面也降低了特权密码在不安全的网络中被泄露的风险。

​ 在Linux系统为我们提供su、sudo两种命令,其中su命令主要用来切换用户,而sudo命令用来提升执行的权限。

1.2.1 su命令--切换用户

​ 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/groupwheel: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 -1auth        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 ssh3 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.2.2sudo命令--提升执行权限

(1)在配置文件/etc/sudoers中添加授权(注意需要:wq!强制保存)

首先我们来看一下这个配置文件

[root@localhost ~]# grep -v "^#" /etc/sudoers      //反向检索出不是以#号开头的内容Defaults   !visiblepwDefaults    always_set_homeDefaults    match_group_by_gidDefaults    env_resetDefaults    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/binroot    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 ~]$ ifconfigens33: flags=4163  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        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 0lo: flags=73  mtu 65536        inet 127.0.0.1  netmask 255.0.0.0        inet6 ::1  prefixlen 128  scopeid 0x10        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 0virbr0: flags=4099  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

1.3PAM安全认证

1.3.1PAM及其作用

​ PAM(Pluggable Authentication Modules),是Linux系统可插拔认证模块。

​ (1)高效且灵活的用户级别认证方式,也是当前Linux服务器普遍使用的认证方式;

​ (2)其提供看=了对所有服务进行认证的中央机制,适用于login,远程登录等;

​ (3)系统管理员通过PAM配置文件来制定不同应用程序的不同认证策略。

1.3.2PAM支持的四种管理界面:

​ 1、认证管理(authentication management)
​ 主要是接受用户名和密码,进而对该用户的密码进行认证,并负责设置用户的一些秘密
​ 信息。
​ 2、帐户管理(account management)
​ 主要是检查帐户是否被允许登录系统,帐号是否已经过期,帐号的登录是否有时间段的
​ 限制等等。
​ 3、密码管理(password management)
​ 主要是用来修改用户的密码。
​ 4、会话管理(session management)
​ 主要是提供对会话的管理和记账(accounting)。

1.3.3PAM认证原理

​ (1)PAM认证一般遵循这样的顺序:Service(服务)→PAM(配置文件)→pam_*.so
​ (2)PAM认证首先要确定那一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security下)进行安全认证。

1.3.4PAM认证的构成

例如查看su的PAM配置文件

[root@localhost ~]# cat /etc/pam.d/su#%PAM-1.0auth        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_uidauth        substack    system-authauth        include     postloginaccount     sufficient  pam_succeed_if.so uid = 0 use_uid quietaccount     include     system-authpassword    include     system-authsession     include     system-authsession     include     postloginsession     optional    pam_xauth.so

(1)每一行都是一个独立的认证过程

(2)每一行可以区分为三个字段:认证类型、控制类型和PAM模块及其参数

二、系统引导和登录控制

2.1开关机安全控制

2.1.1调整BIOS引导设置

  • 将第一引导设备设为当前系统所在硬盘
  • 禁止从其他设备(光盘、U盘、网络)引导系统
  • 将安全级别设为isetup,并设置管理员密码

备注:禁止从其他设备引导系统操作,感觉若是出现忘记root密码就可能无法从光驱去修改,所以还是谨慎操作

2.1.2限制更改GTUB引导参数

  • 使用grub2-mkpasswd-pbkdf2生成密钥
  • 修改/etc/grub.d//00_header文件中,添加密码记录
  • 生成新的grub.cfg配置文件

2.2终端及登录控制

2.2.1禁止root用户登录

修改/etc/securetty文件,禁止root用户从tty6登录就将该行注释掉

[root@localhost ~]# vim /etc/securetty[root@localhost ~]# head -18 /etc/securetty |tail -1#tty6

2.2.2禁止普通用户登录

只需要创建一个/etc/nologin文件即可

[root@localhost ~]# touch /etc/nologin

三、弱口令检测、端口扫描

3.1弱口令检测--John the Ripper

[root@localhost tarpkg]# lsapr-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]# lsdoc  README  run  srcroot@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.calpha.h     config.h    idle.c        MD5_std.c   ppc64.h     tty.calpha.S     cracker.c   idle.h        MD5_std.h   recovery.c  tty.hbatch.c     cracker.h   inc.c         memory.c    recovery.h  unafs.cbatch.h     crc32.c     inc.h         memory.h    rpp.c       unique.cbench.c     crc32.h     john.asm      mips32.h    rpp.h       unshadow.cbench.h     DES_bs_b.c  john.c        mips64.h    rules.c     vax.hbest.c      DES_bs.c    john.com      misc.c      rules.h     wordlist.cbest.sh     DES_bs.h    john.h        misc.h      sboxes.c    wordlist.hBF_fmt.c    DES_fmt.c   list.c        nonstd.c    sboxes-s.c  x86-64.hBF_std.c    DES_std.c   list.h        options.c   signals.c   x86-64.SBF_std.h    DES_std.h   LM_fmt.c      options.h   signals.h   x86-any.hBSDI_fmt.c  detect.c    loader.c      os.h        single.c    x86-mmx.hc3_fmt.c    dummy.c     loader.h      params.c    single.h    x86-mmx.Scharset.c   external.c  logger.c      params.h    sparc32.h   x86.Scharset.h   external.h  logger.h      pa-risc.h   sparc64.h   x86-sse.hcommon.c    formats.c   Makefile      path.c      status.c    x86-sse.Scommon.h    formats.h   Makefile.dep  path.h      status.hcompiler.c  getopt.c    math.c        ppc32alt.h  symlink.ccompiler.h  getopt.h    math.h        ppc32.h     times.h[root@localhost src]# ls ../run             ascii.chr   john.conf     mailer   password.lstdigits.chr  lm_ascii.chr  makechr  relbench

(2)安装编译器编译安装,得到可执行文件john,然后运行即可破解简单密码。

[root@localhost src]# yum install -y gcc gcc-c++...                    //省略过程完毕![root@localhost src]# rpm -q gccgcc-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]# lsascii.chr   john       lm_ascii.chr  makechr       relbench  uniquedigits.chr  john.conf  mailer        password.lst  unafs     unshadow[root@localhost run]# ./john /etc/passwd /etc/shadowLoaded 3 password hashes with 3 different salts (crypt, generic crypt(3) [?/64])Press 'q' or Ctrl-C to abort, almost any other key for status123456           (lokott)123456           (root)2g 0:00:01:06 7% 2/3 0.03025g/s 284.7p/s 287.6c/s 287.6C/s pookie1..mary1Use the "--show" option to display all of the cracked passwords reliably

根据以上步骤,我们即可获取root和lokott用户的密码了。

3.2网络扫描--NMAP

NMAP是个强大的端口扫描类安全评测工具,检测主机数量众多的巨大网络,支持ping扫描、多端口检测、OS识别等多种技术。使用NMAP定期扫描内部网络,可以找出网络中不可控的应用服务,及时关闭不安全的服务,减小安全风险。

nmap命令

命令格式:nmap [扫描类型] [选项] <扫描目标...>

-sS:TCP SYN扫描(半开扫描)

-sT:TCP 连接扫描

-sF:TCP FIN扫描

-sU:UDP扫描

-sP: ICMP扫描

-P0:跳过ping检测

[root@localhost ~]# rpm -q nmapnmap-6.40-19.el7.x86_64[root@localhost ~]# netstat -ntap                 //查看tcpActive 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               //查看udpActive 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.1Starting Nmap 6.40 ( http://nmap.org ) at 2019-11-15 13:32 CSTNmap scan report for localhost (127.0.0.1)Host is up (0.00060s latency).Not shown: 995 closed portsPORT    STATE SERVICE22/tcp  open  ssh25/tcp  open  smtp80/tcp  open  http111/tcp open  rpcbind631/tcp open  ippNmap done: 1 IP address (1 host up) scanned in 0.07 seconds

四、总结

​ 本文主要介绍的是Linux/Centos7系统管理中系统安全与应用的理论知识,通过实例操作来加强对命令的理解。通过本文的学习,可以方便查找安全隐患,从而及时采取有针对性的防护措施。

用户 密码 登录 命令 文件 安全 系统 认证 管理 切换 服务 权限 控制 账号 配置 网络 次登 上一 检测 端口 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 计算机网络技术几年制 网络安全从我做起读后感 联想服务器安装双处理器 四川邮电网络技术单招录取分数线 普陀区优势软件开发服务是什么 开发版连不上笔记本服务器 远程连接组态王opc服务器 济南 app软件开发 ns我的世界可以连接服务器吗 科密考勤机数据库连接 亲朋棋牌服务器关闭 数据库原理张红娟答案 网易我的世界组件怎么导入服务器 数据库知识和技术专业 国产网络安全设备品牌 果洛网络技术操作 数据库取消对字段隐藏 做数据库登录页面怎么弹出 宝塔数据库问题导致网页打不开 反馈服务器为空是怎么回事 手游如何自己制作一个服务器 自建服务器 php 石狮市软件开发 标题作为大学生如何维护网络安全 数据库建设应该学什么专业 第六届网络安全竞赛 贵州特时新互联网科技有限公司 惠普服务器系统电话激活 软件开发项目可以代理商投标吗 服务器过滤mac地址
0