服务器安全入门篇

MIKU 发布于 8 天前 19 次阅读


1.初始设置

禁用22端口弱口令登录,推荐使用高位端口+密钥登陆

https://github.com/247like/linux-ssh-init-sh

使用该仓库一键脚本快速完成对服务器的初始化安全加固

curl -fsSL https://raw.githubusercontent.com/247like/linux-ssh-init-sh/main/init.sh -o init.sh && chmod +x init.sh && ./init.sh

Windows生成密钥指令:win+R

ssh-keygen -t ed25519 -C "xxxxxxxx"

2.开启防火墙

检查目前端口状态

sudo ss -tunlp

检查防火墙状态

sudo ufw status

启动防火墙前准备工作

sudo ufw allow "ssh端口"/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

检查无误后启动防火墙(注意再次确认ssh端口已放行,避免失联)

sudo ufw enable

3.为docker额外设置防火墙规则

通常情况,安装docker后其会绕过ufw,导致端口暴露于公网,ufw形同虚设,因此添加额外规则使docker端口全部隐藏,仅限内部转发

https://github.com/chaifeng/ufw-docker 该项目提供了一个非常简便的解决方案,仅需将以下代码添加于该文件末尾:

sudo nano /etc/ufw/after.rules
# BEGIN UFW AND DOCKER
*filter
:ufw-user-forward - [0:0]
:ufw-docker-logging-deny - [0:0]
:DOCKER-USER - [0:0]
-A DOCKER-USER -j ufw-user-forward

-A DOCKER-USER -m conntrack --ctstate RELATED,ESTABLISHED -j RETURN
-A DOCKER-USER -m conntrack --ctstate INVALID -j DROP
-A DOCKER-USER -i docker0 -o docker0 -j ACCEPT

-A DOCKER-USER -j RETURN -s 10.0.0.0/8
-A DOCKER-USER -j RETURN -s 172.16.0.0/12
-A DOCKER-USER -j RETURN -s 192.168.0.0/16

-A DOCKER-USER -j ufw-docker-logging-deny -m conntrack --ctstate NEW -d 10.0.0.0/8
-A DOCKER-USER -j ufw-docker-logging-deny -m conntrack --ctstate NEW -d 172.16.0.0/12
-A DOCKER-USER -j ufw-docker-logging-deny -m conntrack --ctstate NEW -d 192.168.0.0/16

-A DOCKER-USER -j RETURN

-A ufw-docker-logging-deny -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW DOCKER BLOCK] "
-A ufw-docker-logging-deny -j DROP

COMMIT
# END UFW AND DOCKER

为避免特殊容器网络互联被阻断,向ufw添加额外放行规则:

sudo ufw route allow from 172.0.0.0/8 to 172.0.0.0/8
sudo ufw reload

可通过在其他主机执行以下命令检查防护效果:

# 扫描最常用的 1000 个端口
nmap IP

# 扫描全部 65535 个端口(耗时较长)
nmap -p- IP

# 探测端口上的服务版本和防火墙状态
nmap -sV -Pn IP
此作者没有提供个人介绍。
最后更新于 2026-01-26