2020-12-07に更新

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

できること

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

注意事項

  • 簡単にLAN内部へアクセスできるので、セキュリティリスクが高まります。会社で使うときはネットワーク管理者やセキュリティ担当に相談して許可を得てから導入しましょう。
  • 以下の手順は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とポート番号をメモしましょう
fabf3f66d9161fd66c5a726c8627867c.png

PCにプロキシ設定を追加

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

fd80f42810da4582078952f91e3a350c.png

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

ツイッターでシェア
みんなに共有、忘れないようにメモ

arohajiro

しがない元インフラエンジニアです

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント