本文章旨在说明如何尽可能地加强Linux的安全性和隐私性。
列出的所有命令都将需要root特权。
免责声明:非专业人员请不要尝试在本文中的任何内容。

用户系统

检查口令为空的账户

判断依据:存在则不符合

知识积累:特殊的shell

a. /bin/false:将用户的shell设置为/bin/false,用户会无法登录,并且不会有任何提示。

b. /sbin/nologin: nologin会礼貌的向用户显示一条信息,并拒绝用户登录。

This account is currently not available.

检查方式:命令cat /etc/passwd , cat /etc/shadow查看密码栏为空的账户

加固方式:删除密码为空的账户,或者为账户添加密码。

userdel <euserna me >
passwd <eusername>
[root@root ~]# cat /etc/shadow
root:$1$EKj.VsGc$SY9Fpo.eCjqLJu34oT298.::0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
dbus:!!:19167::::::
polkitd:!!:19167::::::
libstoragemgmt:!!:19167::::::
colord:!!:19167::::::

*号代表账号锁定、!!号代表密码为空

检查UID与root相同账户

判断依据:存在则不符合

知识积累:若UID为0则该账户拥有和Root—样的权限。

检查方式:命令cat /etc/ passwd查看第三位数字为0的账户

加固方式:修改恶意账户的UID并删除恶意账户

awk -F":" '{if ($3==0 && $1!="root") print$0}' /etc/passwd

普通用户添加root权限

echo "guest:x:0:0::/:/bin/sh">>/etc/passwd

若要删除UID=0的用户则讲UID修改成正常用户的UID

检查是否启用core dump设置

判断依据:存在则符合

知识积累:内存镜像

a.当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做Core Dump(中文有的翻译成“核心转储”)。

b.core dump是"内存快照",除了内存信息之外,有些关键的程序运行状态也会同时dump下来,例如寄存器信息(包括程序指针、栈指针等)、内存管理信息、其他处理器和操作系统状态和信息。

检查方式:命令cat /etc/security/limits.conf查看solt core 0, hard core 0配置

加固方式:添加或者修改配置文件(去掉 soft core 0 一行前面的注释 ,同时,将 0 改为 unlimited 或 某个数值(如 204800))

vi /etc/security/limits.conf
*               soft     core   204800

检查硬盘使用情况

判断依据:大于80%不符合

检查方式:命令df -h查看硬盘使用率

加固方式:对硬盘实施扩容或者删除部分不重要的资源

检查histry历史命令条数设置

判断依据:建议值为200

检查方式:命令cat /etc/profile查看HISTSIZE=的值

加固方式:修改profile配置文件中HISTSIZE的值,建议修改的值为200

vi /etc/Profile
HISTSIZE=200

检查系统当前umask值

判断依据:值022符合

知识积累:

a. umask设置了用户创建文件的默认权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码,

b.系统管理员必须要设置一个合理的umask值,以确保你创建的文件具有所希望的缺省权限,防止其他非同组用户对你的文件具有写权限,

检查方式:通过命令umask输出当前umask的值

加固方式:通过umask命令修改值为022

umask 022

#umask一般由四位数字组成,第一个数字代表着特殊含义,可以先不考虑

口令策略

检查密码最小长度

判断依据:最小长度为8则符合

检查方式:命令cat /etc/login.defs查看PASS_MIN_LEN的值。login.defs是用户账号限制文件,但是里面的策略对Root无效,

加固方式:修改login.defs配置文件,修改密码最小长度值,建议修改值为10

vi /etc/login.defs
PASS_MIN_LEN 10

检查密码过期时间

判断依据:值大于90不符合

检查方式:命令cat /etc/login.defs查看PASS_MAX_DAYS的值加固方式:修改login.defs配置文件,建议将该值设置为90

vi /etc/login.defs
PASS_MAX_DAYS 90

检查密码认证失败次数

判断依据:值大于5不符合

知识积累:默认情况下在" pam.d/login"及 "/pam.d/sshd "文件中不含有认证失败次数。

检查方式:命令cat /etc/pam.d/sshd, cat /etc/pam.d/login查看

auth required pam_tally2.so deny=  unlock_time=  even_deny_root root_unloc k_time=的值是否配置

加固方式:在pam.d/login文件中或者在pam.d/sshd中添加对应字段 “deny”,建议设置该值为5。

若以上的值没有配置,则在配置文件中追加该内客,

vi /etc/pam.d/login
auth required Pam_tally2.so deny=5

检查密码复杂度

判断依据:值未配置不符合

知识积累:默认情况下没有配置密码复杂度

