Dockerファイアウォール設定
Dockerホストのファイアウォール設定
Dockerホストのファイアウォールを設定する
- Debian/Ubuntu Serverを前提とする
- Docker Host Server上での動作を想定
必要なパッケージのインストール
# Ultimate Firewall Neededapt-get update && apt-get install -y ufw nmap curl内部IPアドレスと外部IPアドレスを取得する
# Get your IP Addresses, simple output:hostname --all-ip-addresses
# または ip ツールを使用する例:ip addrファイアウォール (UFW) の設定 - コマンド例
ufw logging on # on=low - 診断には medium の方が良い場合があるufw logging medium# まず、すべてをブロックufw default deny incoming
# 必須: 以下のデフォルトアウトバウンドルールから1つを選択:ufw default deny outgoingufw default allow outgoing
# 新しいSSH接続を許可してログ記録ufw allow log proto tcp from any to any port 22## HTTPトラフィックを許可(明示的なログ記録なし)ufw allow out on docker0 53/udp to 172.17.0.1/16ufw allow out on eth0 to any port 53ufw allow out on eth0 from 0.0.0.0/0 to any port 80 proto tcpufw allow out on eth0 from 0.0.0.0/0 to any port 443 proto tcp
# 冗長版: ufw allow proto tcp from any to any port 80ufw allow 80/tcpufw allow 443/tcpufw allow log 22/tcpufw limit ssh # 基本レート制限: SSHブルートフォース対策 (4回)
# Set your ext IPexport EXTERNAL_IP=123.123.123.123# Update docker IP if neededexport DOCKER_IP=172.17.42.1# Forward tcp 8080 traffic to Dockerized Appufw allow proto tcp from $EXTERNAL_IP port 8080 to $DOCKER_IP port 3000ファイアウォールの有効化 / 起動
注意: SSHポート(sshdのデフォルトは22)をロックアウトしないように注意してください
ufw --force enable
ufw resetファイアウォールのテスト
重要: リモートのIPアドレス/ロケーションを使用すること
# Verify dependencyapt-get update && apt-get install -y nmap
# Set scan targetexport TARGET_HOST=123.123.123.123
# Example Scan Commands:# Fast open port checknmap -p 1-10240,27017 -T5 $TARGET_HOST# Thorough scannmap -p 1-10240,27017 --open -v -APN $TARGET_HOST# Svc Inspectionnmap -p 1-10240,27017 -O --osscan-guess $TARGET_HOST完了!これで、設定したポートだけが表示されるはずです!