Linux服务器通用安全加固指南
一、基本系统安全
1、保护引导过程(以Grub引导为例)
在 /etc/inittab 中添加 sp:S:respawn:/sbin/sulogin,以确保当切换到单用户模式时 运行级的配置要求输入 root 密码:
防止用户使用 Ctrl-Alt-Del 进行重新引导:
在RHEL6.X和CentOS 6.X下, 该热键的行为由'/etc/init/control-alt-delete.conf'控制。
注释掉原来的改成:exec /usr/bin/logger -p authpriv.notice -t init "Ctrl-Alt-Del was pressed and ignored",这个配置会在每次按下Ctrl-Alt-Del 时输出日志。
小提示:在终端登录的情况下,看不到效果,只有在机器面前,按下键盘上的Ctrl+Alt+del键,才会在/var/log/message里面看到输出日志
2、关闭不使用的服务
查看哪些服务是开启的:
关闭邮件服务,使用公司邮件服务器:
关闭nfs服务及客户端:
3、增强特殊文件权限:
给下面的文件加上不可更改属性,从而防止非授权用户获得权限。
注意:执行以上 chattr 权限修改之后,就无法添加删除用户了。在后面的实验过程中,如果修改不了上面设置过的文件,记得取消只读权限chattr -i。
如果再要添加删除用户,需要先取消上面的设置,等用户添加删除完成之后,再执行上面的操作,例如取消只读权限chattr -i /etc/passwd。(记得重新设置只读)
4、强制实行配额和限制:
Linux PAM(插入式认证模块,Pluggable Authentication Modules)可以强制实行一些实用的限制,在 /etc/security/limits.conf 文件中对此进行配置。
谨记,这些限制适用于单个对话。您可以使用 maxlogins 来控制总额限制。limits.conf 中的条目有如下结构: username|@groupname type resource limit。
为了与 username 区别,groupname 之前必须加 @。类型必须是 soft 或者 hard。软限制(soft-limit)可以 被超出,通常只是警戒线,而硬限制(hard-limit)不能被超出。resource 可以 是下面的关键字之一:
core - 限制内核文件的大小(KB)
data - 最大数据大小(KB)
fsize - 最大文件大小(KB)
memlock - 最大锁定内存地址空间(KB)
nofile - 打开文件的最大数目
rss - 最大持久设置大小(KB)
stack - 最大栈大小(KB)
cpu - 以分钟为单位的最多 CPU 时间
nproc - 进程的最大数目
as - 地址空间限制
maxlogins - 此用户允许登录的最大数目
下面的代码示例中,所有用户每个会话都限制在 10 MB,并允许同时有四个登录。第三行禁用了每个人的内核转储。第四行除去了用户 bin 的所有限制。ftp 允许有 10 个并发会话(对匿名 ftp 帐号尤其实用);managers 组的成员的进程数目限制 为 40 个。developers 有 64 MB 的 memlock 限制,wwwusers 的成员不能创建大于 50 MB 的文件。
要激活这些限制,您需要在 /etc/pam.d/login 底部添加下面一行: session required /lib/security/pam_limits.so。
要为文件系统启用配额,您必须在 /etc/fstab 中为相应的那行添加一个选项。 使用 usrquota 和 grpquota 来启用 用户配额和组配额,像下面这样:
然后,使用 mount -a -o remount 重新挂载相应的文件系统,来激活刚才添加 的选项;然后使用 quotacheck -cugvm 创建一个二进制配额文件,其中包含了机器 可读格式的配额配置。这是配额子系统要操作的文件。然后使用 edquota -u username 为具体的用户配额。
如果对磁盘配额不了解可以学习参考资料里面的“Linux磁盘配额”实验。
二、用户安全
1. 禁用不使用的用户
注意:不建议直接删除,当你需要某个用户时,自己重新添加会很麻烦。也可以 usermod -L 或 passwd -l user 锁定。
2、ssh登陆安全
(1)修改ssh的默认端口22,改成如20002这样的较大端口会大幅提高安全系数,降低ssh破解登录的可能性。(注意:本实验环境不允许修改ssh端口,否则会造成服务断开)
找到SSh服务配置文件路径一般都是在 /etc/ssh这个目录下面 sshd_config 这个文件,在“# Port 22”这一行下面添加一行
vi /etc/ssh/sshd_config
内容为 port 端口号。
然后重启ssh服务即可。
(2)只允许wheel用户组的用户su切换(举例,不一定要用这个用户组名字)
其他用户切换root,即使输对密码也会提示 su: incorrect password
(3)登录超时(本实验环境不允许这样操作!!!)
用户在线5分钟无操作则超时断开连接,在/etc/profile中添加:
(4) 禁止root直接远程登录(本实验环境不允许这样操作!!!)
(5)限制登录失败次数并锁定
在/etc/pam.d/login后添加:
登录失败5次锁定188秒,根据需要设置是否包括root。
3、减少history命令记录
执行过的历史命令记录越多,从一定程度上讲会给维护带来简便,但同样会伴随安全问题。
vi /etc/profile
找到 HISTSIZE=1000 改为 HISTSIZE=50。
执行 source /etc/profile生效
或每次退出时清理history命令:history –c。
三、网络安全
1、禁用ipv6
IPv6是为了解决IPv4地址耗尽的问题,但我们的服务器一般用不到它,反而禁用IPv6不仅仅会加快网络,还会有助于减少管理开销和提高安全级别。以下几步在CentOS上完全禁用ipv6。
禁止加载IPv6模块:
让系统不加载ipv6相关模块,这需要修改modprobe相关设定文件,为了管理方便,我们新建设定文件/etc/modprobe.d/ipv6off.conf,内容如下:
禁用基于IPv6网络,使之不会被触发启动:
禁用网卡IPv6设置,使之仅在IPv4模式下运行:
关闭ip6tables:
重启系统,验证是否生效:
如果没有任何输出就说明IPv6模块已被禁用,否则被启用。
2、防止一般网络攻击
网络攻击不是几行设置就能避免的,以下都只是些简单的将可能性降到最低,增大攻击的难度但并不能完全阻止。
(1)禁ping
阻止ping如果没人能ping通您的系统,安全性自然增加了,可以有效的防止ping洪水。为此,可以在/etc/rc.d/rc.local文件中增加如下一行:
注意 1 后面是有空格的
或使用iptable禁ping,当然前提是你启用了iptables防火墙。
(2)防止IP欺骗
编辑/etc/host.conf文件并增加如下几行来防止IP欺骗攻击:
(3)防止DoS攻击
对系统所有的用户设置资源限制可以防止DoS类型攻击,如最大进程数和内存使用数量等。
可以在/etc/security/limits.conf中添加如下几行:
core 0 表示禁止创建core文件;nproc 128 把最多的进程数限制到20;nofile 64 表示把一个用户同时打开的最大文件数限制为64;* 表示登录到系统的所有用户,不包括root。
然后必须编辑/etc/pam.d/login文件检查下面一行是否存在:
limits.conf参数的值需要根据具体情况调整。
3、定期做日志检查
将日志移动到专用的日志服务器里,这可避免入侵者轻易的改动本地日志。
常见linux的默认日志文件及其用处:
1、查询资料了解更多关于linux系统加固的知识。
计算机系统评测标准TCSEC,TCSEC将系统分成ABCD四类7个安全级别。D级是安全级别最低的级别,C类为自主保护级别;B类为强制保护级别;A类为验证保护类
D级,最低安全性
C1级,主存取控制
C2级,较完善的自主存取控制(DAC)、审计
B1级,强制存取控制(MAC)
B2级,良好的结构化设计、形式化安全模型
B3级,全面的访问控制、可信恢复
A1级,形式化认证
2、查询资料了解iptables有哪些用途?
主机防火墙和网络防火墙
Linux服务器通用安全加固指南的更多相关文章
- 如何利用PowerShell完成的Windows服务器系统安全加固实践和基线检测
0x00 前言简述 最近单位在做等保测评,由本人从事安全运维方面的工作(PS:曾经做过等保等方面的安全服务),所以自然而然的与信安的测评人员一起对接相关业务系统的检查,在做主机系统测评检查时发现了系统 ...
- Linux服务器安全审计工具与流程完全指南
http://Linux.chinaitlab.com/server/860516.html 当今许多linux服务器都不是刚刚部署完毕的新机器,有专业的Linux系统管理员进行定期维护,IT技术人员 ...
- Linux服务器安全加固
关于对公司网站服务器安全加固的一些想法及思路: 一.修改密码和ssh登录端口,并且尽可能的用密钥对登录,禁止用密码登录(主要针对Linux)二.修改/etc/hosts.allow 设置仅仅允许某几台 ...
- MAC OSX使用公钥方式登录Linux服务器并进行安全加固
登录Linux服务器的方式一般是使用ssh,直接使用密码登录既要记忆密码在输入过程中又有安全风险.所以本文将提供一个使用公钥登录的方式来解决输入密码的问题. 首先在mac上生成一个私钥.公钥对 首先, ...
- Odoo Linux服务器一键安装脚本使用指南
Odoo安装脚本介绍 为了帮助更多Linux服务器维护人员快速部署Odoo,为此开源智造(OSCG)基于André Schenkels曾经开放的openerp-install-scripts所构建的基 ...
- 【随笔】Linux服务器备份相关
服务器数据的安全性一直都是服务器日常管理的重中之重.Linux服务器虚拟化虽然以其高度可靠的作业系统而闻名,不过系统失效仍然可能发生.可能因为硬体故障,电源中断,或其他不可预料的问题.更常见的这 些问 ...
- 15个Linux Wget下载实例终极指南
15个Linux Wget下载实例终极指南 Linux wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到 ...
- 线上Linux服务器运维安全策略经验分享
线上Linux服务器运维安全策略经验分享 https://mp.weixin.qq.com/s?__biz=MjM5NTU2MTQwNA==&mid=402022683&idx=1&a ...
- 《DevOps故障排除:Linux服务器运维最佳实践》读书笔记
首先,这本书是Linux.CN赠送的,多谢啦~ http://linux.cn/thread-12733-1-1.html http://linux.cn/thread-12754-1-1.html ...
随机推荐
- IOC概念和原理:BeanFactory 接口与ApplicationContext
IOC(概念和原理)1.什么是 IOC(1)控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理(2)使用 IOC 目的:为了耦合度降低(3)做入门案例就是 IOC 实现2.IOC ...
- SQL 练习12
查询和" 01 "号的同学学习的课程 完全相同的其他同学的信息 分析 如果某同学学的某一个课程和01同学所学的课程有对应,那么子查询返回false. 如果没有对应,子查询返回tru ...
- 题解 Connect
传送门 各种骗分无果,特殊性质还手残写挂了-- 首先完全图上直接输出边权 \(\times (n-2)\) 就行了,然而我脑残乘的 \(n-1\) 看数据范围肯定是状压,但是压边肯定炸了,考虑压点 因 ...
- .net core 通过动软连接数据库
.net core 与动软 首先创建asp.net core 或者 .net core 控制台程序.不需急着创建web.config 文件. 通过NuGet加个ado的包 System.Data.Sq ...
- 如何修改leaflet的marker图标
1. 从官网中查看对应文档:https://leafletjs.com/ 2. 3. var greenIcon = L.icon({ iconUrl: 'leaf-green.png', shado ...
- C语言预处理编译链接各个阶段错误,分阶段的说一下
C语言预处理编译链接各个阶段错误,分阶段的说一下 C语言预处理编译链接各个阶段错误,分阶段的说一下比如指针异常,数组下标越界什么的 我来答 1个回答 #热议# 你觉得这辈子有希望看到996消失 ...
- 【转】关于DNS不得不说的一些事
转自:https://www.cnblogs.com/rjzheng/p/11395695.html 引言 今天我们来聊聊DNS.所谓域名系统(Domain Name System缩写DNS,Doma ...
- SpringBoot中自定义错误页面
错误页面定制(在有模板引擎的情况下): 有模板的支持下: 在templates文件夹下 建立 error文件夹 在error文件夹下 404.html 500.html 4xx.html (名字就叫4 ...
- 老鼠走迷宫II
转自:http://blog.csdn.net/holymaple/article/details/8636234 由于迷宫的设计,老鼠走迷宫的入口至出口路径可能不止一条,如何求出所有的路径呢? 解法 ...
- 刷题-力扣-LCP 07. 传递信息
LCP 07. 传递信息 题目链接 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/chuan-di-xin-xi 著作权归领扣网络所有.商业转 ...