检查方式:

命令
cat /etc/pam.d/system-auth查看
password requisite pam_cracklib.so retry= difok= minlen= ucredit=-1 lcredit=-3 dcredit- -3 diet path= fusr/share ierac klib/p w_dict值是否配置

加固方式:在pam.d/login配置文件中添加以上字段。

vi /etc/pam.d/login
password requisite pam_cracklib.so retry=5 difok=3 minlen=10 ucredit=-1 lcredit=-3 dcredit=-3 dictpath=/usr/share/cracklib/pw_dict

#尝试次数5次: retry=5;
#新密码和旧密码最少不同字符3个:difok=3;
#最小密码长度10: minlen=10;
#最少大写字母1个: ucredit=-1;
#最少小写字母3个: lcredit=-3;
#最少数字3个: dcredit=-3;
#字典位置:/usr/ share/cracklib/pw_dict

检查密码过期告警天数

判断依据:值小于3不符合

检查方式:命令cat /etc/login.defs查看PASS_WARN_AGE的值”

加固方式:修改login.defs配置文件中”PASS_ WARN_AGE”字段,建议值为3

vi /etc/login.defs
PASS_WARN_AGE3

日志审计

检查系统是否开启日志功能

判断依据:存在则符合

检查方式:命令ps -ef查看是否存在rsyslogd服务

加固方式:通过systemctl命令打开日志审计功能

systemctl start rsyslog

检查系统是否开启审计功能

判断依据:存在则符合

检查方式:命令ps -ef查看是否存在auditd服务

加固方式:通过systemctl命令打开审计服务

systemctl start auditd

检查是否对登录进行记录

判断依据:存在则符合

检查方式: wtmp该日志文件永久记录每个用户登录、注销及系统的启动、停机事件,要使用last命令查看。

检查方式:命令last -f /var/log/wtmp查看是否有返回结果

系统服务

检查是否启用talk服务

局域网一个通讯聊天工具

判断依据:存在则不符合

知识积累:Linux不重要的服务,用于同一网络下用户之间的相互交流,其talk以及ntalk服务存在一定的风险隐患,

检查方式:命令ps -ef| grep talk查看服务以及ntalk服务

加固方式:Kill掉talk以及ntalk服务,并禁止其开启启动

kill-9<PID>
systemctl disable <talk service name>

检查是否启用sendmail服务

判断依据:存在则不符合

检查方式:命令ps-ef grep sendmail查看服务

加固方式:kill掉sendmail服务,并禁止其开机目后

kill -9 <PID>
systemctl disable <sendmail service name>

检查是否启用FTP服务

判断依据:存在则不符合

检查方式:命令ps -ef l gren ftp查看服务

加固方式:kill掉该FTP服务,并禁止其开启自启

kiI-9 <PID>
systemctl disable <ftp service name>

检查是否启用TELNET服务

判断依据:存在则不符合

检查方式:命令ps -ef |grep telnet查看服务

加固方式:kilI掉telnet服务,并禁止其开机自启.

kill -9 <PID>
systemctl disable <telnet service name>

访问控制

检查系统登录和SSH登录超时时间

判断依据:存在则符合

知识积累:默认情况下在profile中没有配置相关timeout的参数

检查方式:命令cat /etc/profile查看export TMOUT=的值

加固方式:在profile中追加:export TMOUT的值,建议设置为100

vi /etc/profile
export TMOUT=100

检查SSH协议是否使用SSH2

ssh1协议有缺陷

判断依据:存在则符合

检查方式:命令cat /etc/ssh/sshd_config, cat /etc/ssh2/ssh2d_config查看Protocol 2配置

加固方式:将ssh的协议类型改成ssh2,若不存在配置则追加字段至sshd_config配置文件

vi /etc/ssh/sshd_config
Protocol 2

检查是否允许root账户远程SSH连接

判断依据:值no则符合

检查方式:命令cat /etc/ssh/sshd_config, cat /etc/ssh2/ssh2d_config查看“ PermitRootLogin”的值

加固方式:修改PermitRootLogin的值为no,若不存在配置则追加字段至sshd_config配置文件

vi /etcissh/sshd_config
ermitRootLogin no

检查是否允许所有IP访问主机

判断依据:值ALL不符合

检查方式:命令cat /etc/hosts.allow查看sshd:的值

加固方式:在hosts.allow配置文件中追加允许访问的IP地址

ssh分许单个ip:"sshd:192.168.222.1”
ssh允许ip段:“sshd:192.168 222.”

