Linux系统安全及应用

1 账号安全控制

  • 用户账号是计算机使用者的身份凭证或标识,每个要访问系统资源的人,必须凭借其用户账号才能进入计算机。
  • 在 Linux 系统中,提供了多种机制来确保用户账号的正当、安全使用。

1.1 系统账号清理

  • 在 Linux 系统中,除了用户手动创建的各种账号之外,还包括随系统或程序安装过程而生成的其他大量账号。

  • 除了超级用户 root 之外,其他大量账号只是用来维护系统运作、启动或保持服务进程,一般是不允许登录的,因此也称为非登录用户账号。

  • 常见的非登录用户账号包括bin、daemon、adm、lp、mail 等。

  • 为了确保系统安全,这些用户账号的登录Shell 通常是/sbin/nologin,表示禁止终端登录,应确保不被人为改动。

    grep "/sbin/nologin$" /etc/passwd

  • 非登录用户账号中,还有相当一部分是很少用到的,如games。这些用户账号可以视为冗余账号,可以直接删除。

  • 除此之外,还有一些随应用程序安装的用户账号,若卸载程序以后未能自动删除,则需要管理员手动进行清理。

1.2 长期不用的用户账号处理

1.2.1 锁定账号

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

    锁定账号

    usermod -L test

    查看账号状态 已锁定:test L 07/03/2025 0 99999 7 -1

    passwd -S test

    解锁账号

    usermod -U test

1.2.2 锁定账号配置文件

  • 如果服务器中的用户账号已经固定,不再进行更改,还可以采取锁定账号配置文件(/etc/shadow)的方法。

  • 使用 chattr 命令,分别结合"+i""-i"选项来锁定、解锁文件,使用 lsattr 命令可以查看文件锁定情况。

  • 在账号文件被锁定的情况下,其内容将不允许变更,因此无法添加、删除账号,也不能更改用户的密码、登录Shell、宿主目录等属性信息。

    锁定账户及密码文件

    chatter +i /etc/passwd /etc/shadow

    创建用户 失败,无法打开/etc/passwd文件

    useradd test

1.2.3 chattr命令

  • chattr命令是Linux系统中用于更改文件或目录属性的工具,这些属性可以提供额外的安全性和控制功能。只有root用户或具有相应权限的用户才能使用该命令。

  • 语法:chattr [选项] [符号] [属性] 文件名

    • 选项:
      • -R:递归处理目录及其所有子文件
      • -V:显示详细信息,解释执行了哪些操作
      • -f:抑制错误信息,只显示成功的更改
    • 符号:
      • +:添加属性
      • -:移除属性
      • =:设置属性为指定的值
    • 属性:
      • i:不可修改(immutable),文件不能被修改、删除、重命名或链接
      • a:追加模式(append only),只能向文件末尾追加数据,不能修改或删除已有内容,也不能删除文件
      • d:禁止备份(no dump),在执行dump备份程序时会被忽略
      • s:安全删除(secure deletion),删除文件时保存其内容以便恢复
      • u:不可恢复删除(undeletable),文件删除后数据会被覆盖,无法恢复
      • c:压缩(compress),文件会在磁盘上被压缩保存
      • A:不更新atime(no atime updates),访问文件时不更新其访问时间
  • 查看文件属性:lsatter 文件名

  • 示例:

    将文件设置为不可修改状态

    chattr +i /test/1.txt

    查看文件属性 ----i---------e------- /test/1.txt

    lsatter /test/1.txt

    取消文件不可修改状态

    chattr -i /test/1.txt

    将文件设置为追加模式

    chattr +a /test/1.txt

    查看文件属性 -----a--------e------- ./1.txt

    lsatter /test/1.txt

    取消文件追加模式

    chattr -a /test/1.txt

1.3 密码安全控制

1.3.1 Linux用户密码的有效期设置

  • 默认情况下,Linux用户的密码永不过期。

  • 当需要对新用户进行密码限制时,可以编辑==/etc/login.defs==文件:

    • PASS_MAX_DAYS:密码可以使用的最多天数
    • PASS_MIN_DAYS:密码更改之间允许的最小天数
    • PASS_WARN_AGE:密码过期前发出警告的天数
    • PASS_MIN_LEN:可接受的最小密码长度
  • 在该文件中的设置针对的是所有用户

    • 只对修改文件之后创建的用户有效
    • 需要重启才能对所有用户生效
  • vim /etc/login.defs

    默认值99999,无有效期限制

    PASS_MAX_DAYS 99999

    默认为0,可以随时修改密码

    PASS_MIN_DAYS 0
    PASS_WARN_AGE 7

