답변:
원하는 소스 IP를 연속 범위로 집계 할 수있는 경우에만 가능합니다. 예 :
iptables -A INPUT -s 192.168.0.0/24 -d 192.168.0.5 -p tcp -j ACCEPT
원하는 IP를 포괄하는 일반적인 넷 마스크를 찾을 수 없으면 원하는 것을 수행하기 위해 동일한 규칙을 여러 개 작성해야합니다.
iptables 규칙 작성의 낮은 수준을 처리 할 수있는 몇 가지 iptables 프레임 워크가 있으므로 규칙을보다 대칭적인 수준으로 정의 할 수 있습니다. Shorewall 은 최신 Linux 배포판과 함께 제공되는 일반적인 것입니다.
단일 명령으로 여러 소스를 추가하려면 다음을 수행하십시오.
iptables -t filter -A INPUT -s 192.168.1.1,2.2.2.2,10.10.10.10 -j ACCEPT
iptables는 자동으로 여러 규칙 으로 변환합니다 .
-m multiport --dports 123,456,789
여러 포트에 사용할 수 있습니다
iptables v1.3.7
주어진 명령을 사용 하면 iptables -I FORWARD -s 5.188.206.14,193.238.47.5 -j DROP
오류 " host/network '5.188.206.14,193.238.47.5' not found
"가 반환 됩니다.
다음과 같이 iprange 모듈을 '--src-range'와 함께 사용할 수 있습니다.
-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.
(이것은 4 살짜리 질문과 같지만 인터넷에서 이것을 찾는 사람에게 대답하는 것입니다)
원래 질문은 2009 년 5 월에서 왔지만 2011 년 5 월부터 Linux 커널에는 ipset 이라는이 요구를 해결하는 기능이 있습니다 .
다음은 ipset을 만들고 주소를 추가 한 다음 방화벽 규칙에서 사용하는 예제입니다.
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
참조 man iptables
및 man ipset
추가 정보를 원하시면.
Bòss King의 의견 외에도 쉼표로 구분 된 여러 주소를 간단히 지정할 수도 있습니다.
[!] -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).
bash
에서 백 슬래시로 반전을 피해야합니다.\! -s 192.168.1.3 ...
iptables v1.6.1: ! not allowed with multiple source or destination IP addresses
:-(
독립적 인 요구 사항 목록을 결합 할 수 있도록 여러 체인을 정의 할 수 있습니다. 나는 이것이 당신이 원하는 것이지 의심하지만 여전히 꽤 편리합니다. 이를 사용하여 IP로 유효한 사용자 유형 목록을 정의한 다음 소스 네트워크에 포트 제한을 적용합니다. 예를 들어,
# Allow SMTP from anywhere
-A tcp_inbound -p tcp -m tcp -s 0/0 --dport 25 -j allowed
#
# Define the set of IP ranges we'll send to the tcp_user_inbound chain
-A tcp_inbound -p tcp -m tcp -s 172.19.1.0/24 -j tcp_user_inbound
-A tcp_inbound -p tcp -m tcp -s 172.19.6.0/23 -j tcp_user_inbound
-A tcp_inbound -p tcp -m tcp -s 172.19.8.0/24 -j tcp_user_inbound
-A tcp_inbound -p tcp -m tcp -s 172.19.10.0/23 -j tcp_user_inbound
-A tcp_inbound -p tcp -m tcp -s 172.19.12.0/23 -j tcp_user_inbound
-A tcp_inbound -p tcp -m tcp -s 172.19.4.0/23 -j tcp_user_inbound
#
# Ports we allow access to based on a source-address prereq.
# SSH
-A tcp_user_inbound -p tcp -m tcp --dport 22 -j allowed
# VNC
-A tcp_user_inbound -p tcp -m tcp --dport 5950:5958 -j allowed
# https
-A tcp_user_inbound -p tcp -m tcp --dport 443 -j allowed
예를 들어 10.0.0.2 또는 192.168.1.2에서 온 SMTP 패킷 만 허용한다고 가정 해 봅시다. 다음 규칙을 사용할 수 있습니다.
# 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