password requisite pam_pwquality.so minlen=8 try_first_pass local_users_only retry=4 authtok_type=
**其他策略解释**
retry=N:重试多少次后返回修改密码
difok=N:新密码必须与旧密码不同的位数
dcredit=N: N>0密码中最多有多少位数字:N<0密码中最少有多少个数字 lcredit=N:小写字母的个数
ucredit=N:大写字母的个数
credit=N:特殊字母的个数
minclass=N:密码组成(大/小字母,数字,特殊字符)
## 3.确保错误登录3次,锁定此账户5分钟
vim /etc/pam.d/system-auth
auth required pam_tally2.so deny=2 lock_time=300

**解除用户锁定**
[root@node2 pam.d]# pam_tally2 -r -u test1
Login Failures Latest failure From
test1 1 04/21/20 22:37:54 pts/4
上面只是限制了用户从tty登录,而没有限制远程登录,修改sshd文件将实现对远程登陆的限制
vim /etc/pam.d/sshd
auth required pam_tally2.so deny=2 lock_time=300
## 4.禁止su非法提权,只允许root和wheel组用户su到root
vim /et/pam.d/su auth
required pam_wheel.so group=wheel #新加一行
或
auth required pam_wheel.so use_uid #取消注释

## 5.不响应ICMP请求
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

## 6.设置登陆超时时间为10分钟
exportTMOUT=600

## 7.结束非法登录用户
pkill -9 -t pts/0

## 8.配置firewalld防火墙仅开启
firewall-cmd —zone=public —add-port=22/tcp —permanent
firewall-cmd —zone=public —add-port=443/tcp —permanent firewall-cmd —zone=public —add-port=80/tcp —permanent
firewall-cmd —reload

## Centos7检查的项目如下:
**01 初始设置**
1.1 文件系统配置:
将/tmp挂载至一个单独的分区
挂载时指定noexec,nosuid:不允许运行可执行文件
1.2 安全启动设置:
设置bootloader的配置文件的权限为600
设置bootloader的密码:进入引导界面需输入密码
为单用户启动认证机制
1.3 强制访问控制:
安装SELinux
设置SELinux的状态为enforcing
设置SELinux的policy为targeted
**02 服务配置**
2.1 时间同步设置:
开启时间同步服务
使用ntp或chrony来统一服务器的时间
不安装X-windows系统:即不使用可视化界面
**03 网络配置**
3.1 hosts设置:
配置/etc/hosts.allow与/etc/hosts.deny文件
配置/etc/hosts.allow与/etc/hosts.deny文件的权限为0644
配置/etc/hosts.allow与/etc/hosts.deny文件的属主为root
3.2 防火墙配置
安装iptables
设置各个Chain的默认策略为drop
**04 审计设置**
安装并使用auditd
配置记录审计日志的文件大小:8M
配置记录审计日志的文件个数:5
单个审计日志文件大小达到设定的值时触发的动作为:keep\_logs/rotate
磁盘空间满后触发的动作为:rotate
auditd需配置的一些规则:
规则:审计更改日期和时间的操作
规则:审计更改用户/组信息的操作
规则:审计更改系统网络环境的操作
规则:审计更改系统强制访问控制的操作
规则:审计登入登出系统的事件
规则:审计企图改变文件权限的操作
规则:审计未授权情况下企图访问文件未成功的事件
规则:审计使用提权命令的操作
规则:审计删除文件的操作????
规则:审计sudoers文件的变更
规则:审计sudoers日志文件的变更????
规则:审计日志文件audit.log不能被改变
**05 日志设置**
安装并启用`rsyslog`
**06 认证授权**
**6.1 配置cron:**
开启cron服务
配置 /etc/crontab,/etc/cron.hourly,/etc/cron.daily,/etc/cron.weekly,/etc/cron.monthly,//etc/cron.d文件的权限为0700
设置cron.allow:只允许特定的用户可以使用cron
**6.2 配置SSH:**
配置/etc/ssh/sshd\_config文件的权限为0600
关闭X11Forwarding
设置最大认证尝试次数:4
开启IgnoreRhosts:不启用基于主机的认证
关闭HostbasedAuthentication: 关闭基于主机的认证
禁止使用root直接登录:PermitRootLogin no
禁止使用空密码登录:PermitEmptyPasswords no
禁止用户环境:PermitUserEnvironment no
**设置使用的MAC算法:**
hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128etm@openssh.com,hmac-sha2-512,hmac-sha2-256,umac-128@openssh.com,curve25519sha256@libssh.org,diffie-hellman-group-exchange-sha256
设置空闲超时时间:180秒ClientAliveInterval 180
设置一次登录花费时间:120秒LoginGraceTime 120
**6.3 配置PAM:**
密码长度最少位数:12
密码中最少字符类型数:3
配置密码锁定:????
配置密码重用限制:不使用最近5次的密码
配置密码hash算法:SHA512
**6.4 用户账户和环境设置:**
密码有效时间:90天
密码更改最短间隔:7天
密码过期警告:7天
自动禁用特定时间内没有活动的账号:365天
配置系统账号的无法登录
配置root账号默认群组的GID为0
配置umask的默认值为027???
配置shell超时关闭会话时间:180
配置可以使用su命令的用户
**07 系统维护**
**7.1 重要文件权限:**
/etc/passwd 0644 uid 0 gid 0
/etc/shadow 0000 uid 0 gid 0
/etc/group 0644 uid 0 gid 0
/etc/gshadow 0000 uid 0 gid 0
/etc/passwd- 0644 uid 0 gid 0
/etc/shadow- 0000 uid 0 gid 0
/etc/group- 0644 uid 0 gid 0
/etc/gshadow- 0000 uid 0 gid 0
>
> 审计设置了SUID可执行文件的完整性 前面
>
>
>
>
> 审计设置了SGID的可执行文件的完整性
>
>
>
**7.2 用户和组设置:**
不允许密码为空的账号
只允许root账号的UID为0
设置path环境变量中的目录只有owner可写,group及other都没有w的权限
设置所有用户都有家目录
设置所有用户家目录的权限为0750
设置所有用户家目录的owner都为其自身
设置用户家目录内以.开头的文件,只有owner可写,group及other都没有w的权限
确保没有.netrc,.rhosts,.forward文件
确保所有在/etc/passwd中的组都在/etc/group
确保每个用户的UID都不同
确保每个组的GID都不同
确保用户名唯一
确保组名唯一
## Windows Server加固
## 1.修改3389端口
3389端口是windows server 远程桌面的服务端口,可以通过这个端口进行远程桌面连接。对于系统安全来讲这是个安全隐患,在既不影响办公又不影响安全的前提下,我们采取修改3389端口的方法加固系统。
单击【开始】—-【运行】,输入regedit,打开注册表后,单击进入以下路径:【HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\control\TerminalServer\wds\rdpwd\Tds\tcp】在右边找到PortNumber值,默认为3389,选择十进制,改为5433.见下图:
按照路径找到PortNumber:

修改PortNumber的值:

再次打开注册表,找到以下路径:
【HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\control\TerminalServer\WinStations\RDP-Tcp】,在右边找到PortNumber的值(默认为3389),选择十进制,改为5433,需要注意的是两处的端口号要一致。操作如下:
找到RDP-Tcp,如图:

修改PortNumber值,如图:

重启计算机
查看实验情况,如图:3389端口已被修改

启用3389端口连接失败,如图:

启用5433端口连接成功,如图:

## 2.设置安全策略,不允许SAM帐户的匿名枚举,不允许SAM帐户和共享的匿名枚举
选择“开始菜单”的“管理工具”的“域安全策略”

在域安全策略界面上双击“本地策略”的“安全选项”中“不允许SAM账户的匿名枚举”

则会出现“不允许sam账户的匿名枚举的属性”的对话框,勾选“启用”单选框

## 3.在组策略中设置阻止访问注册表编辑工具
在“运行”输入“gpedit.msc”字符,则进入“组策略”的界面
在组策略的界面中双击“用户配置”的“管理模板”的“系统”的“阻止访问注册表编辑工具”

会出现“阻止访问注册表编辑工具的属性”界面,勾选“已启用”单选框

## 4.开启审核对象访问,成功与失败;开启审核目录服务访问,成功与失败;开启审核系统事件,成功与失败
在本地策略的“审核策略”的界面双击“审核对象访问”

则会出现“审核对象访问属性”的界面,在界面勾选成功和失败的复选框

在本地策略的“审核策略”的界面双击“审核登录事件”则会出现“审核登录事件 属性”的界面,在界面勾选成功和失败的复选框

## 5.禁止445端口漏洞
选择“网络连接”中的“本地连接”,在本地连接界面中把“microsoft网络的文件和打印机共享”的单选框勾掉

## 6.设置屏幕保护在恢复时使用密码保护
在桌面上右击选择“属性”按钮,则会出现“属性”的对话框,在界面中点击“屏幕保护程序”勾选“在恢复时使用密码保护”

## 7.设置windows密码策略:使密码必须满足复杂性,设置密码长度最小值为8位,设置密码最长存留期为30天。
在“本地安全策略”的“密码策略”界面上双击“密码最长使用期限”,则会出现属性,在属性中输入“30”

在“本地安全策略”的“密码策略”界面上双击“密码必须符合复杂性要求”,则会出现属性,在属性中勾选“已启用”

在“本地安全策略”的“密码策略”界面上双击“密码长度最小值”,则会出现属性,在属性中输入“8”