1.3.2 chage命令

  • 用来更改linux用户密码到期信息,包括密码修改间隔最短、最长日期、密码失效时间等。

  • 语法:chage [参数] 用户名

  • 常见参数

    • -l:显示用户密码时效信息
    • -m:密码可更改最小间隔天数,0表示可随时更改
    • -M:密码有效期最大天数,99999表示密码永不过期
    • -W:密码到期前提示
    • -E:账号到期时间
    • -d:上一次密码修改时间,0表示下次登录强制修改
  • 示例:

    显示用户密码信息

    chage -l test

    密码修改时间间隔改为1天

    chage -m 1 test

    密码有效期改为30天

    chage -M 30 test

    提前3天提示密码要过期

    chage -W 3 test

    设置账号到期时间

    chage -E 2030-1-1 test

  • 用户密码信息:

    • Last password change:上次修改密码时间
    • Password expires:密码过期时间
    • Password inactive:密码的非活动期限,长时间未使用会被锁定
    • Account expires:账户有效期
    • Minimum number of days between password change:密码修改最小时间间隔
    • Maximum number of days between password change:密码修改最大时间间隔
    • Number of days of warning before password expires:密码过期提醒

1.4 命令历史与自动注销

1.4.1 history命令

  • Linux使用history命令记录命令历史记录并将其存储在文件 ~/.bash_history中。

  • 命令示例:

    查看所有命令

    history

    显示最新10条命令

    history 10

    搜索命令历史

    history | grep "关键字"

    执行历史记录中第100号命令

    !100

  • Bash 终端环境中,历史命令的记录条数由变量HISTSIZE 控制,默认为1000 条。

  • 临时修改:下次重启失效

    HISTSIZE=200

  • 永久修改:通过修改配置文件中的HISTSIZE变量值,影响系统中的用户。

    • /etc/profile:系统变量,对所有用户有效

    • ~/.bashrc:用户变量,只对当前用户有效,推荐使用

      vim ~/.bashrc

      Shell内存中保存的历史命令数量

      HISTSIZE=1000

      历史文件(~/.bash_history)中最多保存的命令数量

      HISTFILESIZE=2000

1.4.2 清空历史命令

  1. 使用history -c命令
    • 可以在当前会话中立即清空命令历史,但这种方法只影响当前会话,不会永久删除历史记录。
  2. 编辑 .bash_history 文件
    • 使用文本编辑器打开.bash_history文件,并清空文件内容。
  3. 使用unset HISTFILE
    • 在当前会话中完全禁用历史记录功能,可以使用unset 命令来删除 HISTFILE 环境变量。这将阻止Bash写入 .bash_history 文件。
  4. 修改 .bashrc 或.bash_profile 来禁用历史记录
    • 永久禁用历史记录功能,可以在.bashrc或 .bash_profile 文件中添加以下行:
      • export HISTSIZE=0 # 不保存任何历史记录
      • export HISTFILESIZE=0 # 不保存任何历史记录
    • 重新加载配置文件:source ~/.bashrc
  5. 使用 rm 命令删除 .bash_history 文件
    • 要永久删除所有历史记录,可以直接删除 .bash_history 文件
    • 恢复命令历史功能,可能需要重新创建这个文件(通常不需要手动操作,因为 Bash 会自动创建)

1.5 设置超时注销

  • Bash终端环境中,还可以设置一个闲置超时时间,当超过指定的时间没有任何输入时即自动注销终端。

  • 闲置超时由变量TMOUT来控制,默认单位为秒(s)。

  • 编辑文件/etc/profile~/.bashrc ,在"HISTFILESIZE="行的下一行增加如下一行:

    设置超时时间为60秒

    TMOUT=60

    重新加载配置文件

    source .bashrc

  • 在终端执行:

    仅对当前用户有效

    export TMOUT=600

  • 当正在执行程序代码编译、修改系统配置等耗时较长的操作时,应避免设置TMOUT 变量。

    取消TMOUT变量设置

    unset TMOUT

1.6 用户切换与提权

