1      身份鉴别

1.1         密码安全策略

操作系统和数据库系统管理用户身份鉴别信息应具有不易被冒用的特点,口令应有复杂度要求并定期更换。

设置有效的密码策略,防止攻击者破解出密码

1)查看空口令帐号并为弱/空口令帐号设置强密码

# awk -F: '($2 == ""){print $1}' /etc/shadow

可用离线破解、暴力字典破解或者密码网站查询出帐号密钥的密码是否是弱口令

2)修改vi /etc/login.defs配置密码周期策略

此策略只对策略实施后所创建的帐号生效, 以前的帐号还是按99999天周期时间来算。

3)/etc/pam.d/system-auth配置密码复杂度:

在文件中添加如下一行:

password requisite  pam_cracklib.so retry=3 difok=2 minlen=8 lcredit=-1 dcredit=-1

参数含义如下所示:

difok:本次密码与上次密码至少不同字符数

minlen:密码最小长度,此配置优先于login.defs中的PASS_MAX_DAYS

ucredit:最少大写字母

lcredit:最少小写字母

dcredit:最少数字

retry:重试多少次后返回密码修改错误

【注】用root修改其他帐号都不受密码周期及复杂度配置的影响。

1.2         登录失败策略

应启用登录失败处理功能,可采取结束会话、限制非法登录次数和自动退出等措施。

遭遇密码破解时,暂时锁定帐号,降低密码被猜解的可能性

1)方法一:/etc/pam.d/login中设定控制台;/etc/pam.d/sshd中设定SSH

/etc/pam.d/sshd中第二行添加下列信息

auth required  pam_tally2.so deny=5 lock_time=2 even_deny_root unlock_time=60

###########参数解释############

查看用户登录失败次数

# pam_tally2 --user root

解锁用户

# pam_tally2 -r -u root

even_deny_root    也限制root用户(默认配置就锁定root帐号);    
deny     设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户   
unlock_time     设定普通用户锁定后,多少时间后解锁,单位是秒;

root_unlock_time      设定root用户锁定后,多少时间后解锁,单位是秒;

1.3         安全的远程管理方式

当对服务器进行远程管理时,应采取必要措施,防止鉴别信息在网络传输过程中被窃听。

防止远程管理过程中,密码等敏感信息被窃听

执行如下语句,查看telnet服务是否在运行

禁止telnet运行,禁止开机启动,如下图:

2      访问控制

应及时删除多余的、过期的帐户,避免共享帐户的存在。

删除或禁用临时、过期及可疑的帐号,防止被非法利用。

主要是管理员创建的普通帐号,如:test

# usermod -L user 禁用帐号,帐号无法登录,/etc/shadow第二栏显示为!开头

# userdel user 删除user用户

# userdel -r user将删除user用户,并且将/home目录下的user目录一并删除

加固后如图

3      安全审计

3.1         审核策略开启

审计范围应覆盖到服务器和重要客户端上的每个操作系统用户和数据库用户;

开启审核策略,若日后系统出现故障、安全事故则可以查看系统日志文件,排除故障、追查入侵者的信息等。

查看rsyslog与auditd服务是否开启

rsyslog一般都会开启,auditd如没开启,执行如下命令:

# systemctl start auditd

auditd服务开机启动

# systemctl start auditd

3.2         日志属性设置

应保护审计记录,避免受到未预期的删除、修改或覆盖等。

防止重要日志信息被覆盖

让日志文件转储一个月,保留6个月的信息,先查看目前配置,

# more /etc/logrotate.conf | grep -v "^#\|^$"

需要修改配置为下图所示:

4      入侵防御

操作系统遵循最小安装的原则,仅安装需要的组件和应用程序,并通过设置升级服务器等方式保持系统补丁及时得到更新。

关闭与系统业务无关或不必要的服务,减小系统被黑客被攻击、渗透的风险。

禁用蓝牙服务

# systemctl stop bluetooth

禁止蓝牙开机启动

5      系统资源控制

5.1         访问控制

应通过设定终端接入方式、网络地址范围等条件限制终端登录。

对接入服务器的IP、方式等进行限制,可以阻止非法入侵。

1) 在/etc/hosts.allow和/etc/hosts.deny文件中配置接入限制

最好的策略就是阻止所有的主机在“/etc/hosts.deny”文件中加入“ ALL:ALL@ALL, PARANOID ”,然后再在“/etc/hosts.allow” 文件中加入所有允许访问的主机列表。如下操作:

编辑 hosts.deny文件(vi /etc/hosts.deny),加入下面该行:

# Deny access to everyone.
ALL: ALL@ALL, PARANOID

编辑hosts.allow 文件(vi /etc/hosts.allow),加入允许访问的主机列表,比如:

ftp: 202.54.15.99 foo.com    //202.54.15.99是允许访问 ftp 服务的 IP 地址

//foo.com 是允许访问 ftp 服务的主机名称。

2) 也可以用iptables进行访问控制

5.2         超时锁定

应根据安全策略设置登录终端的操作超时锁定。

设置登录超时时间,释放系统资源,也提高服务器的安全性。

/etc/profile中添加如下一行

exprot TMOUT=900  //15分钟
# source /etc/profile

改变这项设置后,必须先注销用户,再用该用户登录才能激活这个功能。

