お使いのMac/Linuxは安全?5分でできるネットワークの安全チェック術|UNIX Cafe

当サイトでは、コンテンツの一部に広告を掲載しています。
第41回|UNIX Café「ネットワークの安全チェック」

UNIX Cafe | 第41回

目次

ネットワークの安全チェックへようこそ

「自分のパソコン、ネットワーク的に安全なのかな?」
「ポートとかファイアウォールって言葉は聞くけど、なんだか難しそう…」

そんな風に感じたことはありませんか?特にターミナル(黒い画面)に触れる機会が増えると、ふとセキュリティのことが気になってしまうものです。

この記事では、MacやLinuxをお使いの初心者の方でも安心して取り組める、ネットワークの基本的な安全チェック方法を、対話形式でやさしく解説します。難しい専門用語はかみ砕き、コピー&ペーストで使えるコマンドだけを紹介するので、ご安心ください。

この記事を読み終える頃には、自分の手でネットワークの状態を確認し、「うん、大丈夫!」と安心できるスキルが身についているはずです。

まずは内部から!「開いているポート」をこっそり覗いてみよう

ネットワークの安全確認は、まず自分のパソコンの「内側」から見てみるのが基本です。外部から攻撃者が侵入できる「入口」が開いていないか、一緒に確認していきましょう。

Mac / Linux で LISTEN を確認する

ミナちゃん

先生、「入口が開いている」って、専門用語だと何て言うんでしたっけ?

ユニ先生

いい質問だね、ミナちゃん。それは「ポートがLISTEN(リッスン)している」状態のことだよ。「LISTEN」は「聞く」という意味で、外部からの接続を待ち構えている状態を指すんだ。

Mac / Linux で「LISTEN」しているポートを確認するコマンド

それでは早速、現在LISTEN状態のポートを探してみましょう。ターミナルを開いて、以下のコマンドをコピー&ペーストして実行してみてください。

sudo lsof -i -P | grep LISTEN

コマンドの分解ショー

lsof -i -P

これは「今使われている通信の一覧を、全部表示して!」という命令です。ネットワークに関するあらゆる活動がリストアップされます。

|(パイプ)

これはプログラミングの世界でよく使われる「パイプ」という記号です。左側のコマンドの実行結果を、右側のコマンドに「受け渡す」役割をします。まるで水道管のようにデータを流すイメージです。

grep LISTEN

grep は、大量のテキストの中から特定のキーワードが含まれる行だけを抜き出す「フィルター」のようなコマンドです。ここでは、lsofがリストアップした大量の通信の中から、「LISTEN」という文字が含まれる行だけを抽出しています。

つまり、この一行は「すべての通信を調べて、その中から入口を開けて待っている(LISTEN)ものだけを教えて!」という意味になります。

実行結果の例

ControlCenter 618 noi   8u  TCP *:7000 (LISTEN)
ミナちゃん

本当だ!(LISTEN) って書いてあります! これが今、開いている入口なんですね!

この結果から「ControlCenterというアプリが、7000番の入口(ポート)を開けて待っている」ということが分かります。このように、意図しないアプリがポートを開いていないかを確認するのが、内部チェックの第一歩です。

安心ポイント

ここで表示されるポートの多くは、パソコンが自分自身の内部で通信するために使っているものです。*ではなくlocalhostや127.0.0.1と表示されているものは、外部からはアクセスできないので、ひとまず安心してください。

今度は外から!「nmap」で客観的に診断してみよう

内部のチェックが終わったら、次は「外の世界から自分のパソコンがどう見えているか」を確認します。これには nmap という、ネットワーク診断のプロも使う強力なツールを使います。

nmap を使うことで、あたかも外部の第三者になったかのように、自分のパソコンのポートをスキャンできます。

nmapのインストール

nmap は標準ではインストールされていないことが多いので、まずは準備をしましょう。

macOSの場合 (Homebrewを使用)

brew install nmap

Linuxの場合 (Debian/Ubuntu系)

sudo apt update
sudo apt install nmap
ミナちゃん

これって、自分のパソコンの入口がどう見えるか調べてるんですね!

自分のPCをスキャンしてみる

インストールが完了したら、さっそく自分のPC (localhost) をスキャンしてみましょう。

nmap localhost

