FedoraにSquidをインストール

外部から接続できるプロキシサーバーをSquidで構築した。
固定IPのVPSサービス上で、常に同じIPアドレスからWebブラウジングするためのプロキシなので、キャッシュはなくて、フォワードのみ。
ノーガードすぎるのもあれなので、BASIC認証をかけておく。

OSはFedora 22

$ dnf -y install squid

BASIC認証を使うので、httpd-toolsも入れる。

$ dnf -y install httpd-tools

それから /etc/squid/squid.conf を編集する。

$ cd /etc/squid
$ vi squid.conf

ほぼデフォルトなんだけど、インターネットからのアクセスを全部許可するのと、BASIC認証の設定を追加

#インターネットからのアクセスを定義
acl allnet src 0.0.0.0/0.0.0.0

#BASIC認証の設定
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/.htpasswd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 5 hours
acl password proxy_auth REQUIRED
http_access allow password

#インターネットからのアクセスを許可
http_access allow allnet

#Forwarded_forヘッダの送出をオフ
forwarded_for off

#ホスト名を追加
visible_hostname hoge.kwonline.org

#deny all をコメントアウト
#http_access deny all

BASIC認証に使うパスワードを作成する。
orenomemoというユーザー名を追加。

$ htpasswd -c /etc/squid/.htpasswd orenomemo

パスワードを2回入力したら設定は以上、で、Squidを起動する。

$ systemctl start squid
$ systemctl enable squid

あれ?・・・エラーが出て起動しない。
systemctlのログを確認してみる。

$ systemctl status squid.service -l

/usr/sbin/squid: error while loading shared libraries: cannot restore segment prot after reloc: Permission denied

SELinuxが有効になってるのが原因なので、とりあえず設定を変えておく。

$ /usr/sbin/setenforce 0

ただこれだと再起動時にまたSELinuxの設定が戻ってしまうので、
/etc/selinux/configを編集して、SELINUX=permissiveに変える。

$ vi /etc/selinux/config

SELINUX=permissive

で、無事起動。
そしてブラウザからプロキシ設定を追加してみたが、接続出来ませんのエラー。
firewalldが原因だった。
というわけで設定を見直す。

$ firewall-cmd --permanent --add-service=squid
$ firewall-cmd --reload

これで3128ポートでSquidプロキシが動いた。