ConoHaはじめてのProxyサーバー構築

#初めてProxyサーバーをConoHaで構築する人向けの記事です！

興味本位でプロキシサーバーを建ててみたいと思ったあん箱です。
全くの知識が無い人でもわかるような記事にしたいと思います。

---

## 1.事前準備

まずはConoHaでVPSを建てるという事なので、そもそもConoHaを利用できる状態にしましょう。

https://www.conoha.jp/

こちらのサイトにアクセスしてユーザー登録を行ってください。
登録が終わってログインをおこなうと、ConoHaコントロールパネル(以下コントロールパネル)というページに飛ぶはずです。

まずは、VPSを使用できる状態にするために、コントロールパネルの左上にサーバーの追加があるので、それをクリックします。

![addServer.PNG](https://qiita-image-store.s3.amazonaws.com/0/149486/258defe6-fcad-52ad-db23-4676a0e08ae7.png)

上のような画面になります。オプションを除いた項目について解説しますが、基本的にはほとんどいじらなくて大丈夫です。

|項目|説明|
|:--|:--|
|リージョン|利用するサーバーの物理的な位置です。|
|サービス|利用するサービスです。今回はVPSを選択します。|
|イメージタイプ|どのOSやアプリケーションをインストールするかの選択です。今回はCentOS7.5です。|
|rootパスワード|Windowsで言うところの管理者アカウントのパスワードです。|
|ネームタグ|追加するサーバーのニックネームのようなものです。|

またプロキシサーバーとして利用するにはSSH Keyの設定が必須なので、「オプションを見る」からSSH Keyの設定を行いましょう。
SSH Keyの項目より、キーを新規登録→自動作成→追加を行います。

SSH Keyの追加が終了したら、右側の追加ボタンを押し、サーバーを追加します。
(追加ボタンが青くない場合はrootパスワードが要件を満たしていない可能性があります。)

サーバーを追加したら、サーバー項目より、該当サーバーのネームタグをクリック、コンソールを選択し、起動します。

![Top.PNG](https://qiita-image-store.s3.amazonaws.com/0/149486/e283f47e-0dd6-c767-d47d-1a22bc4df820.png)

そうすると、上記のような画面になると思います。これで事前準備は完了です。

## 2.ユーザーの追加と設定

まだ、ユーザーの追加などを行っていないため、rootアカウントでログインします。

```
login: root
password:(事前準備で入力したrootパスワード)
```

ログインに成功すると、CLIの表示が、

```
[root@hogehoge ~]#
```

のような形になると思います。(hogehogeについてはほにゃらら的な感じです。)
[]の後ろに#が付くと思いますが、こちらはroot権限を持っている表示です。

セキュリティ上の観点から常にrootアカウントから操作を行うのは不味いので、ユーザーの追加を行います。

```
# useradd (ユーザー名)
# passwd (useraddコマンドで入力したユーザー名)
New Password:(パスワード)
Retype New Password:(パスワード再入力)
```
入力した結果
`all authentication tokens updated successfully.`
と出ましたらユーザーの追加が完了です。

しかしこのままですと、rootユーザーの権限が必要なコマンドをsudoコマンド経由で一般ユーザーが実行させることが出来ません。(要約すると、sudoコマンド実行のための権限を追加した一般ユーザーが持っていない)
そのためにvisudoコマンドを用いてsudoersの設定を行います。

![visudo.PNG](https://qiita-image-store.s3.amazonaws.com/0/149486/10d8a610-e653-8aed-cafe-9d3dbe79e90d.png)

`visudo`と入力すると上記のような画面になります。Alt + Iキーか、Insertボタンを押してInsertモードに入り、
`## Allow root to run any commands anywhere`
という項目の直下に`ユーザー名 ALL=(ALL) ALL`を追記します。
追記が完了しましたらEscキーでInsertモードを抜け、Shift + Zキーを2回押し、保存して終了します。
これで追加したユーザーでも、sudoコマンドが使用可能になりました。

## 3.サーバーの設定

いよいよ、sudoコマンドも使用可能になったところで、サーバーの設定に取り掛かっていきたいと思います。
ここからの手順は、ほぼ参考にしたサイトの通りです。
まずはプロキシのパッケージをインストールします。
```
sudo su -
yum -y install squid
```
次に、Squidの設定を変更します。
Squidでは、Squid.confを編集することでブラックリスト及びホワイトリストによるアクセス制御が可能です。
`vi /etc/squid/squid.conf`コマンドを使用して編集します。

```
And finally deny all other access to this proxy
http_access deny all
```

という項目の上に、

```
acl testacl src (貴方の接続元IPv4アドレス)/32
http_access allow testacl
```

を追記し、編集を終了します。

次に以下のコマンドを使用して、squidの起動を行います。

```
squid -z
service squid start
```

最後にファイアーウォールの設定を行います。
`vi /etc/sysconfig/iptables`コマンドを使用して編集します。

ほぼ参考ページの引用です。

```
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:FWINPUT - [0:0]
-A INPUT -j FWINPUT
-A FORWARD -j FWINPUT
-A FWINPUT -i lo -j ACCEPT
-A FWINPUT -p icmp --icmp-type any -j ACCEPT
-A FWINPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# xxx.xxx.xxx.xxxは自身の接続元IPに置き換える
-A FWINPUT -p tcp -m tcp --dport 22 -s xxx.xxx.xxx.xxx -j ACCEPT
-A FWINPUT -p tcp -m tcp --dport 3128 -s xxx.xxx.xxx.xxx -j ACCEPT
-A FWINPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
```
編集を終了し、`iptables-restore < /etc/sysconfig/iptables`コマンドで今の設定を適用します。
あとはInternetExplorerから使用するプロキシをConoHaのIPv4アドレス、及びポート番号3128を入力し、最後にサーバーを再起動して終了です。

[http://www.ugtop.com/spill.shtml](http://www.ugtop.com/spill.shtml)

上記のサイトなどを利用してプロキシを経由する前後でIPアドレスが変更されていることを確認できれば、成功です。

## 4.あとがき

乱文長文失礼いたしました。ここまでで間違っているところ、アドバイス等ございましたらコメントのほうお願い致します。
ここまで付き合っていただき感謝です！