✏️
安全运维
  • 目录
  • 常用命令速查手册
    • LINUX 命令总结
  • Linux--CentOS
    • 实战案例
      • 进入CentOS 7紧急模式,恢复root密码
      • 创建一个让root都无法删除的文件
      • tar源码包管理及srpm源码包安装方法
      • 找出系统中使用CPU最多的进程
      • 使用screen执行备份命令
      • 扩展Swap分区
      • 解决磁盘有空间但创建不了文件及修复文件系统问题
      • 修复服务器文件系统
      • 自定义ssh服务的日志类型和存储位置
      • 日志切割及搭建远程日志收集服务器
      • 配置公司内网服务器每天定时自动开关机
    • 基础知识
      • Linux的目录结构
      • 系统时间管理
      • 关机、重启命令及7个运行级别
      • passwd、shadow 文件
    • 基础命令
      • 帮助命令
      • ping 命令
      • ls 命令
      • alias 命令
      • history 命令
      • Linux中的快捷键
      • Untitled
      • Untitled
    • 基础配置
      • 安装中文版man手册
      • 网卡配置
      • 关闭防火墙并设置开机不启动防火墙
      • 临时和永久关闭SELinux
      • 配置本地YUM源
    • 文件管理
      • touch 命令
      • VIM 命令
      • cp 命令
      • mv 命令
    • 文件查看
      • cat 命令
      • more 命令
      • less 命令
      • head 命令
      • tail 命令
      • sort 命令
    • 用户和用户组管理
    • 文件权限管理
      • 文件基本权限
      • 文件的特殊权限:SUID、SGID、STicky及文件扩展权限ACL
    • 程序包的管理与安装
      • Yum的使用
    • 文件的压缩和归档
    • 系统进程管理
      • uptime命令查看系统负载
      • top 命令动态管理进程
      • lsof 命令
      • pstree 命令
      • 进程前、后台切换及优先级管理
    • 重定向和文件的查找
      • 文件描述符
      • 重定向的含义及管道、tee命令的使用
      • 查找文件的常用命令及应用
      • 命令判断——3个特殊符号“;”“﹠﹠”“||”
    • 磁盘介绍及管理
      • 磁盘分区工具和挂载
    • 文件系统结构
      • 文件系统结构
      • 文件的硬链接和软链接
      • 使用ln命令创建文件的链接
    • RAID的原理与搭建
      • RAID常用类型搭建和使用,以及注意事项
    • LVM管理和SSM工具的使用
      • 创建LVM的基本步骤
      • SSM工具
    • Linux计划任务与日志的管理
      • 日志的种类和记录的方式
    • 文件共享服务
      • NFS 的安装与使用
      • Samba 的安装与使用
      • CentOS 7.6 安装和配置samba文件共享服务
      • FTP 的安装与使用
      • proftpd
  • 安全加固
    • Windows 安全加固
    • WebLogic 安全加固
    • Apache 安全加固
    • Tomcat 安全加固
    • MySql 安全加固
    • PHP 安全加固
    • SSH 安全加固
    • IIS 安全加固
  • 基线检查
    • DB2数据库基线检查策略
    • MySQL数据库基线检查策略
    • Oracle10g数据库基线检查策略
    • Sybase数据库基线检查策略
    • MSSQL 2008 基线检查策略
    • Jboss7 基线检查策略
    • Apache 基线检查策略
    • Tomcat 基线检查策略
    • 基线检查策略
  • ClamAV
  • iptables
由 GitBook 提供支持
在本页
  • 1、创建普通用户
  • 2、禁止root用户直接登陆SSH
  • 3、修改 SSH 的默认端口
  • 4、禁用空密码
  • 5、结束空闲的SSH会话
  • 6、限制身份验证最大尝试次数
  • 7、设置最后登录的日期和时间
  • 8、检查用户特定的配置文件
  • 9、防止特权升级
  • 10、使用密钥进行身份验证
  • 11、配置主机防火墙过滤传入的SSH连接
  • 1、使用iptables过滤SSH连接
  • 2、通过Firewalld过滤SSH连接
  • 3、使用UFW过滤SSH连接

