1、只使用ssh v2  //etc/ssh/sshd_cofig

Protocol 2

ListenAddress x.x.x.x --如果你的环境有VPN通道,建议sshd监听所在的内网地址;

2、限制用户访问(用户与用户之间使用空格隔开,可以使用?*通配符)

AllowUsers user01 root --只允许那些用户使用ssh登录

DenyUsers user02 user03 --值拒绝那些用户访问,两种方法选其一

3、配置空闲超时自动断开  //etc/profile

使用shell变量来完成直接简单:TMOUT

4、禁止管理员直接使用ssh登录

PermitRootLogin no --使用普通用户登录用,调用su/sudo来提权

5、更改默认的监听端口和监听IP

Port 5568

ListenAddress 0.0.0.0 --按照需求可设置监听在服务器私有地址上,如果监听在公网的地址上则需要更改端口、不能直接使用22端口;

6、给账户设置强壮的密码

# rpm -ivh expect-5.43.0-5.1.i386.rpm 
# mkpasswd -l 128 -d 8 -C 15 -s 10
omlrjcU3fxivSqtotyu'nk6tR(zhp1Jcel_gxjnqedErpx_1g4U]amtqst3igWXb-f2eqqqJohfjuzccdC.coMok7Abvtjfzej&vfvfTblgBmWmijqh.w&acegjrqwqq
-l 密码长度
-d 多少个数字
-C 大写字母个数
-s 特殊符号的个数

7、使用密钥对验证

#ssh-keygen -t rsa/

#ssh-copy-id /$HOME/.ssh/id.rsa.pub username@remotehost

8、使用iptables控制

在每一分钟内只允许有三个新的连接去连接SSH服务器,并发连接是三个,如果超过此值将被拒绝

#iptables -A input -p tcp --dport 22 -m state --state NEW -m limit --limit  3/min --limit-burst 3 ACCEPT

#iptables -A input -p tcp --dport 22 -m state --state ESTABLISHED -j ACCEPT

#iptables -A input  -p tcp --dport 22 -j DROP

#iptacles -A output -o eth0 -p tcp --sport 22 -m state --state  RSTABLISHED  -j ACCPET

9.减少密码错误尝试次数 (/etc/ssh/sshd_config)

MaxAuthTries=3

当SSH登录失败次数超过3次就使用tcpwrappers来拒绝。

使用脚本实现对sshd暴力破解的IP进行拦截,把连续3次以上通过ssh登录系统失败的IP放到/etc/hosts.deny 。 文件中的IP不能重复。

脚本要求每10分钟执行一次

#!/bin/bash
export bad_ip=$(lastb -i -a | grep ssh | awk '{print $NF}'|sort |uniq -c |awk '$1>3 {print $2}')

for i in $bad_ip
do
echo "sshd: $i" >> /etc/hosts.deny
done

echo "" > /var/log/btmp

#vim /etc/crontab

10 * * * * * /test/shell/ssh.sh

