ipset -N office365 iphash
ipset -A office365 132.245.228.194
ipset -A office365 132.245.77.34
ipset -A office365 132.245.48.34
ipset -A office365 132.245.68.242
ipset -A office365 132.245.55.2
ipset -A office365 40.101.17.98
ipset -A office365 132.245.48.18
ipset -A office365 132.245.229.114
ipset -A office365 132.245.196.34
ipset -A office365 132.245.56.114
iptables -A OUTPUT -m set --match-set office365 dst -j ACCEPT
-A INPUT -i eth0 -m iprange --src-range 192.168.1.90-192.168.1.101 -j ACCEPT
来源:iptables 1.4.7 手册页
iprange
This matches on a given arbitrary range of IP addresses.
[!] --src-range from[-to]
Match source IP in the specified range.
[!] --dst-range from[-to]
Match destination IP in the specified range.
[!] -s, --source address[/mask][,...]
Source specification. Address can be either a network name, a hostname, a network IP address (with /mask), or a plain IP address. Hostnames will be resolved once only, before the rule is submitted to the kernel. Please note that specifying
any name to be resolved with a remote query such as DNS is a really bad idea. The mask can be either a network mask or a plain number, specifying the number of 1's at the left side of the network mask. Thus, a mask of 24 is equivalent to
255.255.255.0. A "!" argument before the address specification inverts the sense of the address. The flag --src is an alias for this option. Multiple addresses can be specified, but this will expand to multiple rules (when adding with -A),
or will cause multiple rules to be deleted (with -D).
# create a new chain
iptables --new-chain multiple_sources_smtp
# send all SMTP connections to the new chain
iptables --append INPUT --protocol tcp --dport 25 --jump multiple_sources_smtp
# use the default INPUT rules for packets coming from allowed sources
iptables --append multiple_sources_smtp --source 10.0.0.2 --jump RETURN
iptables --append multiple_sources_smtp --source 192.168.1.2 --jump RETURN
# drop packets from anywhere else
iptables --append multiple_sources_smtp -j DROP
或者作为的输出iptables-save
# Generated by iptables-save v1.4.14 on Sat Dec 6 09:17:11 2014
*filter
:INPUT ACCEPT [32:13325]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [25:3084]
:multiple_sources_smtp - [0:0]
-A INPUT -p tcp -m tcp --dport 25 -j multiple_sources_smtp
-A multiple_sources_smtp -s 10.0.0.2/32 -j RETURN
-A multiple_sources_smtp -s 192.168.1.2/32 -j RETURN
-A multiple_sources_smtp -j DROP
COMMIT
# Completed on Sat Dec 6 09:17:11 2014
要在单个命令中添加多个源,我会这样做:
iptables 会自动将其翻译成多个规则。
最初的问题是从 2009 年 5 月开始的,但自 2011 年 5 月以来,Linux 内核有一个功能可以满足这种需求,称为ipset。
下面是一个创建 ipset、为其添加地址、然后在防火墙规则中使用它的示例:
请参阅
man iptables
和man ipset
了解更多信息。您可以将 iprange 模块与“--src-range”结合使用,例如:
来源:iptables 1.4.7 手册页
(我知道这就像一个 4 岁的问题,但只是为了回答任何在网上寻求这个问题的人)
仅当您可以将所需的源 IP 聚合到连续范围内时,这才有可能。例如
如果您找不到涵盖所需 IP 的通用网络掩码,则必须编写几个相同的规则来执行您想要的操作。
有几个 iptables 框架可以处理编写 iptables 规则的低级别,允许您在更符号级别定义规则。Shorewall是大多数当前 linux 发行版附带的常见防火墙。
除了 Bòss King 的注释之外,您还可以简单地指定几个用逗号分隔的地址:
您可以定义多个链,以便可以组合独立的需求列表。我怀疑这正是你想要的,但它仍然很方便。我们使用它来按 IP 定义有效用户类型的列表,然后将端口限制应用于源网络。因此,例如:
例如,假设您只想接受来自 10.0.0.2 或 192.168.1.2 的 SMTP 数据包。您可以使用以下规则:
或者作为的输出
iptables-save