安全加固之linux安全加固

本文章旨在说明如何尽可能地加强Linux的安全性和隐私性。
列出的所有命令都将需要root特权。
免责声明:非专业人员请不要尝试在本文中的任何内容。

用户系统

检查口令为空的账户

判断依据:存在则不符合

知识积累:特殊的shell

a. /bin/false:将用户的shell设置为/bin/false,用户会无法登录,并且不会有任何提示。

b. /sbin/nologin: nologin会礼貌的向用户显示一条信息,并拒绝用户登录。

This account is currently not available.

检查方式:命令cat /etc/passwd , cat /etc/shadow查看密码栏为空的账户

加固方式:删除密码为空的账户,或者为账户添加密码。

userdel <euserna me >
passwd <eusername>
[root@root ~]# cat /etc/shadow
root:$1$EKj.VsGc$SY9Fpo.eCjqLJu34oT298.::0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
dbus:!!:19167::::::
polkitd:!!:19167::::::
libstoragemgmt:!!:19167::::::
colord:!!:19167::::::

*号代表账号锁定、!!号代表密码为空

检查UID与root相同账户

判断依据:存在则不符合

知识积累:若UID为0则该账户拥有和Root—样的权限。

检查方式:命令cat /etc/ passwd查看第三位数字为0的账户

加固方式:修改恶意账户的UID并删除恶意账户

awk -F":" '{if ($3==0 && $1!="root") print$0}' /etc/passwd

普通用户添加root权限

echo "guest:x:0:0::/:/bin/sh">>/etc/passwd

若要删除UID=0的用户则讲UID修改成正常用户的UID

检查是否启用core dump设置

判断依据:存在则符合

知识积累:内存镜像

a.当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做Core Dump(中文有的翻译成“核心转储”)。

b.core dump是"内存快照",除了内存信息之外,有些关键的程序运行状态也会同时dump下来,例如寄存器信息(包括程序指针、栈指针等)、内存管理信息、其他处理器和操作系统状态和信息。

检查方式:命令cat /etc/security/limits.conf查看solt core 0, hard core 0配置

加固方式:添加或者修改配置文件(去掉 soft core 0 一行前面的注释 ,同时,将 0 改为 unlimited 或 某个数值(如 204800))

vi /etc/security/limits.conf
*               soft     core   204800

检查硬盘使用情况

判断依据:大于80%不符合

检查方式:命令df -h查看硬盘使用率

加固方式:对硬盘实施扩容或者删除部分不重要的资源

检查histry历史命令条数设置

判断依据:建议值为200

检查方式:命令cat /etc/profile查看HISTSIZE=的值

加固方式:修改profile配置文件中HISTSIZE的值,建议修改的值为200

vi /etc/Profile
HISTSIZE=200

检查系统当前umask值

判断依据:值022符合

知识积累:

a. umask设置了用户创建文件的默认权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码,

b.系统管理员必须要设置一个合理的umask值,以确保你创建的文件具有所希望的缺省权限,防止其他非同组用户对你的文件具有写权限,

检查方式:通过命令umask输出当前umask的值

加固方式:通过umask命令修改值为022

umask 022

#umask一般由四位数字组成,第一个数字代表着特殊含义,可以先不考虑

口令策略

检查密码最小长度

判断依据:最小长度为8则符合

检查方式:命令cat /etc/login.defs查看PASS_MIN_LEN的值。login.defs是用户账号限制文件,但是里面的策略对Root无效,

加固方式:修改login.defs配置文件,修改密码最小长度值,建议修改值为10

vi /etc/login.defs
PASS_MIN_LEN 10

检查密码过期时间

判断依据:值大于90不符合

检查方式:命令cat /etc/login.defs查看PASS_MAX_DAYS的值加固方式:修改login.defs配置文件,建议将该值设置为90

vi /etc/login.defs
PASS_MAX_DAYS 90

检查密码认证失败次数

判断依据:值大于5不符合

知识积累:默认情况下在" pam.d/login"及 "/pam.d/sshd "文件中不含有认证失败次数。

检查方式:命令cat /etc/pam.d/sshd, cat /etc/pam.d/login查看

auth required pam_tally2.so deny=  unlock_time=  even_deny_root root_unloc k_time=的值是否配置

加固方式:在pam.d/login文件中或者在pam.d/sshd中添加对应字段 “deny”,建议设置该值为5。

若以上的值没有配置,则在配置文件中追加该内客,

vi /etc/pam.d/login
auth required Pam_tally2.so deny=5

检查密码复杂度

判断依据:值未配置不符合

