Ubuntu でプロキシサーバー(squid)のインストール
Contents
Ubuntu 16.04 に squid 3.5 をインストール
ubuntu 16.04にプロキシサーバーとして機能する「squid 3.5」をインストールします。プロキシサーバーに接続する際ですが、BASIC認証を利用しユーザー名とパスワードを一致すれば使用できるようにします。また、プロキシサーバーの名前解決は、ステージング環境やテスト環境にあるサーバにも接続したいので「hosts」を優先的に利用します
squidのインストール
下記のUbuntuのバージョンに、squid をインストールします
# ubuntuのバージョン $ cat /etc/os-release NAME="Ubuntu" VERSION="16.04.4 LTS (Xenial Xerus)"
squidをインストールします
# squidをインストール $ sudo apt install squid # 以下のバージョンのsquidをインストールします $ squid -v | head -3 Squid Cache: Version 3.5.12 Service Name: squid Ubuntu linux
squidの接続に、BASIC認証を利用する
Squidで利用するBASIC認証は、htpasswdコマンドを利用してID・パスワードを発行します。
htpasswdコマンドはApacheに付属しているので、Apacheをインストールしていない場合はインストールする
$ sudo apt-get install apache2 apache2-utils
htpasswdコマンドを利用して、ID・パスワードを発行します。
認証用のパスワードファイル「/etc/squid/.htpasswd」として保存され、ユーザー名は「user1」とします
書式:htpasswd -c [パスワードファイル] [username]
$ sudo htpasswd -c /etc/squid/.htpasswd user1 New password: # パスワード設定 Re-type new password: Adding password for user user1
設定ファイル(/etc/squid/squid.conf )の編集
・BASIC認証関係に関する設定は、以下の項目をsquid.conf追加します
# basic認証に関する設定 auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/.htpasswd auth_param basic children 5 auth_param basic realm Basic Authentication auth_param basic credentialsttl 5 hours # 認証用acl名を追加する acl password proxy_auth REQUIRED # パスワード認証を許可 http_access allow password
・名前解決はhostsファイルを優先的にするには、以下の項目をsquid.conf追加します
hosts_file /etc/hosts
私の利用するSquidの設定はファイルは以下となります
$ sudo vim /etc/squid/squid.conf # basic認証に関する設定 auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/.htpasswd auth_param basic children 5 auth_param basic realm Basic Authentication auth_param basic credentialsttl 5 hours # ローカル環境に関する設定 acl localnet src 10.0.0.0/8 # RFC1918 possible internal network acl localnet src 172.16.0.0/12 # RFC1918 possible internal network acl localnet src 192.168.0.0/16 # RFC1918 possible internal network # 認証用acl名を追加する acl password proxy_auth REQUIRED # SSL接続時 443ポート以外は拒否 acl SSL_ports port 443 acl CONNECT method CONNECT http_access deny CONNECT !SSL_ports # 接続先の設定、設定されていないポートは拒否など acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http http_access deny !Safe_ports http_access allow localhost manager http_access deny manager http_access allow localnet http_access allow localhost # パスワード認証を許可 http_access allow password http_access deny all # 使用するポート http_port 3128 # <span class="st">コアダンプを吐き出すディレクトリ</span> coredump_dir /var/spool/squid # hostsファイルを参照する hosts_file /etc/hosts # キャッシュに関する設定 refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880 refresh_pattern . 0 20% 4320
設定が終わったら、「squid」を起動します
$ sudo systemctl start squid
ディスカッション
コメント一覧
まだ、コメントがありません