ssh 安全配置的更多相关文章

  1. 我的Python成长之路---GitHub使用克隆GitHub(SSH key配置)

    六.克隆GitHub仓库 1.创建仓库目录,目录位置没有要求,比如D:\learngit. 2.配置ssh(如果不配置会每次都输入用户名和密码) 使用TortoiseGit生成ssh-key:开始菜单 ...

  2. Git SSH公钥配置

    https://www.cnblogs.com/smuxiaolei/p/7484678.html https://blog.csdn.net/weixin_42063071/article/deta ...

  3. 三台机器之间root用户ssh互信配置

    三台机器之间root用户ssh互信配置 (1)在所有的主机上执行:ssh-keygen -t rsa # 在每台都需要操作,一路回车 (2)将所有机子上公钥(id_rsa.pub)导到一个主机的/ro ...

  4. 三台机器之间ssh互信配置

    三台机器之间ssh互信配置 环境介绍:192.168.65.128    my1-222192.168.65.129  my2-223192.168.65.130    web224 # 步骤一:# ...

  5. 菜鸟学SSH(十七)——基于注解的SSH将配置精简到极致

    很早之前就想写一篇关于SSH整合的博客了,但是一直觉得使用SSH的时候那么多的配置文件,严重破坏了我们代码整体性,比如你要看两个实体的关系还得对照*.hbm.xml文件,要屡清一个Action可能需要 ...

  6. 【ssh服务配置】

    根据项目需求,搭建好拓扑图如下: 第一种验证方式:给予密码和用户名登录 Ssh server配置: 首先在服务器上创建一个rsa加密算法的秘钥对: 对ssh服务进行开启: 创建用户的虚拟终端登录界面: ...

  7. java教程(五)SSH框架-配置

    前言:从这篇博客開始我将继续讲述Java教程:SSH篇.主要内容环绕SSH框架分析与搭建,今天先简介一下SSH的配置. SSH配置顺序是: spring-->hibernate-->str ...

  8. Kerberos+SSH安装配置使用教程

    一.背景说明 最早听说KDC和Kerberos应该是大三的<应用密码学>,当时感觉这套对称密钥分发机制比非对称密钥的PKI分发机制要好理解.但几年下来由于现实中使用SSL的场景比较比(主要 ...

  9. GitHub的SSH key配置以及常用的git命令介绍

    一. GitHub的SSH key配置 (以windows为例,Mac iOS系统类似) SSH Key 是一种方法来确定受信任的计算机,从而实现免密码登录.Git是分布式的代码管理工具,远程的代码管 ...

  10. Mac多SSH Key配置

    多SSH key配置 工作的时候碰到SSH配置的问题,就是公司用的是gittea的仓库,而本人的github平常也要使用,这个时候就需要配置不同的SSH key了.将同一个公钥分配配置给github和 ...

随机推荐

  1. JVM的GC机制及JVM的调优方法

    内存管理和垃圾回收是JVM非常关键的点,对Java性能的剖析而言,了解内存管理和垃圾回收的基本策略非常重要. 1.在程序运行过程当中,会创建大量的对象,这些对象,大部分是短周期的对象,小部分是长周期的 ...

  2. Python中的导入

    转自:http://bingotree.cn/?p=569 参考<Python学习手册>,强烈建议看下这本书的相关章节. 在一些规模较大的项目中,经常可以看到通过imp.__import_ ...

  3. Deep learning:三十四(用NN实现数据的降维)

    数据降维的重要性就不必说了,而用NN(神经网络)来对数据进行大量的降维是从2006开始的,这起源于2006年science上的一篇文章:reducing the dimensionality of d ...

  4. Microsoft云备份解决方案Azure Backup的常见配置问题

    这篇博客文章有助于解决 Microsoft云备份解决方案(即 Azure Backup)的常见配置问题.客户通常会在安装或注册 Azure Backup时遇到这些问题.以下是有关如何诊断和解决问题的建 ...

  5. 菜鸟学习HTML5+CSS3(一)

    主要内容: 1.新的文档类型声明(DTD) 2.新增的HTML5标签 3.删除的HTML标签 4.重新定义的HTML标签 一.新的文档类型声明(DTD)    HTML 5的DTD声明为:<!d ...

  6. HW7.3

    public class Solution { public static void main(String[] args) { char[][] answers = { {'A', 'B', 'A' ...

  7. 新手学习 Vim 的五个技巧

    多年来,我一直想学 Vim.如今 Vim 是我最喜欢的 Linux 文本编辑器,也是开发者和系统管理者最喜爱的开源工具.我说的学习,指的是真正意义上的学习.想要精通确实很难,所以我只想要达到熟练的水平 ...

  8. Shell 脚本学习资料搜集

    Shell文档 ChinaUnix上大神“網中人”总结的Shell十三问,强烈推荐,这本书讲得比较精炼,而且都是一些Shell学习中容易把握不住的一些细节难点.每一问都写得非常精彩.ChinaUnix ...

  9. 【Stage3D学习笔记续】山寨Starling(五):纹理计算和尺寸计算

    尺寸计算: Starling中的尺寸是以像素为单位的,这一切都得力于我们使用的正交矩阵,还记得我们顶点数据中的位置数据么,如果我们提交的矩形的四个顶点为(0, 0)(0, 100)(100, 0)(1 ...

  10. 【WIN32进阶之路】:线程同步技术纲要

    前面博客讲了互斥量(MUTEX)和关键段(CRITICAL SECTION)的使用,想来总觉不妥,就如盲人摸象一般,窥其一脚而言象,难免以偏概全,追加一篇博客查遗补漏. win32下的线程同步技术分为 ...