Linux 系统安全加固

admin 2024年12月5日20:55:01评论14 views字数 3829阅读12分45秒阅读模式

一、系统安全加固的目的

操作系统安全加固就是使操作系统安全稳定的各种技术以及各种方案。安全加固可从操作系统内外来看,对内就是是操作系统配置以及内核参数的调整。对外,操作系统可以通过建立防火墙,关闭不必要开放的端口,开启漏洞扫描技术等等。安装操作系统以及应用程序的安全补丁、安全配置,风险防范,风险预测,安全防范规划都属于操作系统安全加固的内容,保证业务的安全稳定离不开操作系统的安全加固。

二、账户安全

1.锁定系统中多余的自建帐号

检查方法:

执行命令

#cat /etc/passwd

#cat /etc/shadow

查看账户、口令文件,与系统管理员确认不必要的账号。对于一些保留的系统伪帐户如:bin, sys,adm,uucp,lp, nuucp,hpdb, www, daemon等可根据需要锁定登陆。

备份方法:

#cp -p /etc/passwd /etc/passwd_bak

#cp -p /etc/shadow /etc/shadow_bak

加固方法:

使用命令passwd -l <用户名>锁定不必要的账号。

使用命令passwd -u <用户名>解锁需要恢复的账号。

2.设置系统口令策略

检查方法:

使用命令

#cat /etc/login.defs|grep PASS查看密码策略设置

备份方法:

cp -p /etc/login.defs /etc/login.defs_bak

加固方法

#vi /etc/login.defs修改配置文件

PASS_MAX_DAYS 90 #新建用户的密码最长使用天数

PASS_MIN_DAYS 0 #新建用户的密码最短使用天数

PASS_WARN_AGE 7 #新建用户的密码到期提前提醒天数

PASS_MIN_LEN 9 #最小密码长度9

3.禁用root之外的超级用户

检查方法:

#cat /etc/passwd 查看口令文件,口令文件格式如下:

login_name:password:user_ID:group_ID:comment:home_dir:command

login_name:用户名

password:加密后的用户密码

user_ID:用户ID,(1-6000) 若用户ID=0,则该用户拥有超级用户的权限。查看此处是否有多个ID=0。

group_ID:用户组ID

comment:用户全名或其它注释信息

home_dir:用户根目录

command:用户登录后的执行命令

备份方法:

#cp -p /etc/passwd /etc/passwd_bak

加固方法:

使用命令passwd -l <用户名>锁定不必要的超级账户。

使用命令passwd -u <用户名>解锁需要恢复的超级账户。

4.限制能够su为root的用户

检查方法:

#cat /etc/pam.d/su,查看是否有auth required /lib/security/pam_wheel.so这样的配置条目

备份方法:#cp -p /etc/pam.d /etc/pam.d_bak

加固方法:

#vi /etc/pam.d/su

在头部添加:

auth required /lib/security/pam_wheel.so group=wheel

这样,只有wheel组的用户可以su到root

#usermod -G10 test 将test用户加入到wheel组

当系统验证出现问题时,首先应当检查/var/log/messages或者/var/log/secure中的输出信息,根据这些信息判断用户账号的有效性。如果是因为PAM验证故障,而引起root也无法登录,只能使用single user或者rescue模式进行排错。

5.多次登录失败锁定

当用户试图登陆多次失败后,锁定此用户(su or login 5次失败锁定)

在文件/etc/pam.d/system-auth中配置:

auth requisite pam_tally.so per_user onerr=fail deny=4 unlock_time=3600

注:超过4次错误就会lock user,为了防止拒绝服务攻击,加入per_user参数

三、最小化服务

1.停止或禁用与承载业务无关的服务

检查方法:

#who –r或runlevel 查看当前init级别

#chkconfig --list 查看所有服务的状态

备份方法:记录需要关闭服务的名称

加固方法:

#chkconfig --level <服务名> on|off|reset 设置服务在个init级别下开机是否启动

四、数据访问控制

1.设置合理的初始文件权限

检查方法:

