自宅環境にNginxによるForward Porxyを導入した際の手順とかをまとめてみます。
実は自宅外の勉強会等で検証用MacBookProを持ち出し、現地で作業する際に非セキュアなフリーWiFiや、提供されたWiFiでは自宅のIPアドレスセグメントに接続する形式では不都合が生じるからです。
ということで、MacBookPro内に検証LANをホストオンリーネットワークとして構築し、検証LAN内にForward Proxyを置き、検証LANからは必ずForward Proxyを経由する方式にします。
ソフトウェア
- CentOS Linux release 7.6.1810 (Core)
- Nginx 1.14.2
構築手順
構築した際の手順は下記の通りです。
Nginxのリポジトリを追加
Nginxのリポジトリを追加します。
CentOSとRHELではURLパスが異なるので注意しましょう。
詳しくはNginx(公式)のInstallを読んでください。
$ sudo vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
Nginxをインストール
$ sudo yum install nginx
Forward Proxyの設定ファイルを作成
作成するファイルと内容は下記の通りです。
ファイル名は何でも良いですが、機能ごとに分けて管理します。
$ sudo vi /etc/nginx/conf.d/forward-proxy.conf
server {
# Proxy Server port
listen 3128;
# DNS server
resolver 8.8.8.8;
resolver_timeout 5s;
location / {
proxy_pass $scheme://$http_host$request_uri;
}
}
設定ファイルのチェック
$ sudo /usr/sbin/nginx -t
Nginxの起動と自動起動の設定
$ sudo systemctl start nginx
$ sudo systemctl enable nginx
Proxyのテスト
yumの通信が正しく行えるか確認してみます。
まずは他のサーバのyum.confにproxyの設定を入れます。
$ sudo vi /etc/yum.conf
proxy=http://プロキシサーバのIP:3128
yum update
コマンドでうまく通過するか確認する。
$ sudo yum update
成功です!
ちょっとハマったところ
1. Nginxが起動しない
forward-proxy.confを作成し、Nginxをstartさせた際、何故か起動に失敗しました。
nginx: [emerg] bind() to 0.0.0.0:3128 failed (13: Permission denied)
と表示されていて、ピンときて/var/log/audit/audit.log
を見るとSE Linuxで弾かれてました。とりあえずはSE Linuxを無効化して対応です。
2. Forward Proxyが通過できない
Forward ProxyのサーバでFirewalldが動いていて接続ができない状態でした。
忘れずに止めるか許可する設定を入れましょう。私は止めました。
$ sudo systemctl stop firewalld
$ sudo systemctl disable firewalld