应用及安全

目录

一、PAM 安全认证及配置
        1.1配置 su 命令的认证
        1.2PAM 配置文件结构
二、账号和密码安全管理
        2.1账号管理
        2.2系统账号清理
        2.3密码安全控制
        2.4密码重设示例
        2.5参考命令
三、命令历史限制
        3.1设置命令历史记录条数
        3.2自动清除命令历史记录
        3.4终端自动注销
        3.5结论
四、Linux 系统安全管理:PAM 安全认证
        4.1什么是 PAM
        4.2PAM 的工作原理
        4.3PAM 配置文件结构​​​​​​​
        4.4PAM 认证模块的控制标记
        4.5实际应用
        4.6结论
五、Linux 系统安全管理:使用 sudo 提升权限
        5.1什么是 sudo
        5.2sudo 配置文件 /etc/sudoers
        5.3sudo 常用参数
        5.4实例:配置 sudo 提权
        5.5使用别名简化 sudo 配置
        5.6启用 sudo 操作日志
        5.7验证 sudo 配置
        5.8总结
六、如何确保服务器的开关机安全
        6.1 物理环境安全防护
        6.2 限制更改GRUB引导参数
        6.3终端登录安全控制
        6.4系统弱口令检测
        6.5总结
七、使用Nmap进行网络端口扫描与安全管理
        7.1 网络协议基础
        7.2 安装Nmap
        7.3.基本Nmap扫描类型
        7.4实例演示
        7.5禁用与启用Ping
        7.6 PAM模块防止暴力破解
        7.7 使用netstat查看网络状态
        ​​​​​​​7.8总结


一、PAM 安全认证及配置

PAM(Pluggable Authentication Modules,可插拔认证模块)是 Linux 系统中用于管理认证的一个灵活机制。PAM 配置文件位于 /etc/pam.d/ 目录下,每个文件对应一个服务或命令的认证设置。

1.1配置 su 命令的认证

默认情况下,所有用户都可以使用 su 命令切换到其他用户。这带来了一定的安全风险,因为恶意用户可以反复尝试其他用户(如 root)的登录密码。通过配置 pam_wheel 认证模块,可以限制只有特定组(如 wheel 组)的用户才能使用 su 命令。

配置步骤

  1. 编辑 /etc/pam.d/su 文件

    vim /etc/pam.d/su
  2. 修改内容: 默认情况下,文件内容可能如下:

    # auth       sufficient   pam_rootok.so
    # auth       required     pam_wheel.so use_uid

    配置文件的每一行是一个独立的认证过程,它们按从上往下的顺序依次由 PAM 模块调用。以下是几种配置状态的解释:

    a) 默认状态plaintext auth sufficient pam_rootok.so # auth required pam_wheel.so use_uid - 允许所有用户使用 su 命令进行切换。

    b) 两行都注释plaintext # auth sufficient pam_rootok.so # auth required pam_wheel.so use_uid - 所有用户可以使用 su 命令,但 root 用户切换到其他用户需要输入密码。

    c) 开启第二行plaintext # auth sufficient pam_rootok.so auth required pam_wheel.so use_uid - 只有 root 用户和 wheel 组内的用户可以使用 su 命令。

    d) 注释第一行,开启第二行plaintext # auth sufficient pam_rootok.so auth required pam_wheel.so use_uid - 只有 wheel 组内的用户可以使用 su 命令,root 用户也被禁用。

  3. 将用户添加到 wheel

    gpasswd -a zhangsan wheel
    • 添加用户 zhangsanwheel 组中。

  4. 确认 wheel 组成员

    grep wheel /etc/group
    • 确认 wheel 组的成员列表。

  5. 启用 pam_wheel 认证

    #%PAM-1.0
    auth sufficient pam_rootok.so
    auth required pam_wheel.so use_uid
    • 未加入到 wheel 组的其他用户将无法使用 su 命令,尝试进行切换时将提示“拒绝权限”。

  6. 切换用户测试

    • 使用 su 命令切换用户的操作会记录到 /var/log/secure 文件中,可以根据需要进行查看。

1.2PAM 配置文件结构

PAM 配置文件中的每一行由四部分组成:

  1. 模块类型

    • auth:对用户身份进行识别。

    • account:对账号各项属性进行检查。

    • password:使用用户信息来更新数据。

    • session:定义登录前及退出后所要进行的会话操作管理。

  2. 控制标记

    • required:该行及所涉及模块的成功是用户通过鉴别的必要条件。

    • requisite:与 required 相似,但失败会立即返回错误。

    • sufficient:该行及所涉及模块验证成功是用户通过鉴别的充分条件。

    • optional:即使该行所涉及的模块验证失败用户仍能通过认证。

    • include:调用其他 PAM 配置文件。

  3. 模块名称

    • 默认在 /lib64/security/ 目录下,如 pam_wheel.so

  4. 模块参数

    • 传递给模块的参数,可以有多个,之间用空格分隔开。

