Linux主机操作系统加固规范

对于企业来说,安全加固是一门必做的安全措施。主要分为:账号安全、认证授权、协议安全、审计安全。总的来说,就是4A(统一安全管理平台解决方案),账号管理、认证管理、授权管理、审计管理。用漏洞扫描工具扫描了一下自己的阿里云主机,发现很多系统问题不合格,所以列举总结了以下Linux系统安全加固的方法,仅供参考。

      1、用户账号---唯一身份。

      2、统一认证---你是谁。

      3、授权管理---你有什么权限。

      4、操作审计---你可以干什么。

以下文档规定了国内4A认证公司系统维护管理的Linux操作系统的主机应当遵循的操作系统安全性设置标准,旨在之道系统管理人员或者安全检查人员进行Linux操作系统的安全合规性检查和配置。

第一类:账号口令

1)、口令生存期

[[email protected] ~]# vim
 /etc/login.defs

PASS_MAX_DAYS      
90              用户的密码不过期最多的天数

PASS_MIN_DAYS      
10               密码修改之间最小的天数

PASS_WARN_AGE    
 7                口令失效前多少天开始通知用户修改密码

2)、口令复杂度

[[email protected] ~]# 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)、版本信息

[[email protected] ~]# cat
/etc/system-release

CentOS release 6.8 (Final)

4)、限制某用户登陆

[[email protected] ~]#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用户以外UID0的用户

 

[[email protected] ~]#  awk -F “:” ‘($3==0)  {print  $1} ‘ /etc/passwd

操作系统Linux超级用户策略安全基线要求项目,要求除roo外不能有UID为0的用户。

6)、登录超时限制

[[email protected] ~]# cp -p
/etc/profile /etc/profile_bak

[[email protected] ~]# vi /etc/profile

TMOUT=300

export TMOUT

7)、检查是否使用PAM认证模块禁止wheel组之外的用户suroot

[[email protected] ~]# #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

[[email protected] ~]# grep -v
"[[:space:]]*#" /etc/ssh/sshd_config  |grep
"PermitRootLogin no"

PermitRootLogin no

并且修改为protocol   2

2)、使用SSH协议进程远程登陆

[[email protected] ~]# #cp -p
/etc/xinetd.d/telnet /etc/xinetd.d/telnet_bak

[[email protected]
~]# /etc/xinetd.d/telnet(vi /etc/xinetd.d/telnet),

把disable项改为yes,即disable = yes.

[[email protected] ~]# #service
xinetd restart

使用Telnet这个用来访问远程计算机的TCP/IP协议以控制你的网络设备,相当于在离开某个建筑时大喊你的用户名和口令。很快会有人进行监听,并且他们会利用你安全意识的缺乏。传统的网络服务程序如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。SSH是替代Telnet和其他远程控制台管理应用程序的行业标准。SSH命令是加密的并以几种方式进行保密。 在使用SSH的时候,一个数字证书将认证客户端(你的工作站)和服务器(你的网络设备)之间的连接,并加密受保护的口令。

3)、禁止root用户登陆FTP

[[email protected] ~]##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文件.

[[email protected] ~]#echo  “root”
  >>   /etc/vsftpd/ftpusers

daemon

bin

sys

lp

uucp

nuucp

listen

nobody

noaccess

nobody4

root

4)、禁止匿名FTP

[[email protected] ~]# vim
 /etc/vsftpd/vsftpd.conf

anonymous_enable=NO    #如果存在anonymous_enable则修改,如果不存在则手动增加

5)、预防Flood攻击

[[email protected] ~]# vim
 /etc/sysctl.conf

[roo[email protected]
~]# net.ipv4.tcp_syncookies = 1

[[email protected] ~]# sysctl
 -p  让命令生效

第三类:认证权限

1)、文件与目录缺省权限控制

[[email protected] ~]#cp /etc/profile
/etc/profile.bak

[[email protected] ~]# vim  
/etc/profile

umask 027

[[email protected] ~]#source
 /etc/profile

2)、配置用户最小权限

[[email protected] ~]# chmod 644
/etc/passwd

[[email protected] ~]# chmod 400
/etc/shadow

[[email protected] ~]# 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目录的独立的大分区。

[[email protected] ~]# vim
  /etc/rsyslog.conf,增加如下内容:

*.*      
  @Syslog日志服务器IP      
     ###注意:*和@之间存在的是tab键,非空格。

2)、检查是否记录安全事件日志

[[email protected] ~]# vim
 /etc/syslog.conf 或者 /etc/rsyslog.conf,在文件中加入如下内容:

