====== 服务器安全设置 ======
主要运用 ubuntu 自带的防火墙工具 UFW 进行设定。(([[https://www.myfreax.com/how-to-setup-a-firewall-with-ufw-on-ubuntu-18-04/|Ubuntu 18.04上使用UFW设置防火墙]]))
(([[https://kalasearch.cn/community/tutorials/ufw-essentials-common-firewall-rules-and-commands/|UFW 通用防火墙规则和命令
]]))
(([[https://www.digitalocean.com/community/tutorials/how-to-setup-a-firewall-with-ufw-on-an-ubuntu-and-debian-cloud-server|How To Setup a Firewall with UFW on an Ubuntu and Debian Cloud Server]]))
也可以利用 iptables 白名单的方式进行保护。(([[https://www.cnblogs.com/eugene0/p/12056901.html|Ubuntu 16.04 设置防火墙白名单]]))
UFW 使用比较简单,因此首先考虑使用这种方式。
安装 ''sudo apt install ufw'' \\
检查状态 ''sudo ufw status verbose'' \\
列举可用的配置文件 ''sudo ufw app list'' \\
查看 Nginx 使用了哪些端口 sudo ufw app info 'Nginx Full' \\
允许ssh ''sudo ufw allow ssh'' (很重要,否则连不上服务器了)\\
启动UFW服务 ''sudo ufw enable'' \\
停用服务 ''sudo ufw disable'' \\
重置设定 ''sudo ufw reset'' \\
列举现有的规则 ''sudo ufw status numbered'' \\
删除3号规则 ''sudo ufw delete 3''\\
限制端口22访问 ''%%sudo ufw limit 22%%'' 防止黑客对其进行攻击
sudo ufw allow http
sudo ufw allow 80/tcp
sudo ufw allow 'Nginx HTTP'
sudo ufw allow https
sudo ufw allow 443/tcp
sudo ufw allow 'Nginx HTTPS'
sudo ufw allow 7100:7200/tcp # 允许特点端口
sudo ufw allow 7100:7200/udp
sudo ufw allow from 64.63.62.61 # 允许白名单
sudo ufw allow from 64.63.62.61 to any port 22 # 只允许64.63.62.61的主机访问端口22
sudo ufw allow from 192.168.0.100/200 to any port 873
sudo ufw allow from 192.168.0.0/24 to any port 22 # 允许整个子网访问
sudo ufw deny from 23.24.25.0/24 # 拒绝黑名单
sudo ufw default deny incoming # 拒绝所有访问,除非指定
sudo ufw default allow outgoing # 允许数据出去
[[https://ipcmen.com/iptables|iptables 详细用法]]
- 启动/关闭 ''%%service iptables start%%'' (stop)
- 删除 ''%%apt-get purge netfilter-persistent%%'' && reboot
- 强制删除 ''%%rm -rf /etc/iptables && reboot%%''
[[https://cloud.tencent.com/developer/article/1334624|常用命令]]
sudo iptables -P INPUT ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -F // 清除所有的已订定的规则
sudo iptables -X
sudo iptables -Z
{{tag>vps ubuntu acme}}