实例说明

以下是一个 PAM 认证过程的实例:

auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth required pam_deny.so

用户通过 PAM 模块进行认证的过程:

  • 用户1:成功通过所有 auth 模块的认证。

  • 用户2:在 pam_unix.so 认证失败,因此最终认证失败。

  • 用户3:通过 pam_unix.so 认证,但失败于 pam_deny.so

  • 用户4:成功通过所有 auth 模块的认证。

二、账号和密码安全管理

在 Linux 系统中,账号和密码安全管理是确保系统安全的重要措施之一。以下是一些常见的操作和配置方法。

2.1账号管理

2.1.1锁定和解锁账号

锁定账号

usermod -L zhangsan  # 锁定账号 zhangsan
passwd -S zhangsan   # 查看账号状态
passwd -l zhangsan   # 锁定用户账户

解锁账号

usermod -U zhangsan  # 解锁账号 zhangsan
passwd -u zhangsan   # 解锁用户账户

删除无用账号

userdel -r 用户名  # 删除无用的账号,并删除用户的主目录

锁定账号配置文件

使用 chattr 命令锁定或解锁账号配置文件,防止账号配置文件被修改:

chattr +i /etc/passwd /etc/shadow  # 锁定文件
lsattr /etc/passwd /etc/shadow     # 查看文件锁定状态
chattr -i /etc/passwd /etc/shadow  # 解锁文件

测试文件是否锁住:

useradd lisi  # 查看是否能添加用户

2.2系统账号清理

查找使用 /sbin/nologin 作为登录 shell 的用户

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

修改用户的登录 shell

usermod -s /sbin/nologin 用户名

2.3密码安全控制

编辑 /etc/login.defs 文件

vi /etc/login.defs

设置密码有效期:

PASS_MAX_DAYS 30  # 设置密码有效期为30天

设置最小密码修改间隔:

PASS_MIN_DAYS 0  # 密码最小修改间隔为0天

设置密码最小长度:

PASS_MIN_LEN 5  # 密码最小长度为5

设置密码到期警告天数:

PASS_WARN_AGE 7  # 密码到期前7天开始警告

使用 chage 命令设置密码时限

设置用户密码最大有效期:

chage -M 30 lisi  # 设置lisi用户的密码最大有效期为30天

强制用户下次登录时重设密码:

chage -d 0 zhangsan  # 强制zhangsan下次登录时重设密码

查看用户密码到期信息

chage -l zhangsan
chage -l lisi

2.4密码重设示例

当密码过期时,用户会被强制要求在下次登录时更改密码,具体操作如下:

登录提示:

WARNING: Your password has expired.
You must change your password now and login again!

用户更改密码:

(当前) UNIX 密码:
新的 密码:
无效的密码:密码未通过字典检查 - 它基于字典单词
新的 密码:
无效的密码:密码未提供
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

2.5参考命令

锁定文件

chattr +i /etc/passwd /etc/shadow

解锁文件

chattr -i /etc/passwd /etc/shadow

查看文件锁定状态

lsattr /etc/passwd /etc/shadow

 

三、命令历史限制

        在 Linux 系统中,命令历史记录可以帮助用户追溯以前执行的命令,但在某些情况下(如安全或隐私需要),我们可能希望限制命令历史的记录和保存。

3.1设置命令历史记录条数

3.1.1为新登录用户设置历史记录条数

编辑 /etc/profile 文件(适用于所有用户):

vim /etc/profile

添加以下行:

HISTSIZE=18

3.1.2为当前用户设置历史记录条数

编辑用户的 ~/.bashrc 文件:

vim ~/.bashrc

添加以下行:

export HISTSIZE=15

使配置生效:

source ~/.bashrc

验证效果:

history

确认 history 命令只显示最近的 15 条记录。

3.1.3临时清除历史记录

清除当前 session 的历史记录:

history -c

3.1.4永久清除历史记录

清空 .bash_history 文件:

echo " " > ~/.bash_history

3.2自动清除命令历史记录

3.2.1配置自动清除命令历史记录

在用户的 ~/.bashrc 文件中添加:

echo '' > ~/.bash_history

3.2.2每次用户登出时清除历史记录

编辑 /etc/skel/.bash_logout 文件,确保新用户创建时包含该配置:

