Linux安全加固常见查询命令
  

暴躁的钢索 33071人觉得有帮助

{{ttag.title}}
一、Linux安全加固常见查询命令
1.应按照不同的用户分配不同的账号。避免不同用户间共享账号。避免用户账号和设备间通信使用的账号共享
cat /etc/passwd
#
不同的用户拥有不同的账号;
useradd username    #创建账号
passwd username     #设置密码
chmod 750 directory #为要更改权限的目录根据实际情况设置权限
2.应删除或锁定与设备运行、维护等工作无关的账号。
cat /etc/passwd | grep -i -E"listen|gdm|webservd|nobody|nobody4|noaccess"
cat /etc/shadow | grep -i -E"listen|gdm|webservd|nobody|nobody4|noaccess"
#锁定用户:#修改/etc/shadow 文件,用户名后加*LK*
#将/etc/passwd文件中的shell域设置成/bin/false,/bin/false是最严格的禁止login选项,一切服务都不能用
#/usr/sbin/nologin:nologin会礼貌的向用户显示一条信息,并拒绝用户登录
passwd -l username  #锁定用户
passwd – d username #解锁用户。原有密码失效,登录需输入新密码
3.根据系统要求及用户的业务需求,建立多帐户组,将用户账号分配到相应的帐户组
cat /etc/passwd
cat /etc/group
groupadd –g GID groupname #创建一个组,并为其设置 GID 号,若不设 GID,系统会自动为该组分配一个 GID 号
usermod –g group username #将用户 username 分配到 group 组中
4.使用PAM禁止任何人su为root
cat /etc/pam.d/su
auth sufficient /lib/security/pam_rootok.so
auth required /lib/security/pam_wheel.so group=wheel
#有这两行表明只有wheel组的成员可以使用su命令成为root用户。即符合要求
usermod –G groupname username  #把用户添加到wheel组,使它可以使用su命令成为root用户
5.对于采用静态口令认证技术的设备,口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少3类
cat /etc/pam.d/system-auth
#大于centos7版本的cat/etc/security/pwquality.conf
#suse linux : cat /etc/pam.d/cpmmon-password
参考配置:minlen=8  minclass=3 retry=3
dcredit=-1  ucredit=-1  ocredit=-1 lcredit=-1


