BETA

【CentOS7】squid + ngrokのサーバを構築してLAN内のWebサーバへかんたんにアクセスする

投稿日:2019-08-25
最終更新:2019-08-30

できること

  • LAN内の閉じた環境にいるWebサーバへ外部から一時的にアクセスしたい時に、このサーバをLAN内に追加するとかんたんにアクセスできます(VMware Host ClientやオンプレのGithub Enterpriseサーバのアクセスに使えました)

注意点

  • 簡単に内部へアクセスできるようになり、セキュリティリスクが高まります。会社なんかで使うときはネットワーク管理者やセキュリティ担当に要相談!
  • 以下の手順はsquidのBasic認証しか設定していないので、意図しないホストへアクセスできないようにFirewalld等でアクセス制限を追加すると良いかも

動作確認済み環境

  • CentOS 7.6
  • ngrok 2.3.34
    • フリープラン登録が必要
  • squid 3.5.20
  • Windows10(プロキシに接続するPC)

squidインストール

$ sudo yum -y install squid  

squidにBasic認証を追加

$ sudo vim /etc/squid/squid.conf  

ACLの設定は実環境に合わせて適宜変更すること

vimで追記したものは以下

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  

認証ユーザ作成(パブリックでフルオープンのプロキシは危険なので...)

$ sudo htpasswd -c /etc/squid/.htpasswd hogeuser  
  • 以下のダイアログがでるので認証ユーザのパスワードを登録する
New password:  
Re-type new password:  
Adding password for user hogeuser  

squid起動

$ sudo systemctl start squid  

firewalld許可(squid接続ポートをデフォルトのまま使う場合)

sudo firewall-cmd --add-service=squid  

ngrokインストール

$ wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip  

zipファイル解凍

$ unzip ngrok-stable-linux-amd64.zip  

/usr/local/binへ解凍したものを移動

$ sudo mv ngrok /usr/local/bin  

ngrok Authトークン登録

$ ngrok authtoken [取得したAuthトークン]  

ngrok起動(squid接続ポート 3128をトンネル)

$ ngrok tcp 3128  

起動したら以下のForwardingのところにあるURLとポート番号をメモしましょう

PCにプロキシ設定を追加

Win10の設定だとこのように設定します。先程のURLとポート番号を入れるだけ

あとはブラウザで見たいLAN内WebサーバのIPアドレスを指定すればBasic認証後にアクセスできます。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

いままでローカルのメモ的なテキストでしかアウトプットしてなかったのでちょっとずつここにてけとーに記していくよ(不定期更新)

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!