vim /etc/skel/.bash_logout

添加以下行:

rm -f $HOME/.bash_history

3.3.3环境变量的读取顺序

用户登录顺序

用户登录时,首先加载 ~/.bash_profile 文件。

~/.bash_profile 中通常配置加载 ~/.bashrc 文件:

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

3.4终端自动注销

为了防止用户长时间闲置在终端,可以设置自动注销时间。

3.4.1设置自动注销时间

编辑 /etc/profile 文件(适用于所有用户):

vim /etc/profile

添加以下行:

export TMOUT=600  # 闲置600秒后自动注销

使配置生效:

source /etc/profile

为当前用户设置自动注销时间:

export TMOUT=600

取消自动注销:

unset TMOUT

3.4.2登出时清除历史记录

编辑用户的 ~/.bash_logout 文件:

vim ~/.bash_logout

添加以下行:

history -c
clear

通过以上配置和操作,能够有效地管理 Linux 系统的命令历史记录和终端自动注销,确保系统安全和用户隐私。

3.5结论

        在 Linux 系统中,通过合理配置账号和密码管理策略、限制命令历史记录以及设置终端自动注销时间,可以显著提升系统的安全性和用户隐私保护。这些措施在企业环境和个人使用中都具有重要的实际意义。

 

四、Linux 系统安全管理:PAM 安全认证

        在 Linux 系统中,确保系统的安全性是至关重要的。PAM(Pluggable Authentication Modules)提供了一种灵活和可定制的认证机制,使得系统管理员可以根据需要配置和管理各种服务的认证方式。

4.1什么是 PAM

        PAM 是 Linux 系统中的可插拔认证模块,允许系统管理员灵活地配置和管理各种服务的认证方式。PAM 的可插拔性并不意味着它是一个物理上的设备(如外部设备或 U 盘),而是指其可配置、可定制的特性。通过编辑配置文件,管理员可以定制某个服务的认证模块,实现灵活高效的用户级认证。

4.1.1以 .so 结尾的模块是什么?

        这些模块是动态函数库模块。当一个服务运行时,会将认证过程交给 PAM,PAM 读取相应的配置文件,然后根据配置调用适当的 PAM 认证模块来实现认证功能。如果认证不成功,用户将无法访问该服务。

4.2PAM 的工作原理

PAM 认证的基本流程可以分为以下几个步骤:

  1. 确定服务:首先确定哪个服务需要进行认证。

  2. 加载配置文件:加载该服务对应的 PAM 配置文件,通常位于 /etc/pam.d/ 目录下。

  3. 调用认证模块:根据配置文件中的指示,调用相应的 PAM 认证模块,这些模块通常位于 /lib64/security/ 目录下。

具体来说,PAM 认证遵循以下顺序:服务 -> 配置文件 -> 认证模块

  • 服务:用户访问服务器时,某个服务程序会接收到用户的请求。

  • 配置文件:该服务会查找并加载对应的 PAM 配置文件。

  • 认证模块:根据配置文件中的内容,服务会调用相应的 PAM 认证模块,进行安全认证。

如果认证成功,用户将被允许访问该服务;如果认证失败,用户将被拒绝访问。

4.3PAM 配置文件结构

PAM 配置文件中的每一行都是一个独立的认证过程,包含以下四个字段:

4.3.1认证类型

  • auth:对用户身份进行识别,如提示输入密码。
  • account:检查账号属性,如是否允许登录系统。
  • password:用于修改用户密码。
  • session:管理会话,如记录登录信息。

4.3.2控制标记

  • required:模块必须成功,失败则整个认证失败,但要继续执行其他模块。
  • requisite:模块必须成功,失败则立即返回失败,终止认证过程。
  • sufficient:模块成功则立即返回成功,忽略其他模块,失败则继续执行其他模块。
  • optional:模块的成功与否无关紧要,通常用于 session 类型。
  • include:表示在验证过程中调用其他的 PAM 配置文件。

模块名称:指定使用的 PAM 模块,如 pam_unix.so

模块参数:传递给模块的参数,可以有多个,之间用空格分隔。

以下是一个示例配置文件 /etc/pam.d/su

#%PAM-1.0
auth       sufficient   pam_rootok.so
auth       required     pam_wheel.so use_uid

4.3.3示例解释

  • auth sufficient pam_rootok.so:如果调用者是 root 用户,则认证立即成功。

  • auth required pam_wheel.so use_uid:只有 wheel 组的用户才可以使用 su 命令。

4.4PAM 认证模块的控制标记

PAM 的控制标记决定了各个模块的执行顺序和结果处理方式:

required

