カテゴリー : Server

Proxy サーバー構築 – squid 編

squid 3.x を使って Proxy サーバーを構築しました。

squid のインストール

まず squid をインストールします。

sudo apt-get update
sudo apt-get install squid

squid のバージョンを確認してインストールされていることを確認します。

$ squid -v
Squid Cache: Version 3.5.12
Service Name: squid
Ubuntu linux
configure options:  '--build=x86_64-linux-gnu' '--prefix=/usr' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--libexecdir=${prefix}/lib/squid3' '--srcdir=.' '--disable-maintainer-mode' '--disable-dependency-tracking' '--disable-silent-rules' 'BUILDCXXFLAGS=-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' '--datadir=/usr/share/squid' '--sysconfdir=/etc/squid' '--libexecdir=/usr/lib/squid' '--mandir=/usr/share/man' '--enable-inline' '--disable-arch-native' '--enable-async-io=8' '--enable-storeio=ufs,aufs,diskd,rock' '--enable-removal-policies=lru,heap' '--enable-delay-pools' '--enable-cache-digests' '--enable-icap-client' '--enable-follow-x-forwarded-for' '--enable-auth-basic=DB,fake,getpwnam,LDAP,NCSA,NIS,PAM,POP3,RADIUS,SASL,SMB' '--enable-auth-digest=file,LDAP' '--enable-auth-negotiate=kerberos,wrapper' '--enable-auth-ntlm=fake,smb_lm' '--enable-external-acl-helpers=file_userip,kerberos_ldap_group,LDAP_group,session,SQL_session,unix_group,wbinfo_group' '--enable-url-rewrite-helpers=fake' '--enable-eui' '--enable-esi' '--enable-icmp' '--enable-zph-qos' '--enable-ecap' '--disable-translation' '--with-swapdir=/var/spool/squid' '--with-logdir=/var/log/squid' '--with-pidfile=/var/run/squid.pid' '--with-filedescriptors=65536' '--with-large-files' '--with-default-user=proxy' '--enable-build-info=Ubuntu linux' '--enable-linux-netfilter' 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wall' 'LDFLAGS=-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' 'CXXFLAGS=-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security'

squid インストール後に status を確認するともう起動してました。squid せっかち。

$ service squid status
● squid.service - LSB: Squid HTTP Proxy version 3.x
   Loaded: loaded (/etc/init.d/squid; bad; vendor preset: enabled)
   Active: active (running) since Sat 2017-02-18 13:39:01 UTC; 28min ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 4
   Memory: 18.3M
      CPU: 461ms
   CGroup: /system.slice/squid.service
           ├─2831 /usr/sbin/squid -YC -f /etc/squid/squid.conf
           ├─2838 (squid-1) -YC -f /etc/squid/squid.conf
           ├─2841 (logfile-daemon) /var/log/squid/access.log
           └─2866 (pinger)
 
Feb 18 13:39:01 proxy1 systemd[1]: Starting LSB: Squid HTTP Proxy version 3.x...
Feb 18 13:39:01 proxy1 squid[2788]:  * Starting Squid HTTP Proxy squid
Feb 18 13:39:01 proxy1 squid[2788]:    ...done.
Feb 18 13:39:01 proxy1 systemd[1]: Started LSB: Squid HTTP Proxy version 3.x.
Feb 18 13:39:01 proxy1 squid[2831]: Squid Parent: will start 1 kids
Feb 18 13:39:01 proxy1 squid[2831]: Squid Parent: (squid-1) process 2838 started

Proxy サーバー構築のために squid.conf を編集する

まず、デフォルトの squid.conf ファイルをバックアップします。

sudo cp /etc/squid/squid.conf /etc/squid/squid-origin.conf

次に、設定ファイル squid.conf を以下のように編集、追記します。

#http_access deny all
 
forwarded_for off
 
request_header_access X-Forwarded-For deny all
request_header_access Via deny all
request_header_access Cache-Control deny all
 
reply_header_access X-Forwarded-For deny all
reply_header_access Via deny all
reply_header_access Cache-Control deny all

diff は以下のとおりです。

$ diff /etc/squid/squid-origin.conf /etc/squid/squid.conf
1188a1189,1192
> # Alow my server's host
> acl myhost src xxx.xxx.xxx.xxx/255.255.255.255
> http_access allow myhost
> 
1599c1603
< http_port 3128
---
> http_port 13128
5156a5161,5163
> request_header_access X-Forwarded-For deny all
> request_header_access Via deny all
> request_header_access Cache-Control deny all
5507a5515
> visible_hostname myhostname.com
7621a7630
> forwarded_for off

squid.conf ファイルの編集が完了したら、squid リロードして設定を反映させれば完了です。

service squid reload

あとは、なんかしらの方法で Proxy サーバー経由でアクセスできてることを確認しましょう。

よき Proxy ライフをお過ごしください!

参考情報

さくらのクラウドでサーバ作成するまでの参考リンク集

先月、さくらのクラウドでサーバを借りて、さくらのVPSからサーバ移行しました。

そのときに参考なった公式サイトのリンクをまとめておきます。

「さくらのクラウド」のコントロールパネルのマニュアル一覧ページ

さくらのクラウドに登録して、まず適当にアカウントを作成します。個人で使うので1アカウントだけ作りました。

そして、価格の安い石狩リージョンで最小構成でサーバ作成しました。

サーバ作成するときに OS やディスクの作成もまとめてやります。何もしないとサーバ作成直後は root で ssh 接続できてしまうので、サーバ作成時に SSH 公開鍵を設定しておくと安心ですね。

ざっとこんな流れで、さくらのクラウドに登録 〜 サーバ作成まで行いました。

さくらのVPSを解約しました

先日、「さくらのクラウド」の2万円分無料クーポンを貰った ので、さくらのVPS を解約しました。

解約のお申込は、毎月20日が締切日となります。申込日を越えたお申込はすべて翌月のお取り扱いとなります。

締め日が毎月20日ということだったので、5/20 になる数日前に解約の申し込みをしました。6月末までは「さくらのVPS」が使えるのでそれまでに「さくらのクラウド」へサーバー移行したいと思います。サーバー移行作業をずっと先延ばしにしていたので、先に解約申し込みだけして背水の陣で臨むことになりました。

次にやることとしては、「さくらのクラウド」を数時間〜1日単位で契約して、スムーズにサーバー移行できるように手順をまとめたいと思います。

「さくらのクラウド」の2万円分無料クーポンを貰った

「さくらのクラウド」の2万円分無料クーポンを中の人からもらいました。

sakura-cloud

今まで無料クーポンの存在を知らなかったのですが、さくらインターネットのイベントやセミナーなどで貰えたりするみたいですね。

1522円の「CPU 1Core/Memory 1GB」のプランだと 1 年近く「さくらのクラウド」が利用できそうです。

この機会に、契約中のさくらのVPSを全て、今月中に「さくらのクラウド」へ移行したいと思います。