type
status
date
slug
summary
tags
category
icon
password
从炭云煤老板买了一台香港云服务器,用来放tiny-tiny-rss、监控面板还有跑一些Docker服务,主要用于监控一下家里OpenWRT的主路由和旁路由这些网络状态,速度稳定性什么的都OK,就是网页功能不提供防火墙配置的相关选项,我安装的系统是Ubuntu 22.04,还使用的是
iptables
,我也还懂一点点,搞一些基础的防火墙规则配置还是没问题的。那就自己上手弄一下配置吧。📝 IPv4规则配置
首先建议先使用
iptables -L
查看已有规则,确保不会和已有规则形成冲突。同时防火墙规则配置建议按照顺序进行,先进行本地配置,再进行放行端口配置,最后进行全局配置,避免iptables规则配置到一半登不进服务器的情况。允许本地回环接口
允许
lo
接口的流量,本地回环的流量是系统自身的通信,不应被阻止。允许已建立的连接
允许已建立和相关的连接继续通过,以便服务器正常处理响应流量
允许特定服务端口
允许你需要的服务端口流量,如 SSH、HTTP/HTTPS、DNS 等。具体端口按需要的顺序添加。
SSH
如果你已经在
sshd_config
中修改了SSH的监听端口,那下面的22
修改成你自己配置的端口HTTP(80)和HTTPS(443)
基础访问流量
Tinny Tinny RSS (181)
DNS
如果你在云服务器上需要搭建DNS服务器,那么建议放行。如果没有这个计划,那不添加DNS端口规则也可以。
ICMP (Ping)
允许ICMP流量,用于服务器可用性检测。
限制SSH登录尝试
添加限制SSH登录尝试的规则,保护服务器免受暴力攻击。目前配置的3分钟5次(1分钟1次也很棒了)。
日志记录和丢弃其他流量
添加日志记录规则,并丢弃所有其他未明确允许的流量。
设置默认策略
所有规则添加完成后,设置默认策略为丢弃未匹配到的输入流量和转发流量,允许输出流量。这个步骤通常放在规则之后是为了避免在规则设置过程中意外中断服务。
规则保存
我使用的是Ubuntu系统,在不想使用
iptables-save
和iptabels-restore
的情况下,希望每次系统重启可以自动加载已经配置好的规则,所以需要使用iptables-persistent
📝 IPv6规则配置
因为云服务器也有分配IPv6地址,我在平常也更倾向使用IPv6,所以IPv6的iptables防火墙规则也需要进行配置。具体与IPv4的规则配置基本相同,配置使用的命令由
iptables
更换为ip6tables
。允许本地回环接口
允许
lo
接口的流量,本地回环的流量是系统自身的通信,不应被阻止。允许已建立的连接
允许已建立和相关的连接继续通过,以便服务器正常处理响应流量
允许特定服务端口
允许你需要的服务端口流量,如SSH、HTTP/HTTPS、DNS等。具体端口按需要的顺序添加。
SSH
如果你已经在
sshd_config
中修改了SSH的监听端口,那下面的22
修改成你自己配置的端口HTTP(80)和HTTPS(443)
基础访问流量
Tinny Tinny RSS(181)
DNS
如果你在云服务器上需要搭建DNS服务器,那么建议放行。如果没有这个计划,那不添加DNS端口规则也可以。
ICMP(Ping)
允许ICMP流量,用于服务器可用性检测。
限制SSH登录尝试
添加限制SSH登录尝试的规则,保护服务器免受暴力攻击。这里建议如果有修改
sshd_config
的SSH服务监听端口的话,修改后的端口和原22
端口都添加限制登录尝试规则,扫22
端口的没有好人。日志记录和丢弃其他流量
添加日志记录规则,并丢弃所有其他未明确允许的流量。
设置默认策略
所有规则添加完成后,设置默认策略为丢弃未匹配到的输入流量和转发流量,允许输出流量。这个步骤通常放在规则之后是为了避免在规则设置过程中意外中断服务。
规则保存
我使用的是Ubuntu系统,在不想使用
iptables-save
和iptabels-restore
的情况下,希望每次系统重启可以自动加载已经配置好的规则,并且支持IPv4和IPv6的规则。以上这些需求,通过iptables-persistent
可以实现。安装过程中的提示全部
Yes
。
进行已配置规则保存:检查是否成功加载:
📎 参考文章
- Ubuntu Community Wiki: IptablesHowTo
有关云服务器(VPS)安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~