服务器异常问题-记录

问题描述:登录腾讯云HDG时系统反应较慢,经常崩溃卡死.

  1. 问题分析

    一直发现站内的流量和IP不太正常,读取读取/var/log/secure 很多失败的登录信息

2.1:查看ssh登录记录

云服务器 ECS Linux CentOS 7 下重启服务不再通过 service 操作,而是通过 systemctl 操作。

查看SSH登录记录:systemctl status sshd.service

启动SSH登录:systemctl start sshd.service

重启SSH登录:systemctl restart sshd.service

自启SSH登录:systemctl enable sshd.service

发现外网地址恶意登录。

2.2:/var/log/secure

一直发现站内的流量和IP不太正常,读取/var/log/secure 很多失败的登录信息!

解决方案

  1. 对登陆失败次数过多的ip进行禁止登录

1.1、方法:读取/var/log/secure,查找关键字 Failed,(#cat /var/log/secure | grep Failed)例如(文中的IP地址特意做了删减):

Sep 17 09:08:09 localhost sshd[29087]: Failed password for root from 13.7.3.6 port 44367 ssh2

Sep 17 09:08:20 localhost sshd[29087]: Failed password for root from 13.7.3.6 port 44367 ssh2

Sep 17 09:10:02 localhost sshd[29223]: Failed password for root from 13.7.3.6 port 56482 ssh2

Sep 17 09:10:14 localhost sshd[29223]: Failed password for root from 13.7.3.6 port 56482 ssh2

 

从这些行中提取IP地址,如果次数达到10次(脚本中判断次数字符长度是否大于1)则将该IP写到 /etc/hosts.deny中。

 

  1. 通过脚本讲禁止及允许登录ip

2.1.1、先把始终允许的IP填入 /etc/hosts.allow ,这很重要!比如:

sshd:118.122.120.66:allow (本机地址)

2.1.2、脚本 /usr/local/bin/secure_ssh.sh

 

#! /bin/bash

cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.list

for i in `cat  /usr/local/bin/black.list`

do

  IP=`echo $i |awk -F= '{print $1}'`

  NUM=`echo $i|awk -F= '{print $2}'`

  if [ ${#NUM} -gt 1 ]; then

    grep $IP /etc/hosts.deny > /dev/null

    if [ $? -gt 0 ];then

      echo "sshd:$IP:deny" >> /etc/hosts.deny

    fi

  fi

done

2.1.3、将secure_ssh.sh脚本放入cron计划任务,每1分钟执行一次。

# crontab -e

*/1 * * * *  sh /usr/local/bin/secure_ssh.sh

 

  1. 测试

(先建立black.txt文件)

3.1、原本还想着是不是找个另外的方法测下呢。就在疑问还没有结束的时候,想要不先看看

 

[root@ ~]#  cat /usr/local/bin/black.txt

 

再看看服务器上的hosts.deny

 

[root@ ~]# cat /etc/hosts.deny

 

3.2、从另一个终端窗口继续“暴力”连接服务器。

 

看看服务器上的黑名单文件:

[root@ ~]# cat /usr/local/bin/black.txt

13.26.21.27=6

再看看服务器上的hosts.deny

[root@ ~]# cat /etc/hosts.deny

sshd:13.7.3.6:deny

sshd:92.4.0.4:deny

sshd:94.10.4.2:deny

sshd:94.4.1.6:deny

sshd:11.64.11.5:deny

sshd:13.26.21.27:deny

 

于是加入脚本信息:限制登录过多的失败用户ip访问。

3.3:查看当前登录信息:

w

  1. 启用防火墙

4.1、查看firewall服务状态

 

systemctl status firewalld

4.2、查看firewall的状态

 

firewall-cmd --state

4.3、开启、重启、关闭、firewalld.service服务

 

# 开启

service firewalld start

# 重启

service firewalld restart

# 关闭

service firewalld stop

4.4、查看防火墙规则

 

firewall-cmd --list-all

4.5、查询、开放、关闭端口

 

# 查询端口是否开放

firewall-cmd --query-port=8080/tcp

# 开放80端口

firewall-cmd --permanent --add-port=80/tcp

# 移除端口

firewall-cmd --permanent --remove-port=8080/tcp

#重启防火墙(修改配置后要重启防火墙)

firewall-cmd --reload

 

# 参数解释

1、firwall-cmd:是Linux提供的操作firewall的一个工具;

2、--permanent:表示设置为持久;

3、--add-port:标识添加

  1. 提示

在登陆时密码错误不能超过10次;否则将会禁止当前IP登录。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

别忘了带红领巾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值