1.6.1 su 命令

  • 切换为指定的另一个用户,从而具有该用户的所有权限。

  • 切换时需要进行密码验证(从root用户切换为其他用户时除外)。

  • 语法:su [选项] 用户名

  • 选项:

    • -(等同于 -l 或 --login):切换用户后进入目标用户的登录Shell 环境,否则仅切换身份、不切换用户环境
  • 注意:切换为 root 用户时,root可以省略

    切换为指定用户

    su - zzh

    切换为root用户

    su -

sudo命令

  • 用于普通用户提权

  • 示例:

    将普通用户添加的sudo组中,具备执行sudo的权限

    usermod -aG sudo test

    切换到test用户,不使用sudo,无权限执行失败

    touch /root/1.txt
    sudo touch /root/1.txt

    查看当前用户获得了哪些sudu权限

    sudo -l

1.6.2 隐患

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

1.7 限制用户切换

1.7.1 使用sudoers文件

  • 用于控制sudo组用户使用sudo命令时的权限

  • 非sudo组用户或不使用sudo命令时无效

  • 语法:user MACHINE=COMMANDS

    • user:用户名(%group:授权一个组的用户)
    • MACHINE:主机
    • COMMANDS:命令,多个命令用逗号分隔
  • 示例:执行命令不需要密码

    使用visudo命令来编辑sudoers文件

    visudo

    添加规则:sudo组zzh用户使用sudo执行所有命令,不需要密码验证

    zzh ALL=(ALL) NOPASSWD:ALL

    保存关闭编辑器,立即生效

    切换到zzh用户(在sudo组中),可直接执行命令

    sudo touch /root/1.txt

  • 示例2:不能使用su

    visudo

    添加规则:

    使用sudo切换用户不需要密码

    Defaults !targetpw, !rootpw

    定义命令别名

    Cmnd_Alias SU_CMD = /bin/su -

    禁止所有用户使用sudo切换用户

    ALL ALL= (ALL) !SU_CMD

    切换到zzh用户

    完整命令,执行失败

    sudo /bin/su - root

    命令简写,执行成功

    sudo su - root

  • 别名:别名必须全部大写

    • User_Alias:用户别名关键字
    • Host_Alias:主机别名关键字
    • Cmnd_Alias:命令别名关键子
  • 示例:

    User_Alias OPERATORS=jerry,tom,tsengyia
    Host_Alias MAILSVRS=smtp,pop
    Cmnd_Alias PKGTOOLS=/bin/rpm,/usr/bin/yum
    OPERATORS MAILSVRS=PKGTOOLS

  • sudo配置记录的命令部分允许使用特殊符号,如

    • 通配符:*
    • 取反符号:!

1.7.2 使用PAM模块

  • PAM(Pluggable AuthenticationModules),是Linux 系统可插拔认证模块,是一种高效而且灵活便利的用户级别的认证方式,它也是当前Linux服务器普遍使用的认证方式 。

  • 提供了对所有服务进行认证的中央机制 ,适用于login ,远程登录(telnet,rlogin,fsh,ftp),su等应用程序中。

  • 认证原理:

    • 顺序:Service(服务)→PAM(配置文件)→pam_*.so
    • PAM 认证首先要确定哪一项服务,然后加载相应的PAM 的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security 下)进行安全认证
    • 用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到 PAM模块进行认证,不同的应用程序所对应的 PAM 模块也是不同的
  • 查看su是否支持PAM 模块认证

    • ls /etc/pam.d/ | grep su
  • 查看su的PAM配置文件内容

    • cat /etc/pam.d/su
  • 每一行都是一个独立的认证过程;每一行可以区分为三个字段:

    • 认证类型
      • 认证管理(authentication management):接受用户名和密码,进而对该用户的密码进行认证
      • 帐户管理(account management):检查帐户是否被允许登录系统,帐号是否已经过期,帐号的登录是否有时间段的限制等
      • 密码管理(password management):主要是用来修改用户的密码
      • 会话管理(session management):主要是提供对会话的管理和记账
    • 控制类型(Control Flags):用于PAM验证类型的返回结果
      • required 验证:失败时仍然继续,但返回Fail
      • requisite 验证:失败则立即结束整个验证过程,返回Fail
      • sufficient 验证:成功则立即返回,不再继续,否则忽略结果并继续
      • optional:不用于验证,只是显示信息(通常用于session 类型)
    • PAM 模块及其参数
  • 示例:

    vim /etc/pam.d/su

    认证过程中检查用户 ID(UID)是否满足特定条件

    auth sufficient pam_succeed_if.souid>=1000 quiet

    重新启动系统或重新加载PAM配置,生效

    systemctl reload-daemon

