当前位置:   article > 正文

Linux系统安全

linux系统安全

目录

1. 账号安全控制

1.1 系统账号清理

1.2密码安全控制

1.2.1 设置密码有效期

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

1.3 账号安全基本措施

1.3.1常用四个系统配置文件

1.3.1 命令历史限制

1.3.2 终端自动注销

2.系统引导和登录控制

2.1 使用su命令切换用户

2.1.1 切换用户

2.1.2密码验证

2.1.3 限制使用su命令的用户

2.2 PAM安全认证

2.2.1 Linux中的PAM安全认证

2.2.2 PAM认证原理

2.2.3 PAM认证的构成

2.3使用sudo机制提升权限

2.3.1 sudo命令的用途及用法

2.4 使用sudo机制提升

3 系统引导和登录控制

3.1 开关机安全控制

3.1.1 调整BIOS引导设置原则

3.1.2 GRUB限制

3.1.3 GRUB菜单加密的实现

3.2 终端登录安全控制

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

3.2.2 禁止普通用户登录

4 网络端口扫描——nmap工具

4.1 nmap工具

4.2 netstat命令


1. 账号安全控制

1.1 系统账号清理

  • 将非登录用户的shell设为/sbin/nologin
usermod -s /sbin/nologin 用户名
  • 锁定长期不使用的账户
  1. usermod -L 用户名
  2. passwd -l 用户名`
  • 删除无用的账号
userdel [-r] 用户名
  • 锁定账号文件passwd、shadow
  1. [root@localhost ~]# chattr +i /etc/passwd /etc/shadow `##锁定账号文件`
  2. [root@localhost ~]# lsattr /etc/passwd /etc/shadow `##锁定文件并查看状态`
  3. ----i----------- /etc/passwd
  4. ----i----------- /etc/shadow
  5. [root@localhost ~]# chattr -i /etc/passwd /etc/shadow `##解锁文件`
  6. [root@localhost ~]# lsattr /etc/passwd /etc/shadow `##锁定文件并查看状态`
  7. ---------------- /etc/passwd
  8. ---------------- /etc/shadow
  9. `这两个文件被锁了以后用户也会无法创建`

1.2密码安全控制

1.2.1 设置密码有效期

法一

[root@localhost ~]# vim /etc/login.defs  `##修改密码配置文件,适用于新建用户`

法二

  1. [root@localhost ~]# chage -M 30 zhangsan `##适用于已有的用户`
  2. [root@localhost ~]# cat /etc/shadow | grep zhangsan `##查看shadow文件的zhnagsan的那一行`

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

  1. chage ##修改账号和密码有效期限
  2. 语法:chage [参数] [数值] username

常用参数

选项说明
l列出当前用户过期时间设置信息
m密码可以更改的最小天数,为0时任何时候都能更改
M密码保持有效的最大天数
E设置用户的过期时间 过了这些天账号将不可用 0表示马上过期 -1表示永不过期
d上一次更改的日期
[root@localhost ~]# chage -d 0 zhangsan  `##下次登录时强制请求修改密码`

1.3 账号安全基本措施

1.3.1常用四个系统配置文件

  1. /etc/profile
  2. 系统环境变量得配置文件(全局有效)  环境变量  PATH   HISTSIZE
  3. 开机时,用户登录会自动加载
  4. /etc/bashrc
  5. 全局有效,用户在切换shell环境时也会自动加载此文件中的配置
  6. source 刷新
  7. ~/.bash_profile
  8. 只针对当前用户有效
  9. echo ''>  ~/.bash_history放在当前文件夹中
  10. 当前用户开机后首次登录系统时会执行一次这个命令
  11. ~/ . bashrc
  12. 只针对当前用户有效
  13. echo ' ' > ~/ .bash_ history
  14. 当前用户每次登录或者切换shell环境时都会执行一次命令

1.3.1 命令历史限制

[root@localhost ~]# history -c  `##临时清空历史命令`
  1. [root@localhost ~]# vim /etc/profile
  2. export HISTSI本E=200 `##减少记录的命令条数`
  3. [root@localhost ~]# source /etc/profile
  4. [root@localhost ~]# vim ~/.bashre
  5. echo " " > -/.bash_ history `##添加这一行后登录时自动清空命令历史`