#cat /etc/profile 查看umask的值

备份方法:

#cp -p /etc/profile /etc/profile_bak

加固方法:

#vi /etc/profile

umask=027

五、网络访问控制

1.使用SSH进行管理

检查方法:

#ps –aef | grep sshd 查看有无此服务

备份方法:

加固方法:

使用命令开启ssh服务

#service sshd start

禁止root登陆: PermitRootLogin: no

修改端口:ListenAddress: 8888

限制登录ip:

/etc/hosts.allow添加允许ip,(其中192.168.0.11是你要允许登陆ssh的ip,或者 是一个网段192.168.0.0/24)

sshd:192.168.0.11:allow 在/etc/hosts.deny添加,(表示除了上面允许的,其他的ip 都拒绝登陆ssh) sshd:ALL

key方式登录:

ssh还可以设定public key的方式登录,生成一对key,把public key上传到服务器,这样利用public key和private key认证方式来登录会更安全;

2.设置访问控制策略限制能够管理本机的IP地址

检查方法:

#cat /etc/ssh/sshd_config 查看有无AllowUsers的语句

备份方法:

#cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak

加固方法:

#vi /etc/ssh/sshd_config,添加以下语句

AllowUsers @10.138..* 此句意为:仅允许10.138.0.0/16网段所有用户通过ssh访问

保存后重启ssh服务

#service sshd restart

3.禁止root用户远程登陆

检查方法:

#cat /etc/ssh/sshd_config 查看PermitRootLogin是否为no

备份方法:

#cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak

加固方法:

#vi /etc/ssh/sshd_config

PermitRootLogin no

保存后重启ssh服务

service sshd restart

六、用户鉴别

1.设置帐户锁定登录失败锁定次数、锁定时间

检查方法:

#cat /etc/pam.d/system-auth 查看有无auth required pam_tally.so条目的设置

备份方法:

#cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth_bak

加固方法:

#vi /etc/pam.d/system-auth

auth required pam_tally.so onerr=fail deny=6 unlock_time=300 设置为密码连续错误6次锁定,锁定时间300秒

解锁用户 faillog -u <用户名> -r

风险:需要PAM包的支持;对pam文件的修改应仔细检查,一旦出现错误会导致无法登陆;

当系统验证出现问题时,首先应当检查/var/log/messages或者/var/log/secure中的输出信息,根据这些信息判断用户账号的有效性。

2.修改帐户TMOUT值,设置自动注销时间

检查方法:

#cat /etc/profile 查看有无TMOUT的设置

备份方法:

#cp -p /etc/profile /etc/profile_bak

加固方法:

#vi /etc/profile

增加

TMOUT=600 无操作600秒后自动退出

风险:无可见风险

3.限制FTP登录

检查方法:

#cat /etc/ftpusers 确认是否包含用户名,这些用户名不允许登录FTP服务

备份方法:

#cp -p /etc/ftpusers /etc/ftpusers_bak

加固方法:

#vi /etc/ftpusers 添加行,每行包含一个用户名,添加的用户将被禁止登录FTP服务

风险:无可见风险

4.设置Bash保留历史命令的条数

检查方法:

#cat /etc/profile|grep HISTSIZE=

#cat /etc/profile|grep HISTFILESIZE= 查看保留历史命令的条数

备份方法:

#cp -p /etc/profile /etc/profile_bak

加固方法:

#vi /etc/profile

修改HISTSIZE=5和HISTFILESIZE=5即保留最新执行的5条命令

七、审计策略

1.配置系统日志策略配置文件

检查方法:

#ps –aef | grep syslog 确认syslog是否启用

#cat /etc/syslog.conf 查看syslogd的配置,并确认日志文件是否存在

系统日志(默认)/var/log/messages

cron日志(默认)/var/log/cron

安全日志(默认)/var/log/secure

备份方法:

#cp -p /etc/syslog.conf

原文始发于微信公众号(长风实验室):Linux 系统安全加固

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月5日20:55:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Linux 系统安全加固https://cn-sec.com/archives/3472650.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息