“Yeah It’s on. ”
操作系统安全配置
1、基本安全措施
(1)系统账号清理、锁定
(1) 系统账号清理、锁定 在 Linux 系统中,除了用户手动创建的各种账号外,还包括随系统或程序安装过程中生成的大量其他账号,除了超级用户 root 之外,其他大量的账户只是用来维护系统运作、启动或保持服务进程,一般不允许登陆,称为非登录用户。为了保持系统安全,这些用户的登陆 shell 通常是/sbin/nologin,表示禁止终端登录,应确保不被人为改动
a锁
1
chattr +a /etc/passwd /etc/shadow #给密码文件加a锁
查锁
1
lsattr
加了a锁后不能创建新用户,加了a锁,可以追加内容到文件中
i锁
1
chattr +i /etc/passwd /etc/shadow #给密码文件加a锁
(2)密码安全控制
在不安全的网络环境中,为了降低密码被猜出或暴力破解(穷举) 的风险,用户应养成定期更改密码的习惯,应避免长期使用同一个密码。管理员可以在服务器端限制用户密码使用最大有效期天数,对密码已过期的用户,登录时要求重新设置密码,否则拒绝登录
1
2
3
4
5
6
vim /etc/login.defs
PASS_MAX_DAYS 30
PASS_MIN_DAYS 0
PASS_MIN_LEN5 5
PASS_WARN_AGE 7
1
chage -M 30 zhangsan #适用于已存在的用户,密码30天过期
1
chage -d 0 zhangsan #下次登录时,必须更改密码
(3) 命令历史
shell 环境下,命令历史机制为用户提供了极大的便利,但也带来了一些潜在的风险只有获得用户的命令历史记录,该用户的命令操作将一览无余,如果曾经在命令行输入了明文的密码,则服务器的安全将受到威胁。历史命令记录条数有变量 HISTSIZE 控制,默认 1000条,可修改配置文件,影响系统中的所有用户。
(4)自动注销
bash 终端环境中,可设置一个闲置超时时间,当超过指定的时间没有任何输入时即自动注销终端。这样可以有效避免当管理员不在时其他人员对服务器的误操作风险,闲置超时由变量 TMOUT 控制,默认单位为秒 (s)
1
export TMOUT=600
2、用户切换与提权
su命令切换用户
使用su命令,可以切换一个指定的用户,拥有该用户的所有权限
选项“-”等同于”–login”或”-l”表示切换用户后进入目标用户的登录 shell 环境,若不带此选项则仅切换身份,不切换用户环境 默认所有用户允许使用 su 命令,从而有机会反复尝试其他用户(root) 的登陆密码带来安全风险。可以使用 pam wheel 认证模块,只允许极个别用户使用 su 命令进行切换
su 只是切换了身份用户,其他的比如shell,变量啥的都没有变,还是用的root的
su - 切换用户身份和所在位置,shell,变量都换
3、PAM可插拔认证模块
(1)PAM简介
PAM是一种高效且灵活便利的用户级别的认证方式,它也是当前Linux服务器普遍使用的认证方式。
PAM提供了对所有服务进行认证的中央机制,适用于Login,远程登录(telent,rlogin,fsh,ftp ),su等应用程序。系统管理员通过PAM配置文件来制定不同应用程序的不同认证策略。
(2)PAM认证原理
PAM 认证首先要确定哪一项服务,然后加载相应的 PAM 的配置文件(位于/etc/pam.d下),最后调用认证库文件(32 位系统位于/1ib/security 下,64位系统位于/lib64/security下) 进行安全认证。
| 用户访问服务器的时候,服务器的某一个服务进程把用户的请求发送到 PAM 模块进行认证。不同的应用程序所对应的 PAM 模块也是不同的。如果想查看某个程序是否支持 PAM证,可以用 ls命令进行查看,如查看 su 是否支持PAM模块认证:ls /etc/pam.d | grep su |
(3)PAM认证的构成
- 每一行都是一个独立的认证过程
- 每一行可以区分为三个字段: 认证类型、控制类型、PAM 模块及其参数

(4)四种常见认证类型
- auth 认证管理 接受用户名和密码,进而对该用户的密码进行认证
- account 账户管理 检查账户是否被允许登录系统,账号是否已过期,账号的登录是否有时间段的限制等
- password 密码管理 主要是用来修改用户的密码
- session 会话管理 主要是提供对会话的管理和记账
(5)常见的五种控制类型
- required 验证失败时仍然继续,但返回Fail
- requisite 验证失败则立即结束整个验证过程,返回Fail
- sufficent 验证成功则立即返回,不再继续,否则忽略结果并继续
- optional 不用于验证,只是显示信息(通常用于session类型)
- include 不进行认证,转到后面PAM模块进行认证
while 组 中的用户,才能使用su
启用 pam_wheel 认证以后,未加入到 wheel 组内的其他用户将无法使用 su 命令,尝试进行切换时将提示“拒绝权限”从而将切换用户的权限控制在最小范围内。使用 su 命令切换用户的操作将会记录到安全日志/var/log/secure 文件中。
sudo命令——提升用户的执行权限
通过 su 命令可以非常方便地切换为另一个用户,但前提条件是必须知道目标用户的登录密码。例如,若要从 linuxxu 用户切换为 root 用户,必须知道 root 用户的密码。对于生产环境中的 Linux 服务器,每多一个人知道特权密码,其安全风险也就增加一分。那么,有没有一种折中的办法,既可以让普通用户拥有一部分管理权限.又不需要将 root 用户的密码告诉他呢?答案是肯定的.使用 sudo 命令就可以提升执行权限。不过,需要由管理员预先进行授权,指定允许哪些用户以超级用户(或其他普通用户)的身份来执行哪些命令
在配置文件/etc/sudoqs 中添加授权,sudo 机制的配置文件为/etc/sudoers。文件的默认权限为 440,需使用专门的 visudo 工具进行编辑。虽然也可以用 vi 进行编辑,但保存时必须执行“:w!”命令来强制操作,否则系统将提示为只读文件而拒绝保存。