1.3.2 终端自动注销

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

[root@localhost ~]# source /etc/proflie  `##刷新配置文件`

2.系统引导和登录控制

2.1 使用su命令切换用户

2.1.1 切换用户

格式 su [-] 目标用户

  1. [root@localhost ~]# pwd
  2. /root
  3. [root@localhost ~]# su wangwu `##该方法切换用户不会改变目录`
  4. [wangwu@localhost root]$ pwd
  5. /root
  1. [root@localhost ~]# su - wangwu `##该方法切换用户会进入当前用户的家目录,并自动加载shell环境`
  2. 上一次登录:二 89 17:12:30 CST 2022pts/0
  3. [wangwu@localhost ~]$ pwd
  4. /home/wangwu

2.1.2密码验证

root→任意用户,不验证密码

  1. [root@localhost ~]# su wangwu
  2. [wangwu@localhost root]$

普通用户→其他用户,验证目标用户的密码

  1. [wangwu@localhost ~]$ su - root
  2. 密码:
  3. 上一次登录:二 89 14:11:59 CST 2022tty2
  4. [root@localhost ~]# whoami
  5. root

2.1.3 限制使用su命令的用户

将允许使用su命令的用户加入wheel组

  1. [root@localhost ~]# gpasswd -a wangwu wheel
  2. 正在将用户“wangwu”加入到“wheel”组中
  3. [root@localhost ~]# id wangwu
  4. uid=1003(wangwu) gid=1003(wangwu) 组=1003(wangwu),`10(wheel) ##已经将用户加入到wheel组中`

启用pam_ wheel认证模块

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

2.2 PAM安全认证

2.2.1 Linux中的PAM安全认证

su命令的安全隐患

  • 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root) 的登录密码,带来安全风险
  • 为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换

PAM(Pluggable Authentication Modules)可插拔式认证模块

  • 是一种高效而且灵活便利的用户级别的认证方式
  • 也是当前Linux服务器普遍使用的认证方式

2.2.2 PAM认证原理

  • 一般遵循的顺序

      Service (服务) → PAM (配置文件) → +pam_ *.so
    
  • 首先要确定哪-项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于 /lib64/security下)进行安全认证

  • 用户访问服务器时,服务器的某-个服务程序把用户的请求发送到PAM模块进行认证

  • 不同的应用程序所对应的PAM模块是不同的

2.2.3 PAM认证的构成

  • 查看某个程序是否支持PAM认证,可以用ls命令
  1. 示例:查看su是否支持PAM模块认证
  2. [root@localhost ~]# ls /etc/pam.d | grep su
  3. su
  4. sudo
  5. sudo-i
  6. su-l
  • 查看su的PAM配置文件
  1. [root@localhost ~]# cat /etc/pam.d/su
  2. #%PAM-1.0
  3. auth sufficient pam_rootok.so
  4. # Uncomment the following line to implicitly trust users in the "wheel" group.
  5. #auth sufficient pam_wheel.so trust use_uid
  6. # Uncomment the following line to require a user to be in the "wheel" group.
  7. auth required pam_wheel.so use_uid
  8. auth substack system-auth
  9. auth include postlogin
  10. account sufficient pam_succeed_if.so uid = 0 use_uid quiet
  11. account include system-auth
  12. password include system-auth
  13. session include system-auth
  14. session include postlogin
  15. session optional pam_xauth.so
  16. `每一行都是一个独立的认证过程`
  17. `每行可以区分为三个子段
  18. 认证类型
  19. auth:对用户身份进行识别。如提示输入密码,判断是否为root
  20. account:对账号各项属性进行检查。如是否允许登录系统。帐号是否已经过期。是否达到最大用户数等。
  21. password:使用用户信息来更新数据,如修改用户密码。
  22. session:定义登录前以及退出后所要进行的会话操作管理。如登录连接信息。用户数据的打开和关闭,挂载文件系统。
  23. 控制类型
  24. required:表示需要返回一个成功值。如果返回失败,不会立刻将失败结果返回,而是堆继续进行同类型的下一验证。所有此类型的模块都执行完成后,再返回失败。
  25. reqpuintae:与required相似。但如果此模块返回失败,则立刻返回失败并表示此类型失败
  26. sufficient:如果此模快返回成功,则直接向程序退回成功,表示此类成功,如果失败,也不影响这类型的返回值。
  27. optional:不进行成功与否的返回。一般不用于验证。只是显示信息(通常用于session类型)
  28. include:表示在验证过程中调用其他的PAM配置文件。比如很多应用通过完整调用/ect/pam. d/system-auth(主要负责用户登录系统的认证工作) 来实现认证而不需要重新逐去写配置项。
  29. PAM模块及其参数
  30. 默认路径在/lib64/security目录下,如果不在此默认路径下。要填写绝对路径。
  31. 同一个模块,可以出现在不同的模块类型中,它在不同的类型中所执行的操作都不相同,这是由于每个模块针对不同的模块类型编制了不同的执行函数。`

