当前位置:   article > 正文

Linux安全加固

Linux安全加固

因等保要求

一  口令方面

1 口令过期时间


# vim /etc/login.defs
修改下列参数为建议值
PASS_MAX_DAYS 90    #密码有效期为90天
PASS_MIN_DAYS 1     #密码最短修改时间为1天
PASS_MIN_LEN 8      #密码最小长度为8位
PASS_WARN_AGE 7     #密码过期提前7天提示修改

2 口令复杂度


# vim /etc/pam.d/system-auth或/etc/pam.d/common-password
password requisite pam_cracklib.so行替换成如下:
password  requisite pam_cracklib.so retry=6  difok=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1

参数

说明

retry

尝试次数

difok

最少不同字符

minlen

最小密码长度

ucredit

最少大写字母

lcredit

最少小写字母

dcredit

最少数字

ocredit

最少特殊符号

除此之外,口令复杂度还可通过/etc/security/pwquality.conf文件实现

口令至少5次内不能重复

# vim /etc/pam.d/system-auth
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=5

备注:system-authpwquality.conf中密码复杂度优先级高于login.defs

3 限制本地登录次数


# vim /etc/pam.d/login
在第二行增加如下内容:
auth  required  pam_tally2.so  deny=3  unlock_time=600 even_deny_root root_unlock_time=600

4 限制ssh本地登录次数

# vim /etc/pam.d/sshd
在第二行增加如下内容:
auth  required  pam_tally2.so  deny=3  unlock_time=600 even_deny_root root_unlock_time=600

上述参数解释

参数

说明

even_deny_root

也限制root用户

deny

设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户

unlock_time

设定普通用户锁定后,多少时间后解锁,单位是秒

root_unlock_time

设定root用户锁定后,多少时间后解锁,单位是秒

注1:必须在 #%PAM-1.0 的下面,即第二行,添加内容,一定要写在前面。如果写在后面,虽然用户被锁定,但是只要用户输入正确的密码,还是可以登录的。

注2:此处使用的是 pam_tally2 模块,如果不支持 pam_tally2 可以使用 pam_tally 模块。另外,不同的pam版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。

二、登录超时参考配置操作:


1 通过修改账户中 TMOUT参数,可以实现此功能。编辑 /etc/profile 文件,在后面加入TMOUT值:

# vim /etc/profile
TMOUT=180         #表示 180 秒
export TMOUT   #设置为全局变量
# source /etc/profile  #使配置生效

这样,如果系统中登录的用户在 3 分钟内都没有动作,那么系统会自动注销这个账户。

2 ssh连接超时

通过修改ssh的配置文件 /etc/ssh/sshd_config我们同样也可以实现超时自动登出功能,具体如下:

# vim /etc/ssh/sshd_config
ClientAliveInterval 90

ClientAliveCountMax 2
# systemctl restart sshd  #重启服务使配置生效

这种方法对除了root之外的所有用户都是90秒登录超时,自动登出。第一行表示每90秒检测一次,第二行表示检测到2次不活动就断开连接。

当然,若仅通过堡垒机管理服务器,堡垒机开启了连接服务器超时自动退出功能也可给到符合。

Linux系统中/etc/hosts.allow控制可以访问本机的IP地址,/ete/hosts.deny控制禁止访问本机的IP。

① 编辑 hosts.deny 文件,加入 (ALL:ALL):

1
2

#vi /etc/hosts.deny
sshd: ALL    #拒绝一切SSH远程访问,配合文件hosts.allow使用

② 编辑 hosts.allow 文件,加入允许访问的主机列表,比如:

1
2

#vi /etc/hosts.allow
sshd:192.168.59.1:allow    #允许192.168.59.1访问SSH服务进程

替换高危端口

端口

服务

渗透测试

tcp 20,21

FTP(文件传输协议)

允许匿名的上传下载,爆破,嗅探,win提权,远程执行(proftpd 1.3.5),各类后门(proftpd,vsftp 2.3.4)

