以前も少し書きましたが、弊社では一部自宅サーバーを使っています。今は機械学習サーバーが2台あります。
先日、Raspberry Pi を買ってそれをゲートウェイとし、自宅 LAN のネットワーク構成を少し変えたので、それについて書いてみます。
以前の構成
図の通り、旧サーバーがゲートウェイも兼ねていました。そのため、iptables でポートを閉じたり IP 制限をかけたりしてたのですが、ポートを閉じすぎて一部のサービスが動かなくなったり(結局解決しましたが)という不都合がありました。
本題とは関係無いですが、LTE のルーターを使って、とあるお客様の社内ネットワークにも繋がっています。
現在の構成
以下の変更をしました。
- Raspberry Pi を買って、SSH サーバー兼ゲートウェイとした
- 旧サーバー兼ゲートウェイは、通常のサーバーとしてのみしようするようにした
Raspberry Pi の設定
特に難しい事はしていませんが、どのような設定をしたか記載します。
ネットワーク設定
- 無線LANで自宅LANにつなぎ、固定IP(192.168.0.f)を振る
- 「マイIP」という固定IPサービスを使って、グローバルIPで外部からアクセス出来るようにする
セキュリティ関連の設定
- SSH で、特定の IP アドレスからしかアクセス出来ないようにする
- 社内メンバーの自宅のIP(必ずしも固定IPでは無い)
- VPS 上に構築した OpenVPN のIPアドレス
- SSH で、パスワード認証の無効化
- SSH 以外のポートは閉じる
IP アドレス制限ですが、社内メンバーの自宅は必ずしも固定 IP が振られているわけではありません。自宅の IP アドレスが変更になった場合は、新しい IP アドレスをシステム管理者に伝えて、システム管理者が sshd_config
を書き換えて SSH を再起動するという原始的な方法を取っています。
ただ、これだとシステム管理者の IP アドレスが変わった場合に困るので、システム管理者には OpenVPN のアカウントを作ってあるので、何かあれば OpenVPN 経由(=固定IP)でアクセスできるようにしてあります。
感想
今まで、こうした用途には、使わなくなった古い PC などを使っていたと思いますが、外部から SSH アクセス出来るようにするためだけに古い PC を使うのは、場所も取りますし電気代も無駄です。
今回、その用途のために1万円くらい出して Raspberry Pi を買ったんですが、場所を取らないのが何よりも嬉しいです。メモリも 4GB あって、スペックとしても十分です。
Raspberry Pi は小さくてもポテンシャルは高いので、今後は別の用途にも使ってみようかなと思います。