freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

安全加固--详细清单(含系统,中间件,数据库加固)
Haituny 2024-01-07 16:59:26 114442

Linux加固

1. 内核和发行版本

uname -a				查看内核
cat /etc/os-release		查看发行版本

2. core dump加固

突然断电的情况下,系统会把当时内存里的信息记录下来,这个过程就是core dump。

cat /etc/security/limits.conf
看是否存在:
soft    core            0
hard    core            0

加固方法:

编辑/etc/security/limits.conf,注释掉的话,要打开。没有的话要添加。

3. 历史命令加固

.history命令建议只保留200。

cat /etc/profile | grep HISTSIZE
查看HISTSIZE值是否是200。

加固方法:

编辑/etc/profile,改为200。

4. umask值

umask值与chmod的值有关系,正好是正常权限值的补码。

加固:

修改umask值为022即可。

5. 账号密码以及用户登录加固

1.空密码用户

awk -F : '$2=="!!" {print $1}' /etc/shadow		查看空密码的用户

加固:

usermod -L user									锁定账号
usermod -U user									解锁用户
userdel user									删除用户
userdel -r user									删除用户以及用户目录,-r递归

2.特权用户

cat /etc/passwd | grep "0:0"					查看uid为0,gid为0的特权用户。
awk -F : '$3==0 {print $1}' /etc/passwd			查看uid为0的特权用户

加固:

先编辑/etc/passwd文件,将特权用户的uid改为1000以上的用户id,再进行删除。

3.密码安全加固

(1) 最小长度大于等于8。

cat /etc/login.defs | grep MIN_LEN

加固:

vi /etc/login.defs
改为大于等于8即可。

注意:/etc/login.defs里的设置对root不适用。

(2) 密码最长使用时间不超过90天。

cat /etc/login\.defs \| grep MAX\_DAYS

加固:

vi /etc/login.defs
改为小于90即可。

(3)密码认证失败次数小于等于5。

cat /etc/pam.d/login | grep deny

加固:

vim /etc/pam.d/login加上:
auth       required     pam_tally2.so deny=5 lock_time=300 even_deny_root root_unlock_time=300

#deny=5			尝试次数为5
#lock_time=300	锁定300秒
#even_deny_root root_unlock_time=300		对root有效,root锁定后,300秒自动解锁。

(4) 密码复杂程度。

cat /etc/etc/pam.d/system-auth看有没有相应的配置

加固:

替换为:
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= difok=1 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1
#difok=1	新旧密码最少不同字符1个
#minlen=8	最短长度8
#ucredit=-1	最少1个大写
#lcredit=-1	最少一个小写
#dcredit=-1	最少一个数字

image

(5) 密码到期提醒大于等于3。

cat /etc/login.defs | grep WARN_AGE

加固:

修改为大于等于3即可。

(6) 登录超时加固。

cat /etc/profile | grep TMOUT	看是否存在设置

加固:

在/etc/profile最后加上:
export TMOUT=100

然后重启ssh:systemctl restart sshd.service

(7) 检查是否启用ssh2。

cat /etc/ssh/sshd\_config
或者
cat /etc/ssh2/ssh2d_config
看是否存在Protocol 2

加固:

在/etc/ssh/sshd_config或者/etc/ssh2/ssh2d_config中加入Protocol 2。

(8) 禁止root远程登陆。

同上,将/etc/ssh/sshd\_config或者/etc/ssh2/ssh2d\_config里的PermitRootLogin yes改为no

(9) /etc/hosts.allow和/etc/hosts.deny的配置加固

指定白名单IP和IP段可以ssh登录。默认情况下是允许所有登录。

加固:

在/etc/hosts.allow加入:
sshd:192.168.137.131
或者IP段:
sshd:192.168.137.

同时/etc/hosts.deny需要加入:
sshd:all

注意:系统会先匹配/etc/hosts.allow然后再去匹配/etc/hosts.deny。对ssh的操作都需要重启sshd。

6. 日志审计加固

1.开启日志功能。

ps aux | grep syslogd	看是否开启

加固:

systemctl start syslog

2.开启审计功能

ps aux | grep auditd	看是否开启审计功能

加固:

systemctl start auditd

3.wtmp文件是否存在。

last -f /var/log/wtmp

注意:存在既符合标准。因为wtmp是数据流文件,只能用last来查看。

7. 危险服务加固

1.talk服务

ps aux | grep talk
和
ps aux | grep ntalk
注意:用grep的时候本身就会存在一个ps服务,看准是不是。

加固:

如果存在,则需要关闭talk服务。
kill -9 taklPID
systemctl disable <talkserver>

