登录加固
密码策略(Windows,Linux)
- 设置最短密码长度为15;设置密码复杂性
etc/login.defs/ etc/pam.d/system-auth 在retry后写入:ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
本地安全策略
- 分钟内仅允许4次登录失败,超过4次,登录帐号锁定1分钟。
etc/pam.d/login 写入:auth requisite pam_tally2.so deng=6 unlock_time=60
本地安全策略
登录策略(Windows,linux)
- 在用户登录系统时,应该有“For authorized users only”提示信息;
etc/issue;etc/issue.net;etc/motd三个文件分别修改为所需要
安全选项
- 远程用户非活动会话连接超时应小于等于5分钟。
2.远程桌面服务
3.用户安全管理(Windows)
a.对服务器进行远程管理安全性SSL加固,防止敏感信息泄露被监听;
远程桌面
- 查找并删除服务器中可能存在的帐号hacker;
c.普通用户进行最小权限管理,对关闭系统仅限管理员帐号。
安全选项
用户安全管理(Windows)
- 禁止普通用户使用注册表编辑工具以及Ctrl+Alt+Del
组策略gpedit.msc——用户配置--管理模板-系统
- 设置取得文件或其他对象的所有权,将该权限只指派给administrators组;
用户权限分配
- 禁止普通用户使用命令提示符;
组策略gpedit.msc——用户配置--管理模板-系统
- 设置不显示上次登录的用户名。
安全选项
- 要求任何用户在登录到Windows前都必须按CTRL+ALT+DEL;
安全选项
- 禁用TCP/IP上的NetBIOS协议,关闭监听的 UDP 137(netbios-ns)、UDP 138(netbios-dgm)以及 TCP 139(netbios-ssn)端口;
禁用TCP/IP上的NetBIOS协议,可以关闭监听的 UDP 137(netbios-ns)、UDP 138(netbios-dgm)以及 TCP 139(netbios-ssn)端口。
操作步骤:
在 计算机管理 > 服务和应用程序 > 服务 中禁用 TCP/IP NetBIOS Helper 服务。
在网络连接属性中,双击 Internet协议版本4(TCP/IPv4),单击 高级。在 WINS 页签中
- 设置user1用户只能在上班时间(周一至周五的9:00~18:00可以登录,将user1的登录时间配置界面截图;
net user user1 /time:M-F,09:00-18:00
- 在组策略中只允许管理员账号从网络访问本机;
安全选项
- 设置操作系统中的关键目录(system32、hosts、Program Files、Perflogs)的权限为最优状态,即仅允许管理员用户进行读取及运行。
三个文件设置安全属性
Nginx安全策略(Linux)
3.禁止目录浏览和隐藏服务器版本和信息显示;
4.限制HTTP请求方式,只允许GET、HEAD、POST;
5.设置客户端请求主体读取超时时间为10;
6.设置客户端请求头读取超时时间为10;
7.将Nginx服务降权,使用www用户启动服务。
日志监控(Windows)
- 安全日志文件大小至少为128MB,设置当达到最大的日志大小上限时,覆盖早于30天的日志;
事件查看器(eventvwr) 策略的结果集(rsop)
- 应用日志文件大小至少为64MB,设置当达到最大的日志大小上限时,覆盖早于15天的日志;
事件查看器(eventvwr) 策略的结果集(rsop)
- 系统日志大小至少为32MB,设置当达到最大的日志大小上限时,按需要覆盖事件。
事件查看器(eventvwr) 策略的结果集(rsop)
中间件服务加固SSHD\VSFTPD\IIS(Windows, Linux)
SSH服务加固(Linux)
配置文件etc/ssh/sshd_config
- 修改ssh服务端口为2222;
Port 2222,删除#号
- ssh禁止root用户远程登录;
#PermitRootLogin no
- 设置root用户的计划任务。每天早上7:50自动开启ssh服务,22:50关闭;每周六的7:30重新启动ssh服务;
Crontab -u root -e;crontab -l(查看用户计划)
50 7 * * * /sbin/service sshd start
50 22 * * * /sbin/service sshd stop
30 7 * * 6 /sbin/service sshd restart
4.修改SSHD的PID档案存放地。
#PidFile /var/run/sshd.pid(随便修改一个路径)
12.VSFTPD服务加固(Linux)
1.设置运行vsftpd的非特权系统用户为pyftp;
2.限制客户端连接的端口范围在50000-60000;
末尾写入:pasv_min_port=50000
Pasv__port=60000
- 限制本地用户登陆活动范围限制在home目录。
chroot_local_user=YES
4.vsftpd禁止匿名用户上传;
anon_upload_enable=NO
5.设置无任何操作的超时时间为5分钟;
idle_session_timeout=300
- 匿名用户访问的最大传输速率为512KB/S;
末尾写入:anon_max_rate=512 000
7.用户访问的最大传输速率为1M。
末尾写入:local_max_rate=1000000
8.同一客户机IP地址允许最大客户端连接数10;
末尾写入:max_per_ip=10
9.最大客户端连接数为100;
10.设置数据连接的超时时间为2分钟;
data_connection_timeout=120
11.设置本地用户创建文件的权限为022。
HTTPD
- 更改默认监听端口为6666;
配置文件:listen 6666
2.设置禁止目录浏览;
配置文件;Options Indexes FollowSymlinks删除Indexes
3.隐藏Apache版本号;
配置文件修改:ServerSignature off;ServerTokens Prod
4.将Apache服务降权,用户为apache,用户组为www。
BIND
- 隐藏bind版本号
配置文件写入:options{
Version”Unsupported on this platform”;
};
2.设置不提供递归服务。
IIS加固(Windows)
1.开启IIS的日志审计记录(日志文件保存格式为W3C,只记录日期、时间、客户端IP地址、用户名、方法);
2.关闭IIS的WebDAV功能增强网站的安全性。
3.关闭FTP匿名访问;
4.为了解决IIS短文件名漏洞,设置URL序列为~;
1、打开Internet 信息服务(IIS)管理器,选择站点,在功能视图界面,双击请求筛选
2、在URLà添加拒绝序列àURL序列设置为【~】
5..设置网站最大并发连接数为10。
WEB安全加固(Windows)
- 为了防止web中.mdb数据库文件非法下载,请对Web配置文件进行安全加固;
管理工具 > IIS管理器 > 网站 > Default Web Site > 请求筛选 > 右键文件扩展名 > 拒绝文件扩展名,添加扩展名.mdb
- 限制目录执行权限,对picture和upload目录设置执行权限为无为了减轻网站负载,设置网站最大并发连接数为1000;
管理工具 > IIS管理器 > 网站 > 右侧-这是网站默认设置,设置限制连接数值为 1000
- 防止文件枚举漏洞枚举网络服务器根目录文件,禁止IIS短文件名泄露;
CMD 执行命令 fsutil behavior set disable8dot3 1
本地安全策略(Windows)
14.禁止匿名枚举SAM帐户;
15.禁止系统在未登录的情况下关闭;
16.禁止存储网络身份验证的密码和凭据;
17.禁止将Everyone权限应用于匿名用户;
18.在超过登录时间后强制注销。
数据库安全策略(Linux)
配置文件etc/my.cnf
- 以普通帐户mysql安全运行mysql服务,禁止mysql以管理员帐号权限运行;
在user=mysql一行上方写入:[mysql.server]
- 删除默认数据库(test);
drop database test;
- 改变默认mysql管理员用户为:SuperRoot;
update user set user=’SuperRoot’ where user=’root’;
- 使用mysql内置MD5加密函数加密用户user1的密码为(P@ssw0rd1!)
Update user set authentication_string=password(md5(‘P@ssw0rd1!)) where user=’user1’;
- 赋予user1用户对数据库所有表只有select,insert,delete,update权限。
Show grants for ‘user1’@’localhost’; Grant select,insert,delete,update on *.* to ‘user1; Flush privileges;
防火墙策略(Linux)
- 设置防火墙允许本机转发除ICMP协议以外的所有数据包;
Iptables -A FORWARD -p icmp -j DROp
- 为防止Nmap等扫描软件探测到关键信息,设置iptables防火墙策略对80号端口进行流量处理;
Iptables -A INPUT -p tcp --dport 80 -j DROP
21.为防御拒绝服务攻击,设置ipables防火墙策略对传入的流量进行过滤,限制每分钟允许3个包传入,并将瞬间流量设定为一次最多处理6个数据包(超过上限的网络数据包将丢弃不予处理);
iptables -A INPUT -m limit --limit 3/m --limit-burst 6 -j ACCEPT
22.只允许转发来自172.16.0.0/24局域网段的DNS解析请求数据包。
iptables -A FORWARD -p udp --dport 53 -s 172.16.0.0/24 -j ACCEPT
23.为防止Nmap扫描软件探测到关键信息,设置iptables防火墙策略对3306号端口进行流量处理;
24.为防止SSH服务被暴力枚举,设置iptables防火墙策略仅允许172.16.10.0/24网段内的主机通过SSH连接本机;
iptables -A INPUT -p tcp --dport 22 -s 172.16.0.0/24 -j ACCEPT
Iptables -A INPUT -p tcp -dport 22 -j DROP
- 为防御IP碎片攻击,设置iptables防火墙策略限制IP碎片的数量,仅允许每秒处理1000个。
iptables -A FORWARD -f -m limit --limit 1000/s --limit-burst 1000 -j ACCEPT
- 为确保安全Linux系统禁止所有人通过ssh连接除了172.16.1.1这个ip;
Iptables -A INPUT -p tcp --dport 22 -s 172.6.1.1 -j DROP
Iptables -A INPUT -p tcp --dport 22 -j DROP
- 在工作时间,即周一到周五的8:30-18:00,开放本机的ftp服务给 192.168.1.0网络中的主机访问;
Iptables -A INPUT -p tcp --dport 21 -s 192.168.1.0/24 -m time --weekdys 1,2,3,4,5 --timestart 08:30 --timetop 18:00 -j ACCEPT
- 要求从ftp服务的数据下载请求次数每分钟不得超过 5 个;
Iptables -A OUTPUT -m state --state RELATED -m limit --limit 5/minute -j ACCEPT
- 拒绝 TCP 标志位全部为 1 及全部为 0 的报文访问本机;
ptables -I INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -I INPUT -p tcp --tcp-flags ALL NONE -j DROP
30.配置iptables防火墙过滤规则,以封堵目标网段(172.16.1.0/24),并在两小时后解除封锁。
31.禁止任何机器ping本机;
iptables -A INPUT -p icmp --icmp-type 8 -j DROP
32.禁止本机ping任何机器;
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP
33.禁止转发来自MAC地址为29:0E:29:27:65:EF主机的数据包。
iptables -A FORWARD -m mac --mac-source 29:OE:29:27:65:EF
34.Windows系统禁用445端口;
防火墙配置入站规则
- Windows系统禁用23端口;
防火墙配置入站规则
36.Linux系统使用iptables禁用23端口;
Iptables -A INPUT -p tcp --dport 23 -j DROP
Iptables -A INPUT -p udp --dport 23 -j DROP