- 如果服务器中的用户已经固定,不需要更改,可以采取锁定账号配置文件的方法:使用chattr命令,分别加“+i”“-i”来锁定,解锁文件,lsattr命令可以查看文件锁定情况 。(在账号文件被锁定的情况下,内容不允许改变,所以无法添加,删除账号 ,也不能更改用户的密码,登录shell,宿主目录等属性信息)(扩展:chattr “+a”“-a”选项,+a:选择不允许用户编辑文件内容,但允许用户追加;-a:则允许用户编辑。)
- 如果不希望某个用户登录系统可以在创建该用户时加上“-s”选项+/sbin/nologin。例如:useradd 用户名 -s /sbin/nologin
密码安全控制
- 在不安全的网络环境中,为了降低密码被猜出或暴力破解的风险,用户应定期修改密码,避免长期使用一个密码。管理员可以设置密码的最大有效时间,密码过期的用户登录时会被要求重新设置密码,否则就拒绝登录
- 要求由批量创建的用户初次登录时必须自设新密码
- 修改/etc/pam.d/system-auth设置密码错误多少次结束会话
命令历史,自动注销
- xshell远程的历史命令机制为用户提供便利,但也给用户带来了潜在的风险。只要获得用户的命令历史文件,该用户的命令操作就一览无余,如在命令行中输入了明文密码,可能对服务器的安全存在巨大隐患。为防止此隐患,我们可以通过修改/etc/perofile文件中的HISTSIZE的值限制历史记录的条数,该操作可以影响系统中所有新登录的用户。如设置最多50条:
- 还可以修改用户宿主目录中的~/.bash_logout文件,设置用户退出Bash环境以后,所有记录的历史命令将自动清空
2.用户切换与提权
su命令——切换用户
su命令后面跟上想要切换到的用户名,例如su username。这将使你切换到指定的用户,但并不会加载该用户的完整环境变量和配置文件。 su -命令则会加载目标用户的完整环境,包括其家目录、shell配置文件
sudo命令——提升执行权限
sudo命令允许普通用户以其他用户(通常是root用户)的身份执行命令。它在安全控制中起到重要作用,因为它提供了权限管理的灵活性,同时避免了直接以root用户登录带来的安全风险。通过配置sudoers文件,可以精细控制哪些用户可以执行哪些命令,以及是否需要输入密码等。
条件:
使用sudo命令前,需要由超级管理员预先进行授权,sudo的配置文件为/etc/sudores,文件的默认权限为440.需使用专门的visudo进行编辑,虽然也可以用vi进行编辑,但保存时必须执行:W!命令来强制执行,否则系统将提示为只读文件而拒绝保存。
授权格式为:user MACHINE=COMMANDS
授权配置文件包括用户,主机,命令三个部分,即授权那些人在哪些人在哪些主机上执行那些命令:
用户(user):直接授权指定的用户名,或采用“%组名”的形式(授权一个组的所有用户)
主机(MACHINE):使用此配置文件的主机名称,此部分主要是方便在多个主机间共用同一个sudores文件,一般设为localhost或者实际的主机名即可。
命令(COMMANDS):允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号“,”进行分隔。
%组名 ALL=NOPASSWD:ALL设置该组内用户无需验证密码即可执行任何命令。
同时为多个用户,在多个主机上授权相同的命令时,可以以起别名的方式进行:分别通过关键字User_Alias,Host_Alias,Cmnd_ALies来进行设置。(别名必须为大写)如:
User_Alias 大写别名=用户1,用户2,用户3…
Host_Alias 大写别名=主机1,主机2,主机3…
Cmnd_Alias 大写别名=命令位置1,命令位置2,命令位置3…
用户别名 主机别名=命令别名
系统引导和登录控制
1.开关机安全控制
调整BIOS引导设置
- 将第一优先引导设备(First Boot Device)设为当前系统所在磁盘
- 禁止从其他设备(如光盘,U盘,网络等)引导系统,对应的项设为“Disabled”
- 将BIOS的安全级别改为“setup”,并设置好管理密码,以防未授权的修改
限制更改GRUB引导参数
- 通过备份GRUB引导参数,可以对一些系统问题进行修复,但从系统安全的角度考虑,为防止任何人都可以修改GRUB引导参数,可以为GRUB设置一个密码,只有提供正确密码才允许修改引导参数;为GRUB设置密码建议采用“grub2-mkpasswd-pbkdf2”命令生成,表现为经过PBKDF2算法加密的字符串,生成密码后再/etc/grub.d/00_hearder配置文件中,添加对应的用户,密码等配置,具体添加内容如下:
- 使用grub2-mkconfig命令生成新的grub.cfg配置文件
命令:grub2-mkconfig -o /boot/grub2/grub.cfg //生成新的grub文件
2.终端及登录控制
在Linux服务器中默认开启6个tty终端(也通过自行配置开启更多),允许任何用户进行本地登录。
禁止root用户登录
在Linux系统中,通过login程序读取/etc/securetty文件,决定允许root用户能登录那些终端,如果想禁止root登录某个终端,只需注释或者删除/etc/securetty文件对应的执行即可。
禁止普通用户登录
当服务器正在进行备份或者调试等维护工作时,可能不希望再有新的用户登录系统,这时候,只需要简单建立/etc/nologin文件即可。login程序如果检测到此文件存在,则拒绝普通用户登录系统(实际是利用了shutdown延迟机关的限制机制),当删除此文件或重新启动主机以后,恢复正常。
弱口令检测,端口扫描
1.弱口令检测——John the Ripper
下载并安装John the Ripper
John the Ripper的官方网站是http://www.openwall.com/john/,可在此网站获得稳定版源码包
以源码包john-1.8.0.tar.gz为例,解压候可以看到是三个目录——doc手册文档,run运行程序,src源码文件,doc/README链接的说明文件;切换到src子目录并执行“make clean linux-x86-64”命令,即可执行编译过程;编译完成后,run子目录下会生产一个名为john的可执行程序及相关的配置文件,字典文件等,可复制到任何位置使用。
检测弱口令账号
在安装有John的服务器中,只需执行run目录下的John程序,将待检测的shadow文件作为命令行参数,可以直接对/etc/shadow文件进行弱口令分析检测,其他服务器可以对shadow文件进行复制,传递给John进行检测,检测时间过长可以使用Ctrl+C终止。检测的结果密码在前用户名在后保存在john.pot文件中,可以结合“–show”选项进行查看
使用密码字典文件
John the Ripper默认提供的字典文件为password.lst,并列出除了3000多个常见的弱口令,有必要用户可以自行添加密码组合,完善字典,使用John程序时,可以结合“–wordlist=”选项来指定字典文件的位置,以便对指定密码文件进行暴力分析。
2.网络扫描——NMAP
安装NMAP软件包
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
以上网络安全知识点!真正的体系化!**
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!