1.1.1 口令锁定策略

1、执行备份

    (1)、redhat执行备份:
#cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth_bak (2)、SUSE9:
#cp -p /etc/pam.d/passwd /etc/pam.d/passwd.bak (3)、SUSE10:
#cp -p /etc/pam.d/common-password /etc/pam.d/common-password.bak

2、修改策略设,编辑文件/etc/pam.d/system-auth(SUSE:/etc/pam.d/passwd)增加如下内容:

    auth required pam_tally2.so deny=5 onerr=fail no_magic_root unlock_time=180    #unlock_time单位为秒
account required pam_tally2.so #(redhat5.1以上版本支持 pam_tally2.so,其他版本使用pam_tally.so)

1.1.2 口令生存期

1、执行备份:

    #cp -p /etc/login.defs /etc/login.defs_bak

2、修改策略设置,编辑文件/etc/login.defs(vi /etc/login.defs),在文件中加入如下内容(如果存在则修改,不存在则添加):

    PASS_MAX_DAYS     90
PASS_MIN_DAYS 10
PASS_WARN_AGE 7

1.1.3 口令复杂度

1、redhat系统

编辑文件/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

2、suse9编辑/etc/pam.d/passwd、suse10以上编辑/etc/pam.d/common-password,在文件中加入如下内容(如果文件中存在password的行请首先注释掉):

    password required       pam_pwcheck.so  nullok
password requisite pam_cracklib.so dcredit=-1 lcredit=-1 ucredit=-1 ocredit=-1 minlen=8 use_authtok
password required pam_unix2.so nullok use_first_pass use_authtok

1.1.4 删除无关帐号(需要锁定和删除的用户shell域设置的个数)

1、如果以下用户(lp|sync|halt|news|uucp|operator|games|gopher|smmsp|nfsnobody|nobody)没有被删除或锁定,可以使用如下命令对其进行操作:

    (1)、删除用户:
#userdel username (2)、锁定用户:
#passwd -l username #锁定用户,只有具备超级用户权限的使用者方可使用。
#passwd –d username #解锁用户,解锁后原有密码失效,登录设置新密码才能登录。
#passwd -u username #解锁用户后,原密码仍然有效。 (3)、修改用户shell域为/bin/false
#usermod -s /bin/false username #命令来更改相应用户的shell为/bin/false,其中[name]为要修改的具体用户名。

1.1.5 口令重复次数限制

1、执行备份

    #cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth.bak
#cp -p /etc/pam.d/passwd /etc/pam.d/passwd.bak
#cp -p /etc/pam.d/common-password /etc/pam.d/common-password.bak

2、创建文件/etc/security/opasswd用于存储旧密码,并设置权限。

    #touch /etc/security/opasswd
#chown root:root /etc/security/opasswd
#chmod 600 /etc/security/opasswd

3、修改策略设置

    #vim /etc/pam.d/system-auth((SUSE9:/etc/pam.d/passwd、SUSE10以上/etc/pam.d/common-password)在类似password  sufficient pam_unix.so所在行末尾增加remember=5,中间以空格隔开.如果没有则新增,例如:
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=5

1.1.6 文件与目录缺省权限控制

1、首先对/etc/profile进行备份:
#cp /etc/profile /etc/profile.bak 2、编辑文件/etc/profile,在文件末尾加上如下内容:
umask 027 3、执行以下命令让配置生效:
#source /etc/profile

1.1.7 修改SSH的Banner警告信息

1、如果此项检查不合规,执行以下步骤进行修复。
#touch /etc/ssh_banner
#chown bin:bin /etc/ssh_banner
#chmod 644 /etc/ssh_banner
#echo " Authorized only. All activity will be monitored and reported " > /etc/ssh_banner
可根据实际需要修改该文件的内容。
2、修改/etc/ssh/sshd_config文件,添加如下行:
Banner /etc/ssh_banner
3、重启sshd服务:
systemctl restart sshd.service
#/etc/init.d/sshd restart

1.1.8 启用远程日志功能

1、linux
编辑文件 /etc/syslog.conf或者/etc/rsyslog.conf,增加如下内容:
*.* @<日志服务器ip或者域名> 2、suse
编辑文件/etc/syslog-ng/syslog-ng.conf,增加如下内容:
destination logserver { udp("192.168.56.168" port(514)); };
log { source(src); destination(logserver); }; #日志服务器ip视实际情况来确定。
3、重启syslog服务
#/etc/init.d/syslog stop
#/etc/init.d/syslog start

