No.486


【Squid】最短でプロキシサーバーを立てる【Rocky Linux 8】

とにかく最速でプロキシサーバーを立てたい貴方へ

  • 仕事でプロキシ経由のアクセスが必要になった
  • 流出防止に外部のproxyは使いたくない

 こんな俺のためにメモ。

 とりあえず手近にあった Rocky Linux 8 を使ったが、基本的にCentOSクローン系ならまったく同じ。Debian 系でも設定ファイルの位置くらいの違いだとは思う。


設定方針

 Squidの設定は以下の方針で最低限行った。

  • 身内にしか使わせない(IP制限)
  • 基本匿名

Squidのインストール

 なにはともあれSquidをインストールする。

dnf -y install squid

 下記のコマンドで設定ファイルを編集する。

vi /etc/squid/squid.conf

 で以下のように編集する。

 まず、アクセスコントロール。
 デフォルト記載の acl localhost src は全てコメントアウトして、許可IPだけ設定する。

#acl localhost src ....
acl accesslist src 許可するIPアドレス

 IPアドレスはCIDRで記載できる。単一IPなら下記のように。

acl accesslist src 127.0.0.1/32

 続いてアクセス許可をACLだけにする。
 デフォルト記載の http_access allow は全てコメントアウトうる。

#http_access allow localnet
#http_access allow localhost
http_access allow accesslist

 続けて必要ならポート番号を変更する。
 アクセス制限しているから必要ないと考えれば省略OK。

#http_port 3128
http_port 任意のポート番号

 最後に匿名性を高める設定を末尾に追加する。
 設定内容は必要に応じて加減すること。

Squid configuration directive request_header_access Squid configuration directive forwarded_for Squid configuration directive visible_hostname

visible_hostname unknown
forwarded_for off
request_header_access Referer deny all
request_header_access X-Forwarded-For deny all
request_header_access Via deny all
request_header_access Cache-Control deny all

 Squidを再起動&起動設定して完了。

systemctl enable squid
systemctl restart squid

ファイアーウォール設定

 firewalld が動いている環境なら、上記で設定したポートで穴を空けてやる必要がある。

 下記コマンドで編集。

vi /etc/firewalld/zones/public.xml

 zone設定の末尾にでも下記を追加する。

<port port="ポート番号" protocol="tcp"/>

 具体的にはこのように書く。

<zone>
  ...
  <port port="3128" protocol="tcp"/>
</zone>

 もちろん firewall-cmd で追加しても良い。

firewalld-cmd --add-port=ポート番号/tcp

 再起動したら

systemctl restart firewalld

 下記のコマンドで設定を確認しておこう。

firewall-cmd --list-ports

 下記のように設定したポート番号が表示されたら完了。

ポート番号/tcp