Linux主机操作系统加固规范
对于企业来说,安全加固是一门必做的安全措施。主要分为:账号安全、认证授权、协议安全、审计安全。总的来说,就是4A(统一安全管理平台解决方案),账号管理、认证管理、授权管理、审计管理。用漏洞扫描工具扫描了一下自己的阿里云主机,发现很多系统问题不合格,所以列举总结了以下Linux系统安全加固的方法,仅供参考。
1、用户账号---唯一身份。
2、统一认证---你是谁。
3、授权管理---你有什么权限。
4、操作审计---你可以干什么。
以下文档规定了国内4A认证公司系统维护管理的Linux操作系统的主机应当遵循的操作系统安全性设置标准,旨在之道系统管理人员或者安全检查人员进行Linux操作系统的安全合规性检查和配置。
第一类:账号口令
1)、口令生存期
[root@wenzhiyi ~]# vim
/etc/login.defs
PASS_MAX_DAYS
90 用户的密码不过期最多的天数
PASS_MIN_DAYS
10 密码修改之间最小的天数
PASS_WARN_AGE
7 口令失效前多少天开始通知用户修改密码
2)、口令复杂度
[root@wenzhiyi ~]# vim
/etc/pam.d/system-auth,在文件中找到如下内容:
password requisite
pam_cracklib.so 将其修改为:
password requisite
pam_cracklib.so try_first_pass retry=3 dcredit=-1 lcredit=-1 ucredit=-1
ocredit=-1 minlen=8
备注:至少包含一个数字、一个小写字母、一个大写字母、一个特殊字符、且密码长度>=8
3)、版本信息
[root@wenzhiyi ~]# cat
/etc/system-release
CentOS release 6.8 (Final)
4)、限制某用户登陆
[root@wenzhiyi ~]#vim /etc/hosts.deny 对配置文件进行修改
添加内容:
#禁止192.168.0.254用户对服务器进行ssh的登陆
sshd : 192.168.0.254
或者用防火墙策略:
iptables
-I INPUT -s 61.37.81.1 -j DROP
#
61.37.81.1的包全部屏蔽
iptables
-I INPUT -s 61.37.81.0/24 -j DROP
#61.37.81.1到61.37.81.255的访问全部屏蔽
iptables
-I INPUT -s 192.168.1.202 -p tcp --dport 80 -j DROP
#
192.168.1.202的80端口的访问全部屏蔽
iptables
-I INPUT -s 192.168.1.0/24 -p tcp --dport 80 -j DROP
#192.168.1.1~192.168.1.1255的80端口的访问全部屏蔽
5)、检查是否有除root用户以外UID为0的用户
[root@wenzhiyi ~]# awk -F “:” '($3==0) {print $1} ' /etc/passwd
操作系统Linux超级用户策略安全基线要求项目,要求除roo外不能有UID为0的用户。
6)、登录超时限制
[root@wenzhiyi ~]# cp -p
/etc/profile /etc/profile_bak
[root@wenzhiyi ~]# vi /etc/profile
TMOUT=300
export TMOUT
7)、检查是否使用PAM认证模块禁止wheel组之外的用户su为root
[root@wenzhiyi ~]# #vim
/etc/pam.d/su # 新添加以下两行
auth
sufficient pam_rootok.so
auth
required pam_wheel.so use_uid
注意:auth与sufficient之间由两个tab建隔开,sufficient与动态库路径之间使用一个tab建隔开
然后,:usermod -G wheel username #username为需要添加至wheel组的用户名称,将用户添加到wheel组。注意,第一步加固表明只有wheel组中的用户才能使用su命令切换到root用户,因此必须将需要切换到root的用户添加到wheel组,以使它可以使用su命令成为root用户,如果系统不存在wheel组,则新增,新增方法:groupadd wheel。
PAM(Pluggable Authentication Module)是一个可插入式认证模块,在Linux系统中,各种不同的应用程序都需要完成认证功能,为了实现统一调配,把所有需要认证的功能做成一个模块(认证机制特别复杂的除外,如:https),当特定的程序需要完成认证功能的时候,就去调用PMA的认证模块。
第二类:协议安全
1)、限制root用户远程登录SSH
[root@wenzhiyi ~]# grep -v
"[[:space:]]*#" /etc/ssh/sshd_config |grep
"PermitRootLogin no"
PermitRootLogin no
并且修改为protocol 2
2)、使用SSH协议进程远程登陆
[root@wenzhiyi ~]# #cp -p
/etc/xinetd.d/telnet /etc/xinetd.d/telnet_bak
[root@wenzhiyi
~]# /etc/xinetd.d/telnet(vi /etc/xinetd.d/telnet),
把disable项改为yes,即disable = yes.
[root@wenzhiyi ~]# #service
xinetd restart
使用Telnet这个用来访问远程计算机的TCP/IP协议以控制你的网络设备,相当于在离开某个建筑时大喊你的用户名和口令。很快会有人进行监听,并且他们会利用你安全意识的缺乏。传统的网络服务程序如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。SSH是替代Telnet和其他远程控制台管理应用程序的行业标准。SSH命令是加密的并以几种方式进行保密。 在使用SSH的时候,一个数字证书将认证客户端(你的工作站)和服务器(你的网络设备)之间的连接,并加密受保护的口令。
3)、禁止root用户登陆FTP
[root@wenzhiyi ~]##cat
/etc/pam.d/vsftpd
auth required
pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers
onerr=succeed
#其中file=/etc/vsftpd/ftpusers即为当前系统上的ftpusers文件.
[root@wenzhiyi ~]#echo “root”
>> /etc/vsftpd/ftpusers
daemon
bin
sys
lp
uucp
nuucp
listen
nobody
noaccess
nobody4
root
4)、禁止匿名FTP
[root@wenzhiyi ~]# vim
/etc/vsftpd/vsftpd.conf
anonymous_enable=NO #如果存在anonymous_enable则修改,如果不存在则手动增加
5)、预防Flood攻击
[root@wenzhiyi ~]# vim
/etc/sysctl.conf
[root@wenzhiyi
~]# net.ipv4.tcp_syncookies = 1
[root@wenzhiyi ~]# sysctl
-p 让命令生效
第三类:认证权限
1)、文件与目录缺省权限控制
[root@wenzhiyi ~]#cp /etc/profile
/etc/profile.bak
[root@wenzhiyi ~]# vim
/etc/profile
umask 027
[root@wenzhiyi ~]#source
/etc/profile
2)、配置用户最小权限
[root@wenzhiyi ~]# chmod 644
/etc/passwd
[root@wenzhiyi ~]# chmod 400
/etc/shadow
[root@wenzhiyi ~]# chmod 644
/etc/group
第四类:日志审计
什么是日志?简单地说,日志就是计算机系统、设备、软件等在某种情况下记录的信息。具体的内容取决于日志的来源。例如,Linux操作系统会记录用户登录和注销的消息,防火墙将记录ACL通过和拒绝的消息,磁盘存储系统在故障发生或者在某些系统认为将会发生故障的情况下生成日志信息。日志中有大量信息,这些信息告诉你为什么需要生成日志,系统已经发生了什么。
例如,Web服务器一般会在有人访问Web页面请求资源(图片、文件等等)的时候记录日志。如果用户访问的页面需要通过认证,日志消息将会包含用户名。这就是日志数据的一个例子:可以使用用户名来判断谁访问过一个资源。通过日志,IT管理人员可以了解系统的运行状况,安全状况,甚至是运营的状况。
1)、启用远程日志功能
Linux上通常可以通过rsyslog来实现系统日志的集中管理,这种情况下通常会有一个日志服务器,然后每个机器配置自己日志通过rsyslog来写到远程的日志服务器上。
rsyslog是一个开源工具,被广泛用于Linux系统以通过TCP/UDP协议转发或接收日志消息。rsyslog守护进程可以被配置成两种环境,一种是配置成日志收集服务器,rsyslog进程可以从网络中收集其它主机上的日志数据,这些主机会将日志配置为发送到另外的远程服务器。rsyslog的另外一个用法,就是可以配置为客户端,用来过滤和发送内部日志消息到本地文件夹(如/var/log)或一台可以路由到的远程rsyslog服务器上。
假定你的网络中已经有一台已经配置好并启动的rsyslog服务器,本指南将为你展示如何来设置CentOS系统将其内部日志消息路由到一台远程rsyslog服务器上。这将大大改善你的系统磁盘空间的使用,尤其是当你还没有一个用于/var目录的独立的大分区。
[root@wenzhiyi ~]# vim
/etc/rsyslog.conf,增加如下内容:
*.*
@Syslog日志服务器IP
###注意:*和@之间存在的是tab键,非空格。
2)、检查是否记录安全事件日志
[root@wenzhiyi ~]# vim
/etc/syslog.conf 或者 /etc/rsyslog.conf,在文件中加入如下内容:
*.err;kern.debug;daemon.notice
/var/log/messages
[root@wenzhiyi
~]# chmod 640 /var/log/messages
[root@wenzhiyi
~]# service rsyslog restart
Linux主机操作系统加固规范的更多相关文章
- linux主机安全加固-个人经验
说明:我并没有一个系统的网络安全知识体系,随笔里面提到的内容是个人在从事运维行业这几年中总结出来的一点经验,仅供大家参考. 说到linux主机安全加固,我可以想到的就是三个方向吧,基线整改.访问控制和 ...
- Linux 工作站安全加固规范
目标受众 这是一套 Linux 基金会为其系统管理员提供的推荐规范. 这个文档用于帮助那些使用 Linux 工作站来访问和管理项目的 IT 设施的系统管理员团队. 如果你的系统管理员是远程员工,你也许 ...
- Linux主机安全配置规范
一.账号口令 1 配置口令最小长度 在文件/etc/login.defs中设置 PASS_MIN_LEN,参考值:8 2 配置口令生存周期 在文件/etc/login.defs中设置 ...
- Linux系统安全加固(一)
Linux系统安全加固(一) 去年8月,某所网站遭黑客攻击瘫痪虽然港交所随后及时启用备用系统,但还是致使7支股票1支债卷被迫停牌,次日再次遭受攻击而瘫痪:在去年年底继CSDN信息安全出现之后, ...
- Ubuntu上安装和使用SSH,Xming+PuTTY在Windows下远程Linux主机使用图形界面的程序
自:http://blog.csdn.net/neofung/article/details/6574002 Ubuntu上安装和使用SSH 网上有很多介绍在Ubuntu下开启SSH服务的文章,但大 ...
- Cacti监控Linux主机
1 要监视一台Linux主机,需要在被监控的主机上安装net-snmp相关软件包,CentOS安装可使用“yum -y install net-snmp”命令:# yum -y install net ...
- Linux主机上发布java web应用
1.链接远程主机命令 ssh user@hostname 如: shh root@192.168.1.1 2.查看主机操作系统版本 uname -a 3.linux系统安装mysql a)检查是否安装 ...
- Linux服务器操作系统
Linux服务器操作系统 今日大纲 ● 服务器操作系统的系列.Linux的主流产品.虚拟机软件 ● 安装linux ● linux基本命令 ● 用户管理及权限(多用户) ● ...
- 什么是Linux主机?
Linux主机是基于Linux内核的服务器操作系统配置的主机(常见Linux服务器操作系统如:Redhat,CentOS,Debian,FreeBSD,Ubentu等). Linux主机采用国内功能最 ...
随机推荐
- linux下创建密钥
1.生成rsa文件 : a)ssh-keygen -t rsa,然后会提示在/root/.ssh/id_rsa这个路径下存放密钥文件 b)进入到/root/.ssh目录下,将id_rsa.pub更改为 ...
- emmet-前端开发神器的几种写法
*常用:类: . ,id: # div.a+div#a <div class="a"></div> <div id="a"&g ...
- Vue+Webpack构建去哪儿APP_一.开发前准备
一.开发前准备 1.node环境搭建 去node.js官网下载长期支持版本的node,采用全局安装,安装方式自行百度 网址:https://nodejs.org/zh-cn/ 安装后在cmd命令行运行 ...
- CommonsChunkPlugin VS SplitChunksPlugin
等了好久终于等到你, webpack团队人员卧薪尝胆五个多月的时间终于带来的webpack4.0,个人觉得webpack4带来的最大优化便是对于懒加载块拆分的优化,删除了CommonsChunkPlu ...
- #2019-2020-4 《Java 程序设计》第七周总结
2019-2020-4 <Java 程序设计>第七周知识总结 第八章:常用实用类 一.String类 String类的构造方法 public String(byte[] bytes); p ...
- C++解题报告 : 迭代加深搜索之 ZOJ 1937 Addition Chains
此题不难,主要思路便是IDDFS(迭代加深搜索),关键在于优化. 一个IDDFS的简单介绍,没有了解的同学可以看看: https://www.cnblogs.com/MisakaMKT/article ...
- vue中v-model动态生成的实例详解
每一行有一个input和一个select,其中行数是根据服务器返回的json数据动态变化的.那么问题来了,我们要怎样动态生成v-model? <template> <div> ...
- bgfx入门练习3——编译自定义Shader
马个鸡,总算编译过了自定义Shader,在此感谢自己,感谢自己,以及感谢自己.没有自己的努力,我是不可能解决这个问题的,自己真是太叼了.妈的智障!!! 管方那屎一样的make工具根本没用,反正我是折腾 ...
- mixer中动态Alpha通道处理案例
本案例处理的是RGB+a,每个色彩的采样为10位位宽. 1.在Mixer IP中打开Alpha Blending Enable 和Alpha Input Stream Enable.这样在Blo ...
- 深入C#
深入C# String类 C#中的String类他是专门处理字符串的(String),他在System的命名空间下,在C#中我们使用的是string 小写的string只是大写的String的一个别 ...