これで、外部からアクセス可能なポートの状態が一覧で表示されます。

主要なポートだけをピンポイントで確認する

全部のポートを調べるのは時間がかかるので、特に狙われやすい主要なポート(22番:SSH, 80番:HTTP, 443番:HTTPS)の状態を確認してみましょう。

nmap -p 22,80,443 localhost
ユニ先生

必要なポートだけをピンポイントで確認することもできるよ。

実行結果の例と見方

PORT    STATE  SERVICE
22/tcp  closed ssh
80/tcp  closed http
443/tcp closed https
シェリ

結果は全て closed になっています。

ポイント

結果に `closed` と表示されていれば、そのポートは「閉じている」ということ。つまり、外部からその入口を通って侵入することはできません。意図的にサーバーとして公開していない限り、`closed` となっているのが最も安全な状態です。

  • 22/tcp closed ssh: 外部からSSH(遠隔操作)でログインできない状態。安全です。
  • 80/tcp closed http: Webサーバーが動いていない状態。安全です。
  • 443/tcp closed https: 暗号化されたWebサーバーが動いていない状態。安全です。

最後の砦!ファイアウォールの状態を確認しよう

ポートの開閉状態を確認したら、最後の砦である「ファイアウォール」が正しく機能しているかも見ておきましょう。ファイアウォールは、不正な通信をブロックしてくれる「門番」のような存在です。

Mac の場合

macOSに内蔵されているアプリケーションファイアウォールの状態は、以下のコマンドで確認できます。

sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate

Firewall is enabled. (State = 1) と表示されれば、有効になっています。

Linux (UFW) の場合

Ubuntuなどでよく使われるUFW(Uncomplicated Firewall)の状態は、以下のコマンドで確認できます。

sudo ufw status

Status: active と表示されれば、ファイアウォールは有効です。

危険な“開きっぱなしポート”を見つけるポイント

初心者が覚えておきたい3つの判断基準

  • 見覚えのないサービスが LISTEN していないか
  • 本来使っていないポートが開いていないか
  • 22番(SSH)が外部に公開されていないか
ミナちゃん

知らないドアが開いていないか、ちゃんと点検するんですね!

まとめ:セキュリティチェックは「健康診断」

今回は、ネットワークの安全性を確認するための基本的な3つのステップを紹介しました。

  • lsofで内部のLISTENポートを確認する
  • nmapで外部からの見え方を確認する
  • ファイアウォールが有効かを確認する

セキュリティチェックというと、何か怖いものを見つける作業のように感じるかもしれませんが、実際は「自分のPCの今の状態を知る」ための健康診断のようなものです。

特に初心者が覚えておきたい危険なサインは以下の3つです。

  • 見覚えのないサービスがポートを開いていないか?
  • Webサーバーなどを動かしていないのに、80番や443番ポートが開いていないか?
  • SSH(22番ポート)が意図せず外部に公開されていないか?

定期的にこのページのコマンドを実行して、自分のPCの状態をチェックする習慣をつけるだけで、安心してインターネットを楽しむことができます。

ユニ先生

安全チェックというと難しく聞こえるけれど、本当は“今どんなドアが開いているかな?” と軽く点検するだけでも十分なんだ。

次回予告

次回は、今回も登場した「SSH」の世界を深掘りします。遠く離れたコンピュータと安全に通信するための仕組みを、初心者にも分かりやすく解説しますので、お楽しみに!

さらに学びたいあなたへ

📘 用途ごとに選ぶ Linux のおすすめ本

あわせて読みたい
レベル・用途別おすすめ Linux 本リスト|UNIX Cafe UNIX Cafe | 第65回 Linux の世界には、「はじめて触る人」「コマンドを覚えはじめた人」「サーバーに挑戦したい人」と、さまざまな段階があります。そんなときに、自分...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe 編集部

UNIX Cafe は、むずかしい言葉をできるだけ使わず、物語を読むような気持ちで気軽に学べる場所です。
プログラミングは、アイデアをコンピューターに伝えるための「ことば」。
簡単な単語と文法を覚えることで、誰でもターミナルから便利なコマンドを使えるようになります。
コーヒーを片手に立ち寄るような気持ちで、やさしいプログラミングの世界を、
そっとのぞいてみてください。

目次