如果有需要,开启屏幕保护功能

设置屏幕保护:设置 -> 系统设置 -> 屏幕保护程序,进行操作

6      最佳经验实践

对Linux系统的安全性提升有一定帮助。

6.1         DOS攻击防御

防止拒绝服务攻击

TCP SYN保护机制等设置

1)打开 syncookie:

# echo“1”>/proc/sys/net/ipv4/tcp_syncookies  //默认为1,一般不用设置

表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

2)防syn 攻击优化

用vi编辑/etc/sysctl.conf,添加如下行:

net.ipv4.tcp_max_syn_backlog = 2048

进入SYN包的最大请求队列.默认1024.对重负载服务器,增加该值显然有好处.可调整到2048.

6.2         历史命令

为历史的命令增加登录的IP地址、执行命令时间等

1)保存1万条命令

# sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile

2)在/etc/profile的文件尾部添加如下行数配置信息:

USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}' |sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
export HISTTIMEFORMAT="%F %T $USER_IP `whoami` "
shopt -s histappend
export PROMPT_COMMAND="history -a"

##source /etc/profile让配置生效

转载于:https://www.cnblogs.com/skkip/p/10074096.html

Linux安全加固手册相关推荐

  1. LINUX基本命令行手册一

    linux基本命令行手册一     1.1基本的网络命令         1>wget 从服务器上检索或下载文件,支持HTTP,HTTPS,FTP协议,服务器响应后,会将请求到的文件下载到当前用 ...

  2. linux/unix编程手册-56_60

    title: linux/unix编程手册-55_56 date: 2018-10-05 11:53:07 categories: programming tags: tips linux/unix编 ...

  3. linux/unix编程手册-61_64

    title: linux/unix编程手册-61_64 date: 2018-10-07 11:53:07 categories: programming tags: tips linux/unix编 ...

  4. linux/unix编程手册-16_20

    title: linux/unix编程手册-16_20 date: 2018-06-06 11:53:07 categories: programming tags: tips linux/unix编 ...

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

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

  6. Linux 命令操作手册

    文章目录 一.Boot项目前后台 二.进程 三.防火墙 四.查看系统版本 五.权限赋予 六.远程同步文件 七.目录 八.文件 九.解/压缩 十 .大文件分割方案 十一.查看文件中关键词出现的次数 十二 ...

  7. linux/unix编程手册-6_10

    title: linux/unix编程手册-6_10 date: 2018-05-15 11:53:07 categories: programming tags: tips linux/unix编程 ...

  8. Linux管理传世经典:Linux 系统管理技术手册(第二版) 中文高清版下载

    Linux管理传世经典:Linux 系统管理技术手册(第二版) 中文高清版下载 转载于:https://www.cnblogs.com/gavinhughhu/archive/2010/07/05/1 ...

  9. Linux中man手册的安装以及使用详解

    Linux中man手册的安装以及使用详解 linux中man手册的安装以及使用详解 man手册是什么 man手册是干嘛的 man手册如何安装 man手册如何使用 举例讲解 我们来看一下man手册的目录 ...

  10. PostgreSQL on Linux 最佳部署手册

    PostgreSQL on Linux 最佳部署手册 TAG 24 作者 digoal 日期 2016-11-21 标签 Linux , PostgreSQL , Install , 最佳部署 背景 ...

最新文章

  1. Java面试题之一 (转)
  2. 压缩文件夹_怎样压缩文件夹并发送
  3. 生成器generator
  4. 1号店11.11:分布式搜索引擎的架构实践
  5. Leaflet中使用Leaflet.fullscreen插件实现全屏效果
  6. SQL Server 堆heap 非聚集索引 Nonclustered index 行号键查找RID loopup结合执行计划过程详解
  7. 深度学习与模式识别之项目整理
  8. Struts2一对多配置
  9. 表达式目录树(Expression)
  10. c盘python27文件夹可以删除嘛_C盘里的空文件夹是不是都能删除啊
  11. linux 安装_linux 安装 powershell
  12. html5 jquery音乐播放器,play()和pause()不起作用
  13. learn words by steps 8 英语单词
  14. 黑金Xilinx FPGA学习笔记(一)verilogHDL扫盲文-(1)
  15. dns性能测试软件,开源dns软件之-mydns和bind性能测试与比较
  16. Pollard-Rho算法模板(POJ 1811 Prime Test)
  17. PDF文件怎么加密?这两种加密方法很靠谱
  18. java.io.UTFDataFormatException: encoded string too long: 270976 bytes
  19. P4 安装bmv2 详细教程(更新中。。)
  20. 5G技术全面融入ROS2新一代机器人操作系统大量成果推出(2020整理翻译版)

热门文章

  1. 韩顺平html设计手册,韩顺平WEB前端网页设计视频教程
  2. js模拟ps吸管吸取颜色功能
  3. 使用js一行代码解决上网培训弹窗问题
  4. ubuntu18.04超级简单的安装wine QQ教程
  5. Linux 操作系统原理介绍
  6. c语言 api接口测试工具,Restlet Client插件
  7. 单片机毕业设计 超声波雷达可视化系统
  8. PTA 程序设计天梯赛(1~180题)
  9. 推荐四个网盘资源搜索工具
  10. mysql可视化工具选型