さくらのクラウドでSquidプロキシを使いローカルIPのみのサーバーから外部通信する方法

コンピューティング # サーバー運用

こんにちは、UOZUです!

今回は、さくらのクラウドでローカルIPのみを持つサーバーからの外部通信を簡単にしてみようと思います。

前提の構成は以前と同様に以下の通りです。

また検証はAlmaLinux release 10.2で実施しています。

通常はローカルIP宛のみ通信可能

構成上当然ですが、現在はローカルIP同士でしか通信ができない為、dnfコマンドからのパッケージ操作も利用できなくなっています。

VPNルーターなどの追加でローカルIPとグローバルIPのNATも可能ですが、この構成を変えず、このサーバーから特定の作業のみ、踏み台サーバーを経由して、必要な通信だけ外部へ出せるようにしてみます。

踏み台サーバにSquidの導入と初期設定

踏み台サーバ側にSquidを導入し、ローカルIPの範囲(192.168.1.0/24)のみアクセス可能とします。

Squidを公開状態にすると、意図しない第三者にプロキシとして利用される可能性があります。実運用では、acl による接続元制限に加えて、パケットフィルターやOS側のファイアウォールでも、ローカルネットワークからの接続だけを許可するようにしてください。

また、acl localnet で許可する接続元ネットワークを指定し、http_access allow localnet でそのネットワークからのプロキシ利用を許可します。

これでローカルIPサーバーからProxyが利用できるようになります。

ローカルIPサーバー側からの利用方法と設定方法

curlなら -x で踏み台サーバとポートを指定してProxyが利用できます。

もしcurlでProxyの利用を永続化したいなら、.curlrcの作成で設定できます。

dnfなら --setopt=proxy で指定が可能です。こちらも永続化したい際は、/etc/dnf/dnf.conf にproxyオプションで指定可能です。

最後に

今回は、さくらのクラウドでローカルIPのみを持つサーバーから、踏み台サーバー上のSquidを経由して外部通信する方法を試してみました。

ローカルIPのみのサーバーでは、そのままでは外部IPへの通信や名前解決ができず、curldnf も利用できない場合があります。Squidを踏み台サーバー側に用意しておくことで、必要なコマンドだけプロキシ経由で外部へ通信させることができます。

ローカルIPのみのサーバーで、構成を大きく変えずに一時的なパッケージ取得や外部アクセスを行いたい場合は、Squidプロキシを活用してみてはいかがでしょうか。

最後までお読みいただき、ありがとうございます!

この記事を書いた人

UOZU

ネットアシスト運用チーム10年目の運用エンジニア

さくらのクラウド検定 ベーシック (第一回)

さくらのクラウド検定 アドバンスド (第一回)

AWS Certified Solutions Architect - Associate

AWS Certified AI Practitioner