Linux--系统安全及应用 理论详解+实验(账号安全,用户安全与提权,PAM安全认证,系统引导和登录安全,密码安全,端口扫描)

一:账户安全控制

1.1系统账号清理

将非登录用户的Shell设为/sbin/nologin
锁定长期不使用的账号
删除无用的账号
●锁定账号文件passwd、shadow,用以控制用户(包括root)无法创建删除修改账户

[root@localhost ~]# useradd -s /sbin/nologin mysql 
[root@localhost ~]# vi /etc/passwd

mark

+i进行锁定 -i解锁
lsattr 查看是否锁定
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow #锁定文件 
[root@localhost ~]# Isattr /etc/passwd /etc/shadow    #查看状态
---------- /etc/passwd    锁定
------------ /etc/shadow   锁定

案例:

[root@localhost ~]# chattr +i /etc/passwd /etc/shadow     ##进行文件锁定
[root@localhost ~]# lsattr /etc/passwd /etc/shadow        ##查看一下锁定的状态
----i----------- /etc/passwd                              ##有“i"是锁定状态
----i----------- /etc/shadow
[root@localhost ~]# chattr -i /etc/passwd /etc/shadow     ##现在进行文件解锁
[root@localhost ~]#  lsattr /etc/passwd /etc/shadow       ##查看一下文件的状态
---------------- /etc/passwd                              ##解锁成功
---------------- /etc/shadow
---------------- /etc/shadow
[root@localhost ~]# id tom                                ##检测账户存在否
id: tom: no such user                                     ##这里显示没有
[root@localhost ~]# useradd hua                           ##下面进行创建hua用户
[root@localhost ~]# passwd hua                            ##设置账户密码
更改用户 hua 的密码 。
新的 密码:                                                 ##输入账户密码
重新输入新的 密码:
抱歉,密码不匹配。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:                                          ##再次输入密码
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow    ##在进行文件锁定
[root@localhost ~]# lsattr /etc/passwd /etc/shadow       ##查看文件状态
----i----------- /etc/passwd                             ##锁定
----i----------- /etc/shadow
[root@localhost ~]# chattr -i /etc/passwd /etc/shadow    ##进行文件解锁
[root@localhost ~]# lsattr /etc/passwd /etc/shadow
---------------- /etc/passwd
---------------- /etc/shadow
[root@localhost ~]# userdel hua                          ##删除hua账户
[root@localhost ~]# id hua                               ##检测账户
id: hua: no such user                                    ##删除成功

1.2锁定账户跟解锁账户

[root@localhost ~]# useradd hua1                        ##创建hua1账户
[root@localhost ~]# passwd hua1                         ##设置hua1密码
更改用户 hua1 的密码 。                                    
新的 密码:                                               ##输入密码
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# useradd hua2                        ##创建hua2账户
[root@localhost ~]# passwd hua2                         ##设置hua2密码
更改用户 hua2 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# usermod -L hua1                     ##锁定hua1账号        
[root@localhost ~]# passwd -S hua1                      ##查看账号状态
hua1 LK 2020-06-22 0 99999 7 -1 (密码已被锁定。)           ##已经锁定
[root@localhost ~]# usermod -U hua1                     ##解锁账号
[root@localhost ~]# passwd -S hua1                      ##查看账号状态
hua1 PS 2020-06-22 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
[root@localhost ~]# usermod -L hua2
[root@localhost ~]# passwd -S hua2
hua2 LK 2020-06-22 0 99999 7 -1 (密码已被锁定。)
[root@localhost ~]# usermod -U hua2
[root@localhost ~]# passwd -S hua2
hua2 PS 2020-06-22 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

1.3.密码安全控制

设置密码有效期

要求用户下次登录时修改密码

[root@localhost ~]# vi /etc/login.defs    ##配置etc的文件    对于未创建的用户使用此命令
[root@localhost ~]# chage -M 30 lisi ##30天需要更改密码   对于已创建的用户
[root@localhost ~]##chage -d 0 list  ##强制下次list用户重设密码

案列:

mark

:wq ##保存退出

[root@localhost ~]# cat /etc/passwd  ##查看linux所有用户

mark

[root@localhost ~]##chage -d 0 hua1         ##强制下次hua1用户重设密码

You are required to change your password immediately (root enforced)
WARNING: Your password has expired.
You must change your password now and login again!
更改用户 hua1 的密码 。
为 hua1 更改 STRESS 密码。
(当前)UNIX 密码:           ##这边要设置hua1用户的登录密码

1.4历史命令,自动注销

减少记录的命令条数

[root@localhost ~]# vim /etc/profile	'进入/etc/profile'
HISTSIZE=200 
[root@localhost ~]#vi~/.bash_logout
history
clear

mark

1.5注销是自动清空命令历史

修改用户宿主目录中的~/.bash_logout文件,添加清空历史命令的操作语句。即:当用户注销(退出已登录的bash环境)时,所记录的历史命令将自动清空

[root@localhost ~]# vi .bash_logout       ## 编辑宿主目录的bash_logout文件
history -c
clear
[root@localhost ~]#history
source .bash_logout

1.6终端自动注销

bash终端环境中,可以设置一个闲置超时时间,当超过指定时间没有任何输入时即自动注销终端,这样可以有效避免当管理员不在时其他人员对服务器的误操作风险。闲置时间有变量TMOUT来控制,默认单位为秒

[root@localhost ~]# vim ~/.bash_profile   #编辑root家目录的环境变量
export TMOUT=60			'闲置时间设置为60s'

mark

二:使用SU命令切换用户

2.1用途及用法
用途: Substitute User,切换用户    su命令用于变更为其他使用者的身份
格式  su-目标用户
从一般用户切换root用户
su -root
从一般用户切换到root用户需要输入密码
从root用户切换一般用户
su -test
从root用户切换到一般用户,不需要输入test用户的密码,直接从su test命令即可进入test用户

2.2密码验证

[root@localhost /]# su - hua1	'带-选项标识将使用目标用户的登录shell环境'
上一次登录:一 6月 22 15:16:48 CST 2019pts/0 上
[gsy@localhost ~]$ su - root
密码:
上一次登录:一 6月 22 15:28:57 CST 2019pts/0 上
[root@localhost ~]# whoami
root
[root@localhost ~]# 

2.3限制使用su命令的用户

将允许使用su命令的用户加入wheel组,在wheel组内的用户才可以使用su切换用户命令

默认情况下,任何用户都允许使用su命令,从而有机会反复尝试其他用户(如root)
的登录密码,这样带来了安全风险。为了加强su命令的使用控制,可以借助于pam wheel
认证模块,只允许极个别用户使用
su命令进行切换。实现过程如下:将授权使用su命令
的用户添加到wheel 组,修改/etc/pam.d/su 认证配置以启用pam_ wheel 认证.

[root@localhost ~]# gpasswd -a hua1 wheel
正在将用户“hua1”加入到“wheel”组中
[root@localhost ~]# grep wheel /etc/group
wheel:x:10:hua1
[root@localhost ~]# vi /etc/pam.d/su

mark

2.启用pam _wheel认证模块

[root@localhost ~]# vi /etc/pam.d/su		'启用pam-WHEEL认证模块'
...省略部分内容
#auth            required        pam_wheel.so use_uid		'进入编辑,将此行开头的#删除,随后wq退出即可
启用pam_wheel认证以后,未加入到wheel组内的其他用户将无法使用su命令
尝试进行切换时将会按照“拒绝权限”来处理,从而将切换用户的权限控制在最小范围内
/pam.d  服务模块目录
使用su命令切换用户的操作将会记录到安全日志/var/log/secure文件中,可以根据需要进行查看
[root@localhost ~]# su - hua1	'之前添加了hua1用户,但并未加入到wheel组中'
上一次登录:一 6月 22 15:51:40 CST 2020pts/0 上
[hua2alhost ~]$ su - hua2		'无法使用su命令'
密码:
su: 拒绝权限
[hua2alhost ~]$ su - hua2		'无法使用su命令'
密码:
su: 拒绝权限
[hua2alhost ~]$ exit		'返回root用户'
登出
[root@localhost ~]# su - hua2		'root切换到lisi用户不需要密码'
上一次登录:一 6月 14 16:02:17 CST 2020pts/0 上
[hua2@localhost ~]$ su - hua2		'lisi切换到wangwu用户'
密码:
上一次登录:一 6月 22 16:03:57 CST 2020pts/0 上
[hua1@localhost ~]$ exit		'返回lisi'
登出
[hua2localhost ~]$ su - root		'切换为root'
密码:
上一次登录:一 6月 22 16:05:35 CST 2020pts/0 上

三:Linux中的PAM安全认证

3.1:su命令的安全隐患

默认情况下,任何用户都允许使用su命令,从而有机会反复尝试其他用户的登录密码,带来风险

借助pam_wheel认证模块,可以实现指定允许的用户使用su命令

3.2:PAM认证原理