## 8.设置复位帐户锁定计数器为30分钟之后,设置帐户锁定时间为30分钟,设置帐户锁定阀值为6次无效登录。
在“开始菜单”中“管理工具”的“域安全策略

在域安全策略的界面双击 “账户锁定策略”的“复位账户锁定计时器,则会出现“复位账户锁定计时器的属性”输入“30”即可

在域安全策略的界面双击 “账户锁定策略”的“账户锁定时间”,则会出现“账户锁定时间”输入“30”即可

在域安全策略的界面双击 “账户锁定策略”的“账户锁定阈值”,则会出现“账户锁定时间阈值的属性”输入“6”即可

## 9.开启Windows防火墙,关闭ping服务,打开3389、80等服务
在windows 防火墙的界面上,勾选“开启”选框

在windows 防火墙界面上点击“高级”按钮,点击“icmp的设置”按钮,出现的设置界面不进行选择即可。

在windows 防火墙点击“例外”按钮则会出现例外的界面,勾选“http”和“远程桌面”最后点击“确定”按钮

## 10.关闭系统默认共享
系统默认共享功能给人们提供便利的同时也给系统安全带来风险,为了避免系统造成不必要的安全隐患,所以需要通过必要手段管理系统默认共享功能。
右击我的电脑——>管理——>服务和应用程序——>服务——>server——>禁用server服务,如图:

**server被停用,如图:**

## 扩展
## 账户策略
**01 账户策略**
**1.1 密码策略**
[+]确保强制密码历史值为5或更高
PasswordHistorySize=5
[+]确保密码最长使用期限值为90天或更少,但不为0
MaximumPasswordAge=90
[+]确保密码最短使用期限值为1或更多
MinimumPasswordAge=1
[+]确保密码必须符合复杂性要求值为enabled
PasswordComplexity=1
[+]确保用可还原的加密来存储密码值为Disabled
ClearTextPassword=0
[+]确保密码长度最小值值为8或更高
MinimumPasswordLength=8
1.2 账户锁定策略
[+]确保账户锁定时间值为15分钟或更长
LockoutDuration=15
[+]确保账户锁定阈值值为5或更少,但不为0
LockoutBadCount=5
[+]确保重置账户锁定计数器值为15分钟或更多,但值要小于Account lockout duration的值
ResetLockoutCount=15
**02 审计策略**
[+]审核策略更改:成功
AuditPolicyChange
[+]审核登录事件:成功,失败
AuditLogonEvents
[+]审核对象访问:成功
AuditObjectAccess
[+]审核进程跟踪:成功,失败
AuditProcessTracking
[+]审核目录服务访问:成功,失败
AuditDSAccess
[+]审核系统事件:成功,失败
AuditSystemEvents
[+]审核帐户登录事件:成功,失败
AuditAccountLogon
[+]审核帐户管理:成功,失败
AuditAccountManage
值的含义:

\*\*用户权限分配 \*\*
[+]确保作为受信任的呼叫方访问凭据管理器值为空,没有设置任何用户
SeTrustedCredManAccessPrivilege
[+]确保以操作系统方式执行值为空,没有设置任何用户。
SeTcbPrivilege
[+]确保将工作站添加到域值仅为特定的用户或用户组,不能有513,514,515
SeMachineAccountPrivilege
[+]确保创建全局对象值为空
SeCreateGlobalPrivilege
[+]确保拒绝作为批处理作业登录包含Guests
SeDenyBatchLogonRight
[+]确保拒绝以服务身份登录包含Guests
SeDenyServiceLogonRight
[+]确保拒绝本地登录包含Guests
SeDenyInteractiveLogonRight
[+]确保从远程系统强制关机值为administrators本地组和s-1-5-32-549(域控的一个内置组)
最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
资料预览
给大家整理的视频资料:
给大家整理的电子书资料:
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
rivilege
[+]确保以操作系统方式执行值为空,没有设置任何用户。
SeTcbPrivilege
[+]确保将工作站添加到域值仅为特定的用户或用户组,不能有513,514,515
SeMachineAccountPrivilege
[+]确保创建全局对象值为空
SeCreateGlobalPrivilege
[+]确保拒绝作为批处理作业登录包含Guests
SeDenyBatchLogonRight
[+]确保拒绝以服务身份登录包含Guests
SeDenyServiceLogonRight
[+]确保拒绝本地登录包含Guests
SeDenyInteractiveLogonRight
[+]确保从远程系统强制关机值为administrators本地组和s-1-5-32-549(域控的一个内置组)
最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
资料预览
给大家整理的视频资料:
[外链图片转存中…(img-YtnWL5H4-1727248798673)]
给大家整理的电子书资料:
[外链图片转存中…(img-GDhFIPXP-1727248798674)]
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!