◆初めに
システム構築において、内部サーバからのインターネット接続は、セキュリティ的に注意が必要となる部分ではありますが、内部サーバからのインターネット接続をすべて拒否した場合、メンテナンス性が損なわれます。
今回は、内部サーバからのインターネット接続を可能としつつ、セキュリティにも考慮したシステムを構築してみました。
【用語集】
略語 | 名称 |
---|---|
web・ap | webサーバ・アプリケーションサーバ |
db | データベースサーバ |
squid | squidサーバ |
内部サーバ | 「web・ap」、「db」、「squid」 |
fw | ファイヤーウォール機器 |
【登場するセグメント】
略語 | 名称 |
---|---|
vpn seg | 外部DCと繋ぐセグメント |
dmz seg | web公開セグメント |
internal seg | web・apとdb、外部DCとdbを接続するセグメント |
squid seg | 「内部からのインターネット接続セグメント |
![]() |
【要件】
・インターネットからの接続は、dmz segに対して送信元anyで宛先80・443のみ許可とする。
・内部サーバからのインターネット接続。
・yum update。
・ウイルス対策セキュリティパターンファイルの取得。
・外部DCからdbに対してデータ送信をする。
◆インターネット接続構成
①インターネットに抜けられるのは、squidサーバのみとする。
他セグメントは、内部からのインターネット接続は拒否とする。
②内部サーバからのインターネット接続は、squidサーバ経由とする。
◆fw設定
vpn seg設定
internal segへのみ通信許可。
dmz seg設定
squid seg、vpn segへの通信はすべて拒否。
internal segへの通信は、使用する特定ポートのみ許可する。
internal seg設定
squid segへの通信はすべて拒否。
dmz seg、vpn segへの通信は許可する。
squid seg設定
dmz seg、internal seg、vpn segへの通信はすべて拒否。
squid segからのインターネットアクセスはsquidサーバからのみ許可とする。
squid seg→インターネットの許可ポートは、80(tcp),443(tcp),53(tcp/upd)
◆squid設定
①ローカルネットワークの定義
指定したセグメントから受付許可とする。
acl localnet src "squid seg"
②squidが使用するポート
http_port 8080
③ホワイトリスト方式でのアクセス先の制御
今回の要件では、下記ドメインのみを許可とする。
・リポジトリサイト
・セキュリティパターン取得元サイト
- ホワイトリスト作成
許可するドメインを記載します。
".ドメイン名"とすることでサブドメインも許可とする。
/etc/squid/whitelist
.許可するドメイン名
- ホワイトリストの適用
ホワイトリストは上に書かれたものから有効となる為、最後にdeny allをいれる必要がある。
/etc/squid/squid.conf
acl whitelist dstdomain "/etc/squid/whitelist"
http_access allow localhost
http_access allow whitelist
http_access deny all
◆まとめ
squidを利用することで、内部サーバからインターネット接続を可能としつつ、セキュリティ的にも考慮された構成が可能となりました。