安全加固之linux安全加固相关推荐

  1. linux系统加固标准,Linux系统加固标准规范.doc

    Linux系统加固规范 山东省计算中心 TIME \@ "yyyy年M月" 20XX年6月 账号管理.认证授权 Linux-01-01-01 编号 Linux-01-01-01 名 ...

  2. linux 无响应_系统加固之Linux安全加固

    Linux系统基本操作 文件结构图及关键文件功能介绍 Linux文件结构 Linux文件结构图 二级目录 目录 功能 /bin 放置的是在单人维护模式下能被操作的指令,在/bin底下的指令可以被roo ...

  3. linux将db2账户添加到组_超实用的shell脚本--Linux安全加固设置,值得收藏

    概述 近几年来Internet变得更加不安全了.网络的通信量日益加大,越来越多的重要交易正在通过网络完成,与此同时数据被损坏.截取和修改的风险也在增加. 只要有值得偷窃的东西就会有想办法窃取它的人.I ...

  4. 华纳云:Linux安全加固 #

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

  5. linux安全加固浅谈

    难易程度:★★★ 阅读点:linux;python;web安全; 文章作者:xiaoye 文章来源:i春秋 关键字:网络渗透技术 前言 linux被越来越多的企业使用,因此掌握一些基本的linux安全 ...

  6. Linux服务器加固方案

    前言:本人在几家小厂做开发,主Java,因人手问题,前端/安卓/服务器等都有涉猎.这里我结合网上各位大佬的经验和自己收获总结.对Linux服务器安全 和 防火墙的配置 和 服务器加固方案 进行简单的讲 ...

  7. 【Android 安全】使用 360 加固宝加固应用 ( 购买高级加固服务 | 设置资源加固 | 设置 SO 文件保护配置 | 设置 SO 防盗用文件配置 | 反编译验证加固效果 )

    文章目录 一. 购买加固服务 二. 设置资源加固 三. 设置 SO 文件保护配置 四. 设置 SO 防盗用文件配置 五. 反编译验证加固效果 本博客用于记录下 360 加固保 加固应用流程 ; ( 上 ...

  8. php代码加固,织梦模板加固版教程详解

    原标题:织梦模板加固版教程详解 我们的织梦模板怎么把它变成加固版,大家加固之前最好把原来的网站备份一下,以免操作错误造成损失. 第一步:登录网站后台把我们的网站备份数据库 网站后台点击 "系 ...

  9. Android应用加固(使用360加固保)

    Android应用加固(使用360加固保) 前言 使用360加固保进行应用加固 加固结果验证 前言 使用常见的反编译工具能够轻松地进行应用破解,然后对应用进行二次开发,甚至植入病毒.为了保护应用的安全 ...

最新文章

  1. Linux下CMake简明教程(10) 定义宏来控制打印的信息
  2. X86/ARM 模拟器
  3. tensorflow随笔-条件循环控制(2)
  4. 大华web对接文档_分分钟了解Web接口测试
  5. DIV+CSS专题:十天学会DIV+CSS
  6. CAP 发布 5.0 版本正式发布
  7. 今晚包饺子吗?会露馅的那种......
  8. Rust布道者张汉东倾授,入门Rust初学者都要攻破哪些难点?
  9. xm list源码分析
  10. 数据库导出成txt文件
  11. 阶段3 2.Spring_06.Spring的新注解_6 Qualifier注解的另一种用法
  12. 微信小程序订阅服务器,微信小程序之模板订阅消息
  13. telnet 批量测试(二):telnet 批量测试脚本实现关键代码
  14. 基于微信小程序的医疗监督反馈小程序的设计与实现-计算机毕业设计源码+LW文档
  15. 阿里巴巴矢量图标引用问题
  16. 应急通信于气象雷达的应用
  17. 信息传输速率与传信率_数据、信号、码元传输速率和信息传输速率等概念
  18. scrum 和敏捷介绍(概念、流程、自己的理解)
  19. Java递归求全排列详解
  20. 微信企业支付(一)注意

热门文章

  1. 借助脑机接口的即插即用控制,四肢瘫痪患者可以轻松控制电脑光标
  2. 冲击蓝桥杯-并查集,前缀和,字符串
  3. vmware workstation设置从U盘启动
  4. 水上交通AIS常见问题解决方案
  5. 【计算机组成原理-chapter3】存储系统
  6. 欧氏距离比较相似度的python实现
  7. Win7系统访问局域网-取消需要密码的方法
  8. 计算机 游戏46题攻略,最囧游戏2通关图文攻略之第46-50关
  9. hp服务器usb启动不了系统,HP服务器无法启动
  10. 数字信号处理实验一:序列生成和滑动滤波