「ラズパイの穴」を埋めるために、不要サービスの確認とOS自動更新を実装するラズパイのセキュリテイ対策(後編)(1/2 ページ)

連載最終回となる今回は、見落としがちなセキュリティリスクである不要サービスの確認と、OSやソフトウェアの自動アップデートを実装していきます。

» 2019年12月18日 10時00分 公開

 (編集注)本連載は3部構成です。前編では、Raspberry Piが抱える具体的なセキュリティリスク、中編では、Rapsberry Pi導入後真っ先に行いたいログイン周りのセキュリティ対策を紹介しています。併せてお読みください。


 連載最終回となる今回は、見落としがちなセキュリティリスクである不要サービスの確認と、OSやソフトウェアの自動アップデートを実装していきます。

不要サービスの確認

 「netstat」コマンドを使って不要なサービスを確認する基本的な方法を紹介します。Raspbianの初期状態からSSHを有効にした状態では、下記のようにssh(ポート22番)のみが接続可能となります。

netstat -ltp
ターミナルでnetstatコマンドを実行する
SSHを有効にした状態のnetstat実行結果(クリックで拡大)

 Samba(Microsoftネットワーク機能を提供するサービス)を有効にすると、netbios-ssn(ポート139番)、microsoft-ds(ポート445番)が追加され、さらに、Apache(Webサーバ) を有効にするとhttp(ポート80番)が追加されます。

SambaとApacheを追加で有効にした状態のnetstat実行結果(クリックで拡大)

 ApacheなどWebサーバソフトウェアをインストールしていない場合でも、下記のようなPythonのコマンド1つでWebサーバを立てることができるので、注意が必要になります。

python -m SimpleHTTPServer 8000
Python 2標準ライブラリのHTTPリクエストハンドラでWebサーバを立ち上げる
python3 -m http.server 8000
Python 3標準ライブラリのHTTPリクエストハンドラでWebサーバを立ち上げる

 この場合でも「netstat」コマンドによって、ポート番号とプロセスID(PID)を確認できます。

PythonがTCPポート番号8000でListen状態になっている(クリックで拡大)

 さらに、下記のようにプロセスID(PID)から該当のコマンドが確認できます。

sudo ps aux | grep 5008
PID5008のプロセス状態を表示する(指定すべきPIDは環境によって異なります)
「sudo ps aux | grep 5008」の実行結果(クリックで拡大)

 初期状態のRaspbianで開いているポートはありません。しかし、実運用では必要に応じてサービスやサーバソフトウェアを追加して利用することでしょう。定期的に不要サービスの確認を行い、利用しなくなったサービスやサーバソフトウェアは停止や無効化を行いましょう。また、運用中のサービスやサーバソフトウェアなどでも不用意にポートが開いた状態になっていないか確認することを推奨します。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.