EC2インスタンスでhttp proxyサーバーを利用する - mechamogera/MyTips GitHub Wiki
ローカルネットワークの環境(socksプロキシで外部へのssh可能)から外部へのwebサイトを閲覧してみる
- ec2インスタンス(Amazon Linux)作成
- ec2インスタンスでhttp proxyサーバー設定
$ sudo yum -y install httpd
$ sudo vi /etc/httpd/conf/httpd.conf
# => 以下の行の#を外す
<IfModule mod_proxy.c>
ProxyRequests On
...
</IfModule>
$ sudo /etc/init.d/httpd start
- sshトンネリング
- ローカルなマシンで以下を実施
ssh -L 10080:localhost:80 [ec2のDNS名]
- ブラウザの設定
- ローカルマシンのブラウザでhttp proxyでlocalhost:10080を利用するように設定
- パスワードファイル作成、配置
$ htdigest -c .htdigest private [ユーザ名]
Adding password for [ユーザ名] in realm private.
New password: ****
Re-type new password: ****
$ sudo mkdir /var/www/secure
$ sudo mv .htdigest /var/www/secure
- httpd.conf修正、再起動
- /etc/httpd/conf/httpd.confを以下のように設定
<IfModule mod_proxy.c>
ProxyRequests On
<Proxy *>
Order deny,allow
Deny from all
Allow from all
AuthType digest
AuthName "private"
AuthUserFile /var/www/secure/.htdigest
Require valid-user
</Proxy>
</IfModule>
- httpd再起動
$ sudo /etc/init.d/httpd restart
- プラウザアクセス
- ローカルマシンのブラウザでhttp proxyで[ec2インスタンスのDNS名]:80を利用するように設定
- ユーザ名とパスワードを聞かれたら設定した値を入力 => OK
- curlでの確認
- 以下のようにして確認君のページにアクセスしてみる => OK
curl --proxy http://[ec2のdns名]:80 --proxy-digest --proxy-user [ユーザ名]:[パスワード] http://www.ugtop.com/spill.shtmt.html
- httpd.conf修正、再起動
- /etc/httpd/conf/httpd.confを以下のように設定
<IfModule mod_proxy.c>
ProxyRequests On
<Proxy *>
Order deny,allow
Deny from all
Allow from [許可したいIP]
Satisfy Any
AuthType digest
AuthName "private"
AuthUserFile /var/www/secure/.htdigest
Require valid-user
</Proxy>
</IfModule>
- httpd再起動
$ sudo /etc/init.d/httpd restart
- プラウザアクセス
- 許可したいIPからのアクセス => 認証を求められない
- Allow from [許可したいIP]を削除した状態 => 認証を求められる