Linux安全加固手册
1 身份鉴别
1.1 密码安全策略
操作系统和数据库系统管理用户身份鉴别信息应具有不易被冒用的特点,口令应有复杂度要求并定期更换。
设置有效的密码策略,防止攻击者破解出密码
1)查看空口令帐号并为弱/空口令帐号设置强密码
# awk -F: '($2 == ""){print $1}' /etc/shadow
可用离线破解、暴力字典破解或者密码网站查询出帐号密钥的密码是否是弱口令
2)修改vi /etc/login.defs配置密码周期策略
此策略只对策略实施后所创建的帐号生效, 以前的帐号还是按99999天周期时间来算。
3)/etc/pam.d/system-auth配置密码复杂度:
在文件中添加如下一行:
password requisite pam_cracklib.so retry=3 difok=2 minlen=8 lcredit=-1 dcredit=-1
参数含义如下所示:
difok:本次密码与上次密码至少不同字符数
minlen:密码最小长度,此配置优先于login.defs中的PASS_MAX_DAYS
ucredit:最少大写字母
lcredit:最少小写字母
dcredit:最少数字
retry:重试多少次后返回密码修改错误
【注】用root修改其他帐号都不受密码周期及复杂度配置的影响。
1.2 登录失败策略
应启用登录失败处理功能,可采取结束会话、限制非法登录次数和自动退出等措施。
遭遇密码破解时,暂时锁定帐号,降低密码被猜解的可能性
1)方法一:/etc/pam.d/login中设定控制台;/etc/pam.d/sshd中设定SSH
/etc/pam.d/sshd中第二行添加下列信息
auth required pam_tally2.so deny=5 lock_time=2 even_deny_root unlock_time=60
###########参数解释############
查看用户登录失败次数
# pam_tally2 --user root
解锁用户
# pam_tally2 -r -u root
even_deny_root 也限制root用户(默认配置就锁定root帐号);
deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户
unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒;
1.3 安全的远程管理方式
当对服务器进行远程管理时,应采取必要措施,防止鉴别信息在网络传输过程中被窃听。
防止远程管理过程中,密码等敏感信息被窃听
执行如下语句,查看telnet服务是否在运行
禁止telnet运行,禁止开机启动,如下图:
2 访问控制
应及时删除多余的、过期的帐户,避免共享帐户的存在。
删除或禁用临时、过期及可疑的帐号,防止被非法利用。
主要是管理员创建的普通帐号,如:test
# usermod -L user 禁用帐号,帐号无法登录,/etc/shadow第二栏显示为!开头
# userdel user 删除user用户
# userdel -r user将删除user用户,并且将/home目录下的user目录一并删除
加固后如图
3 安全审计
3.1 审核策略开启
审计范围应覆盖到服务器和重要客户端上的每个操作系统用户和数据库用户;
开启审核策略,若日后系统出现故障、安全事故则可以查看系统日志文件,排除故障、追查入侵者的信息等。
查看rsyslog与auditd服务是否开启
rsyslog一般都会开启,auditd如没开启,执行如下命令:
# systemctl start auditd
auditd服务开机启动
# systemctl start auditd
3.2 日志属性设置
应保护审计记录,避免受到未预期的删除、修改或覆盖等。
防止重要日志信息被覆盖
让日志文件转储一个月,保留6个月的信息,先查看目前配置,
# more /etc/logrotate.conf | grep -v "^#\|^$"
需要修改配置为下图所示:
4 入侵防御
操作系统遵循最小安装的原则,仅安装需要的组件和应用程序,并通过设置升级服务器等方式保持系统补丁及时得到更新。
关闭与系统业务无关或不必要的服务,减小系统被黑客被攻击、渗透的风险。
禁用蓝牙服务
# systemctl stop bluetooth
禁止蓝牙开机启动
5 系统资源控制
5.1 访问控制
应通过设定终端接入方式、网络地址范围等条件限制终端登录。
对接入服务器的IP、方式等进行限制,可以阻止非法入侵。
1) 在/etc/hosts.allow和/etc/hosts.deny文件中配置接入限制
最好的策略就是阻止所有的主机在“/etc/hosts.deny”文件中加入“ ALL:ALL@ALL, PARANOID ”,然后再在“/etc/hosts.allow” 文件中加入所有允许访问的主机列表。如下操作:
编辑 hosts.deny文件(vi /etc/hosts.deny),加入下面该行:
# Deny access to everyone.
ALL: ALL@ALL, PARANOID
编辑hosts.allow 文件(vi /etc/hosts.allow),加入允许访问的主机列表,比如:
ftp: 202.54.15.99 foo.com //202.54.15.99是允许访问 ftp 服务的 IP 地址
//foo.com 是允许访问 ftp 服务的主机名称。
2) 也可以用iptables进行访问控制
5.2 超时锁定
应根据安全策略设置登录终端的操作超时锁定。
设置登录超时时间,释放系统资源,也提高服务器的安全性。
/etc/profile中添加如下一行
exprot TMOUT=900 //15分钟
# source /etc/profile
改变这项设置后,必须先注销用户,再用该用户登录才能激活这个功能。
如果有需要,开启屏幕保护功能
设置屏幕保护:设置 -> 系统设置 -> 屏幕保护程序,进行操作
6 最佳经验实践
对Linux系统的安全性提升有一定帮助。
6.1 DOS攻击防御
防止拒绝服务攻击
TCP SYN保护机制等设置
1)打开 syncookie:
# echo“1”>/proc/sys/net/ipv4/tcp_syncookies //默认为1,一般不用设置
表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
2)防syn 攻击优化
用vi编辑/etc/sysctl.conf,添加如下行:
net.ipv4.tcp_max_syn_backlog = 2048
进入SYN包的最大请求队列.默认1024.对重负载服务器,增加该值显然有好处.可调整到2048.
6.2 历史命令
为历史的命令增加登录的IP地址、执行命令时间等
1)保存1万条命令
# sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile
2)在/etc/profile的文件尾部添加如下行数配置信息:
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}' |sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
export HISTTIMEFORMAT="%F %T $USER_IP `whoami` "
shopt -s histappend
export PROMPT_COMMAND="history -a"
##source /etc/profile让配置生效
Linux安全加固手册的更多相关文章
- CentOS 7 主机加固手册-中
CentOS 7 主机加固手册-上 CentOS 7 主机加固手册-中 CentOS 7 主机加固手册-下 0x0c 设置/boot/grub2/grub.cfg权限 Set grub.conf ...
- [置顶] linux常用命令手册
前言:整理了一份linux常用命令手册,与大家分享.这是一些比较常用的命令. 我已经整理成一份PDF带书签的手册,可以到CSDN免费下载. 下载地址:http://download.csdn.net/ ...
- Linux常用命令手册
Linux常用命令手册 NO 分类 PS1 命令名 用法及参数 功能注解 对应章节 1 文件管理 # ls ls -a 列出当前目录下的所有文件,包括以.头的隐含文件 文件管理 # ls ls ...
- linux安全加固浅谈
难易程度:★★★阅读点:linux;python;web安全;文章作者:xiaoye文章来源:i春秋关键字:网络渗透技术 前言linux被越来越多的企业使用,因此掌握一些基本的linux安全加固是有必 ...
- 把linux的man手册转化为windows下可读的格式
原文链接: http://www.linux521.com/2009/system/200904/1542.html 把linux的man手册转化为windows下可读的格式 我也是一个Linux学习 ...
- Linux中man手册的使用
Linux中man手册的使用 ——以CentOS6.8为例 本文旨在介绍在Linux中如何快速入手新命令,毕竟在Linux系统中,可以通过命令完成一切操作. 相关命令:help man whatis ...
- linux在线中文手册
linux在线中文手册 http://linux.51yip.com/ 百度中的百度应用也不错 http://www.baidu.com/s?word=linux%E5%91%BD%E4%BB%A4& ...
- linux下man手册简介
Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可.Linux 的man手册共有以下几个章节: 1.Standard commands (标准命令)2.S ...
- 《Linux命令学习手册》系列分享专栏
<Linux命令学习手册>系列分享专栏 <Linux命令学习手册>已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read/207 ...
随机推荐
- Python接口自动化测试_悠悠
https://yuedu.baidu.com/ebook/585ab168302b3169a45177232f60ddccda38e695###
- BUG严重等级分类标准
1 编写目的 本文档是对独立测试阶段发现的缺陷(bug)按照严重等级进行分类,确保测试出的缺陷得到正确的理解,以方便缺陷的修改.回归测试工作可以顺利进行,同时也可以作为测试考核的依据. 2 适用范围 ...
- 使用并发 ssh 连接来提升捞日志脚本执行效率
问题背景 公司有个简单粗暴的日志服务,它部署在多台机器实例上,收集的日志记录在每台机器本地硬盘,写一个小时自动切换日志文件,硬盘空间写满了自动回卷,大约可以保存两三天的历史数据.为什么说它粗暴呢?原来 ...
- IDEA中使用Docker
开发环境 IDEA:2020.3.2 Docker:20.10.12 注意,如果没有开启Docker远程连接,请先开启Docker远程连接. 1. 打开或新建一个Web项目 可参考使用IDEA新建一个 ...
- 部署Nginx网站服务
编译安装Nginx nginx 官方 : http://nginx.org/ yum -y install pcre-devel zlib-devel ##安装相关依赖包 ./configure ...
- DHCPv4 Relay场景测试—信而泰网络测试仪实操
一.测试说明 本文主要介绍DHCPv4 Relay场景的测试仪配置方法以及需要注意的事项. DHCPv4 Relay原理: DHCP中继代理,就是在DHCP服务器和客户端之间转发DHCP数据包.当DH ...
- 【C++ 调试】增量链接 Incremental Linking
概述: Incremental Linking翻译成中文就是"增量链接",是一个链接的参数选项,作用就是为了提高链接速度的.什么意思呢?不选用增量链接时,每次修改或新增代码后进行链 ...
- c语言结构体中的一个char数组怎么赋值?
目录 前景提示 这里的结构体处理的步骤 一.char数组类型的处理 二.char数组指针类型的处理 三.全部代码 1. char数组 2. char数组指针 结语 前景提示 定义一个结构体,结构体中有 ...
- svn问题总结
有问题先尝试右键刷新,或clean up svn图标不显示 解决办法:打开注册表regedit,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curren ...
- k-NN——算法实现
k-NN 没有特别的训练过程,给定训练集,标签,k,计算待预测特征到训练集的所有距离,选取前k个距离最小的训练集,k个中标签最多的为预测标签 约会类型分类.手写数字识别分类 计算输入数据到每一个训练数 ...