知识积累:默认情况下没有配置密码复杂度

检查方式:

命令
cat /etc/pam.d/system-auth查看
password requisite pam_cracklib.so retry= difok= minlen= ucredit=-1 lcredit=-3 dcredit- -3 diet path= fusr/share ierac klib/p w_dict值是否配置

加固方式:在pam.d/login配置文件中添加以上字段。

vi /etc/pam.d/login
password requisite pam_cracklib.so retry=5 difok=3 minlen=10 ucredit=-1 lcredit=-3 dcredit=-3 dictpath=/usr/share/cracklib/pw_dict

#尝试次数5次: retry=5;
#新密码和旧密码最少不同字符3个:difok=3;
#最小密码长度10: minlen=10;
#最少大写字母1个: ucredit=-1;
#最少小写字母3个: lcredit=-3;
#最少数字3个: dcredit=-3;
#字典位置:/usr/ share/cracklib/pw_dict

检查密码过期告警天数

判断依据:值小于3不符合

检查方式:命令cat /etc/login.defs查看PASS_WARN_AGE的值”

加固方式:修改login.defs配置文件中”PASS_ WARN_AGE”字段,建议值为3

vi /etc/login.defs
PASS_WARN_AGE3

日志审计

检查系统是否开启日志功能

判断依据:存在则符合

检查方式:命令ps -ef查看是否存在rsyslogd服务

加固方式:通过systemctl命令打开日志审计功能

systemctl start rsyslog

检查系统是否开启审计功能

判断依据:存在则符合

检查方式:命令ps -ef查看是否存在auditd服务

加固方式:通过systemctl命令打开审计服务

systemctl start auditd

检查是否对登录进行记录

判断依据:存在则符合

检查方式: wtmp该日志文件永久记录每个用户登录、注销及系统的启动、停机事件,要使用last命令查看。

检查方式:命令last -f /var/log/wtmp查看是否有返回结果

系统服务

检查是否启用talk服务

局域网一个通讯聊天工具

判断依据:存在则不符合

知识积累:Linux不重要的服务,用于同一网络下用户之间的相互交流,其talk以及ntalk服务存在一定的风险隐患,

检查方式:命令ps -ef| grep talk查看服务以及ntalk服务

加固方式:Kill掉talk以及ntalk服务,并禁止其开启启动

kill-9<PID>
systemctl disable <talk service name>

检查是否启用sendmail服务

判断依据:存在则不符合

检查方式:命令ps-ef grep sendmail查看服务

加固方式:kill掉sendmail服务,并禁止其开机目后

kill -9 <PID>
systemctl disable <sendmail service name>

检查是否启用FTP服务

判断依据:存在则不符合

检查方式:命令ps -ef l gren ftp查看服务

加固方式:kill掉该FTP服务,并禁止其开启自启

kiI-9 <PID>
systemctl disable <ftp service name>

检查是否启用TELNET服务

判断依据:存在则不符合

检查方式:命令ps -ef |grep telnet查看服务

加固方式:kilI掉telnet服务,并禁止其开机自启.

kill -9 <PID>
systemctl disable <telnet service name>

访问控制

检查系统登录和SSH登录超时时间

判断依据:存在则符合

知识积累:默认情况下在profile中没有配置相关timeout的参数

检查方式:命令cat /etc/profile查看export TMOUT=的值

加固方式:在profile中追加:export TMOUT的值,建议设置为100

vi /etc/profile
export TMOUT=100

检查SSH协议是否使用SSH2

ssh1协议有缺陷

判断依据:存在则符合

检查方式:命令cat /etc/ssh/sshd_config, cat /etc/ssh2/ssh2d_config查看Protocol 2配置

加固方式:将ssh的协议类型改成ssh2,若不存在配置则追加字段至sshd_config配置文件

vi /etc/ssh/sshd_config
Protocol 2

检查是否允许root账户远程SSH连接

判断依据:值no则符合

检查方式:命令cat /etc/ssh/sshd_config, cat /etc/ssh2/ssh2d_config查看“ PermitRootLogin”的值

加固方式:修改PermitRootLogin的值为no,若不存在配置则追加字段至sshd_config配置文件

vi /etcissh/sshd_config
ermitRootLogin no

检查是否允许所有IP访问主机

判断依据:值ALL不符合

检查方式:命令cat /etc/hosts.allow查看sshd:的值

加固方式:在hosts.allow配置文件中追加允许访问的IP地址

ssh分许单个ip:"sshd:192.168.222.1”
ssh允许ip段:“sshd:192.168 222.”

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值