今天,我发现自己的博客被攻击了,没错,人生第一次,服务器被人攻破,的确值得放烟花庆祝,不过,这个攻击也没做啥事,就是登录后下载了一个脚本 fanelishere.tk/arhive/info 然后运行了这个脚本,此外再无其他。但,终究还是被人攻击了。所以有了此文,本文主要讲述我个人了解的 Linux 服务器 安全设置。
vim /etc/ssh/sshd_config
搜索 #PasswordAuthentication 并去掉前面的 # 号,将值设为 no,搜索 ChallengeResponseAuthentication 并去掉 #号,将值也设为 no,如下:
# To disable tunneled clear text passwords, change to no here! PasswordAuthentication no ChallengeResponseAuthentication no
vim /etc/ssh/sshd_config
搜索 #Port (大概在文件开头位置) 修改为 Port xxxx 比如
Port 2019 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress ::
然后 重启 sshd 比如 systemctl restart 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 记录 本质上是新建一个 txt 记录,主机记录 @,value 大致可以是 v=spf1 include:spf.kpromise.top -all 这里 spf.kpromise.top 改为你自己的 spf 域名,然后新建 A 记录,主机记录 为 spf 值为 邮件服务器 ip