上面不能进行强制修改,minlen表示最小密码长度
vim /etc/pam.d/system-auth
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”
最全的Linux教程,Linux从入门到精通
======================
-
linux从入门到精通(第2版)
-
Linux系统移植
-
Linux驱动开发入门与实战
-
LINUX 系统移植 第2版
-
Linux开源网络全栈详解 从DPDK到OpenFlow
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!