*.err;kern.debug;daemon.notice
    /var/log/messages

[[email protected]
~]# chmod 640 /var/log/messages

[[email protected]
~]#  service rsyslog restart

 

原文地址:https://www.cnblogs.com/nsh123/p/9167467.html

时间: 2024-08-27 21:33:58

Linux主机操作系统加固规范的相关文章

运行oracle 的aix、linux主机改ip规范

/etc/hosts里要改 对linux :/etc/sysconfig/network-scripts/ifcfg-ethX要改, 对aix: smitty tcpip ->Mininum Configuration & Startup->Available Network Interfaces oracle的listener.ora文件要改,若是里边配置的是ip地址. oracle的sqlnet.ora文件要改:特别关注有无限制ip地址段的那一行. 对rac而言,还需要修改ocr中

谈谈企业--RedHat Linux操作系统安装配置规范

1.谈谈规范的那些事 首先思考为什么要规范,规范有哪些好处.怎样去规范.规范可以避免哪些风险,当服务器超过几百上千台的时候,规范的重要性越发的尤为重要,废话不多说,浅谈下自己的规范文档. RedHat Linux操作系统安装配置规范 1.1    版本选择 根据应用的要求,并结合硬件类型,选择适当的操作系统版本. 至本规范最后更新时,新安装操作系统允许使用的版本如下: RedHatEnterprise Linux Server 6.4 RedHatEnterprise Linux Server

Linux服务器操作系统

Linux服务器操作系统 今日大纲 ●    服务器操作系统的系列.Linux的主流产品.虚拟机软件 ●    安装linux ●    linux基本命令 ●    用户管理及权限(多用户) ●    实战(搭建环境及部署web项目) ***************************************************************************************************** 1.    服务器操作系统简介 1.1    服务器操作系

linux主机规划与磁盘分区

各硬件设备在linux中的文件名 在Linux系统中,每个设备都被当成一个文件来对待. 举例来说,IDE接口的硬盘的文件名即为/dev/hd[a-d],其中,括号内的字母a-d当中的任意一个,也既有/dev/had/,/dev/hda  /dev/hdb /dev/hdc及/dev/hdd这四个文件的意思 Linux下几乎所有的硬件设备文件都在/dev/这个目录内,因此你会看到/dev/had,/dev/fd0 等的文件名 设备                                  

【信息安全系列】Linux主机安全检查

#!/bin/bash ################################################################# ## ## ## It was used for Linux OS Security configuration check ## ## ## ################################################################# ##检查Linux主机是否开启了不必要的服务等:## echo '#

如何选择主机操作系统?

地址:https://help.aliyun.com/knowledge_detail/6563865.html#如何选择主机操作系统? 一.请根据网站使用的编程语言来选择合适的操作系统和主机类型: 1.网站开发语言为ASP..NET.HTML,请选择Windows系统虚拟主机免费版及其以上型号主机: 2.网站开发语言为PHP.HTML.WAP,请选择Linux系统虚拟主机免费版及其以上型号主机: 3.网站开发语言为PERL.CGI,请选择Linux/Windows系统的独享经济版及其以上型号独

Linux主机间ssh实现无密码登陆

server1    主机名:centos6         IP:192.168.2.105        操作系统:centos6.5 server2    主机名:rhel6             IP:192.168.2.110        操作系统:rhel6.5 为了实现server1对server2能够实现无密码登陆,可以在server1主机上使用ssh-keygen工具生成一对密钥,server1保留私钥,将公钥上传至server2主机相应用户的主目录下的.ssh/文件夹下,

Linux主机配置网卡桥接之后出现报错

操作系统:CentOS 6.5 ,最小化安装 装完系统之后开始装KVM虚拟机,当所有的环境安装完成时,网卡的配置文件也都完正无误的配置好了,重启网络的时候却出现报错:Bring up interface eth0:Device eth0 does not seem to be present,delaying initialization. 在网上搜了半天终于解决了: 解决方法:    进入目录:/etc/udev/rules.d/    删除文件:70-persistent-net.rules

Linux主机克隆后网卡的设置

软件版本:VMware Workstation 10.0.2 OS:Oracle Enterprise Linux 6.5 克隆完成后添加两块网卡: eth0:00:0C:29:E0:4E:69 eth1:00:0C:29:E0:4E:73 开机查看网络情况 首先修改 /etc/udev/rules.d/70-persistent-net.rules文件,将无用的网卡删除掉,只保留我们新增的网卡(对应MAC),并修改name #PCI device 0x8086:0x100f (e1000) S