作業用PCからラズパイにSSHで繋がってるはずなので、ここからはラズパイのIP固定とポートの開放ルールの設定を行っていきます。
IPとポートってなんやねん?
いきなり設定しますとか言われても「?」なので、まずはIPとポートについて軽く触れます。ほんとに軽くね
IPをめちゃくちゃざっくり解説
IPと言うと今のところIPv4を指すのが一般的です。「.」で区切られた4つの数字で(127.0.0.0とか)、各数字は0~255です。さらに長いIPv6が注目されてますが、今はいいです。
「IPアドレス」とか聞いたことあると思いますが、アドレスと呼ばれる通り住所みたいなもんです。名札とかでもいいです。要するに「どこかのどれか」を識別するための「仕組み」です。
IPはWAN側(モデムより外のネットの海)とLAN側(家の回線)で分かれていてルールが違います。今回は「PC←→ルーター←→ラズパイ」の設定となりますのでLAN側について考えます。WAN側はもうちょっと進んで慣れてから考えましょう。LANのIPは192.168.X.Xという規格があり、最初の2つの数字は固定すると幸せだよねってことになっています。残りのX.Xの部分の2つの数字で個性を出します。
さらに。ルーターを使っている環境なら、3つ目のXの数字も決められていることが多いです(変えれることも多いです)ので、実質4つ目を決めてラズパイに覚えてもらうことで、ラズパイを探し当てることができます。
IPを固定する理由
なぜIP固定が必要なのか説明してませんでした。SSHの際、普通は機器のIPを指定して接続を試みます。ですが、IPは数に限りがあり、また機器や通信位置の特定をある程度防ぐために定期的に変わるようになってます。
LAN内のラズパイの場合、今日は例えば192.168.10.5だったのが、後日にはルーターからの指示で192.168.10.10とかに変えられてたりします。
前のSSH接続の解説では raspberrypi.local で指定してたよねって思った方は鋭いです。確かにそうです。しかしラズパイは世界に星の数ほどあって、あちこちで色んな用途で使われいます。沢山のひとが raspberrypi.local で簡単に接続できることを知っています。
サーバーとして外部にさらすことを目標としている場合、初期設定のままだと外から操作できるというガバガバ状態なのです。さすがにマズいですね。なのでIPを固定して接続するようにし、後のセキュリティ対策で raspberrypi.local では接続できないようにするのが賢明です。
ポートをめちゃくちゃざっくり解説
ポートの文字のごとく送受信を行うための港みたいなもんです。ホテルの部屋番号に例えられたりもします。ちなみにSSHは一般的に22番ポートと決まっており、自身で変えない限り22を使います。
ポートは0~65535まで用意されており、 httpは80、httpsは443、マイクラサーバーは25565などと決められています。変えることも可能です。これらの内、どのポートなら通信していいかを決めるのがポートのルール決めです。解放するとか閉じるというのは、前者なら通信OK、後者なら通信NGってことです。
イメージしてほしいのは、開けっ放しの入り口があったら入り込んでくる変態はどこにでもいて、思ってるよりはるかに多いってことです。玄関にはドアもなく、窓にはガラスのない、金庫は開いていて、おまけに開けっ放しと外で公言してるような、アホの家にはワラワラ押し寄せてきます。使わないポートをほったらかしにするのはこのアホの家に近い状態です。気を付けようぜ!!
実際にIP固定とポート開放する
何となくわかりました?より詳しい技術的なこととか、別の例え方とかはググるといっぱい出ますので、色々読んで自分なりの消化の仕方を見つけるといいと思います。
では実際にラズパイのIP固定とポートの開放をしていきましょう。事前にマニュアルなどでルーターのアドレスを確認してください。192.168.X.Z(XZは機器ごとに違う)とかの4つの数字がそれです。
RLoginでラズパイに接続できていることが前提で進めます。IPのルールは /etc/dhcpcd.conf というファイルに書かれています。これに書き足して行きます。
sudo nano /etc/dhcpcd.conf
と入力するとずらずら大量の文字群が出てきたはずです。末尾に以下のように記入します。
interface wlan0
static ip_address=192.168.X.Y/24
static routers=192.168.X.Z
static domain_name_servers=192.168.X.Z
wlan0はWi-Fiのことです。LANケーブルを指定したいときはeth0とします。X、Y、Zはそれぞれ同じ数字です。routers と domain~のIPは親となるルーターのIPで、自分で決めるのはYの所だけです。0~255の間ですが、ルーターの制限があったりするので、この辺はお使いの機器の仕様を調べてくださいとしか言いようがありません。
Ctrl + O で保存後 sudo reboot で再起動します。
再起動で緑のLEDがピコピコ高速点滅してるうちにRLoginのEntryを編集しておきます。 Server Address の部分をさっきの static ip_address で決めたIPに変更します。これでアクセスして繋がれば、ラズパイのIP固定は完了です。お疲れさまでした。
ポートの設定をする
ファイアウォール設定っていう方がわかってる人っぽいです。個人的には伝わればなんでもいいです。それはさておき、ここからインストールなどの色々な作業をします。だんだん本格的になってきます。
まずラズパイの環境を最新にする
まずはラズパイ内の環境を最新にします。Windowsアップデートみたいな感じです。
sudo apt update
sudo apt upgrade
を順番に打ち込みます。updateでどのパッケージ(プログラムとかのこと)がアップデートできるか情報を集め、その情報を元にupgradeで更新してくれます。なので順番が逆になると意味がなくなるので注意です。
Raspbianは今、過渡期(と思ってる)なので色々なパッケージが頻繁に更新されています。なので、初めてのupgradeは結構時間がかかります。適当に豆腐建築でもして遊んでましょう。
ポートのことはufwがいいと思う
済んだら次に進みます。ポートは「ufw」というツールに任せるのがいいと思います。使い方は簡単だし、同じディストリビューション(頒布形態、いとこくらいのイメージでいいかと)のubuntuには最初から入ってたりします。つぶしが効くので使い方を覚えるって考え方もありです。
さて初めてのインストールです。さっきも使いましたが、Debian系のディストリビューションではパッケージの管理に apt というコマンドを使います。ubuntuも apt を使います。何かをインストールするときは 「apt install パッケージ名」です。
sudo apt install ufw
と入れます。
ちょっと休憩。画面下のProgressが100%になるまで待ってね。これで初めてのインストールが終わりました。
ufwの設定方法
ここから ufw の設定です。ufwで実現したいのは
- IPv4しか使わない
- ssh用に22/tcpはローカルエリア内の192.168.X.1-192.168.X.255は受け付ける(Xはdhcpcd.confと同じ)
- マイクラサーバー用に25565/tcpを受け付ける
- 他は今のところ却下
マイクラサーバーではポートの開放が必要なプラグインもありますので、入れる場合はおいおいルールを変えましょう。分からなくなったらここに戻ってくればいいのです。
まずは一旦すべてのポートを閉じます。4の他は受け付けないに通じます。
sudo ufw default deny
実際、ufwはデフォルトで許可したポート以外ははじく設定なので、この設定はなくても大丈夫なはずです。一応明示しておくと安心かなと。おまじないみたいなものです。
次、IPv6は使わずIPv4のみ設定するようにします。
sudo nano /etc/default/ufw
で表示される設定画面の IPV6=yes の部分を探し
IPV6= no に変更して保存します。
次、ssh用に22/tcpをLAN内で受け付けるようにします。
sudo ufw allow from 192.168.X.0/24 to any port 22 proto tcp
しつこいですがXは環境に合わせて変えてください。
さらに次、サーバー用に25565/tcpは受け付ける。JEはtcpなのでudpはなくていいです。
sudo ufw allow 25565/tcp
これで設定は終わりました。ufwを有効化して、チェックします。
sudo ufw enable
sudo ufw status
指定したポートがALLOWになっていれば設定完了です。ミスで違うポートを指定した時は
sudo ufw status #いらないルールが何番目か確認
sudo ufw delete X #Xは上から何番目か
のようにすると削除できます。例えば↑はゴチャゴチャやったので変なことになってます。一番上の22がいらなければ X に 1 をいれるといいです。
これでポートも設定できました。お疲れさまでした。少しずつですが確実にマイクラサーバーに近づいてます。頑張っていきましょう。
最後に
意見が真っ二つに分かれるようですが、セキュリティ面からSSHのポートは変えましょう。順番にピンポンダッシュされたらすぐバレるなどの意見もあるようですが、個人的にはできることはやっといた方がいいと思ってます。後にSSHのポート変更も含めたセキュリティについてまとめるつもりなので、 変えた場合はufwの設定も忘れず変えましょう。
でないと訳もわからず繋がらなくなり、慌てることになります経験済み。
次から外部からの攻撃に備えたセキュリティのことをまとめていきます。(ファイアウォールもセキュリティだけどね☆)