ISP의 IP 블록 세트에 의해 정의된 동적 IP를 사용하고 있습니다. ssh, ftp, MySql을 열고 해당 청크를 기다리고 싶습니다. 각 규칙에 대해 모든 항목을 지정하고 싶지 않습니다. 허용된 모든 주소를 그룹으로 설정한 다음 액세스하려는 각 포트에 할당하는 방법이 있습니까?
답변1
CentOS를 언급했지만 특정 버전은 언급하지 않았습니다.
운영체제 6
CentOS 6에서 방화벽은 다음과 같습니다 /etc/sysconfig/iptables
.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:INTERNAL - [0:0]
:INTERNAL_allow - [0:0]
:LOGGING - [0:0]
#LOGGING Chain
-A LOGGING -p tcp -m limit --limit 2/min -j LOG --log-prefix "iptables DROP: " --log-level 4
#INPUT Chain
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j INTERNAL
-A INPUT -j LOGGING
-A INPUT -j REJECT --reject-with icmp-host-prohibited
#INTERNAL Chain to define networks (only networks that match continue to INTERNAL_allow)
-A INTERNAL -s 192.168.10.0/24 -g INTERNAL_allow
-A INTERNAL -s 10.9.8.0/24 -g INTERNAL_allow
#INTERNAL_allow Chain to define allowed ports on those networks
-A INTERNAL_allow -p icmp -j ACCEPT
#open a single port using tcp module
-A INTERNAL_allow -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
#open multiple ports using multiport module
-A INTERNAL_allow -p tcp -m state --state NEW -m multiport --dport 21,3306 -j ACCEPT
또한보십시오:
man iptables
모듈과 매개변수에 대한 것multiport
입니다 .tcp
-g
운영체제 7
방화벽에서 영역을 사용할 수 있습니다. 나는 이것에 대한 경험이 많지 않습니다.
답변2
일련의 IPs
용도를 생성 ipset
한 다음 여기에 제한 사항을 추가할 수 있습니다.
예를 들어 다음을 만듭니다 ipset
.
ipset -N myset hash:ip,port
컬렉션에 ip
추가 :port
ipset add myset x.x.x.0/24,80-82
ipset add myset x.x.x.x,udp:53
ipset add myset y.y.y.y,vrrp:0
iptables
그런 다음 해당 세트에 대한 규칙을 생성하려면 방화벽과 함께 사용할 수 있습니다 .
iptables -A INPUT -m set --set myset dst -j ACCEPT
위 명령은 ipset
두 개의 주소( x.x.x.x
및 )를 사용하여 y.y.y.y
새로운 세트(iphash 유형의 myset)를 생성합니다.
그런 다음 명령은 iptables
일치 사양을 사용하여 세트를 참조합니다 -m set --set myset dst
. 이는 "대상 헤더가 myset이라는 세트와 일치하는(즉, 포함된) 패킷을 일치시키는 것"을 의미합니다.
이 플래그는 dst
"대상" 일치를 나타냅니다. 이 플래그는 src
"source"에서 일치하고 src,dst 플래그는 소스 및 대상에서 일치합니다.