さくらVPSにOpenBSDをインストールした訳だが、最初にフィルターリングの設定を行います。/etc/pf.confを下記のように設定しました。
########## Macro define #ネットワークインターフェースの定義 ext_if="em0" # 中継しないIPのテーブル table <unroutable> const {127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 255.255.255.255/32} # マルチキャストIPのテーブル table <multicast> const {224.0.0.1/32, 224.0.0.2/32} # 許可するサービスの定義 services_udp="{ domain }" services_tcp="{ ssh, smtp, domain, www, auth, imap, submission, smtps, imaps }" icmp_types = "echoreq" ######## option # ブロック時のポリシーは # ブロックしたTCP パケットにTCP RST を返す # ブロックしたUDP パケットに ICMP UNREACHABLEを返す set block-policy return ########## normalize all packets # パケットの正規化 match in all scrub (no-df) ########## Filtering rules # 全てのパケットをブロック block in log all block out all # ループバックインタフェースはフィルター対象外 set skip on lo0 # 詐称されたパケットはブロック antispoof quick for { lo0, $ext_if } # URPFチェックに失敗するパケットはブロック block in quick from urpf-failed # 中継しないIPはブロック block drop in log quick on $ext_if from { <unroutable> <multicast> } to any block drop out log quick on $ext_if from any to { <unroutable> <multicast> } # 外向けパケット pass out on $ext_if inet proto icmp all icmp-type 8 code 0 keep state pass out on $ext_if proto tcp all modulate state flags S/SA pass out on $ext_if proto udp all keep state # 内向きパケット pass in inet proto icmp all icmp-type $icmp_types keep state pass in on $ext_if inet proto tcp from any to ($ext_if) port $services_tcp flags S/SA keep state pass in on $ext_if inet proto udp from any to ($ext_if) port $services_udp keep state pass in quick on $ext_if inet proto tcp from any to ($ext_if) port ssh flags S/SA synproxy state pass in quick on $ext_if inet proto tcp from any to ($ext_if) port smtp flags S/SA synproxy state pass in quick on $ext_if inet proto tcp from any to ($ext_if) port www flags S/SA synproxy state
設定したら、記述が正しいかチェックして、OKならばロードして終わり。
# pfctl -nf /etc/pf.conf 設定チェック # pfctl -f /etc/pf.conf 設定をロード
さくらVPSはコンソールからログイン出来るので、フィルタリングの設定に失敗してログイン出来なくなっても、コンソールから修正が出来るので安心ですね。
ついでに、SSHのブルートフォース攻撃が五月蠅いので/etc/hosts.denyと/etc/hosts.allowも設定しておく。
/etc/hosts.deny
sshd: ALL
/etc/hosts.allow
sshd : 127.0.0.1 sshd : .jp
取りあえず、jpドメイン以外からの攻撃は防御出来る。
0 コメント:
コメントを投稿