minclass=N:密码组成(大/小字母,数字,特殊字符)
minclass=N:密码组成(大/小字母,数字,特殊字符)
# retry:设置用户输入口令字时允许重试的次数,默认值是retry=3。
# dcredit=N: N >= 0:密码中最多有多少个数字;N < 0密码中最少有多少个数字
lcredit=N:小写字母的个数
ucredit=N 大写字母的个数
ocredit=-1 最少1个符号
cat /etc/login.defs | grep PASS
PASS_MIN_LEN=8 #设定最小用户密码长度为 8 位
6.对于采用静态口令认证技术的设备,帐户口令的生存期不长于90天
cat /etc/login.defs | grep PASS
PASS_MAX_DAYS=90  #设定口令的生存期不长于90天
7.对于采用静态口令认证技术的设备,应配置设备,使用户不能重复使用最近5次(含5次)内已使用的口令
cat /etc/pam.d/system-auth | grep remember
# 默认没有remember的标记,不记录以前的密码,在password sufficient这一行加上remember=5即可
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=5
Redhat:编辑/etc/pam.d/system-auth文件,
Suse9:编辑/etc/pam.d/passwd文件,
Suse10,Suse11:编辑/etc/pam.d/common-password文件
8.对于采用静态口令认证技术的设备,应配置当用户连续认证失败次数超过6次(不含6次),锁定该用户使用的账号。
cat /etc/pam.d/system-auth | grep deny
deny #连续认证失败次数超过的次数 unlock_time #锁定的时间,单位为秒
auth required pam_tally.so deny=5 unlock_time=600 no_lock_time account requiredpam_tally.so
Redhat:编辑/etc/pam.d/system-auth文件,
Suse9:编辑/etc/pam.d/passwd文件,
Suse10,Suse11:编辑/etc/pam.d/common-password文件
9.在设备权限配置能力内,根据用户的业务需要,配置其所需的最小权限
ll /etc/passwd /etc/group /etc/shadow  #查询命令
/etc/passwd 必须所有用户都可读,root用户可写 –rw-r—r—
/etc/shadow 只有root可读                –r--------
/etc/group 须所有用户都可读,root用户可写    –rw-r—r—
10.限制具备超级管理员权限的用户远程登录。远程执行管理员权限操作,应先以普通权限用户远程登录后,再切换到超级管理员权限账号后执行相应操作
cat /etc/ssh/sshd_config | grepPermitRootLogin
#编辑/etc/passwd,帐号信息的shell为/sbin/nologin表示禁止远程登录,/bin/bash表示允许登陆
#root从远程ssh登录,修改/etc/ssh/sshd_config文件,将PermitRootLogin yes改为PermitRootLogin no,重启sshd服务
11.控制用户缺省访问权限,当在创建新文件或目录时应屏蔽掉新文件或目录不应有的访问允许权限。防止同属于该组的其它用户及别的组的用户修改该用户的文件或更高限制
cat /etc/login.defs | grep  UMASK
umask的默认设置一般为022,这给新创建的文件默认权限为755(777-022=755),这会给文件所有者读、写权限,但只给组成员和其他用户读权限,建议修改为027。
12.如果需要启用FTP服务,控制FTP进程缺省访问权限,当通过FTP服务创建新文件或 目录时应屏蔽掉新文件或目录不应有的访问允许权限   
# 当通过FTP服务创建新文件或目录时应屏蔽掉新文件或目录不应有的访问允许权限
netstat -an | grep 21
ps -ef | grep ftp
#如果开启了ftp,查看/etc/vsftpd/chroot_list文件,将需要限制的用户名加入到文件中
cat /etc/vsftpd/vsftpd.conf | grep -i -E "chroot_list|chroot_local_user"
cat /etc/vsftpd/chroot_list | grep -i -E"chroot_list|chroot_local_user"
#suse linux:  cat /etc/vsftpd.conf
13.设备应配置日志功能,对用户登录进行记录,记录内容包括用户登录使用的账号,登录是否成功,登录时间,以及远程登录时,用户使用的IP地址
/var/log/wtmp文件中记录着所有登录过主机的用户,时间,来源等内容,该文件不具可读性,可用last命令来看
last
last /var/log/wtmp
注意:系统账户诸如bin、daemon、adm、uucp、mail等不应该登录,如果发现这些账户有登录记录,就说明系统可能已经被入侵。
usermod -L username #锁定帐号username
usermod -U username #解锁帐号username
14.启用syslog系统日志审计功能
cat /etc/rsyslog.conf | grep authpriv
#配置如下:#authpriv.* /var/log/secure
#将 authpirv 设备的任何级别的信息记录到/var/log/secure 文件中,这主要是一些和认证、权限使用相关的信息。
suse linux: suse: cat /etc/syslog-ng/syslog-ng.conf
15.系统日志文件由syslog创立并且不可被其他用户修改;其它的系统日志文件不是全局可写
ll /var/log/messages /var/log/secure/var/log/maillog /var/log/cron /var/log/spooler /var/log/boot.log
16.启用记录cron行为日志功能
cat /etc/rsyslog.conf | grep cron
#是否启用cron行为日志功能,配置如:
# Log cron stuff
cron.*     var/log/cron
cron.*
17.设备配置远程日志功能,将需要重点关注的日志内容传输到日志服务器
cat /etc/rsyslog.conf
配置如:*.* @192.168.0.1
# 将"*.*"替换为你实际需要的日志信息。比如:kern.* ; mail.* 等等。
# 将192.168.0.1 替换为实际的IP或域名
18.对于使用IP协议进行远程维护的设备,设备应配置使用SSH等加密协议,并安全配置SSHD的设置
ps -ef | grep ssh
ps -ef | grep telnet
#禁止使用telnet等明文传输协议进行远程维护;如特别需要,需采用访问控制策 略对其进行限制;
19.在保证业务网络稳定运行的前提下,安装最新的OS补丁.补丁在安装前需要测试确定
20.关闭不必要的服务或端口
chkconfig --list
chkconfig --list | grep -E"daytime|time|echo|discard|chargen|sendmail|ntalk|ident|printer|bootps|kshell|klogin|lpd|nfs|nfs.lock|ypbind"
在/etc/xinetd.conf文件中禁止不必要的基本网络服务。注意:改变了“/etc/xinetd.conf”文件之后,需要重新启动xinetd。对必须提供的服务采用tcpwapper来保护
21.修改系统banner,避免泄漏操作系统名称,版本号,主机名称等,并且给出登陆告警信息
cat /etc/rc.d/rc.local
ll /etc/issue*
#在下面显示的这些行前加一个“#”,把输出信息的命令注释掉
# This will overwrite /etc/issue at every boot. So, make any changes you wantto make to /etc/issue here or you will lose them when you reboot.
#echo "" > /etc/issue
#echo "$R" >> /etc/issue
#echo "Kernel $(uname -r) on $a $(uname -m)" >>
#cp -f /etc/issue /etc/issue.net
#echo >> /etc/issue 其次删除"/etc"目录下的isue.net和issue文件:#mv /etc/issue /etc/issue.bak
# mv /etc/issue.net /etc/issue.net.bak
22.对于具备字符交互界面的设备,配置定时帐户自动登出
cat /etc/profile | grep TMOUT
#通过修改账户中“TMOUT”参数,可以实现此功能。TMOUT按秒计算;
#建议TMOUT=300(可根据情况设定)
#注:改变这项设置后,必须先注销用户,再用该用户登录才能激活这个功能
23. .rhosts,.netrc,hosts.equiv 等文件都具有潜在的危险,如果没有应用,应该删除
find / -name .netrc
find / -name .rhosts
find / -name hosts.equiv
#无以上文件
24.禁止root登陆FTP
cat /etc/ftpaccess  #检查文件中内容是否包含 root
cat /etc/vsftpd/ftpusers
cat /etc/vsftpd/user_list
cat /etc/vsftpd/vsftpd.conf | grep -i-E"userlist_enable|userlist_deny"
①黑名单:userlist_enable=YES,userlist_deny=YES。那列在user_list文件中的用户就会被禁止访问ftp
②白名单:userlist_enable=YES,userlist_deny=NO。文件中的用户就会被允许访问ftp
③userlist_deny不存在时,默认状态是YES
④suse: cat /etc/vsftpd.conf | grepanonymous_enable
25.修改 FTPbanner信息
cat /etc/vsftpd/vsftpd.conf | grep banner
# 内容应不包括 FTP 或版本的敏感信息

打赏鼓励作者,期待更多好文!

打赏
1人已打赏

新手222135 发表于 2022-12-30 11:47
  
内容不错,正好学习下。
一个无趣的人 发表于 2023-4-9 14:47
  
我在社区摸爬滚打这么多年,所谓阅人无数,就算没有见过猪走路,也总明白猪肉是啥味道的。一看到楼主的气势,我就觉得楼主同在社区里灌水的那帮小混子有着本质的差别,你一定就是传说中的最强技术牛。
发表新帖
热门标签
全部标签>
西北区每日一问
技术盲盒
安全效果
干货满满
技术笔记
【 社区to talk】
每日一问
信服课堂视频
GIF动图学习
新版本体验
2023技术争霸赛专题
技术咨询
功能体验
产品连连看
安装部署配置
通用技术
秒懂零信任
技术晨报
自助服务平台操作指引
原创分享
标准化排查
排障笔记本
玩转零信任
排障那些事
SDP百科
深信服技术支持平台
升级&主动服务
畅聊IT
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
每周精选
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
高手请过招
高频问题集锦
社区新周刊
POC测试案例
全能先锋系列
云化安全能力

本版达人