这有帮助吗?

  1. 安全加固

SSH 安全加固

SSH(Secure Shell)是一种能够让用户安全访问远程系统的网络协议,它为不安全网络中的两台主机提供了一个强加密数据通信通道。SSH是Linux、UNIX系统管理员操作和管理主机的首选方式。虽然SSH比其他通信方式更加安全,但是错误的配置也可能导致其出现安全问题

1、创建普通用户

useradd test
echo "test@123456" | passwd --stdin test

配置用户最小权限
chmod 644 /etc/passwd 
chmod 400 /etc/shadow 
chmod 644 /etc/group

2、禁止root用户直接登陆SSH

阻止用户使用root账户登录,请修改配置如下:
PermitRootLogin no
指定白名单用户:
AllowUsers admin
禁止某些用户
DenyUsers root

3、修改 SSH 的默认端口

vim /etc/ssh/sshd_config 修改默认端口:

Port 20022

4、禁用空密码

修改配置文件如下:
PermitEmptyPasswords no

5、结束空闲的SSH会话

用户可以通过 ssh 连入服务器,可以配置一个超时时间间隔来避免无人值守的 ssh 会话。 打开 sshd_config 并确保配置以下值:
ClientAliveInterval 300
ClientAliveCountMax 0
以秒为单位设置一个空闲超时时间(300秒 = 5分钟)。一旦空闲时间超过这个值,空闲用户就会被踢出会话。

6、限制身份验证最大尝试次数

限制最大身份验证尝试次数,请修改sshd_config中的配置为如下:
MaxAuthTries 3

7、设置最后登录的日期和时间

输出最后一次登录日期和时间,请修改配置如下:
PrintLastLog yes

8、检查用户特定的配置文件

用户可能会在无意间将自己的home目录或者其他某些文件设置成全局可写(比如777权限),在这种情况下,其他用户将有权修改用户特定的配置,并以其他用户的身份登录到服务器。可以通过使用StrictModes选项来检查home目录的配置。

StrictModes设置ssh在接收登录之前是否检查用户home目录和rhosts文件的权限和所有权,StrictModes为yes必需保证存放公钥的文件夹的拥有者与登陆用户名是相同的。

确保启用严格模式,请修改配置文件如下:
StrictModes yes

9、防止特权升级

SSH通过创建一个无特权的子进程来接收传入的连接,实现权限分离。用户身份验证后,SSH将使用该用户的权限创建另一个进程。

建议还是手动修改配置文件,显式指定该配置:
UsePrivilegeSeparation sandbox
使用sandbox可以增加其他限制。

10、使用密钥进行身份验证

该功能并不一定在所有系统上都可用,但是使用SSH密钥身份验证有很多优点。密钥验证比人类可以轻松记住的任何密码都要强大的多,同时还提供了无需密码的身份验证,使用更加便利。

启用密钥身份验证,请修改配置文件如下:
PubkeyAuthentication yes

11、配置主机防火墙过滤传入的SSH连接

1、使用iptables过滤SSH连接

允许特定IP连接:

iptables -I INPUT -p tcp -s <指定的IP> --dport 22 -j ACCEPT

允许特定的子网:

iptables -I INPUT -p tcp -s <指定子网> --dport 22 -j ACCEPT

2、通过Firewalld过滤SSH连接

允许特定IP连接SSH:

firewall-cmd --permanent --zone=public --add-rich-rule=' rule family="ipv4"   source address="<指定IP>"   port protocol="tcp" port="22" accept'

允许特定子网:

firewall-cmd --permanent --zone=public --add-rich-rule='   rule family="ipv4"   source address="<指定子网>"   port protocol="tcp" port="22" accept'

3、使用UFW过滤SSH连接

允许特定IP连接SSH:

sudo ufw allow from <指定IP> to any port 22

允许特定子网:

sudo ufw allow from <指定子网> to any port 22
上一页PHP 安全加固下一页IIS 安全加固

最后更新于3年前

这有帮助吗?