centos7防暴力破解五种方法
? 什么是暴力破解,简单来说就是对一个服务器进行无数次尝试登陆,并用不同的密码进行登陆直到可以登陆成功。暴力破解的基本步骤可以分为以下几步: 1. 找到对应的linux服务器 ???Ip地址 2.扫描端口号:22 ???nmap扫描端口 3.开始暴力破解 : ?一般root ?????破解你的密码 ?登录你的机器?? 破坏 ?????盗取你的重要的数据 对于这种情况我们有以下5种解决办法:
接下来我们对于上面的五种方法进行一一讲解演示。(以下的操作环境是在centos7下的) 1. 将密码设置复杂 ??密码的复杂度一定要较高点,尽量通过密钥登陆,这里介绍个密码生成工具:pwgen(需安装,用yum安装下就可以了) pwgen的一些参数
? 示例: 1 [root@vultr ~]# pwgen -c -n -y -1 12 10 #意思是生成密码长度为12的包含至少一个大写字母和至少一个数字和至少一个特殊字符的10个密码,并分行显示。
2 Adee,lu8laem
3 Liev0wa=o5ai
4 juP[ae[xi2ae
5 eequ@oo4EeLu
6 GeeBaeXo9on/
7 ohm5As;ohthi
8 ahtai1AhZee+
9 Aiwi"moor7bu
10 UheiPh<i3aad
11 ira^v2ooLai8
2. 更改端口号 我们使用的sshd服务的配置文件是在/etc/ssh/sshd_config,我们只需要将端口更改下就行了。 vim /etc/ssh/sshd_config
更改完之后我们需要将我们的82端口开放下。 firewall-cmd --add-port=82/tcp --permanent
firewall-cmd --reload
然后重启sshd服务即可: systemctl restart sshd
访问的时候我们需要加上我们的端口号。 ssh -p82 192.168.1.121
我们可以用nmap 扫描下我们的我们服务器看看哪些端口开放着。 [root@localhost ~]# nmap 1.121
Starting Nmap 6.40 ( http://nmap.org ) at 2018-01-03 14:53 CST
Nmap scan report for li155.members.com ()
Host is up (0.070s latency).
Not shown: 998 filtered ports
PORT STATE SERVICE
22/tcp closed ssh
82/tcp open xfe
可以看到虽然我们82端口被扫描出来了,但是是不知道它是sshd服务的。 3. 禁止root用户登陆 1. 不使用root用户名登陆,这样root不知道你的管理员用户的用户名,这样也加大了暴力破解力度。 注:判断一个用户是不是超级管理员,看的是用户的ID是否为0。 例:创建一个普通帐号,修改ID为0 然后变成超级管理权限 创建一个用户后 vim /etc/passwd 改:root:x:0:0:root:/root:/bin/bash 为:root:x:0:0:root:/sbin/nologin???#不让root登录系统 ? 改:djx:x:1000:1000::/home/djx:/bin/bash 为:djx:x:0:0::/home/djx:/bin/bash??#改ID500为0,cd就成root身份 注:centos7普通用户id是从1000开始,centos7以前的普通用户id是从500开始。 然后我们可以使用djx登陆,会发现它拥有root的权限。 ? 我们登陆的家目录是djx家目录,用户djx是具有管理员权限,可以在root下创建目录。 4. 编写脚本检查/var/log/secure访问日志文件。 思路:通过统计日志文件中的登陆失败的ip,并将达到阈值的ip添加到/etc/hosts.deny来拒绝某个ip的再次访问。 脚本:之前写的,比较low。 1 #!/bin/bash
######################################################
3 # $Name: protect_ssh
4 # $Version: v1.0
# $Function: Prevent SSH from being hacked
6 # $Author: djx
7 # $Create Date: 2017-11-22
8 # $Description: shell
9 #######################################################
10 #SSH配置文件所在位置
11 SSH_config='/etc/hosts.deny'
12 #ssh 日志文件位置
13 SSH_log=/var/log/secure14 #记录尝试登陆超过15次且未登陆成功的ip,以及添加进黑名单的时间日志
15 Deny_log=/var/lib/ssh_shell/ssh_deny.log16 #储存所有ip及访问次数文件
17 Visit_ip=/var/lib/ssh_shell/ssh_visit.txt18 #超过设置下面次数将被添加进黑名单
19 Visit_number=60
20 #检查ssh日志文件是否存在
21 if [ ! -e $SSH_log ]
22 then
23 echo -e |