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
2つのアドレス(x.x.x.x
および)を使用してy.y.y.y
新しいセット(iphashタイプのmyset)を生成します。
その後、コマンドはiptables
一致仕様を使用してセットを参照します-m set --set myset dst
。これは、「ターゲットヘッダーがmysetというセットに一致する(つまり、含まれる)パケットを一致させること」を意味します。
このフラグはdst
「ターゲット」一致を示します。このフラグはsrc
「source」で一致し、src、dstフラグはソースとターゲットで一致します。