授权配置主要包含用户,主机,命令三部分,即授权哪些人在哪些主机上执行哪些命令
- 用户(user): 直接授权指定的用户名,或采用”%组名”的形式(授权一个组的所有用户)。
- 主机(MACHINE):使用此配置文件的主机名称。此部分主要是方便在多个主机间共用同一份 sudoers 文件,一般设为 localhost 或者实际的主机名即可.
- 命令(COMMANDS): 允许授权的用户通过 sudo 方式执行的特权命令。需填写命令程序的完整路径,多个命令之间以逗号进行分割
/var/log/sudo
系统引导和登录控制
开关机安全控制
(1)调整BLOS引导设置
禁止从其他设备引导系统(U盘,光驱,网络),对应的项为 Disabled。防止通过其他方式引导进入系统窃取数据。 将 BIOS 安全级别改为 setup,并设好管理密码,以防止未授权修改
禁止使用ctrl+Alt+Del快捷键重启
1
2
systemctl mask ctrl-alt-del.target #禁止快捷键功能
systemctl daemon-reload #重新加载systemd配置
systemctl mask 命令是用于注销指定服务的
登录控制
在linux中,默认开启了多个tty终端,允许任何用户进行本地登录
(1)禁止root用户登录
在linux系统中,login程序会读取/etc/securetty文件,以决定允许root用户从哪些终端登录。若要禁止root用户从指定的终端登录,只需要注释或删除对应的行即可

ctrl + alt +f2 切换登录终端
(2)禁止普通用户登录
当服务器在维护时,不希望普通用户登录系统,只需建立/etc/nologin 文件即可。当 login程序检测到/etc/nologin 文件存在时,将拒绝普通用户登录系统 (roott 除外)实际上是利用 shutdown 延迟关机的限制机制,只建议在服务器维护期间临时使用。
1
touch /etc/nologin
弱口令检测、端口扫描
1、弱口令检测————John
在互联网环境中,过于简单的密码是服务器面临的最大风险,尽管大家知道设置一个更长、更复杂的密码会更安全,但总有人贪图方便而采用简单、易记的密码。对于任何一个承担着安全责任的管理员,及时找出这些弱口令账户是非常重要的,这样更容易采取安全措施。 John the Ripper 是一款开源的密码破解工具,能在已知密文的情况下,快速分析明文的密码字串,支持 DES、MD5 等多种加密算法,允许使用密码字典进行暴力破解。通过 John theRipper,可以检测 Linux/UNIX 系统用户的密码强度John the Ripper 的官方网站是 http://www.openwall.com/john, 通过该网站可以获取稳定版源码包。

2、网络扫描———NMAP
NMAP 是一款强大的端口扫描类安全评测工具,支持 ping 扫描、多端口检测、OS 识别等多种技术。使用 NMAP 定期扫描内部网络,可以找出网络中不可控的应用服务,及时关闭不安全的服务,较少安全风险。
参数说明:
-v 表示显示冗余信息,在扫描过程中显示扫描的细节,从而让用户了解当前的扫描状态。
-O: 显示出操作系统的类型。 每一种操作系统都有一个指纹。
-sS:半开扫描(half-open)
–randomize_hosts : 随机扫描,对目标主机的顺序随机划分
–scan-delay :延时扫描,单位秒,调整探针之间的延迟
常用扫描类型:
- nmap 192.168.1.63 使用 nmap 扫描一台服务器
- nmap -v 192.168.1.63 扫描一台机器,查看它打开的端口及详细信息。
- nmap -p 1-65535 192.168.1.63 扫描一个范围: 端口 1-65535
- nmap -sS -O baidu.com 扫描一台机器:查看此服务器开放的端口号和操作系统类型。
- nmap -sS -O 192.168.1.0/24 扫描一个网段中所有机器是什么类型的操作系统。
- 如何更隐藏的去扫描,频繁扫描会被屏蔽或者锁定 IP 地址。
- 随机扫描 nmap -v –randomize-hosts -p 80 192.168.1.62-69
- 随机扫描+延时扫描 ,默认单位秒 nmap -v –randomize-hosts –scan-delay 3000ms -p 80 192.168.1.62-69