2.3使用sudo机制提升权限

2.3.1 sudo命令的用途及用法

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

  1. 用法 :sudo 授权命令
  2. 复制代码
  1. [root@localhost opt]# touch 1.txt
  2. [root@localhost opt]# ls
  3. 1.txt
  4. [root@localhost opt]# su wangwu
  5. [wangwu@localhost opt]$ ll
  6. 总用量 0
  7. -rw-r--r-- 1 root root 0 89 18:46 1.txt
  8. [wangwu@localhost opt]$ rm 1.txt
  9. rm:是否删除有写保护的普通空文件 "1.txt"?y
  10. rm: 无法删除"1.txt": 权限不够
  11. [wangwu@localhost opt]$ sudo rm 1.txt
  12. 我们信任您已经从系统管理员那里了解了日常注意事项。
  13. 总结起来无外乎这三点:
  14. #1) 尊重别人的隐私。
  15. #2) 输入前要先考虑(后果和风险)。
  16. #3) 权力越大,责任越大。
  17. [sudo] wangwu 的密码:
  18. [wangwu@localhost opt]$ ls
  19. [wangwu@localhost opt]$

2.4 使用sudo机制提升

  1. visudo 或 vim /etc/sudoors(此文件的默认权限为440. 保存退出时必领执行" :wq! "命令来强制操作)
  2. 语法格式:
  3. 用户 主机名 = 命令程序列表
  4. 用户 主机名 (用户) = 命令程序列表
  5. 用户:直接授权指定的用户名。或采用"%组名"的形式(授权一个组的所有用户)。
  6. 主机名:使用此规则的主机名。没配置过主机名时可用localhoat.有配过主机名则用实际的主机名。ALL则代表所有主机
  7. (用户):用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命令
  8. 命令程序列表:允许授权的用户通过sudo方式执行的特权命令。需填写命令程序的完整路径。多个命令之间以逗号","进行分隔。ALL则代表系统中的所有命令

  1. 使用关键字User_ Alias Host_Alias Cmnd_ Alias 来进行设置别名(别名必须为大写)
  2. User_Alias USERS=zhangan, lisi,wangwu
  3. Host_Alias HOSTS = localhost
  4. Cmnd_Alias CMNDS = /sbin/ifconfig,/usr/sbin/usradd,/usr/sbin/userdel
  5. USERS HOSTS=CMNDS

  1. 启用audo操作日志
  2. vigudo
  3. Defaults logfile ="/var/log/sudo"

3 系统引导和登录控制

3.1 开关机安全控制

3.1.1 调整BIOS引导设置原则

  • 将第一引导设备设为当前系统所在硬盘
  • 禁止从其他设备(光盘、 U盘、网络)引导启动系统
  • 将安全级别设为setup,并设置管理员密码。
  • 禁用重启热键:Ctrl+Alt+Delete,避免因用户误操作重启。

3.1.2 GRUB限制

  • 未经授权禁止修改启动参数
  • 未经授权禁止进入指定系统

通常情况下在系统开机进入GRUB菜单时,按e键可以查看并修改GRUB引导参数,这对服务器是一个极大的威胁。可以为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。

