有一个可以上网的网关(192.168.0.1 eth1),有一个可以上网的网络192.168.0.0/24
#Разрешаем всем доступ в Интернет
sudo iptables -v -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
在某个时间(14:00)我阻止所有人访问互联网,除了某些用户:
#очищаем все правила iptables
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -F POSTROUTING
#разрешаем 10-11-12
sudo iptables -v -t nat -A POSTROUTING -s 192.168.0.10/32 -j MASQUERADE
sudo iptables -v -t nat -A POSTROUTING -s 192.168.0.11/32 -j MASQUERADE
sudo iptables -v -t nat -A POSTROUTING -s 192.168.0.12/32 -j MASQUERADE
在上面定义的地址 192.168.0 处。在 10/11/12 等日,整个 Internet 正常,其余被阻止的都没有。如何只打开对特定资源 ( rambler.ru ) 的访问,其他用户的 Internet 被阻止?试图这样做:
iptables -A OUTPUT -d rambler.ru -j ACCEPT
iptables -A INPUT -d rambler.ru -j ACCEPT
iptables -A FORWARD -d rambler.ru -j ACCEPT
iptables -L -n -v 的输出:
Chain INPUT (policy ACCEPT 19 packets, 1675 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * * 0.0.0.0/0 81.19.82.8
0 0 ACCEPT all -- * * 0.0.0.0/0 81.19.82.9
0 0 ACCEPT all -- * * 0.0.0.0/0 81.19.82.10
0 0 ACCEPT all -- * * 0.0.0.0/0 81.19.82.11
Chain FORWARD (policy ACCEPT 220 packets, 121K bytes)
pkts bytes target prot opt in out source destination
9 512 ACCEPT all -- * * 192.168.0.0/24 10.0.0.0/8
6 246 ACCEPT all -- * * 10.0.0.0/8 192.168.0.0/24
0 0 ACCEPT all -- * * 0.0.0.0/0 81.19.82.9
0 0 ACCEPT all -- * * 0.0.0.0/0 81.19.82.10
0 0 ACCEPT all -- * * 0.0.0.0/0 81.19.82.11
0 0 ACCEPT all -- * * 0.0.0.0/0 81.19.82.8
Chain OUTPUT (policy ACCEPT 18 packets, 2340 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * * 0.0.0.0/0 81.19.82.8
0 0 ACCEPT all -- * * 0.0.0.0/0 81.19.82.9
0 0 ACCEPT all -- * * 0.0.0.0/0 81.19.82.10
0 0 ACCEPT all -- * * 0.0.0.0/0 81.19.82.11
iptables -nvL -t nat 的输出:
root@gate:~# iptables -nvL -t nat
Chain PREROUTING (policy ACCEPT 1706 packets, 197K bytes)
pkts bytes target prot opt in out source destination
Chain INPUT (policy ACCEPT 211 packets, 20402 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 180 packets, 10525 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 589 packets, 39909 bytes)
pkts bytes target prot opt in out source destination
8 416 MASQUERADE all -- * * 192.168.0.11 0.0.0.0/0
0 0 MASQUERADE all -- * * 192.168.0.12 0.0.0.0/0
6 312 MASQUERADE all -- * * 192.168.0.13 0.0.0.0/0
但是,被阻止的客户端无权访问此资源。
对于“报告”:您的情况的一种简单方法:
或者创建一个新表:
并写一个规则
-A POSTROUTING -s 192.168.0.0/24 -j ALLOW2NET或者使用模块
ipset首先安装ipset;
创建一个集合
create allow2net hash:net在那里添加地址
写规则
-A PREROUTING -s 192.168.0.0/24 -m set --match-set allow2net dst -j MASQUERADE最后 2 个选项假设您有一个文件,其中包含保存的 iptables 规则,这些规则会在机器启动时加载。ipset 选项还需要一个内核模块
xt_set (ipt_set)。