ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris の管理: IP サービス Oracle Solaris 11 Information Library (日本語) |
13. DHCP コマンドと DHCP ファイル (リファレンス)
16. IP セキュリティーアーキテクチャー (リファレンス)
20. Oracle Solaris の IP フィルタ (概要)
アクティブでないパケットフィルタリング規則セットを参照する方法
別のパケットフィルタリング規則セット、または更新されたパケットフィルタリング規則セットをアクティブにする方法
アクティブなパケットフィルタリング規則セットに規則を追加する方法
アクティブでないパケットフィルタリング規則セットに規則を追加する方法
アクティブなパケットフィルタリング規則セットとアクティブでないパケットフィルタリング規則セットを切り替える方法
カーネルからアクティブでないパケットフィルタリング規則セットを削除する方法
規則セットとアドレスプールを作成および変更するには、構成ファイルを直接編集する必要があります。構成ファイルは、次のような標準的な UNIX 構文規則に従っています。
シャープ記号 (#) は、コメントを含む行を示します。
規則とコメントは、同一の行に共存できます。
規則を読みやすくするために、不要な空白を使用できます。
複数行に渡って規則を記述できます。行の最後のバックスラッシュ (\) は、規則が次の行に続いていることを示します。
次の手順では、次のファイルの設定方法を説明します。
パケットフィルタリングの構成ファイル
NAT 規則の構成ファイル
アドレスプールの構成ファイル
IP Filter Management の権利プロファイルは、ユーザーが作成した役割に割り当てることができます。役割の作成と役割のユーザーへの割り当てについては、『Oracle Solaris の管理: セキュリティーサービス』の「RBAC の初期構成 (タスクマップ)」を参照してください。
パケットフィルタリング規則の構成ファイルを作成するには、ipf.conf ファイルを編集します。
IP フィルタは、ipf.conf ファイルに保存したパケットフィルタリング規則を使用します。パケットフィルタリングの規則ファイルを /etc/ipf/ipf.conf ファイルに保存した場合は、システムのブート時に、このファイルがロードされます。フィルタリング規則をブート時にロードしない場合は、このファイルを別の場所に保存します。次に、ipf コマンドで規則をアクティブにします (「別のパケットフィルタリング規則セット、または更新されたパケットフィルタリング規則セットをアクティブにする方法」を参照)。
パケットフィルタリング規則を作成する方法については、「IP フィルタのパケットのフィルタリング機能の使用」を参照してください。
注 - ipf.conf ファイルが空の場合は、フィルタリングは行われません。空の ipf.conf ファイルは、次のような規則セットを持っているのと同じです。
pass in all pass out all
NAT 規則の構成ファイルを作成するには、 ipnat.conf ファイルを編集します。
IP フィルタは、ipnat.conf ファイルに保存した NAT 規則を使用します。NAT の規則ファイルを /etc/ipf/ipnat.conf ファイルに保存した場合は、システムのブート時に、このファイルがロードされます。NAT 規則をブート時にロードしない場合は、適当な場所に ipnat.conf ファイルを保存します。次に、 ipnat コマンドで NAT 規則をアクティブ化します。
NAT 用の規則の作成については、「IP フィルタの NAT 機能の使用」を参照してください。
アドレスプールの構成ファイルを作成するには、ippool.conf ファイルを編集します。
IP フィルタは、ippool.conf ファイルに保存したアドレスのプールを使用します。アドレスプールの規則ファイルを /etc/ipf/ippool.conf ファイルに保存した場合は、システムのブート時に、このファイルがロードされます。アドレスプールをブート時にロードしない場合は、適当な場所に ippool.conf ファイルを保存します。次に、ippool コマンドでアドレスプールをアクティブ化できます。
アドレスプールの作成については、「IP フィルタのアドレスプール機能の使用」を参照してください。
次の例は、フィルタリング構成で使用されるパケットフィルタリング規則を示しています。
例 21-24 IP フィルタのホスト構成
この例は、bge ネットワークインタフェースを備えたホストマシンの構成を示しています。
# pass and log everything by default pass in log on bge0 all pass out log on bge0 all # block, but don't log, incoming packets from other reserved addresses block in quick on bge0 from 10.0.0.0/8 to any block in quick on bge0 from 172.16.0.0/12 to any # block and log untrusted internal IPs. 0/32 is notation that replaces # address of the machine running Solaris IP Filter. block in log quick from 192.168.1.15 to <thishost> block in log quick from 192.168.1.43 to <thishost> # block and log X11 (port 6000) and remote procedure call # and portmapper (port 111) attempts block in log quick on bge0 proto tcp from any to bge0/32 port = 6000 keep state block in log quick on bge0 proto tcp/udp from any to bge0/32 port = 111 keep state
この規則セットは、すべてのデータが bge インタフェースを出入りできる 2 つの制限なしの規則で開始します。2 番目の規則セットは、プライベートアドレス空間 10.0.0.0 および 172.16.0.0 からの受信パケットがファイアウォールの中に入るのをブロックします。次の規則セットは、ホストマシンからの特定の内部アドレスをブロックします。そして、最後の規則セットは、ポート 6000 およびポート 111 から受信されるパケットをブロックします。
例 21-25 IP フィルタのサーバー構成
この例は、Web サーバーとして機能するホストマシンの構成を示しています。このマシンには、e1000g ネットワークインタフェースがあります。
# web server with an e1000g interface # block and log everything by default; # then allow specific services # group 100 - inbound rules # group 200 - outbound rules # (0/32) resolves to our IP address) *** FTP proxy *** # block short packets which are packets # fragmented too short to be real. block in log quick all with short # block and log inbound and outbound by default, # group by destination block in log on e1000g0 from any to any head 100 block out log on e1000g0 from any to any head 200 # web rules that get hit most often pass in quick on e1000g0 proto tcp from any \ to e1000g0/32 port = http flags S keep state group 100 pass in quick on e1000g0 proto tcp from any \ to e1000g0/32 port = https flags S keep state group 100 # inbound traffic - ssh, auth pass in quick on e1000g0 proto tcp from any \ to e1000g0/32 port = 22 flags S keep state group 100 pass in log quick on e1000g0 proto tcp from any \ to e1000g0/32 port = 113 flags S keep state group 100 pass in log quick on e1000g0 proto tcp from any port = 113 \ to e1000g0/32 flags S keep state group 100 # outbound traffic - DNS, auth, NTP, ssh, WWW, smtp pass out quick on e1000g0 proto tcp/udp from e1000g0/32 \ to any port = domain flags S keep state group 200 pass in quick on e1000g0 proto udp from any \ port = domain to e1000g0/32 group 100 pass out quick on e1000g0 proto tcp from e1000g0/32 \ to any port = 113 flags S keep state group 200 pass out quick on e1000g0 proto tcp from e1000g0/32 port = 113 \ to any flags S keep state group 200 pass out quick on e1000g0 proto udp from e1000g0/32 to any \ port = ntp group 200 pass in quick on e1000g0 proto udp from any \ port = ntp to e1000g0/32 port = ntp group 100 pass out quick on e1000g0 proto tcp from e1000g0/32 \ to any port = ssh flags S keep state group 200 pass out quick on e1000g0 proto tcp from e1000g0/32 \ to any port = http flags S keep state group 200 pass out quick on e1000g0 proto tcp from e1000g0/32 \ to any port = https flags S keep state group 200 pass out quick on e1000g0 proto tcp from e1000g0/32 \ to any port = smtp flags S keep state group 200 # pass icmp packets in and out pass in quick on e1000g0 proto icmp from any to e1000g0/32 keep state group 100 pass out quick on e1000g0 proto icmp from e1000g0/32 to any keep state group 200 # block and ignore NETBIOS packets block in quick on e1000g0 proto tcp from any \ to any port = 135 flags S keep state group 100 block in quick on e1000g0 proto tcp from any port = 137 \ to any flags S keep state group 100 block in quick on e1000g0 proto udp from any to any port = 137 group 100 block in quick on e1000g0 proto udp from any port = 137 to any group 100 block in quick on e1000g0 proto tcp from any port = 138 \ to any flags S keep state group 100 block in quick on e1000g0 proto udp from any port = 138 to any group 100 block in quick on e1000g0 proto tcp from any port = 139 to any flags S keep state group 100 block in quick on e1000g0 proto udp from any port = 139 to any group 100
例 21-26 IP フィルタのルーター構成
この例は、内部インタフェース nge と外部インタフェース ce1 を備えるルーターの構成を示しています。
# internal interface is nge0 at 192.168.1.1 # external interface is nge1 IP obtained via DHCP # block all packets and allow specific services *** NAT *** *** POOLS *** # Short packets which are fragmented too short to be real. block in log quick all with short # By default, block and log everything. block in log on nge0 all block in log on nge1 all block out log on nge0 all block out log on nge1 all # Packets going in/out of network interfaces that aren't on the loopback # interface should not exist. block in log quick on nge0 from 127.0.0.0/8 to any block in log quick on nge0 from any to 127.0.0.0/8 block in log quick on nge1 from 127.0.0.0/8 to any block in log quick on nge1 from any to 127.0.0.0/8 # Deny reserved addresses. block in quick on nge1 from 10.0.0.0/8 to any block in quick on nge1 from 172.16.0.0/12 to any block in log quick on nge1 from 192.168.1.0/24 to any block in quick on nge1 from 192.168.0.0/16 to any # Allow internal traffic pass in quick on nge0 from 192.168.1.0/24 to 192.168.1.0/24 pass out quick on nge0 from 192.168.1.0/24 to 192.168.1.0/24 # Allow outgoing DNS requests from our servers on .1, .2, and .3 pass out quick on nge1 proto tcp/udp from nge1/32 to any port = domain keep state pass in quick on nge0 proto tcp/udp from 192.168.1.2 to any port = domain keep state pass in quick on nge0 proto tcp/udp from 192.168.1.3 to any port = domain keep state # Allow NTP from any internal hosts to any external NTP server. pass in quick on nge0 proto udp from 192.168.1.0/24 to any port = 123 keep state pass out quick on nge1 proto udp from any to any port = 123 keep state # Allow incoming mail pass in quick on nge1 proto tcp from any to nge1/32 port = smtp keep state pass in quick on nge1 proto tcp from any to nge1/32 port = smtp keep state pass out quick on nge1 proto tcp from 192.168.1.0/24 to any port = smtp keep state # Allow outgoing connections: SSH, WWW, NNTP, mail, whois pass in quick on nge0 proto tcp from 192.168.1.0/24 to any port = 22 keep state pass out quick on nge1 proto tcp from 192.168.1.0/24 to any port = 22 keep state pass in quick on nge0 proto tcp from 192.168.1.0/24 to any port = 80 keep state pass out quick on nge1 proto tcp from 192.168.1.0/24 to any port = 80 keep state pass in quick on nge0 proto tcp from 192.168.1.0/24 to any port = 443 keep state pass out quick on nge1 proto tcp from 192.168.1.0/24 to any port = 443 keep state pass in quick on nge0 proto tcp from 192.168.1.0/24 to any port = nntp keep state block in quick on nge1 proto tcp from any to any port = nntp keep state pass out quick on nge1 proto tcp from 192.168.1.0/24 to any port = nntp keep state pass in quick on nge0 proto tcp from 192.168.1.0/24 to any port = smtp keep state pass in quick on nge0 proto tcp from 192.168.1.0/24 to any port = whois keep state pass out quick on nge1 proto tcp from any to any port = whois keep state # Allow ssh from offsite pass in quick on nge1 proto tcp from any to nge1/32 port = 22 keep state # Allow ping out pass in quick on nge0 proto icmp all keep state pass out quick on nge1 proto icmp all keep state # allow auth out pass out quick on nge1 proto tcp from nge1/32 to any port = 113 keep state pass out quick on nge1 proto tcp from nge1/32 port = 113 to any keep state # return rst for incoming auth block return-rst in quick on nge1 proto tcp from any to any port = 113 flags S/SA # log and return reset for any TCP packets with S/SA block return-rst in log on nge1 proto tcp from any to any flags S/SA # return ICMP error packets for invalid UDP packets block return-icmp(net-unr) in proto udp all