読者です 読者をやめる 読者になる 読者になる

Raspberry Π

Raspberry Piでいろんなことをやってみようというブログです。

mincraft

外部ネットワークからアクセスする

設定

Raspberry Piに外部ネットワークからアクセスするためのメモです。

f:id:taka230035:20161001203040p:plain:w300



屋外のPCからでもPaspberry Piにアクセスしたいと思います。
今回はPaspberry Pi にSSH接続と、HTTP接続を行えるようにしたいと思います。
参照サイトは以下です。
Raspberry Piに固定IPを割り振る
Raspberry Piを外部ネットワークからアクセスできる様にした



Paspberry PiのIPアドレスの固定化

IPアドレスを固定化する理由は、
Paspberry Piと繋げているルータにIPを設定するため。
再起動等でIPアドレスが変わってしまうと、外から接続できなくなるからです。
以下コマンドより固定化の設定します。

//interfacesファイルを編集
vi /etc/network/interfaces


//以下のように修正 例wlan0の場合
allow-hotplug wlan0
iface wlan0 inet static //⇒manual等だったら、staticに変更
address 192.168.X.X //⇒固定化したIPを追記
netmask 255.255.255.0 //サブネットも追記
gateway 192.168.X.X //ゲートウェイ(ルータ)のIPを追記
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp


IP固定化については以上です。




ルータのポートを開放

この項目については、
参照サイト
Raspberry Piを外部ネットワークからアクセスできる様にした とほぼ同様だったので、そちらを参照してください。
人によって、ルータが異なるため、操作方法が違ってくると思います。

ルータの管理画面で設定するので、ルータのIPアドレスを知っておりアクセスできる手順を知らないと、設定できないです。

自分のルータは参照先のものと同じで今回は、8080と22番のポートを設定しました。

自分のものだと"ポート転送"という項目でしたが、
ルータの種類によっては"Nat"だったり、"ポートフォワーディング"となっているかもしれないです。

設定が終わったら、ルータを再起動します。
この項目は以上です。




設定されているグローバルIPを調べる

ルータに接続しているPCを使い、設定されているグローバルIPを調べます。
調べ方はいろいろありますが、
PCより
あなたが現在インターネットに接続しているグローバルIPアドレス確認
にアクセスすると、
f:id:taka230035:20161001203106p:plain:w200
上記の下に表示されているIPがグローバルIPアドレスとなります。

これも人によって、ネットワーク環境が異なると、正しいグローバルIPが分からないかもしれないです。




SSH接続用ユーザを作成

ラズパイにてセキュリティのためにPiユーザではなく、接続用のユーザを作成した方が良いです。
※もしかしたら、Piユーザでは外部から接続できなく設定されているかもしれません。
Paspberry Piにて、以下コマンドでユーザを作成します。

//例としてuserを作成
$sudo adduser user
より
新しい UNIX パスワードを入力してください: //パスワードを入力
新しい UNIX パスワードを再入力してください: //パスワードを再入力

後は適切にEnterキーを入力してください。


//以下よりグループ権限を付与。最低でもsudoは与えたほうが良いです。
$ sudo gpasswd -a user sudo





公開鍵認証設定を行う

こちらも細かな仕様については、参照先を見ていただきたいですが、この設定もセキュリティのためとなります。

自分のPCにて秘密鍵と公開鍵を作ります。
その後Paspberry Piに公開鍵を送り、設定します。
PCにてPaspberry Piに接続する際に、PC上の秘密鍵を用いて接続する手法です。

まずPCの設定で
Macの場合は (例としてid_rsa名で鍵を作成

$ cd ~/ssh $ ssh-keygen
より
Enter file in which to save the key //⇒鍵の名前(id_rsaの場合はそのままEnter) Enter passphrase (empty for no passphrase)://パスコードを設定(SSH接続時に聞かれるので覚えておく)
Enter same passphrase again: //設定したパスコードをもう一度入力



上記で出来たid_rsa.pubをPaspberry Pi上にコピーします。

その後ラズパイより公開鍵の作成とアクセス権の設定です。

$ cat id_rsa.pub >> .ssh/authorized_keys
$ chmod 700 .ssh
$ chmod 600 .ssh/authorized_keys



また引き続き、Paspberry PiよりSSHの設定を以下コマンドより行います。

$ sudo vi /etc/ssh/sshd_config

PermitRootLogin without-password
上記を以下のようにします。
PermitRootLogin none


AuthorizedKeysFile %h/.ssh/authorized_keys
上記を以下のようにします。
AuthorizedKeysFile %h/.ssh/authorized_keys



設定が終わったら以下コマンドより、SSHサービスを再起動します。

sudo /etc/init.d/ssh restart




Paspberry Piにアクセス

ラズパイネットワーク以外の外部ネットワーク環境で、PCより以下コマンドで接続してみましょう。

//userは上記でSSH接続用ユーザ $ ssh -i ~/.ssh/id_rsa -p 22 user@xxx.xxx.xxx.xxx(グローバルIP)


初回アクセス時はパスコードを求められますが、問題なければ接続可能となります。

グローバルIPでの接続はPaspberry Piと同一のネットワーク上からはアクセス出来ないです。
同一ネットワークの場合は、ローカルIPを指定します。

以上です。