- blogs:
- cles::blog
2022/09/24

firewalld を使って Docer で公開したポートをアクセス制限



Docker のコンテナに対する通信は nftables
(iptables
) の INPUT
chain を通らないので通常のルールが効きません。
このことを忘れていると、Docker で立ち上げたサービスのポートがうっかり外部に公開されていたということになってしまいます。
みんな困っていると思うのですが、あまり良い解決方法がないようなので firewalld にルールを設定してみました。
ルールはipset で作ったホワイトリストと firewalld
を流用することにしました。
コンテナへの通信は FORWARD
から DOCKER-USER
に流れるようなので、DOCKER-USER
の方にルールを入れていきます*1。
以下の設定では http
(80/tcp), https
(443/tcp,udp) は無条件で許可し、それ以外のポートの通信はホワイトリストに従います。
# chain を定義
firewall-cmd --permanent --direct --add-chain ipv4 filter DOCKER-USER
# ホワイトリスト
firewall-cmd --permanent --direct --add-passthrough ipv4 -I DOCKER-USER -m state --state NEW -m set ! --match-set WHITELIST src -m set --match-set BLACKLIST src -p udp -j DROP
firewall-cmd --permanent --direct --add-passthrough ipv4 -I DOCKER-USER -m state --state NEW -m set ! --match-set WHITELIST src -m set --match-set BLACKLIST src -p tcp -j DROP
# 無条件で許可するポート
firewall-cmd --permanent --direct --add-passthrough ipv4 -I DOCKER-USER -m state --state NEW -m multiport -p udp --dports 443 -j RETURN
firewall-cmd --permanent --direct --add-passthrough ipv4 -I DOCKER-USER -m state --state NEW -m multiport -p tcp --dports 80,443 -j RETURN
# 戻りパケットを許可
firewall-cmd --permanent --direct --add-passthrough ipv4 -I DOCKER-USER -m state --state ESTABLISHED,RELATED -j RETURN
# ルールを再読み込み
firewall-cmd --reload
この passthrough 定義は初めて使いました。
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/13505
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . Thunderbird のメッセージをスレッド化しないようにする(2136)
2 . Word で数式がグレーアウトされていて挿入できないときは(1811)
3 . Firefox でパスワードが保存されるページとされないページの違い(1397)
4 . Windows 10 で勝手にログアウトされないようにする(1302)
5 . iPhone の設定を開くと「不正なパスワード CardDAV アカウント "Google" のパスワードを入力」というダイアログが出る時は(891)
2 . Word で数式がグレーアウトされていて挿入できないときは(1811)
3 . Firefox でパスワードが保存されるページとされないページの違い(1397)
4 . Windows 10 で勝手にログアウトされないようにする(1302)
5 . iPhone の設定を開くと「不正なパスワード CardDAV アカウント "Google" のパスワードを入力」というダイアログが出る時は(891)
cles::blogについて
Referrers