1.1.9 记录安全事件日志

1、redhat5.x之前编辑/etc/syslog.conf,在文件中加入如下内容:
*.err;kern.debug;daemon.notice /var/adm/messages,其中/var/adm/messages为日志文件。 (1)、如果该文件不存在,则创建该文件,命令为:
#touch /var/adm/messages (2)、修改权限为666,命令为:
#chmod 666 /var/adm/messages (3)、重启日志服务:
#/etc/init.d/syslog restart 2、redhat6.x编辑/etc/rsyslog.conf,在文件中加入如下内容:
*.err;kern.debug;daemon.notice /var/adm/messages,其中/var/adm/messages为日志文件。 (1)、如果该文件不存在,则创建该文件,命令为:
#touch /var/adm/messages (2)、修改权限为666,命令为:
#chmod 666 /var/adm/messages (3)、重启日志服务:
systemctl restart rsyslog.service #/etc/init.d/syslog restart
3、SUSE编辑文件/etc/syslog-ng/syslog-ng.conf,在文件中加入如下内容:
filter f_msgs { level(err) or facility(kern) and level(debug) or facility(daemon) and level(notice); };
destination msgs { file("/var/adm/msgs"); };
log { source(src); filter(f_msgs); destination(msgs); }; 其中/var/adm/msgs为日志文件。 (1)、如果该文件不存在,则创建该文件,命令为:
#touch /var/adm/msgs (2)、修改权限为666,命令为:
#chmod 666 /var/adm/msgs (3)、重启日志服务:
#/etc/init.d/syslog restart

1.1.10限制root用户SSH远程登录(禁用root用户远程访问系统)

1、执行备份:
#cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak 2、新建一个普通用户并设置高强度密码(防止设备上只存在root用户可用时,无法远程访问):
#useradd username
3、禁止root用户远程登录系统
(1)、编辑文件/etc/ssh/sshd_config(vi /etc/ssh/sshd_config),修改PermitRootLogin值为no并去掉注释。
PermitRootLogin no #则禁止了root从ssh登录。 (2)、重启SSH服务
systemctl restart sshd.service #/etc/init.d/sshd restart 4、修改SSH协议版本
(1)、编辑文件/etc/ssh/sshd_config(vi /etc/ssh/sshd_config),修改Protocol的值为2并去掉注释。
Protocol 2 (2)、重启ssh服务
systemctl restart sshd.service

1.1.11限制root用户SSH远程登录(ssh协议使用版本2)

1、执行备份:
#cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak 2、新建一个普通用户并设置高强度密码(防止设备上只存在root用户可用时,无法远程访问):
#useradd username
#passwd username 3、禁止root用户远程登录系统
(1)、编辑文件/etc/ssh/sshd_config(vi /etc/ssh/sshd_config),修改PermitRootLogin值为no并去掉注释。
PermitRootLogin no #则禁止了root从ssh登录。 (2)、重启SSH服务
systemctl restart sshd.service #/etc/init.d/sshd restart
4、修改SSH协议版本
(1)、编辑文件/etc/ssh/sshd_config(vi /etc/ssh/sshd_config),修改Protocol的值为2并去掉注释。
Protocol 2 (2)、重启ssh服务
systemctl restart sshd.service #/etc/init.d/sshd restart

1.1.12使用SSH协议进行远程维护(ssh服务状态)

1、关闭TELNET服务(如果设备安装了TELNET服务则执行以下操作关闭,否则无需操作):
(1)、备份
#cp -p /etc/xinetd.d/telnet /etc/xinetd.d/telnet_bak (2)、编辑文件/etc/xinetd.d/telnet(vi /etc/xinetd.d/telnet),把disable项改为yes,即disable = yes。
(3)、执行以下命令重启xinetd服务。
#service xinetd restart 2、开启SSH服务:
(1)、安装SSH软件包。
(2)、通过以下命令启动ssh服务:
#/etc/init.d/sshd start

1.1.13登陆超时时间设置

1、执行备份
#cp -p /etc/profile /etc/profile_bak 2、在/etc/profile文件增加以下两行(如果存在则修改,否则手工添加):
#vi /etc/profile
TMOUT=300 #TMOUT按秒计算
export TMOUT

1.1.14系统core dump状态(/etc/security/limits.conf)

