Linux Server 安全设置

今天,我发现自己的博客被攻击了,没错,人生第一次,服务器被人攻破,的确值得放烟花庆祝,不过,这个攻击也没做啥事,就是登录后下载了一个脚本 fanelishere.tk/arhive/info 然后运行了这个脚本,此外再无其他。但,终究还是被人攻击了。所以有了此文,本文主要讲述我个人了解的 Linux 服务器 安全设置。

禁用 ssh 的密码登录,仅可以用 publicKey 登录

vim /etc/ssh/sshd_config

搜索  #PasswordAuthentication  并去掉前面的 # 号,将值设为 no,搜索 ChallengeResponseAuthentication 并去掉 #号,将值也设为 no,如下:

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
ChallengeResponseAuthentication no

修改 ssh 端口为 非 22 端口

vim /etc/ssh/sshd_config

搜索 #Port (大概在文件开头位置) 修改为 Port xxxx 比如

Port 2019
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

然后 重启 sshd 比如 systemctl restart ssh

ssh 登录 邮件提醒

apt install mailutils

配置 选择 默认的 internet site,接着输入 你发邮件的 域名,比如 kpromise.top ,然后 在 ~/.bashrc 文件的末尾 加入:

TZ='Asia/Shanghai'; export TZ

IP="$(echo $SSH_CONNECTION | cut -d " " -f 1)"
HOSTNAME=$(hostname)
NOW=$(date '+%Y-%m-%d %H:%M:%S')
JSON=$(curl -H "Authorization: Bearer 5930c0c4ac416a" ipinfo.io/$IP)
CITY=$(echo $JSON | jq -r '.city')
PROVINCE=$(echo $JSON | jq -r '.region')
COUNTRY=$(echo $JSON | jq -r '.country')
LOC=$(echo $JSON | jq -r '.loc')
ORG=$(echo $JSON | jq -r '.org')i
echo -e '有人登录了您的服务器 '$HOSTNAME' , 以下是具体信息\n\n\n时间: '$NOW'\n\n登录地点:'$COUNTRY'-'$PROVINCE'-'$CITY'\n\n具体经纬度:'$LOC'\n\n运营商信息:'$ORG | mail -r 'chun@kpromise.top' -s 'SSH Login Notification' kpromise@qq.com

这里,你可以把 chun@kpromise.top 改为你自己的发件地址(不需要配置第三方邮件服务器信息),后面的 kpromise@qq.com  改为你要接收邮件的邮箱。jq 是  shell json 解析利器,以后有空再做介绍吧,另外,配置域名的 spf 记录。

配置 域名 spf 记录

spf 记录 本质上是新建一个 txt 记录,主机记录 @,value  大致可以是  v=spf1 include:spf.kpromise.top -all   这里 spf.kpromise.top 改为你自己的 spf 域名,然后新建 A 记录,主机记录 为 spf 值为 邮件服务器 ip

本博客若无特殊说明则由 full-stack-trip 原创发布
转载请点名出处:编程生涯 > Linux Server 安全设置
本文地址:https://www.kpromise.top/linux-server-security-settings/

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注