3.1.3 GRUB菜单加密的实现

定义每个菜单项的所有脚本都存放在/etc/grub.d目录中,这些脚本的名称必须有两位的数字前缀,其目的是构建GRUB 2菜单时定义脚本的执行顺序以及相应菜单项的顺序,比如00_header文件首先被读取。

文件描述
00_header设置grub默认参数
10_linux系统中存在多个linux版本
20_ppc_terminfo设置tty控制台
30_os_prober设置其他分区中的系统(硬盘中有多个操作系统时设置)
40_custom和41_custom用户自定义的配置
  • 设置GRUB 2加密

由于GRUB 2负责引导linux系统,其作为系统中的第一道屏障的安全性非常重要,对GRUB 2进行加密可以实现安全性。

在默认情况下,GRUB 2对所有可以在物理上进入控制台的人都是可访问的。任何人都可以选择并编辑任意菜单项,并且可以直接访问GRUB命令行。要启用认真支持,必须将环境变量超级用户设置为一组用户名(可以使用空格、逗号、分号作为分隔符)这样就只允许超级用户使用GRUB命令行、编辑菜单项以及执行任意菜单项。

  • GRUB 2密码支持以下两种格式:

    • 明文密码:密码数据没有经过加密,安全性差。
    • PBKDF2加密密码:密码经过PBKDF2哈希算法进行加密,在文件中存储的是加密后的密码数据,安全性较高。
  • 为GRUB菜单设置密码的两种方式:

    • CentOS 7系统中,直接使用 “grub2-setpasswd” 命令设置grub密码;
    • CentOS 6系统中,先要使用grub2-mkpasswd-pbkdf2命令生成PBKDF2加密口令,然后在/etc/grub.d/00_header文件中添加超级用户和PBKDF2加密口令,最后使用grub2-mkconfig命令生成grub配置文件。(/etc/grub.d/00_header是开机时第一个启动的文件)
  • 方法一:

CentOS 7系统中,直接使用 “grub2-setpasswd” 命令设置grub密码。

 [root@localhost ~]# grub2-setpassword    //使用命令直接设置GRUB密码

  • 方法二:

CentOS 6系统中,先要使用grub2-mkpasswd-pbkdf2命令生成PBKDF2加密口令, 然后在/etc/grub.d/00_header文件中添加超级用户和PBKDF2加密口令, 最后使用grub2-mkconfig命令生成grub配置文件。

  1.  # 步骤1.备份两个配置文件
  2.  [root@localhost ~]# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
  3.  [root@localhost ~]# cp /etc/grub.d/00_header /etc/grub.d/00_header.bak
  4.  
  5.  # 步骤2.生成PBKDF2加密口令
  6.  [root@localhost ~]# grub2-mkpasswd-pbkdf2   //使用哈希算法生成密码
  7.  输入口令:
  8.  Reenter password:
  9.  PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.D9BDDD44312FD353436E03F2F73F643A0DD6FB59D989ECAAADB911E95846A477137A73DCEA248BFD6FF02BE2D52052E3790AEE175B10AA7634C6B66D1D9173C7.B15B5DC77367D1960086506C3E39A718477F1D326B6548577D992BB383DBA0E3AF7EFD3E67DD768E33B391C6AC1FAC1C6BB4CFF492D2046A651DF5986ACAE35A
  10.  
  11.  # 步骤3.编辑配置文件/etc/grub.d/00_header,将加密口令添加进文件。注意复制口令时不要有空格。
  12.  [root@localhost ~]# vim /etc/grub.d/00_header
  13.  -------------------------------
  14.  cat <<EOF
  15.  set superusers="root"       //设置登录用户
  16.  password_pbkdf2 root grub.pbkdf2.sha512.10000.D9BDDD44312FD353436E03F2F73F643A0DD6FB59D989ECAAADB911E95846A477137A73DCEA248BFD6FF02BE2D52052E3790AEE175B10AA7634C6B66D1D9173C7.B15B5DC77367D1960086506C3E39A718477F1D326B6548577D992BB383DBA0E3AF7EFD3E67DD768E33B391C6AC1FAC1C6BB4CFF492D2046A651DF5986ACAE35A
  17.  EOF
  18.  
  19.  # 步骤4.使用 grub2-mkconfig 命令生成新的 grub.cfg 配置文件。
  20.  [root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
  21.  Generating grub configuration file ...
  22.  Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
  23.  Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
  24.  Found linux image: /boot/vmlinuz-0-rescue-869778d6675742a5968d2ea8c0e087b2
  25.  Found initrd image: /boot/initramfs-0-rescue-869778d6675742a5968d2ea8c0e087b2.img
  26.  done

3.2 终端登录安全控制

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

  • 安全终端配置:/etc/securetty

示例:

将终端tty5、tty6注释掉,禁止root用户从这两个终端登录。

  1.  [root@localhost ~]# vi /etc/securetty //编辑配置文件,将终端tty5、tty6注释掉
  2.  ----------------------
  3.  #tty5
  4.  #tty6

3.2.2 禁止普通用户登录

  • 建立/etc/nologin文件
  • 删除nologin文件或者重启后即恢复正常
  1.  [root@localhost ~]# touch /etc/nologin   //禁止普通用户登录
  2.  [root@localhost ~]# rm -rf /etc/nologin   //取消普通用户登录限制

4 网络端口扫描——nmap工具

4.1 nmap工具

  • 一款强大的网络端口扫描、安全、检测工具
  • 官方网站:[Nmap: the Network Mapper - Free Security Scanner]
  • CentOS 7.3光盘中安装包 nmap-6.40-7.el7.x86_64.rpm

  • 网络端口扫描:
控制位描述
SYN建立链接
ACK确认
FIN结束断开
PSH传送 0 数据缓存,上层应用协议
RST重置
URG紧急
  • 服务和端口号:
服务端口号
HTTP80
HTTPS443
Telnet23
FTP21
SSH(安全登录)、SCP(文件传输)、端口重定向22
SMTP25
POP3110
WebLogic7001
TOMCAT8080
WIN2003远程登录3389
Oracle数据库1521
MS SQL* SEVER数据库sever1433
MySQL 数据库sever3306
  • 安装nmap:
  1.  [root@localhost ~]# rpm -qa|grep nmap     //查看nmap
  2.  [root@localhost ~]# yum install -y nmap   //安装nmap
  3. 复制代码
  4. 复制代码
  • nmap命令常用格式
  1.  nmap [扫描类型] [选项] <扫描目标>
  2. 复制代码
  3. 复制代码
  • 常用选项和扫描类型
扫描类型和选项作用
-p指定扫描的端口。
-n禁用反向DNS解析(以加快扫描速度)
-sSTCP的SYN扫描 (半开扫描),只向目标发出SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放。
-sTTCP连接扫描,这是完整的TCP扫描方式(默认扫描类型),用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放。
-sFTCP的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对sYN数据包进行简单过滤,而忽略了其他形式的TCP攻击包。这种类型的扫描可间接检测防火墙的健壮性。
-sUUDP扫描,探测目标主机提供哪些UDP服务,UDP扫描的速度会比较慢。
-sPICMP 扫描,类似于ping检测,快速判断目标主机是否存活,不做其他扫描。
-P0跳过ping检测, 这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法ping通而放弃扫描。
  • 用于主机发现的一些用法

    • -sL:List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现。
    • -sn:Ping Scan 只进行主机发现,不进行端口扫描。
    • -Pn:将所有指定的主机视作开启的,跳过主机发现的过程。
    • -PS/PA/PU/PY[portlist]:使用TCPSYN/ACK或SCTP INIT/ECHO方式进行发现。
    • -PE/PP/PM: 使用ICMP echo, timestamp, and netmask 请求包发现主机。
    • -PO[protocollist]:使用IP协议包探测对方主机是否开启。
    • -n/-R:-n表示不进行DNS解析;-R表示总是进行DNS解析。
    • --dns-servers <serv1[,serv2],...>:指定DNS服务器。
    • --system-dns:指定使用系统的DNS服务器。
    • --traceroute::追踪每个路由节点。
  • Nmap用于端口扫描的一些用法

    • -sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描。
    • -sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况。
    • -sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。
    • --scanflags < flags>: 定制TCP包的flags。
    • -sI < zombiehost[:probeport]>:指定使用idle scan方式来扫描目标主机(前提需要找到合适的zombie host)
    • -sY/sZ: 使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况。
    • -sO: 使用IP protocol 扫描确定目标机支持的协议类型。
    • -b < FTP relay host>: 使用FTP bounce scan扫描方式。

示例:

  1.  # 分别查看本机开放的TCP端口、UDP端口
  2.  [root@localhost ~]# nmap -sT 127.0.0.1
  3.  [root@localhost ~]# nmap -sU 127.0.0.1
  4.  
  5.  # 检测192.168.80.0/24网段有哪些主机提供HTTP服务
  6.  [root@localhost ~]# nmap -p 80 192.168.80.0/24
  7.  [root@localhost ~]# nmap -p 80 192.168.91.100/24
  8.  
  9.  # 检测192.168.80.0/24网段有哪些存活主机
  10.  [root@localhost ~]# nmap -n -sP 192.168.80.0/24

4.2 netstat命令

-netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。

命令格式: netstat  [选项]
  • 常用选项
选项作用
-a显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)。
-n拒绝显示别名,以数字的形式显示相关的主机地址、端口等信息。
-t查看TCP协议相关的信息。
-u显示UDP协议相关的信息。
-p显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限)
-r显示路由表信息。
-l显示处于监听状态(Listen)的网络连接及端口信息。
  • 常用搭配:
  1.  netstat -a       //列出所有端口
  2.  netstat -at     //列出所有TCP端口
  3.  netstat -au     //列出所有UDP端口
  4.  
  5.  netstat -ax     //列出所有unix端口
  6.  
  7.  netstat -lt     //列出处于监听状态的TCP端口
  8.  
  9.  netstat -tnlp   //直接使用ip地址列出所有处于监听状态的TCP端口,且加上程序名
  • 示例:

1)netstat -lt,列出处于监听状态的TCP端口。

  1.  [root@localhost ~]# netstat -lt   //列出处于监听状态的TCP端口
  2.  Active Internet connections (only servers)
  3.  Proto Recv-Q Send-Q Local Address           Foreign Address         State      
  4.  tcp        0      0 0.0.0.0:sunrpc          0.0.0.0:*               LISTEN    
  5.  tcp        0      0 localhost.locald:domain 0.0.0.0:*               LISTEN    
  6.  tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN    
  7.  tcp        0      0 localhost:ipp           0.0.0.0:*               LISTEN    
  8.  tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN    
  9.  tcp        0      0 0.0.0.0:shell           0.0.0.0:*               LISTEN    
  10.  tcp6       0      0 [::]:sunrpc             [::]:*                 LISTEN    
  11.  tcp6       0      0 [::]:ssh               [::]:*                 LISTEN    
  12.  tcp6       0      0 localhost:ipp           [::]:*                 LISTEN    
  13.  tcp6       0      0 localhost:smtp         [::]:*                 LISTEN    
  14.  tcp6       0      0 [::]:shell             [::]:*                 LISTEN

2)netstat -tnlp,直接使用ip地址列出所有处于监听状态的TCP端口,且加上程序名。

  1.  [root@localhost ~]# netstat -tnlp
  2.  Active Internet connections (only servers)
  3.  Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
  4.  tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd          
  5.  tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1462/dnsmasq        
  6.  tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1113/sshd          
  7.  tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1111/cupsd          
  8.  tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1394/master        
  9.  tcp        0      0 0.0.0.0:514             0.0.0.0:*               LISTEN      798/rsyslogd        
  10.  tcp6       0      0 :::111                 :::*                   LISTEN      1/systemd          
  11.  tcp6       0      0 :::22                   :::*                   LISTEN      1113/sshd          
  12.  tcp6       0      0 ::1:631                 :::*                   LISTEN      1111/cupsd          
  13.  tcp6       0      0 ::1:25                 :::*                   LISTEN      1394/master        
  14.  tcp6       0      0 :::514                 :::*                   LISTEN      798/rsyslogd
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/634668
推荐阅读
相关标签
  

闽ICP备14008679号