1.8 启用sudo日志

  • 默认情况下,通过sudo 方式执行的操作并不记录。

  • 启用sudo日志记录以备管理员查看

  • 在/etc/sudoers文件中增加"Defaults logfile"设置

  • 示例

    visudo

    添加日志文件配置

    Defaults logfile="/var/log/sudo.log"

    切换zzh用户,执行sudo命令

    sudo mkdir /root/abc
    sudo ls /root/
    sudo touch /root/abc/1.txt
    sudo ls /root/abc
    sudo rm -rf /root/abc

    查看日志记录

    cat /var/log/sudo.log

  • 开启sudo日志完整操作(通常用不到,仅用示例操作即可):

    • 创建sudo.log文件: touch /var/log/sudo.log
    • 修改文件权限: chmod root:root /var/log/sudo.log
    • 修改rsyslog配置文件:vim /etc/rsyslog.conf,添加以下内容:
      • local2.debug /var/log/sudo.log //空白处用Tab补齐,不可以用空格
    • 重启rsyslog服务:systemctl restart rsyslog
    • 修改sudo配置文件:visudo添加以下内容:
      • Defaults logfile=/var/log/sudo.log
      • Defaults loglinelen=0
      • Defaults !syslog

2 Linux 系统引导和登录控制

2.1 开关机安全控制

  • 对于服务器主机,其物理环境的安全防护是非常重要的,不仅要保持机箱完好、机柜锁闭,还要严格控制机房的人员进出、硬件设备的现场接触等过程。
  • 在开关机安全控制方面,除了要做好物理安全防护以外,还要做好系统本身的一些安全措施。

2.2 调整BIOS 引导设置

  1. 将第一优先引导设备(First Boot Device)设为当前系统所在磁盘。
  2. 禁止从其他设备(如光盘、U 盘、网络等)引导系统,对应的项设为"Disabled"。
  3. 将 BIOS 的安全级别改为"setup",并设置好管理密码,以防止未授权的修改。

2.3 限制更改 GRUB 引导参数

  • 为了加强对引导过程的安全控制,可以为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。

  • 为GRUB 菜单设置的密码建议采用"grubmkpasswd-pbkdf2"命令生成,表现为经过PBKDF2算法加密的字符串,安全性更好。

    • 在Ubuntu系统中,grub2-mkpasswd-pbkdf2包是grub2-common的一部分。
    • grub2-mkpasswd-pbkdf2工具是用来生成PBKDF2密码的,这在设置GRUB2的密码时非常有用。
  • 安装软件包:apt install grub2-common

  • 示例:

    创建GUBR菜单密码 输入密码:grub 加密

    grub-mkpasswd-pbkdf2

    修改grub文件

    vim /etc/grub.d/00_header

    在文件末尾添加如下内容

    cat << EOF
    set superusers="zzh"
    password_pbkdf2 zzh grub.pbkdf2.sha512.10000.98690D472DE5C28A77F1D33527945D19EB7B7FD6B7BF34C8B38533CC4690668AA1DBAD1CC2ACA21A8159848617BAC20940CEFE7766C37BB1DD984D4276B61C0D.07C8DD163BF9F65ADFC770B0FBFBFDEC8390B5CDD93E73265B9E19A41B969EB842CDFD6B163E135BFC1562F41C90356F72671FA272E43D0D50B94208BAE9E70B
    EOF

    生成新的配置文件

    grub-mkconfig -o /boot/grub/grub.cfg

  • 重新开机进入会进入GRUB 菜单,必须根据提示输入正确的 GRUB 密码才能开机

2.4 禁止 root 用户登录

  • Ubuntu 或其他基于 Linux 的系统中,如果想禁止root 用户从特定的终端(例如 tty5 或 tty6)登录,可以通过修改系统的 PAM(PluggableAuthenticationModules)配置来实现。

  • 步骤:

    1. 编辑 PAM 配置文件:这个文件用于控制对系统的访问权限
    2. 添加规则
  • 语法:权限 用户 登录方式

    • 权限:
      • -:拒绝
      • +:允许
    • 用户:
      • 用户名
      • %组名
      • ALL:所有用户
      • ALL EXCEPT 用户1,用户2:排除某些用户
    • 登陆方式:
      • 本地终端:LOCAL
      • 控制台:tty0
      • 网址:IP地址、网段
  • 示例:

    打开PAM 配置文件

    vim /etc/security/access.conf

    禁root用户从本地登录

    -:root:LOCAL

    允许root用户通过ssh登录

    +:root:sshd

    只允许root用户从指定网段登录

    -:root:ALL
    +:root:192.168.1.0/24

    systemctl restart sshd

  • 在某些较为老旧的Linux 系统中,login 程序会读取/etc/securetty 文件,以决定允许 root 用户从哪些终端(安全终端)登录系统

