ssh安全
# 1、只允许某用户从指定 IP 地址登陆
sed -i '$a AllowUsers CR@192.168.1.12 root@192.168.1.12' /etc/ssh/sshd_config ;\
systemctl restart sshd
1
2
2
# 2、设置 SSH 空闲超时退出时间
/etc/ssh/sshd_config
#ClientAliveInterval 0
#ClientAliveCountMax 3
修改成
ClientAliveInterval 30 #(每30秒往客户端发送会话请求,保持连接)
ClientAliveCountMax 3 #(去掉注释即可,3表示重连3次失败后,重启SSH会话)
1
2
3
4
5
2
3
4
5
systemctl restart sshd
# 3、 限制登陆访问尝试的验证次数
MaxAuthTries 20
1
# 4、允许 root 用户登录
sed -i 's/PermitRootLogin no/PermitRootLogin yes/g' /etc/ssh/sshd_config ;\
systemctl restart sshd
1
2
2
# 5、设置登录方式
# AuthorizedKeysFile .ssh/authorized_keys //公钥公钥认证文件
# PubkeyAuthentication yes //可以使用公钥登录
# PasswordAuthentication no //不允许使用密码登录
1
2
3
2
3
# 6、禁止使用空白密码用户访问
PermitEmptyPasswords no
1
# 7、SSH 登录事件通知至 ntfy
/etc/pam.d/sshd
session optional pam_exec.so /usr/local/bin/ntfy-ssh-login.sh
1
ntfy-ssh-login.sh
#!/bin/bash
TOPIC_URL=http://test.curiouser.top:18070/ssh-notify
if [ "${PAM_TYPE}" = "open_session" ]; then
curl -H tags:warning -H prio:high -d "SSH login to $(hostname): ${PAM_USER} from ${PAM_RHOST}" "${TOPIC_URL}"
fi
1
2
3
4
5
6
2
3
4
5
6
部署私有的 ntfy
ntfy_server:
image: 'binwiederhier/ntfy'
restart: always
container_name: ntfy_server
command: serve --config /etc/ntfy/server.yml --cache-file /var/cache/ntfy/cache.db --listen-http :18070
ports:
- '18070:18070'
volumes:
- '/data/ntfy/data:/var/cache/ntfy'
- '/data/ntfy/config:/etc/ntfy'
- '/data/ntfy/data:/var/lib/ntfy/'
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
原文链接:
上次更新: 2023/02/24, 20:47:23