外部から接続できるプロキシサーバーを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プロキシが動いた。