2.5 禁止普通用户登录

  • 当服务器正在进行备份或调试等维护工作时,不希望再有新的用户登录系统。

  • 只需要简单地建立/etc/nologin 文件即可。login程序会检查/etc/nologin 文件是否存在,如果存在,则拒绝普通用户登录系统(root 用户不受限制)

    touch /etc/nologin

  • 此方法实际上是利用了 shutdown 延迟关机的限制机制,只建议在服务器维护期间临时使用。

  • 当手动删除/etc/nologin文件或者重新启动主机以后,即可恢复正常。

3 Linux 弱口令检测

  • 在 Internet 环境中,过于简单的口令是服务器面临的最大风险。尽管大家都知道设置一个更长、更复杂的口令会更加安全,但总是会有一些用户因贪图方便而采用简单、易记的口令字串。
  • 对于任何一个承担着安全责任的管理员,及时找出这些弱口令账号是非常必要的,这样便于采取进一步的安全措施(如提醒用户重设更安全的口令)。

3.1 密码破解工具John

  • John the Ripper 是一款开源的密码破解工具,能够在已知密文的情况下快速分析出明文的密码字串,支持DES、MD5 等多种加密算法,而且允许使用密码字典(包含各种密码组合的列表文件)来进行暴力破解。
  • 通过使用 John the Ripper,可以检测 Linux/UNIX系统用户账号的密码强度。
  • 安装软件包:apt install john

3.2 检测弱口令账号

  • 在安装有 John the Ripper 的服务器中,可以直接对/etc/shadow 文件进行检测。

  • 对于其他 Linux 服务器,可以对 shadow 文件进行复制,并传递给 john 程序进行检测。

  • 示例:

    准备待破解的密码文件

    cp /etc/shadow /test/shadow.bak.txt

    执行暴力破解

    john /test/shadow.bak.txt

  • 在执行过程中,分析出来的弱口令账号将即时输出

    • 第一列为密码字串
    • 第二列的括号内为相应的用户名
  • 默认情况下,john 将针对常见的弱口令设置特点,尝试破解已识别的所有密文字串,如果检测的时间太长,可以按 Ctrl+C组合键强行终止。

  • 破解出的密码信息自动保存到 john.pot 文件中,可以结合"--show"选项进行查看。

    john --show /test/shadow.bak.txt

3.3 使用密码字典文件

  • 对于密码的暴力破解,字典文件的选择很关键。只要字典文件足够完整,密码破解只是时间上的问题。

  • John the Ripper 默认提供的字典文件为/usr/share/john/password.lst

  • 如果有必要,用户可以在字典文件中添加更多的密码组合,也可以直接使用更加完整的其他字典文件。

  • 执行 john 程序时,可以结合"--wordlist="选项来指定字典文件的位置,以便对指定的密码文件进行暴力分析。

    john --wordlist=/usr/share/john/password.lst /test/shadow.bak.txt

4 Linux 端口扫描

4.1 端口查看

  • lsof(list open files)是一个列出当前系统打开文件的工具。

  • 语法:lsof [选项] [端口]

    • i:如果没有指定IP地址,这个选项选择列出所有网络文件
    • P:禁止将端口号转换为端口名称, 如 3306 转为 MySQL
    • n:禁止IP转换为hostname,缺省时不加上-n参数
  • 内容说明:

    • COMMAND :正在执行的命令或程序的名称
    • PID:打开文件的进程ID
    • USER:拥有进程的用户的用户名
    • FD:文件描述符编号。这是一个整数,表示进程中的打开文件
    • TYPE:文件或网络连接的类型。常见类型包括IPv4对于Internet协议版本4连接,UDP对于用户数据报协议,以及TCP用于传输控制协议
    • DEVICE:文件所在的设备
    • SIZE/OFF:文件的大小或传输的数据量 (用于网络连接)
    • NODE:文件的inode编号,它是文件系统上文件的唯一标识符
    • NAME:文件的名称或路径,或者对于网络连接,连接的IP地址和端口号
  • 示例:

    列出系统中所有进程打开的文件、目录、网络连接等

    lsof

    列出所有网络连接,并以简洁的格式显示

    lsof -i -P -n

    列出所有使用 TCP 协议且端口为 22 的网络连接

    lsof -i tcp:22

