今回は、ubuntu serverの設定とファイアウォールの設定、Wi-Fiのポート解放の設定を書きたいと思います。セキュリティ対策はかなり重要なのでしっかりと取り組んでください。
第1回の記事を読んでない人はぜひ読んでください!
Raspberry PiでDIYスマートホーム!第1回 ~全体像の解説と準備~
ubuntu serverの設定
ubuntu server の固定ipアドレスの設定
wifiポート解放の設定をするときに、ラズパイのipアドレスが必要なのでipアドレスを固定します。
固定する方法は下記の記事がおすすめです。
[Ubuntu]ローカルIPアドレスを固定にする(18.04/16.04)
ubuntu serverのssh接続の設定
外部ネットワークと接続できるようにするので、ubuntu serverもしっかりとしたセキュリティ対策をしなければなりません。するべきことをは下記の通りです。
- sshのログイン方法をパスワードから公開鍵認証に変更しよう
- sshするときのポートを変更しよう
- sshのパスワードログイン方法を禁止にしよう
おすすめの記事がありますので紹介します。この記事でこれらの設定のやり方がわかると思います。
Ubuntu18.04 LTSにSSHしてセキュリティ設定をしよう!
グローバルipアドレスの取得
グローバルipアドレスが後半で必要なので、メモしておきます。 下記を実行すると、グローバルipアドレスが表示されます。
$ curl inet-ip.info
ファイアウォールの設定
ファイアウォールとは?
ファイアーウォールは、外部ネットワークから内部ネットワークを守るための壁です。つまり、外部からの通信を制限することで、内部ネットワークを安全に保つことができます。ファイアーウォールを正しく設定することで、様々な攻撃から守ることができます。
ファイアウォールの設定方法
私は下記の記事を参考にしてファイアーウォールの設定をしました。
iptablesが難しいためufwでWEBサーバーのファイアウォール設定
それでは、実際に設定をしたいと思います。
1. ufwを有効化する
$ sudo ufw enable
2. 外部からの通信を全て遮断する
ssh接続状態で、下記のコマンドを実行しても接続は切れません。しかし、一旦接続が切れてしまうと再接続できなくなります。
$ sudo ufw default DENY
3.ssh接続できるipアドレスを内部ネットワークのみに設定する
下記の from 192.168.3.0/24
は環境によって異なります。各々適切な値に変更しましょう。また、 port 1234
は sshの設定で決めたポート番号を記入しましょう。
$ sudo ufw allow from 192.168.3.0/24 to any port 1234
4. http / https接続を特定のipだけ許可する
AWSのEC2の静的ipアドレスの値のみを受け付けるように設定します。 from 12.345.67.890
は static ipに変更してください。この Port番号は、80と443以外に変更しないでください。
$ sudo ufw allow from 12.345.67.890 to any port 80 $ sudo ufw allow from 12.345.67.890 to any port 443
これで、ubuntu serverは内部ネットワークからのssh接続と自分が借りたec2インスタンス以外からhttp/https通信を制限します。
Wi-Fiのポート解放
Wi-Fiのポート解放の設定は、内容は基本同じですがwifiルーターによって設定画面が変わってくるので、各々頑張ってください!!
今回は、eo光多機能ルーターで設定してみます。
下記は、公式サイトの説明ページです。
ポートマッピング設定画面
設定
- 優先度は、他に設定していなければ 「 1 」にする
- LAN側ホストは、ubuntu server の ipアドレスを記入する
- プロトコルは TCPにする
- ポート番号を 80 ~ 80に設定する
この設定を追加すると、自宅wifiのグローバルipアドレスにポート80で接続することで、ubuntu serverにポート80で通信が転送されます。これで外部ネットワークからとhttp通信で内部ネットワークに接続することが完了しました。 同様に、httpsも設定しましょう。上記の画像と全く同じ値を記入し、ポート番号を443に変更するだけでhttpsの設定を完了することができます。
終わりに
お疲れ様でした。かなり濃い内容になったのではないでしょうか(´∀`)