解释:表示该行及所涉及模块的成功是用户通过鉴别的必要条件。如果失败,不会立刻返回失败,而是继续执行其他模块,所有此类型的模块都执行完毕后再返回失败。

举例:如同面试时,面试官虽然对某个问题的回答不满意,但仍然继续面试,最后才决定结果。

requisite

解释:与 required 类似,但如果该模块失败,则立即返回失败,终止认证过程。

举例:如同面试时,只要有一个问题回答不上来,面试官立即宣布面试失败。

sufficient

解释:如果该模块成功,则立即返回成功,忽略后续的模块;如果失败,继续执行其他模块。

举例:如同面试时,如果有关系背景,只要回答上来某个关键问题,就直接通过面试。

optional

解释:表示该行及所涉及模块的成功与否无关紧要,通常用于 session 类型的模块。

举例:如同面试时,某个问题的回答仅作参考,不影响最终结果。

include

解释:表示在验证过程中调用其他的 PAM 配置文件。

举例:如同面试时,某个问题需要引用其他人的评价来辅助判断。

4.5实际应用

通过配置 PAM,可以限制 su 命令的使用。例如,只有 wheel 组的用户才能使用 su 命令:

将用户添加到 wheel 组:

gpasswd -a username wheel

修改 /etc/pam.d/su 文件:

auth       sufficient   pam_rootok.so
auth       required     pam_wheel.so use_uid

验证配置:

su - anotheruser  # 尝试切换用户

4.6结论

        Linux 系统的安全管理需要多方面的努力,通过灵活配置 PAM 安全认证,可以显著提升系统的安全性。PAM 提供了一种高效、灵活的认证机制,允许管理员根据需要对服务进行细粒度的认证控制,从而确保系统和用户数据的安全。通过深入理解和正确配置 PAM 模块,可以有效地防止未经授权的访问,保护系统的完整性和机密性。

五、Linux 系统安全管理:使用 sudo 提升权限

        在 Linux 系统中,确保系统的安全性和管理的便捷性是至关重要的。使用 su 命令可以方便地切换为另一个用户,但前提是必须知道目标用户的密码。这对于生产环境中的 Linux 服务器来说,每多一个人知道特权密码,其安全风险也就增加一分。那么有没有一种折中的办法,既可以让普通用户拥有部分管理权限,又不需要将 root 用户的密码告诉他们呢?答案是肯定的,使用 sudo 命令就可以提升执行权限。本文将详细介绍 sudo 的使用方法和配置。

5.1什么是 sudo

sudo(superuser do)命令允许普通用户在不泄露 root 密码的情况下执行特权命令。管理员可以预先进行授权,指定哪些用户可以以超级用户(或其他用户)的身份执行哪些命令。

5.2sudo 配置文件 /etc/sudoers

/etc/sudoers 文件是 sudo 的配置文件,用于定义哪些用户可以在哪些主机上以谁的身份执行哪些命令。该文件的默认权限为 440,因此需要使用 visudo 工具进行编辑。虽然也可以用 vi 进行编辑,但保存时必须执行 :w! 命令来强制操作,否则系统将提示为只读文件而拒绝保存。

5.2.1sudoers 文件的基本格式

user MACHINE=COMMANDS
  • user:可以是一个具体的用户名,也可以是一个用户组(使用 %组名 表示)。

  • MACHINE:主机名,通常设置为 ALL 代表所有主机。

  • COMMANDS:用户被允许执行的命令的完整路径,多个命令之间以逗号 , 分隔。

5.3sudo 常用参数

  • -l:列出用户在主机上可用的和被禁止的命令。

  • -v:验证用户的时间戳。

  • -u:指定以某个用户执行特定操作。

  • -k:删除时间戳,下一个 sudo 命令要求用户提供密码。

5.4实例:配置 sudo 提权

5.4.1案例一:用户 wangliu 可以使用 useradd 和 usermod 命令

  1. 编辑 sudoers 文件:

    visudo
  2. 添加以下配置:

    wangliu ALL=(root) /usr/sbin/useradd,/usr/sbin/usermod
  3. 验证配置:

    su - wangliu
    sudo /usr/sbin/useradd tom

5.4.2案例二:用户 Tom 可以临时创建网卡

  1. 编辑 sudoers 文件:

    visudo
  2. 添加以下配置:

    Tom ALL=(root) NOPASSWD:/usr/sbin/ifconfig
  3. 验证配置:

    su - Tom
    sudo /usr/sbin/ifconfig ens33:0 192.168.1.11/24

5.5使用别名简化 sudo 配置