2.sendmail服务,同上。
3.ftp服务,同上。
4.telnet服务,同上。

Windows加固

1. 查看版本

msinfo32
dxdiag
ver 	//命令查看版本。

2. Administrator和Guest账号加固

1.禁用Administrator用户

gpedit.msc 打开组策略管理器
禁用Administrator用户

image

注意:当只有一个超级管理员账号时,是禁用不掉的,可以创建一个超级管理员用户,然后去禁用Administrator。

net user /add user1 123456			#先创建一个用户
net localgroup /add Administrators user1	#将创建的用户加入Administrators组中

2.将Administrator用户重命名
image
改为不起眼的用户名即可。
3. 停用Guest账号
4. Guest用户重命名

3. 用户和密码设置加固

  1. 密码最小长度为8。

  2. 启用复杂性。

  3. 密码最短使用期限设为0。注意:最短使用期限是一旦设置密码之后,必须要使用多少天,因此有一定风险。

  4. 密码最长使用期限设为90。注意:最常使用期限可以限制黑客掌握账号的期限,因此不宜太久。

  5. 强制密码历史为5。即新密码不能与近5次的密码相同。
    image

  6. 密码锁定阈值设置为5或者10。锁定时间大于等于30分钟。
    image

  7. 密码过期之前提示。设置为5天。
    image

  8. 不显示最后登录的用户名。
    image

4. 关键权限加固

  1. 检查“关闭系统”权限。只保留Administrators组。

image

2.“取得文件或其它对象的所有权”检查,只保留Administrators组
image
3. “从远程网络访问此计算机”检查,只指定特定用户可以访问。可以专门建立一个用户。
image
image
4. 启用网络服务超时断开连接。
image
5. 本地账户的共享和安全模型。改为经典。
image
6. 不允许SAM账号的匿名枚举。
image
7. 空密码用户只允许键盘登录。
image
8. 启用安全桌面。当有权限提升的操纵时,请求会转至安全桌面,相对而言可以防止一些输入输出欺骗。比如弹窗欺骗。
image

5. 系统日志加固

计算机-->右键管理

1.日志存储大小为20Mb。

image

2.安全审核策略全部打开。
image

6. 信息保护加固

1.开启内存镜像转储。
image
2.关闭不需要的共享盘。注意,只有$IPC是不需要关的,因为所有共享都需要用到$IPC。

计算机-->右键管理

image
3. 禁止所有插入的驱动器自动播放。
image
image
4. 禁止远程注册表。

services.msc打开。

image

7. 打补丁

根据MS漏洞编号或者CVE漏洞编号都可以找到对应的HotfixID。

1.根据MS漏洞编号可以使用:https://learn.microsoft.com/zh-cn/security-updates/securitybulletins/securitybulletins
image
即可找到KB编号。
2.根据CVE漏洞编号可以使用:https://cve.mitre.org/cve/search_cve_list.html
image
image
image
即可找到KB编号。
3.找到对应的KB编号之后去:https://catalog.update.microsoft.com/Home.aspx根据KB编号搜索对应的系统补丁,然后安装即可。
image

Others

systeminfo 	看计算机信息。

1. wmic os get ServicePackMajorVersion  #命令查看系统的服务补丁包.(win10之前的版本)
2. wmic qfe get hotfixid,InstalledOn 	#命令可以查看补丁修补情况
如:
   C:\Users\Haituny>wmic qfe get hotfixid,InstalledOn
   HotFixID   InstalledOn
   KB5020872  12/16/2022
   KB4562830  4/23/2021
   KB4577586  4/27/2021
   KB4580325  4/26/2021
   KB4589212  4/27/2021

3. hostname 查看主机名
4. netstat -ano 查看端口情况
5. route print 命令查看路由表
8. gpedit.msc 命令进行ip安全策略管理,封禁要拦截的ip和端口。
9. compmgmt.msc 命令进行用户管理,在管理员CMD里net user test /del 删除test用户。(注意要管理员运行CMD),net user test /active:no 将test用户锁定。
10. secpol.msc 命令管理密码复杂度。如果更改复杂度的话,需要敲gpupdate /force 是配置强制立马生效。

Apache加固

查看配置。

image

1. apache账号加固

1.账号的shell不允许登录。

cat /etc/passwd | grep apache	看是否为nologin

加固:

chsh -s /sbin/nologin apache

2.确保apache用户被锁定。

passwd -S apache	看是否被锁定

加固:

usermod -L apache

2. apache模块加固

1.禁用digest和basic模块。

httpd -M | grep 'auth_'		查看是否存在digest和basic模块

加固:

vim /etc/httpd/conf.modules.d/00-base.conf
将digest和basic模块注释。
然后重启httpd服务:systemctl restart httpd

image
2.禁止Userdir模块
Apache 的 Userdir 模块是用于允许用户在其个人目录中托管网页内容的 Apache 模块。有一定风险,不需要的情况下需要禁用掉。
加固:

vim /etc/httpd/conf.modules.d/00-base.conf
注释掉UserDir模块

然后重启httpd服务:systemctl restart httpd

3.禁用autoindex模块,同上。
autoindex模块会将没有默认页面的目录和文件直接以列表的方式展示,存在信息泄露的风险。
4. 禁用status模块,同上。
status模块将服务器状态以html页面的形式展示给管理员。
5. 禁用info模块,同上。
info模块也可以提供很多信息,以及加载的模块。
6. 开启日志模块

httpd -M | grep log_conf	查看是否开启日志功能

加固:

vim /etc/httpd/conf.modules.d/00-base.conf
加入:
LoadModule log_config_module modules/mod_log_config.so

3. 最小化功能

1.限制请求方法。只允许GET、POST、HEAD、OPTIONS。
加固:

vim /etc/httpd/conf/httpd.conf
除/目录以外的其他目录都要注释掉Require all denied,并加上:
        <LimitExcept GET POST OPTIONS>
                Require all granted
        </LimitExcept>

然后重启httpd。

image
2. 禁用TRACE请求。
攻击者可以使用TRACE请求获取前端信息,也可以使用TRACE请求进行XSS攻击。
加固:

vim /etc/httpd/conf/httpd.conf
traceEnable on 改为off

3.禁用旧的http协议版本。
很多恶意扫描器和工具会发送旧的http协议给服务器,以获取服务器信息。
加固:

vim /etc/httpd/conf/httpd.conf
加上:
RewriteEngine on
RewriteCond %{THE_REQUEST} !HTTP/1\.1$
RewriteRule .* - [F]

重启httpd。

4.限制访问不恰当的文件扩展名。
加固:

vim /etc/httpd/conf/httpd.conf
加入:
<FilesMatch "^.*$">
        Require all denied
</FilesMatch>
<FilesMatch "^.*\.(css|html?|js|pdf|txt|xml|xsl|gif|ico|jpe?g|png)$">
        Require all granted
</FilesMatch>

重启httpd。

注意:上面的文件类型是白名单,按需要可以进行增删。

4. 防止信息泄露

1.正确设置ServerToken。防止服务器返回apache版本和php版本。

vim /etc/httpd/conf/httpd.conf
加入:
ServerTokens Prod

重启httpd。

2.禁用服务器签名。apache会在错误页面的页脚进行签名,会暴露版本信息。
加固:

vim /etc/httpd/conf/httpd.conf
加入:
ServerSignature off

重启httpd。

5. 日志加固

1.正确配置errot日志。
LogLevel指令用于配置错误日志级别,由轻到重分为emerg,alert,crit,error,warn,notice,info,syslog。默认是warn,需要配置到notice,核心模块需要配置到info。
加固:

vim /etc/httpd/conf/httpd.conf
注释LogLevel warn,加入:
LogLevel notice core:info

2.正确配置access日志。
配置access日志,可以记录攻击者的操作,并且判断是否攻击成功。
加固:

vim /etc/httpd/conf/httpd.conf
加入:
CustomLog logs/access_log "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User- agent}i\""


%h: 客户端的 IP 地址。
%l: 标识客户端的远程登录名(如果有的话),一般情况下会被横线(-)替代。
%u: 请求的用户标识(如果有的话),同样会被横线替代。
%t: 记录时间和时区。
\"%r\": 请求的第一行,包括请求方法、URL和协议。
%>s: 服务器响应的状态码。
%b: 服务器发送的响应字节数(不包括 HTTP 头)。
\"%{Referer}i\": 发送请求的来源页面的 URL。
\"%{User-agent}i\": 发送请求的用户代理的标识,一般是浏览器或其他 HTTP 客户端的信息。

6. 安全选项加固

1.超时时间10或者更少。

vim /etc/httpd/conf/httpd.conf
加入:
Timeout 10

重启httpd。

2.启用Keepalive、MaxKeepaliveRequests、KeepaliveTimeout。

可试读前40%内容
¥ 9.9 全文查看
# web安全 # 系统安全 # 数据安全 # 企业安全
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 Haituny 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
Haituny LV.5
这家伙太懒了,还未填写个人描述!
  • 23 文章数
  • 16 关注者
流量分析及流量特征识别总结
2024-01-18
VPN和路由器的安全加固
2024-01-16
XSS注入总结
2024-01-02
文章目录