PAM(Pluggable Authentication Modules)可插拔式认证模块,它是一种高效而且灵活便利的用户级别的认证方式,它也是当前Linux服务器普遍使用的认证方式
PAM认证一般遵循的顺序:Service(服务)→PAM(配置文件)→pam_*.so(.so 后缀代表模块文件)
PAM认证首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security下)进行安全认证
用户访问服务器的时候,服务器的某一个服务程序把用户的不同请求发送到PAM模块进行认证
不同的应用程序所对应的PAM模块也是不同的

3.3:PAM认证的构成

查看某个程序是否支持PAM认证,可以用ls命令进行查看,例如查看su是否支持PAM模块认证

[root@localhost ~]# ls /etc/pam.d | grep su

查看su的PAM配置文件:cat /etc/pam.d/su

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

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

3.4PAM安全认证流程

控制类型也可以乘坐Control Flags,用于PAM验证类型的返回结果
1.required验证失败时仍然继续,但返回Fail
2.requisite验证失败则立即结束整个验证过程,返回fail(最重要的一步)
3.sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
4.optional不用于验证,只显示信息(通常用session类型)
如图所示:

mark

四.使用sudo机制提升权限

4.1su命令命令缺点

默认情况下,任何用户都允许使用su命令,从而恶意用户有机会反复尝试其他用户(如root)的登录密码,带来安全风险

4.2sudo命令的用途方法

用途:已其他用户身份(如root)执行授权的命令

用法 sudo 授权命令

4.3配置sudo授权

visudo命令 或者 vim /etc/sudoers

记录格式: 用户 主机名列表 = 命令程序列表

授权配置主要包括用户、主机、命令三个部分,即授权哪些人在哪些主机上执行哪些命令。
各部分的具体含义如下。
➢用户 (user):直接授权指定的用户名,或采用“%组名”的形式(授权一个组的所有
用户)。
➢主机 (MACHINE): 使用此配置 文件的主机名称。此部分主要是方便在多个主机
间共用同一-份sudoers 文件,一 般设为localhost 或者实际的主机名即可。

➢命令(COMMANDS):允许授权的用户通过sudo方式执行的特权命令,需填写
命令程序的完整路径,多个命令之间以逗号“,”进行分隔。
典型的sudo配置记录中,每行对应-一个用户或组的sudo 授权配置。例如,若要授权.
用户jerry能够执行ifconfig命令来修改IP地址,而wheel组的用户无需验证密码即可执行
任何命令