当使用相同授权的用户较多,或者授权的命令较多时,可以采用集中定义的别名。用户、主机、命令部分都可以定义为别名,通过关键字 User_AliasHost_AliasCmnd_Alias 来进行设置。

5.5.1案例一:定义用户别名、主机别名和命令别名

  1. 编辑 sudoers 文件:

    visudo
  2. 添加以下配置:

    Host_Alias MYHOSTS = kgc,localhost
    User_Alias MYUSERS = zhangsan,wangwu,lisi
    Cmnd_Alias MYCMNDS = /sbin/*,!/sbin/reboot,!/sbin/poweroff,!/sbin/init,!/usr/bin/rm
    MYUSERS MYHOSTS=NOPASSWD:MYCMNDS
  3. 解释:

  • MYHOSTS 定义了主机别名,包含 kgclocalhost
  • MYUSERS 定义了用户别名,包含 zhangsanwangwulisi
  • MYCMNDS 定义了命令别名,包含 /sbin/ 目录下的所有命令,但排除了 rebootpoweroffinitrm 命令。

5.5.2案例二:用户别名和命令别名的综合使用

  1. 编辑 sudoers 文件:

    visudo
  2. 添加以下配置:

    User_Alias USERADMIN = wangliu,%wangliu,%useradmin
    Cmnd_Alias USERADMINCMND = /usr/sbin/useradd,/usr/sbin/usermod,/usr/sbin/userdel,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root
    USERADMIN ALL=(root) NOPASSWD: USERADMINCMND
  3. 解释:

  • USERADMIN 定义了用户别名,包含 wangliu 用户和 wangliuuseradmin 两个用户组。
  • USERADMINCMND 定义了命令别名,包含 useraddusermoduserdelpasswd 命令,但排除了 passwd root
  • USERADMIN 在所有主机上可以无密码执行 USERADMINCMND 别名下的命令。

5.6启用 sudo 操作日志

为了更好地审计和追踪 sudo 操作,可以启用 sudo 操作日志。

  1. 编辑 sudoers 文件:

    visudo
  2. 添加以下配置:

    Defaults logfile="/var/log/sudo"
  3. 解释:

  • 该配置将 sudo 的操作日志记录到 /var/log/sudo 文件中。

5.7验证 sudo 配置

  1. 使用 sudo -l 查看当前用户获得的 sudo 授权:

    sudo -l
  2. 通过 sudo 执行特权命令:

    sudo /sbin/ifconfig ens33:0 192.168.1.11/24

5.8总结

        通过合理配置 sudo,可以在不泄露 root 密码的情况下,灵活地为普通用户分配特权命令的执行权限。这不仅提高了系统的安全性,还使得管理更加方便和高效。通过定义别名和启用操作日志,可以进一步简化配置和加强审计,确保系统的安全性和可追溯性。对于初学者,理解 sudo 的基本概念和配置方法是迈向 Linux 系统管理的重要一步。

六、如何确保服务器的开关机安全

在互联网环境中,大部分服务器是通过远程登录进行管理的,而本地引导和终端登录过程往往容易被忽视,从而留下安全隐患。特别是当服务器所在的机房环境缺乏严格、安全的管控制度时,防止其他用户的非授权介入就变得尤为重要。本文将详细介绍如何确保服务器的开关机安全,包括物理安全防护、GRUB引导参数的限制、更改终端登录安全控制、以及系统弱口令检测等方面的内容。

6.1 物理环境安全防护

服务器的物理环境安全防护至关重要:

  • 机箱和机柜保护:确保机箱完好,机柜锁闭,防止非授权人员接触硬件设备。

  • 人员进出控制:严格控制机房的人员进出,只有授权人员才能进入机房。

  • 硬件设备接触:限制对硬件设备的现场接触,防止设备被非法操作或破坏。

6.2 限制更改GRUB引导参数

修改GRUB引导参数可以修复系统问题,但如果任何人都能修改GRUB引导参数,对服务器的安全构成极大威胁。为此,可以为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。

6.2.1设置GRUB菜单密码步骤:

  1. 生成加密密码

    grub2-mkpasswd-pbkdf2

    按提示输入并确认密码,生成的PBKDF2加密字符串会被用于GRUB配置。

  2. 备份配置文件

    cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
    cp /etc/grub.d/00_header /etc/grub.d/00_header.bak
  3. 修改配置文件: 编辑/etc/grub.d/00_header文件,添加以下内容:

    cat << EOF
    set superusers="root"
    password_pbkdf2 root grub.pbkdf2.sha512.10000.<加密字符串>
    EOF
  4. 生成新的GRUB配置文件

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

重启系统进入GRUB菜单时,按e键需要输入账号和密码才能修改引导参数。

6.3终端登录安全控制

为了增强终端登录的安全性,限制root只在安全终端登录,并且在需要时禁止普通用户登录。

6.3.1限制root只在安全终端登录:

编辑/etc/securetty文件,注释掉不需要的终端,例如:

#tty4

禁止普通用户登录:

当服务器进行备份或调试时,可以暂时禁止普通用户登录:

touch /etc/nologin

删除/etc/nologin文件或重启主机后恢复正常。

使用last命令显示用户或终端登录情况:

last

6.4系统弱口令检测

检测系统中的弱口令可以有效提高安全性。使用John the Ripper工具进行弱口令检测。

6.4.1安装和使用John the Ripper:

  1. 下载和解包

    tar zxvf john-1.8.0.tar.gz -C /opt/
  2. 安装编译环境

    yum install gcc gcc-c++ -y
    cd /opt/john-1.8.0/src
    make clean linux-x86-64
  3. 添加测试用户并准备文件

    useradd zhangsan
    passwd zhangsan
    cp /etc/shadow /root/shadow.txt
  4. 运行John the Ripper

    cd /opt/john-1.8.0/run
    ./john /root/shadow.txt
    ./john --show /root/shadow.txt
  5. 使用字典文件检测弱口令

    ./john --wordlist=./password.lst /root/shadow.txt

通过上述步骤,可以有效检测并处理系统中的弱口令,提升系统安全性。

6.5总结

        确保服务器的开关机安全涉及多个方面,包括物理环境安全防护、限制GRUB引导参数、更改终端登录安全控制、以及系统弱口令检测。通过实施这些措施,可以大大减少服务器被非授权用户介入的风险,提升服务器的整体安全性。

七、使用Nmap进行网络端口扫描与安全管理

        网络端口扫描是网络安全评估的重要步骤。通过Nmap,可以检测网络中开放的端口和服务,从而识别潜在的安全风险。本文将详细介绍Nmap的使用方法及相关的网络安全管理措施,适合初学者。

7.1 网络协议基础

在开始使用Nmap之前,了解一些基本的网络协议是非常重要的:

  • SYN (synchronous 建立联机)

  • ACK (acknowledgement 确认)

  • PSH (push 传送)

  • FIN (finish 结束)

  • RST (reset 重置)

  • URG (urgent 紧急)

        每个TCP包都包含顺序号码(Sequence number)和确认号码(Acknowledge number),这些字段用于确保数据的有序传输和确认。

7.2 安装Nmap

首先,确保Nmap已安装在你的系统中:

rpm -qa | grep nmap
yum install -y nmap

7.3.基本Nmap扫描类型

Nmap支持多种扫描类型,每种类型适用于不同的检测需求:

  • -sS,TCP SYN 扫描(半开扫描):发送SYN数据包,如果收到SYN/ACK响应包,就认为端口开放。

    nmap -sS <target>
  • -sT,TCP 连接扫描:建立完整的TCP连接,确认端口是否开放。

    nmap -sT <target>
  • -sF,TCP FIN 扫描:发送FIN数据包,开放的端口会忽略,关闭的端口会回应RST数据包。

    nmap -sF <target>
  • -sU,UDP 扫描:探测目标主机提供的UDP服务。

    nmap -sU <target>
  • -sP,ICMP 扫描:类似于ping检测,快速判断目标主机是否存活。

    nmap -sP <target>
  • -P0,跳过ping检测:直接扫描目标主机,适用于对方不响应ICMP请求的情况。

    nmap -P0 <target>

7.4实例演示

下面是一些具体的Nmap使用实例:

  • 扫描本地主机的常用TCP端口:

    nmap -sT 127.0.0.1
  • 扫描本地主机的常用UDP端口:

    nmap -sU 127.0.0.1
  • 使用ICMP扫描判断主机是否存活:

    nmap -sP 127.0.0.1
  • 跳过ping检测,扫描一个网段:

    nmap -P0 192.168.10.0/24
  • 扫描特定端口(如文件共享服务端口):

    nmap -p 139,445 192.168.4.100-200

7.5禁用与启用Ping

临时禁用Ping:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

启用Ping:

echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

永久禁用Ping: 编辑/etc/sysctl.conf文件,添加或修改以下行:

net.ipv4.icmp_echo_ignore_all = 1

刷新配置:

sysctl -p

7.6 PAM模块防止暴力破解

通过PAM模块,可以防止暴力破解登录: 编辑/etc/pam.d/sshd,在第一行下面添加:

auth required pam_tally2.so deny=3 unlock_time=600 even_deny_root root_unlock_time=1200

参数说明:

  • deny:指定最大认证错误次数。

  • unlock_time:锁定多长时间(秒)。

  • even_deny_root:锁定root用户。

  • root_unlock_time:root用户锁定时间。

手动解除锁定: 查看某用户错误登录次数:

pam_tally2 --user <username>

清空某用户错误登录次数:

pam_tally2 --user <username> --reset

7.7 使用netstat查看网络状态

netstat命令可以查看当前操作系统的网络连接状态、路由表、接口统计等信息:

netstat -natp   # 查看正在运行的使用TCP协议的网络状态信息
netstat -naup   # 查看正在运行的使用UDP协议的网络状态信息

常用参数:

  • -n:以数字形式显示主机地址和端口。

  • -r:显示路由表信息。

  • -a:显示所有活动的网络连接信息。

  • -l:显示处于监听状态的网络连接及端口信息。

  • -t:查看TCP相关信息。

  • -u:查看UDP相关信息。

  • -p:显示与网络连接相关联的进程信息(需要root权限)。

7.8总结

        通过使用Nmap和其他工具,可以有效地检测和管理网络端口,确保网络安全。同时,结合PAM模块和netstat命令,可以进一步加强系统的安全性。希望这篇博客能帮助初学者快速掌握这些基本的网络安全技能。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/755774.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

正版软件 | R-Studio Corporate:企业级数据恢复的终极解决方案

数据是企业的生命线&#xff0c;而数据丢失可能随时威胁到企业的正常运营。R-Studio Corporate 是一款专为企业环境设计的多功能数据恢复软件&#xff0c;确保您在面临数据危机时&#xff0c;能够迅速、高效地恢复宝贵数据。 跨平台操作&#xff0c;灵活恢复 R-Studio Corporat…

雷池软硬件部署模式

硬件模式&#xff1a; 硬件反向代理 VRRP 硬件透明代理 雷池硬件设备 硬件透明墙 硬件流量镜像 流量镜像具备旁路阻断攻击的能力 软件模式 模式对比

shopify入门教程-应用开发(二)

4.内网穿透 为什么要用这个&#xff0c;就是把电脑上的开发内容通过内网穿透显示到你的开发店铺上。这里的内网穿透我用了ngrok,花生壳&#xff0c;但都不如shopify官方推荐的cloudflare好用。所以这里我也推荐cloudflare。 运用内网穿透2个步骤 把app运行起来 ​​​​​​​…

正点原子rk3588编译sdk

1、编译SDK 1.1 安装 RK3588 Linux SDK .repo/repo/repo sync -l -j101.2 SDK 工程目录介绍 app&#xff1a;存放上层应用 app&#xff0c;包括 Qt 应用程序&#xff0c;以及其它的 C/C应用程序。 buildroot&#xff1a;基于 buildroot 开发的根文件系统。 debian&#xff1…

【shell脚本实战案例】数据磁盘初始化

文章目录 一、案例应用场景二、案例需求三、案例算法四、代码实现五、实现验证 &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f388;欢迎踏入我的博客世界&#xff0c;能与您在此邂逅&#xff0c;真是缘分使然&#xff01;&#x1f60a; &#x1f338;愿您在此停留…

已解决javax.xml.bind.MarshalException:在RMI中,参数或返回值无法被编组的正确解决方法,亲测有效!!!

已解决javax.xml.bind.MarshalException&#xff1a;在RMI中&#xff0c;参数或返回值无法被编组的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 出现问题的场景 服务器端代码 客户端代码 报错原因 解决思路 解决方法 1. 实现…

IBCS 虚拟专线用哪些特点!

当今数字化时代&#xff0c;高效、稳定、安全的网络连接对于企业和个人来说至关重要。IBCS 虚拟专线作为一种创新的网络解决方案&#xff0c;凭借其众多显著的优势&#xff0c;正逐渐成为众多用户的首选。 IBCS 虚拟专线最突出的优势之一在于其卓越的网络性能。它通过优化网络路…

DC-DC产品设计PCB注意事项

DC-DC的电路比LDO会复杂很多&#xff0c;噪声也更大&#xff0c;布局和layout要求更高&#xff0c;layout的好坏直接影响DC-DC的性能&#xff0c;所以了解DC-DC的layout至关重要。 一、Bad Layout EMI&#xff0c;DC-DC的SW管脚上面会有较高的dv/dt&#xff0c; 比较高的dv/d…

Python+Pytest+Allure+Yaml+Jenkins+GitLab接口自动化测试框架详解

PythonPytestAllureYaml接口自动化测试框架详解 编撰人&#xff1a;CesareCheung 更新时间&#xff1a;2024.06.20 一、技术栈 PythonPytestAllureYamlJenkinsGitLab 版本要求&#xff1a;Python3.7.0,Pytest7.4.4,Allure2.18.1,PyYaml6.0 二、环境配置 安装python3.7&…

kafka 消费者 API 使用总结

前言 应用程序使用KafkaConsumer向Kafka订阅主题&#xff0c;并从订阅的主题中接收消息。不同于从其他消息系统读取数据&#xff0c;从Kafka读取数据涉及一些独特的概念和想法。如果不先理解这些概念&#xff0c;则难以理解如何使用消费者API。本文将先解释这些重要的概念&…

你还能顶几天?

A总&#xff1a;你还能顶几天&#xff1f; 汪汪队&#xff1a;顶到奉命撤退的那一天 A总&#xff1a;你在这守散钱点几十年了&#xff0c;从来没跟我提过任何的要求&#xff0c;难道你不困难吗&#xff1f; 汪汪队&#xff1a;有困难&#xff0c;但是我提了有什么用呢&#…

【密码学】面向小白的古典密码基础入门笔记

目录 Mindmap 前言 破译方法 三类古典密码 替换密码 分类 单表替换密码 凯撒密码 简单替换密码 仿射密码 普莱费尔密码 培根密码 猪圈密码 摩斯密码 多表替换密码 维吉尼亚密码 移位密码 滚筒密码 栅栏密码 Mindmap 前言 1.所有古典密码都已不安全 2.密…

晋级国赛!卓翼飞思技术引领,助力辽宁赛区机器人及人工智能大赛圆满收官

近日&#xff0c;第二十六届中国机器人及人工智能大赛—辽宁赛区选拔赛在大连海事大学圆满收官。本次大赛吸引来自辽宁工业大学、大连理工大学等知名高校的10余支队伍参与&#xff0c;充分展现各高校在机器人及人工智能领域的深厚实力和创新精神。其中&#xff0c;由卓翼飞思实…

用ChatGPT快速打造一个专业WordPress网站

作为一个使用HostEase多年的老用户&#xff0c;我想和大家分享一下如何利用HostEase和ChatGPT快速构建一个WordPress网站的经验。这不仅仅是一个简单的操作步骤&#xff0c;更是一次从零到有的实战经历。希望我的分享能给你们带来一些实用的帮助。 获取主机服务和域名 首先&a…

解锁音乐潮流:使用TikTok API获取平台音乐信息

一、引言 TikTok&#xff0c;作为全球领先的短视频社交平台&#xff0c;不仅为用户提供了展示自我、分享生活的舞台&#xff0c;还为用户带来了丰富多样的音乐体验。在TikTok上&#xff0c;音乐与视频内容的结合&#xff0c;为用户带来了全新的视听盛宴。对于音乐制作人、品牌…

阿里云开启ssl证书过程记录 NGINX

&#x1f91e;作者简介&#xff1a;大家好&#xff0c;我是思无邪&#xff0c;2024 毕业生&#xff0c;某厂 Go 开发工程师.。 &#x1f402;我的网站&#xff1a;https://www.yishanicode.top/ &#xff0c;持续更新&#xff0c;希望对你有帮助。 &#x1f41e;如果文章或网站…

Unity | Shader基础知识(第十五集:透明效果)

目录 一、前言 二、素材准备 三、准备基础代码 四、准备基础场景 五、SurfaceOutput结构体 六、透明度 七、渲染顺序 八、选错的后果 九、Tags之渲染顺序 十、Cull&#xff08;正面和反面渲染&#xff09; 十一、代码汇总 十二、作者的碎碎念 一、前言 因为shader…

Python 面试【高难】

欢迎莅临我的博客 &#x1f49d;&#x1f49d;&#x1f49d;&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

sheng的学习笔记-AI-高斯混合模型(GMM)

AI目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 需要学习前置知识&#xff1a; 聚类&#xff0c;可参考 sheng的学习笔记-AI-聚类(Clustering)-CSDN博客 EM算法&#xff0c;可参考 sheng的学习笔记-AI-EM算法-CSDN博客 贝叶斯&#xff0c;可参考 sheng的学习笔记-AI-…

SpringBoot-SpringBoot中文文档

简介 Spring Boot是由Pivotal团队提供的一套开源框架&#xff0c;可以简化spring应用的创建及部署。它提供了丰富的Spring模块化支持&#xff0c;可以帮助开发者更轻松快捷地构建出企业级应用。Spring Boot通过自动配置功能&#xff0c;降低了复杂性&#xff0c;同时支持基于J…