1、编辑文件/etc/security/limits.conf(vi /etc/security/limits.conf),在文件末尾加入如下两行(存在则修改,不存在则新增):
* soft core 0
* hard core 0

1.1.15修改SSH的Banner信息

1、修改文件/etc/motd的内容,如没有该文件,则创建它:
#touch /etc/motd 2、使用如下命令在文件/etc/motd中添加banner信息。
### #echo " Authorized users only. All activity may be monitored and reported " > /etc/motd
vim /etc/motd Access denied

1.1.16控制远程访问的IP地址(allowno)

1、执行备份:
#cp -p /etc/hosts.allow /etc/hosts.allow_bak 2、编辑/etc/hosts.allow文件,增加一行 service: 允许访问的IP(service为服务,例如sshd),举例如下:all:192.168.4.44:allow #允许单个IP访问所有服务进程
sshd:192.168.1.*:allow #允许192.168.1.0的整个网段访问SSH服务进程

1.1.17控制远程访问的IP地址(denyno)

1、执行备份:
#cp -p /etc/hosts.deny /etc/hosts.deny_bak 2、编辑文件/etc/hosts.deny增加一行(deny优先级高于allow)
all:all #拒绝一切远程访问配合文件hosts.allow使用。

1.1.18配置NTP(ntp服务状态)

1、编辑ntp 的配置文件:
#vi /etc/ntp.conf 在server一行添加ntp服务器的IP地址 2、启动ntpd服务:
#/etc/init.d/ntpd start #suse9启动ntp服务为:/etc/init.d/xntpd start

1.1.19配置NTP( 为目标主机配置ntp服务器的个数)

1、编辑ntp 的配置文件:
#vi /etc/ntp.conf 在server一行添加ntp服务器的IP地址 2、启动ntpd服务:
#/etc/init.d/ntpd start #suse9启动ntp服务为:/etc/init.d/xntpd start

1.1.20禁止IP源路由

如果此项检查失败,请执行以下命令进行修复:

vim /etc/rc.d/rc.local  添加以下内容
#for f in /proc/sys/net/ipv4/conf/*/accept_source_route
do
echo 0 > $f
done

1.1.21更改主机解析地址的顺序

1、编辑/etc/host.conf文件
#vi /etc/host.conf,在空白处加入下面三行:
order hosts,bind #第一项设置首先通过DNS解析IP地址,然后通过hosts文件解析。
multi on #第二项设置检测是否"/etc/hosts"文件中的主机是否拥有多个IP地址(比如有多个以太口网卡)。
nospoof on #第三项设置说明要注意对本机未经许可的IP欺骗。

1.1.22更改主机解析地址的顺序

1、编辑/etc/host.conf文件
#vi /etc/host.conf,在空白处加入下面三行:
order hosts,bind #第一项设置首先通过DNS解析IP地址,然后通过hosts文件解析。
multi on #第二项设置检测是否"/etc/hosts"文件中的主机是否拥有多个IP地址(比如有多个以太口网卡)。
nospoof on #第三项设置说明要注意对本机未经许可的IP欺骗。

1.1.23历史命令设置

1、编辑文件/etc/profile,在文件中加入如下两行(存在则修改):
HISTFILESIZE=5
HISTSIZE=5
2、执行以下命令让配置生效
#source /etc/profile

