一些常用软件工具(建议而已,非必须)
##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