4.2 端口扫描

  • 端口扫描,顾名思义,就是逐个对一段端口或指定的端口进行扫描。
  • 通过扫描结果可以知道一台计算机上都提供了哪些服务,然后就可以通过所提供的这些服务的己知漏洞就可进行攻击。
    • 原理是当一个主机向远端一个服务器的某一个端口提出建立一个连接的请求,如果对方有此项服务,就会应答,如果对方未安装此项服务时,即使你向相应的端口发出请求,对方仍无应答。
    • 利用这个原理,如果对所有熟知端口或自己选定的某个范围内的熟知端口分别建立连接,并记录下远端服务器所给予的应答,通过查看一记录就可以知道目标服务器上都安装了哪些服务,这就是端口扫描,通过端口扫描,就可以搜集到很多关于目标主机的各种很有参考价值的信息。

4.2.1 端口扫描类安全评测工具NMA

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

4.2.2 NMAP使用

  • 语法:nmap [扫描类型] [选项] <扫描目标...>

    • 扫描类型:
      • -sS,TCP SYN 扫描(半开扫描):只向目标发出 SYN 数据包,如果收到 SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放。
      • -sT,TCP 连接扫描:这是完整的 TCP 扫描方式,用来建立一个 TCP 连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放。
      • -sF,TCP FIN 扫描:开放的端口会忽略这种数据包,关闭的端口会回应 RST 数据包。许多防火墙只对 SYN 数据包进行简单过滤,而忽略了其他形式的 TCP 攻击包。这种类型的扫描可间接检测防火墙的健壮性。
      • -sU,UDP 扫描:探测目标主机提供哪些 UDP 服务,UDP 扫描的速度会比较慢。
      • -sP,ICMP 扫描:类似于 ping 检测,快速判断目标主机是否存活,不做其他扫描。
      • -P0,跳过 ping 检测:这种方式认为所有的目标主机是存活的,当对方不响应 ICMP请求时,使用这种方式可以避免因无法 ping 通而放弃扫描。
    • 选项:
      • -p:指定扫描的端口
      • -n:禁用反向 DNS 解析(以加快扫描速度)
    • 扫描目标:
      • 主机名、IP 地址或网络地址等
      • 多个目标以空格分隔
  • 示例:

    扫描常用的 TCP 端口

    nmap 127.0.0.1
    nmap -sT 127.0.0.1

    扫描常用的 UDP 端口

    nmap -sU 127.0.0.1

    检测网段中的存活主机

    nmap -sP -n 192.168.40.0/24
    nmap -sP -n 192.168.40.100-200

4.3 ufw命令

  • 一款基于iptables的防火墙管理工具

    启用ufw

    ufw enable

    查看ufw是否激活以及当前的规则列表

    ufw status

    拒绝特定端口或服务

    ufw deny 22

    删除规则

    ufw delete deny ssh

    允许特定端口或服务

    ufw allow ssh

    限制次数连接,默认次数无法修改

    ufw limit ssh

相关推荐
Charlene Fung39 分钟前
vs code远程自动登录服务器,无需手动输入密码的终极方案(windows版)
运维·服务器·vscode·ssh
麟城Lincoln41 分钟前
【RHCSA-Linux考试题目笔记(自用)】servera的题目
linux·笔记·考试·rhcsa
碣石潇湘无限路42 分钟前
【部署与总结】从本地运行到公网服务器的全过程
运维·服务器
linux修理工1 小时前
ipmitool 使用简介(ipmitool sel list & ipmitool sensor list)
运维·服务器
寻月隐君1 小时前
保姆级教程:Zsh + Oh My Zsh 终极配置,让你的 Ubuntu 终端效率倍增
linux·后端·命令行
XM-54581 小时前
2025微信小程序wxapkg解包全攻略
linux·运维·小程序
朗晴2 小时前
文本编辑器VIM的使用方法!
linux·运维·服务器
小林up2 小时前
github push:ssh: connect to host github.com port 22
运维·ssh·github
梁bk5 小时前
[Nginx]反向代理和负载均衡
运维·nginx·负载均衡
2401_8260976210 小时前
JavaEE-Linux环境部署
java·linux·java-ee