保护你的服务器VPS: 修改ssh默认端口 | 禁用root登录 | IP黑名单自动封禁

一些常用软件工具(建议而已,非必须)

  ##Debian安装命令###

apt-get update && apt-get install unzip zip wget curl  mc  nano sudo ufw socat ntp ntpdate gcc git vim socat make build-essential cmake libboost-system-dev libboost-program-options-dev libssl-dev default-libmysqlclient-dev netcat -y

  ##CentOS安装命令###

yum update -y && yum install unzip zip wget curl  mc  nano sudo ufw socat ntp ntpdate gcc git vim socat make build-essential cmake libboost-system-dev libboost-program-options-dev libssl-dev default-libmysqlclient-dev netcat net-tools -y

一 ,配置ssh

添加用户

 useradd xxxxx 

更改用户密码 

passwd xxxxx

连续输入两次密码

用户间切换:

su - username(xxxxx)

删除用户

userdel username(xxxxx)

二,ssh配置文件:/etc/ssh/sshd_config

1,修改shh端口

Port 22 --> Port xxxxx

(部分vps不支持更改端口号)

2,禁用root登录

PermitRootLogin yes --> PermitRootLogin no

3,更改后重新启动sshd服务

systemctl restart sshd

三,设置登录ip黑名单(登陆失败超过一定次数的IP直接封禁)

###Debian###

查看登录失败日志 /var/log/auth.log

last -f /var/log/btmp | more

###CentOS###

查看登录失败日志文件位置

cat /var/log/secure

白名单ip文件位置:

/etc/hosts.allow

sshd:19.16.18.1:allow      #自己固定IP

sshd:132.213.:allow        #自己外网IP段

黑名单ip文件位置:

/etc/hosts.deny

======================================

1,建立读取登录失败ip脚本

vim /usr/local/bin/secure_ssh.sh

按下“i”进入编辑模式,写入一下内容:

#############

#!/bin/bash

LIMIT_CNT=6

LOG_FILE_PATH="/var/log/secure"

TMP_BLOCK_FILE="/usr/local/bin/black.txt"

OS_RELEASE="/etc/os-release"

security_execution()

{

    echo "start security_execution"

    cat $LOG_FILE_PATH | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | awk '{print $2"="$1;}' > $TMP_BLOCK_FILE

    for i in `cat  $TMP_BLOCK_FILE`

    do

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

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

      if [ $NUM -gt $LIMIT_CNT ];then

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

        if [ $? -gt 0 ];then

            echo "block ip: $IP"

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

        fi

      fi

    done

    echo "Completed"

}

proc_main()

{

    if [ -f "$OS_RELEASE" ]; then

        source /etc/os-release

        case $ID in

            debian|ubuntu|devuan)

                LOG_FILE_PATH="/var/log/auth.log"

                ;;

            centos|fedora|rhel)

                LOG_FILE_PATH="/var/log/secure"

                ;;

            *)

                exit 1

                ;;

        esac

        echo "System $ID $VERSION_ID"

        security_execution

    fi

}

proc_main

#################

按下ESC,输入:wq,保存退出

2,设置777权限:

chmod 777 /usr/local/bin/secure_ssh.sh

3,添加计划任务:

crontab -e

添加以下内容,方法同上:

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

黑名单ip会被记录到/usr/local/bin/black.txt

4,重启cron定时任务

CentOS: 

systemctl restart crond

Debian:

systemctl restart cron

你可能感兴趣的:(保护你的服务器VPS: 修改ssh默认端口 | 禁用root登录 | IP黑名单自动封禁)