[root@localhost log]# visudo
......
用户	主机名列表 = 命令程序列表
%wheel	ALL = NOPASSWD:ALL
jerry	localhost = /sbin/ifconfig
syrianer	localhost = /sbin/*,!/sbin/ifconfig,!/sbin/route
'可以使用通配符号*和取反符号!'
Cmnd_Alias	PKGTOOLS = /bin/rpm,/usr/bin/yum
mike	localhost = PKGTOOLS
这里的”*“的是通配符”!“表示取反符号
用户与主机名列表间用制表符隔开,=号左右有空格,命令程序列表中若是有两个及以上命令,命令与命令之间用逗号隔开

案列:

[root@localhost ~]# id hua1        ##查看hua1账户
uid=1001(hua1) gid=1001(hua1) 组=1001(hua1),10(wheel)
[root@localhost ~]# id hua2        ##查看hua2账户
uid=1002(hua2) gid=1002(hua2) 组=1002(hua2)
[hua1@localhost ~]$ sudo ifconfig ens33:0 192.168.1.11/24   ##修改hua1临时ip
[hua1@localhost ~]$ ifconfig   查看ip信息
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.11  netmask 255.255.255.0  broadcast 192.168.1.255
        ether 00:0c:29:84:c1:e3  txqueuelen 1000  (Ethernet)
[hua1@localhost ~]$ sudo ifconfig ens33:3 192.168.100.10/24   ##使用sudo修改ip
我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大
    

4.4查看sudo操作记录

需要启用Defaults logfile配置

默认日志文件:/var/log/sudo

[root@localhost ~]# visudo	'或者 vim /etc/sudoers也可以'

......
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
lisi    localhost = /usr/sbin/ifconfig
Defaults        logfile = "/var/log/sudo"	'输入设置'
## Allows members of the 'sys' group to run networking, software,

五:开关机安全控制

5.1调整BIOS引导设置

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

5.2GRUB限制

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

案列:

使用方向键来改变选择。按“e”来编辑选择的项目,或“c”作为命令提示符。所选条目将在4s中自动启动

mark

[root@localhost ~]# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.ba   ##将grup配置文件备份
[root@localhost ~]# cp /etc/grub.d/00_header /etc/grub.d/ead.bak    ##将/etc/grup.d/00_header文件也备份
[root@localhost ~]# grub2-mkpasswd-pbkdf2
输入口令:   例如:123123
Reenter password: 再次输入

pbkdf2.sha512.10000.922002DE94E4EDF1D03221BE3F3ACC9E02328F28293CBBB8A4507B7840D28F79DCF5171191F9826267195C1255621EAF3E8FC908C8AC0C73665105C048A6E21A.C3A4350CF5B5A8F53B5215569C5A3055670C439B1A244717A80F61C45E915685D7BD7F1874677F5E8D779F21374B6B70EAD109D5C111814D3B05D7DE5EB85A59        #编辑文件头信息
cat << EOF
set superusers="root"
pbkdf2.sha512.10000.922002DE94E4EDF1D03221BE3F3ACC9E02328F28293CBBB8A4507B7840D28F79DCF5171191F9826267195C1255621EAF3E8FC908C8AC0C73665105C048A6E21A.C3A4350CF5B5A8F53B5215569C5A3055670C439B1A244717A80F61C45E915685D7BD7F1874677F5E8D779F21374B6B70EAD109D5C111814D3B05D7DE5EB85A59 
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg  ##配置新新成的文件
init 6 重启

mark

六:终端登录安全控制

6.1限制root只在安全终端登录

安全终端配置:/etc/securetty

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

#console 
vc/1
vc/2
vc/3
:wq 最后保存退出

mark

6.2静止普通用户登录

  • 建立/etc/nologin文件 (用于维护时创建使用,设置这个文件可以方便有效防止变量出现)
  • 删除nologin文件或重启后即恢复正常
[root@localhost ~]# touch /etc/nologin		'禁止普通用户登录'
[root@localhost etc]# find -name "nologin"	
./nologin
[root@localhost etc]# rm -rf /etc/nologin	'删除掉/etc/nologin文件即可恢复正常

七:弱口令检测

7.1:Joth the Ripper,简称为 JR

  • 一款密码分析工具,支持字典式的暴力破解
  • 通过对shadow文件的口令分析,可以检测密码强度

暴力密码破解工具-John the Ripper开源密码破解器下载

下载john-1.8.0.tar.gz

wget http://www.openwall.com/john/j/john-1.8.0.tar.gz
...
正在保存至: “john-1.8.0.tar.gz”

100%[+++++++++++++++++++++++++++++++++++++++++++++++++++======================================>] 5,450,412   8.47KB/s 用时 8m 5s  

2020-07-05 15:43:33 (4.70 KB/s) - 已保存 “john-1.8.0.tar.gz” [5450412/5450412])

安装完成查看一下
[root@localhost ~]# ll
总用量 5880
-rw-------. 1 root root    2057 6月  17 23:17 anaconda-ks.cfg
-rw-r--r--. 1 root root    2105 6月  17 23:17 initial-setup-ks.cfg
-rw-r--r--. 1 root root  558260 7月   6 11:12 john-1.8.0.tar.gz
-rw-r--r--. 1 root root 5450412 7月   7 2014 john-1.8.0.tar.gz.0
drwxr-xr-x. 2 root root       6 6月  17 23:18 公共
drwxr-xr-x. 2 root root       6 6月  17 23:18 模板

进行解压编译
[root@localhost ~]# tar zxvf john-1.8.0.tar.gz -C /opt/     ##把安装包解压编译到opt目录
john-1.8.0/README
john-1.8.0/doc/CHANGES
john-1.8.0/doc/CONFIG
john-1.8.0/doc/CONTACT
john-1.8.0/doc/COPYING
john-1.8.0/doc/CREDITS
john-1.8.0/doc/EXAMPLES
john-1.8.0/doc/EXTERNAL
john-1.8.0/doc/FAQ
john-1.8.0/doc/INSTALL
john-1.8.0/doc/LICENSE
john-1.8.0/doc/MODES
john-1.8.0/doc/OPTIONS
john-1.8.0/doc/README
john-1.8.0/doc/RULES
john-1.8.0/run/ascii.chr

[root@localhost ~]# cd /opt               ##进入opt目录
[root@localhost opt]# ls                  ##已经在目录底下了
john-1.8.0  rh
[root@localhost opt]# cd john-1.8.0/      ##进入目录
[root@localhost john-1.8.0]# ls
doc  README  run  src
说明文档  使用说明  运行的  源码包
     
[root@localhost john-1.8.0]# ls run
ascii.chr   john.conf     mailer   password.lst
digits.chr  lm_ascii.chr  makechr  relbench
[root@localhost john-1.8.0]# cd src      ##进入src目录 会发现目录里面的文件都是.c结尾 这是C语言的文件  linux内核是c语言开发的
[root@localhost src]# ls
AFS_fmt.c   crc32.c     john.h        os.h        status.c
alpha.h     crc32.h     list.c        params.c    status.h
alpha.S     DES_bs_b.c  list.h        params.h    symlink.c
batch.c     DES_bs.c    LM_fmt.c      pa-risc.h   times.h
batch.h     DES_bs.h    loader.c      path.c      trip_fmt.c
bench.c     DES_fmt.c   loader.h      path.h      tty.c
bench.h     DES_std.c   logger.c      ppc32alt.h  tty.h
best.c      DES_std.h   logger.h      ppc32.h     unafs.c
best.sh     detect.c    Makefile      ppc64alt.h  unique.c
BF_fmt.c    dummy.c     Makefile.dep  ppc64.h     unshadow.c
BF_std.c    external.c  math.c        recovery.c  vax.h
BF_std.h    external.h  math.h        recovery.h  wordlist.c
BSDI_fmt.c  formats.c   MD5_fmt.c     rpp.c       wordlist.h
c3_fmt.c    formats.h   MD5_std.c     rpp.h       x86-64.h
charset.c   getopt.c    MD5_std.h     rules.c     x86-64.S
charset.h   getopt.h    memory.c      rules.h     x86-any.h
common.c    ia64.h      memory.h      sboxes.c    x86-mmx.h
common.h    idle.c      mips32.h      sboxes-s.c  x86-mmx.S
compiler.c  idle.h      mips64.h      signals.c   x86.S
compiler.h  inc.c       misc.c        signals.h   x86-sse.h
config.c    inc.h       misc.h        single.c    x86-sse.S
config.h    john.asm    nonstd.c      single.h
cracker.c   john.c      options.c     sparc32.h
cracker.h   john.com    options.h     sparc64.h
下面进行手工编译安装
[root@localhost src]# yum install gcc gcc-c++ -y     
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
 * base: mirrors.163.com
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.nju.edu.cn
base                                          | 3.6 kB     00:00     
extras                                        | 2.9 kB     00:00     
updates                                       | 2.9 kB     00:00     
(1/4): base/7/x86_64/group_gz                   | 153 kB   00:00     
(2/4): extras/7/x86_64/primary_db               | 194 kB   00:00     
(3/4): updates/7/x86_64/primary_db              | 3.0 MB   00:03     

[root@localhost john-1.8.0]# cd src
[root@localhost src]# make linux-x86-64		'make编译'
[root@localhost john-1.8.0]# cd run
[root@localhost run]# ls		            ##这边已经有john文件
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	运行脚本查看/etc/passwd /etc/shadow文件
Loaded 4 password hashes with 4 different salts (crypt, generic crypt(3) [?/64])
Press 'q' or Ctrl-C to abort, almost any other key for status		'等待几分钟,若设置的密码在弱口令字典中,就会被识别出来密码,说明密码不够复杂,不太安全'
123123           (root)
123123           (tom2)
123123           (tom)
破解完成

7.2:nmap实验

[root@localhost ~]# rpm -q nmap            ##查看一下nmap有没有安装
未安装软件包 nmap 
[root@localhost ~]# yum -y install nmap   ##用yum安装一下
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.nju.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 nmap.x86_64.2.6.40-19.el7 将被 安装
--> 正在处理依赖关系 nmap-ncat = 2:6.40-19.el7,它被软件包 2:nmap-6.40-19.el7.x86_64 需要
...此处省略
[root@localhost ~]# nmap -sP 20.0.0.0/24     20.0.0.0/24是本机的网络号 查看此网段中哪些主机

Starting Nmap 6.40 ( http://nmap.org ) at 2020-07-06 12:04 CST
Nmap scan report for 20.0.0.2
Host is up (0.00019s latency).
MAC Address: 00:50:56:F6:2D:F5 (VMware)
Nmap scan report for 20.0.0.3
Host is up (0.00034s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 20.0.0.254
Host is up (0.00010s latency).
MAC Address: 00:50:56:EC:A5:D1 (VMware)
Nmap scan report for 20.0.0.41
Host is up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 2.37 seconds
[root@localhost ~]#  nmap -sT 20.0.0.41

Starting Nmap 6.40 ( http://nmap.org ) at 2020-07-06 12:08 CST
Nmap scan report for 20.0.0.41           ##查看主机20.0.0.41开了哪些TCP端口
Host is up (0.0014s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
111/tcp  open  rpcbind
6000/tcp open  X11

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

本次实验结束感谢观看

猜你喜欢

转载自blog.csdn.net/weixin_47151643/article/details/106913690