2022.03.03
脱 PPAPへの挑戦 EDRを守る三つのセキュリティインフラ構築の実践(2)UFW「Uncomplicated Firewall」編
#メール #サイバーセキュリティ #フィッシング #スパイウェア #Saas #マルウェア
トップ > 技術ナレッジのアーカイブ > 脱 PPAPへの挑戦 EDRを守る三つのセキュリティインフラ構築の実践(2)~UFW「Uncomplicated Firewall」編
2022.03.03
#メール #サイバーセキュリティ #フィッシング #スパイウェア #Saas #マルウェア
Firewallの設定について解説します。このFireWall 「Uncomplicated Firewall」はUbuntuにデフォルトで導入されているため導入が比較的簡単だと思われます。
この章ではUFWのブラックリスト登録・ホワイトリスト登録の方法について説明していきたいと思います。
まずFW(ufw)は先述した通りデフォルトで導入されているためinstallする必要はありません。
FWのホワイトリスト・ブラックリスト登録の設定の前に起動方法や状態の確認方法について記述します。
- #sudo ufw enable
- #sudo ufw status verbose
- #sudo ufw disable
上述の「FWの状態を確認するコマンド」を実行し、
ホワイトリストの場合には
default:deny
と表示されていれば問題ありません。
ブラックリストの場合には
default:allow
と表示されていれば問題ありません。
次にホワイトリスト、ブラックリストについてです。
ホワイトリスト・ブラックリストの設定方法の前にこの二つの違いについて説明したいと思います。
あらかじめ「安全な対象」をリストへ定義して、対象外となるIPアドレスからのアクセスを受け付けないことでサイバー攻撃を防ぐ手法のことを言います。
定義した安全な対象からのみからしかアクセスを受け付けないため、未知の脆弱性にも担保されますが不特定多数とのやり取りが必要なサービスではリスト載っていない対象はアクセスできないため利便性が欠けるためクローズドなサービスで使用することに長けています。
ホワイトリストとは反対であらかじめ「危険な対象」をリストへ定義して危険な対象以外からのIPを受け付けることでサイバー攻撃を防ぐ手法のことを言います。
不特定の多数とのアクセスが必要なサービスにおいて決められた相手としか通信ができないホワイトリスト方式よりも利便性が高いです
ただしブラックリスト方式はは既知の脆弱性には対応できますが、発見された未知の脆弱性には使用しているセキュリティ製品の未知の脆弱性に対応したブラックリストを更新するまで対応できないという弱点があります。
続いてホワイトリストの設定です。
UFWはデフォルトでは全てのIPからのアクセスをブロックしています。
そのためホワイトリスト方式を使用する場合には許可したいIPアドレスやポート番号を設定することで完了します。
ホワイトリストではルールを追加する順番がとても大事です。
UFWではデフォルトですべてのリクエストをブロックした後で追加で許可するIPやポート番号を指定します。
- #sudo allow from <IPアドレス>
- #sudo allow from <IPアドレス/サブネット>
- #sudo allow from <IPアドレス> to any port <ポート>
- #sudo allow from <IPアドレス> to any port <ポート> proto <TCP/UDP>
ブラックリストの設定は上記で上げた通り最初全てのIPからのアクセスがブロックされているためすべてのIPのアクセスを許可した後にアクセスをブロックする特定のIPを設定する必要が有ります。
ですので、まずは以下のコマンドで全てのIPを許可します。
- #ufw default allow
特定のIPからのアクセスをブロックします。
- #sudo deny from <IPアドレス>
特定のIPとポートへのアクセスをブロックします。
- #sudo deny from <IPアドレス> to any port <ポート>
FWが動いているかを確認します。
- #sudo ufw status numbered
ブラックリストに追加したIPやポートの設定を削除して通信が行える状態にします。
- #sudo ufw delete <ルール番号>
Icmp(ping)を無効化することでホストとして発見されなくなるため、攻撃者によるPortScanを防ぐ効果があります。
まずはicmpの設定ファイルを開きます。開くと以下のような記述になっています。
次に以下のような記述がされいる部分を書き換えることでpingをブロックすることができます。
変更前
- # ok icmp codes for INPUT
- -A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
- -A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
- -A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
- -A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
変更後
- # ok icmp codes for INPUT
- -A ufw-before-input -p icmp --icmp-type destination-unreachable -j DROP
- -A ufw-before-input -p icmp --icmp-type time-exceeded -j DROP
- -A ufw-before-input -p icmp --icmp-type parameter-problem -j DROP
- -A ufw-before-input -p icmp --icmp-type echo-request -j DROP
ネットワークに何か攻撃を受けた際はFirewallのログを確認する必要があります。ログは以下のディレクトリに保存されます。
ログは他のアクセスロガーにインポートできます。
/etc/ufw.log
- Feb 4 23:33:37 hostname kernel: [ 3529.289825] [UFW BLOCK] IN=eth0 OUT= MAC=00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd SRC=444.333.222.111 DST=111.222.333.444 LEN=103 TOS=0x00 PREC=0x00 TTL=52 ID=0 DF PROTO=UDP SPT=53 DPT=36427 LEN=83
このログは他のアクセスロガーにインポートできます。