一枚切符

心に灯す竹あかり、なので

  1. 1. 环境准备
  2. 2. 生成/应用配置文件
  3. 3. 规则配置

之前使用privoxy用于分流代理,之后替换了方案,但是没有access-permit同等的功能。
调查后发现使用iptables可以实现访问控制的功能。

环境准备

设备: Raspberry Pi 3B+
OS: Debian 10 (buster) aarch64

1
sudo apt install iptables

由于debian系默认不实用配置文件的方式持久化,因此补充安装以下包

1
sudo apt install iptables-persistent netfilter-persistent

生成/应用配置文件

1
2
3
4
5
6
7
8
9
10
11
netfilter-persistent save   # 保存规则到配置文件
netfilter-persistent start # 从配置文件加载规则

iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6

iptables-restore < /etc/iptables/rules.v4
ip6tables-restore < /etc/iptables/rules.v6

# 查看防火墙+显示行号
iptables -nL --line-numbers

规则配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 放行一个ip地址
iptables -A INPUT -s 192.168.1.100 -p tcp -m tcp --dport 8080 -j ACCEPT

# 放行一个网段
iptables -A INPUT -s 192.168.2.0/24 -p tcp -m tcp --dport 8080 -j ACCEPT

# 放行多个端口
iptables -A INPUT -s 192.168.2.0/24 -p tcp -m multiport --dports 22,80:88 -j ACCEPT

# 拒绝一个端口(丢弃包,无返回)
iptables -A INPUT -p tcp -m tcp --dport 8080 -j DROP

# 拒绝一个端口(返回拒绝信息)
iptables -A INPUT -p tcp -m tcp --dport 8080 -j REJECT

本文作者 : Chen Yixin
本文使用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议
本文链接 : https://chen-yixin.github.io/2020/02/22/iptables/

本文最后更新于 天前,文中所描述的信息可能已发生改变