Linux操作系统加固建议的更多相关文章

  1. Linux操作系统加固

    1. 账号和口令 1.1 禁用或删除无用账号 减少系统无用账号,降低安全风险. 操作步骤 使用命令 userdel <用户名> 删除不必要的账号. 使用命令 passwd -l <用 ...

  2. 阿里云服务器 ECS Linux操作系统加固

    1. 账号和口令 1.1 禁用或删除无用账号 减少系统无用账号,降低安全风险. 操作步骤 使用命令 userdel <用户名> 删除不必要的账号. 使用命令 passwd -l <用 ...

  3. Linux主机操作系统加固规范

      对于企业来说,安全加固是一门必做的安全措施.主要分为:账号安全.认证授权.协议安全.审计安全.总的来说,就是4A(统一安全管理平台解决方案),账号管理.认证管理.授权管理.审计管理.用漏洞扫描工具 ...

  4. Centos7.0操作系统加固常见方法

    1. 账号和口令 1.1 禁用或删除无用账号 减少系统无用账号,降低安全风险. 操作步骤 使用命令 userdel <用户名> 删除不必要的账号. 使用命令 passwd -l <用 ...

  5. linux系统加固方案

    Linux主机操作系统加固规范 目  录 第1章      概述... 1 1.1        目的... 1 1.2        适用范围... 1 1.3        适用版本... 1 1 ...

  6. 献给初学者:谈谈如何学习Linux操作系统

    本文出自 “技术成就梦想” 博客,请务必保留此出处http://ixdba.blog.51cto.com/2895551/569329. 为了能把这篇不错的文章分享给大家.所以请允许我暂时用原创的形式 ...

  7. 安装Kali Linux操作系统Kali Linux无线网络渗透

    安装Kali Linux操作系统Kali Linux无线网络渗透 Kali Linux是一个基于Debian的Linux发行版,它的前身是BackTrack Linux发行版.在该操作系统中,自带了大 ...

  8. linux 操作系统下c语言编程入门

    2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理  ...

  9. 如何保护你的linux操作系统

    如何保护你的linux操作系统 导读 在现在这个世道中,Linux操作系统的安全是十分重要的.但是,你得知道怎么干.一个简单反恶意程序软件是远远不够的,你需要采取其它措施来协同工作.那么试试下面这些手 ...

  10. Linux操作系统--定时任务

    最近在学习Linux操作系统.学到了关于定时任务的章节,作为一个总结写下这篇文章.在Linux中,我们可以将耗时大的任务如复制大文件,压缩.解压缩大文件等放进定时任务中(深夜执行,因为工作时间访问量大 ...

随机推荐

  1. Mysql 8.0前后,实现创建用户,指定用户只能访问指定的数据库中的表

    最近在做公司项目的过程中,出现了这样的需求.第三方系统需要将数据写到我们的业务系统中,由于目前这些数据没有实际的使用场景,在讨论下,为简单快捷,选择第二种方案,即不书写接口,第三方系统通过数据库直接将 ...

  2. 物联网浏览器(IoTBrowser)-电子秤模块及二次驱动开发

    本章介绍电子秤模块的示例功能以及二次开发称重驱动的代码,二次开发以顶尖OS2型号驱动为示例,实现方式与物联网浏览器(IoTBrowser)-顶尖OS2电子秤协议实现类似,不同的是电子秤只需要采集重量不 ...

  3. 13.2 外部DirectX绘制实现

    在前一节中我们简单介绍了D3D绘制窗体所具备的基本要素,本节将继续探索外部绘制技术的实现细节,并以此实现一些简单的图形绘制功能,首先外部绘制的核心原理是通过动态创建一个新的窗口并设置该窗口属性为透明无 ...

  4. P10009 [集训队互测 2022] 线段树 题解

    题目链接:P10009 [集训队互测 2022] 线段树 神仙分块题,先给一下出题人的神仙官解: 官解链接 前面还看得懂.后面是啥?这不是 ds 题咋和 dp.轮廓线扯上关系了.看了半天,还是这个启发 ...

  5. 穿透 SESSION 0 隔离

    注:这套程序在这里只是作为了解,博主本人并未测试,所有测试均来自文章最底层链接的原文章. 查看目标进程运行的SESSION位置 在实际开发过程中,可以通过Process Explorer 检查服务或程 ...

  6. [Java]format string is malformed java

    format string is malformed java 最近在做代码审查,发现很多在使用 String.format 的时候遇到了IDEA报的 Format string 'xxx' is m ...

  7. scrapy框架使用:分布式、增量式

    scrapy框架的使用 前记:爬虫框架部分整理完成,后续慢慢完善, 声明: 1)仅作为个人学习,如有冒犯,告知速删! 2)不想误导,如有错误,不吝指教! 创建工程: scrapy startproje ...

  8. NC17247 H、Diff-prime Pairs

    题目链接 题目 题目描述 Eddy has solved lots of problem involving calculating the number of coprime pairs withi ...

  9. IPFS Gateway Selector IPFS下载网关选择工具

    简介 用IPFS作文件分享可以覆盖很多场景, 现在IPFS网关也相当多了, 但是因为国内网络的状况, 不同网关在不同网络运营商的表现差别很大, 导致你提供的下载链接在对方那里可能速度很慢, 甚至无法访 ...

  10. 大数运算(BigInteger)与进制转换

    1 前言 Java 提供了 BigInteger(大整数)类和 BigDecimal(大浮点数)类用于大数运算,这两个类都继承自 Number 类(抽象类).由于 BigInteger 在大数运算中更 ...