tcp 23

Telnet ( 远程终端协议)

爆破,嗅探,一般常用于路由,交换登陆,可尝试弱口令

tcp 25

SMTP(简单邮件传输协议)

邮件伪造,vrfy/expn查询邮件用户信息,可使用smtp-user-enum工具来自动跑

tcp/udp 53

DNS(域名系统)

允许区域传送,dns劫持,缓存投毒,欺骗以及各种基于dns隧道的远控

tcp/udp 69

TFTP (简单文件传送协议 )

尝试下载目标及其的各类重要配置文件

tcp 80-89,443,8440-8450

各种常用的Web服务端口

可尝试经典的topn,vpn,owa,webmail,目标oa,各类Java控制台,各类服务器Web管理面板,各类Web中间件漏洞利用,各类Web框架漏洞利用等等……

tcp 110

POP3(邮局协议版本3 )

可尝试爆破,嗅探

tcp 137,139,445

SMB(NETBIOS协议)

可尝试爆破以及smb自身的各种远程执行类漏洞利用,如,ms08-067,ms17-010,嗅探等……

tcp 143

IMAP(邮件访问协议)

可尝试爆破

udp 161

SNMP(简单网络管理协议)

爆破默认团队字符串,搜集目标内网信息

tcp 389

LDAP( 轻量目录访问协议 )

ldap注入,允许匿名访问,弱口令

tcp 512,513,514

Linux rexec (远程登录)

可爆破,rlogin登陆

三  扩展小tips


1 可以通过lynis自行扫描漏洞根据报告来加固

使用 yum install lynis -y

lynis show help    提供帮助屏幕

lynis audit system  执行系统审核
lynis audit system --wait     --wait选项:等待用户按回车键显示下一节的报告。

执行完查看报告grep -E "^warning|^suggestion" /var/log/lynis-report.dat

2 病毒扫描

yum install clamav -y  ##需要epel源 

执行 freshclam 自动更新病毒库  freshclam 更新病毒库  /var/lib/clamav/病毒库位置

clamscan -i -r /data/  扫描 -l 可以指定扫描日志存放位置 

一般使用计划任务,让服务器每天晚上定时跟新和定时杀毒。保存杀毒日志,我的crontab文件如下

1 3 * ** /usr/local/clamav/bin/freshclam

30 3 * * * /usr/local/clamav/bin/clamscan --infected -r / --remove -l /var/log/clamscan.log

使用 clamscan 杀毒

clamscan 是扫描病毒的命令,这里简单的列举一部分常用指令参数

$ clamscan //不加参数的使用:扫描当前目录下的文件

$ clamscan -V //查看clamAV的版本

$ clamscan -r //递归扫描子文件夹

$ clamscan -i //仅仅显示被感染的文件

$ clamscan -o //跳过显示状态ok的文件

$ clamscan --remove //检测到有病毒时,直接删除

$ clamscan --no-summary //不显示统计信息

$ clamscan -l scan.log //将扫描日志写入scan.log文件

clamscan   一个命令行程序,用于扫描

clamd   守护程序的文件和目录。 clamd 多线程守护程序。 当clamd运行时,使用这些工具来与它进行交互:

clamdtop   要监视的命令行 GUI clamd。 clamdscan 通过命令行程序扫描文件和目录clamd。

freshclam   签名数据库(cvd)更新工具。 libclamav clamav 库 - 因此您可以将 ClamAV 引擎构建到您的程序中。

sigtool   一个签名数据库(cvd)操纵工具 - 用于恶意软件分析师和签名编写者。

clambc   另一种专门用于字节码签名的签名操作工具。

clamconf   用于检查或生成 ClamAV 配置文件并收集有助于远程调试问题所需的其他信息的工具。

clamav-config   用于检查 ClamAV 如何编译的附加工具。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/222145
推荐阅读
相关标签
  

闽ICP备14008679号