ポート開放(ポートフォワーディング)する方法

Linux

こんにちは。今回はポート開放(ポートフォワーディング)する方法についてまとめようと思います。

ポート開放はWEBサイトやファイルサーバーを運用する際によく出てきます。ポートを開放するとセキュリティーのリスクも高まりますので、注意して行いましょう。

初めての方にでもわかりやすいように解説しようと思いますので、ぜひご覧ください。

ポート開放とは

ポート開放は、外部からの特定の通信を家庭内や会社内のネットワークにある特定のデバイス(コンピュータやカメラなど)に転送する設定のことです。

通常、家庭や会社のネットワークはルーターによって守られています。ルーターは、内部(LAN)と外部(インターネット)の間の交通整理役です。ポートフォワーディングを設定することで、インターネットから来る通信を特定のデバイスやアプリケーションに届けることができるようになります。

ポート開放のイメージは下記画像の通りです。

例えばルーターのグローバルIPアドレス「xxx.xxx.xxx.xx1」のポート80番に来た通信は、ローカルIPアドレス「192.168.11.5」のポート80番へ転送したり、
ルーターのグローバルIPアドレス「xxx.xxx.xxx.xx1」のポート50000番に来た通信は、ローカルIPアドレス「192.168.11.4」のポート22番へ転送するといった感じです。

つまり、ルーター側のポートと転送先のデバイスのポートの双方を開放し、ルーターのポート番号ごとに転送先のデバイスをあらかじめ設定しておきます。

ポートを開放すること自体を「ポート開放」、ポート番号ごとに転送先のデバイスを結びつけることを「ポートフォワーディング」というのだと思いますが、今回は便宜上これら2つをまとめて「ポート開放」と呼称します。

ポート開放が必要になる場面

ゲームやアプリケーションの通信

  • オンラインゲームやビデオ通話アプリは、外部から直接データを受け取る必要があるため、ポートフォワーディングを設定することがあります。

リモートアクセス

  • 外出先から家のネットワーク内にあるデバイス(監視カメラやNAS)にアクセスしたい場合、ポートフォワーディングが必要です。

ウェブサーバーの公開

  • 自宅のPCでウェブサイトを運営したい場合、外部からのHTTPリクエストをPCに転送する設定を行います。

ポート開放の設定方法

ルーターのポート開放方法

今回はバッファローのルーターのポート開放方法についてまとめます。また、ルーターにはポート開放のサービス自体を提供していないものもありますので、あらかじめ機能自体が備わっているのかをご確認ください。

1.まず、転送先のデバイスのローカルIPアドレスを固定します。ローカルIPアドレスはルーターのDHCPにより一定時間が過ぎると再割り振りされてしまいます。そのためローカルIPアドレスが変わってしまわないよう固定してしまいましょう!

以前にローカルIPアドレスの固定化の方法はまとめていますのでそちらをご参照ください。

2.次に、ルーターの設定画面を開きます。検索エンジンンのアドレスバーに「192.186.11.1/login.html」と入力するとログイン画面が出てくるはずです。ユーザー名とパスワードを入力したら選定画面に入れます。ユーザー名とパスワードは、ルーターの横か裏に記載があると思います。

3.ログインすると下記画像のような設定のホーム画面が出力されると思います。(1度開いたことがあれば出ないことも)
ホーム画面右下の1つだけグレーになっている「詳細設定ボタン」を押下してください。

4.すると下記のような画面が出力されます。左側のメニュー一覧から「ルーターセキュリティー」→「ポート変換」の順に進みます。

  • グループ : 開放するポートが複数ある場合は管理が大変になりますので、自由にグループを作成し、まとめてください。
  • Internet側IPアドレス : デフォルトのままで大丈夫です。
  • プロトコル : TCP/UDPのラジオボタンにチェックを入れ、「任意のTCPポート」を選択し、ルーター側が開放するポート番号を入力します。
  • LAN側IPアドレス : 手順1にて固定した、転送先デバイスのローカルIPアドレスを入力。
  • LAN側ポート : 転送先デバイスの何番ポートに転送するかを指定(ポート番号が同じ場合は未入力でも〇)

設定ができたら「新規追加」ボタンを押下で登録完了です。

ハッカーは80番や22番といった、よく使われるポート番号を中心に攻撃を仕掛けてくる場合が多いです。つまり推測されやすいポート番号を開放するのは危険な場合があります。回避方法として、例えばSSH接続をする場合は22番ポートを指定することが多いですが、ルーター側のポートは50000番を開放し、LAN側ポートで22番へ転送するなどしてセキュリティーを高めることができます。(つまり、あまり推測されにくいポートを開放するのがおすすめ!!)

以上でルーター側の設定は完了です。次は転送先のポート開放の設定を行いましょう。今回はWindowsとLinuxについてまとめます。

デバイスのポート開放方法

Windowsの場合

1.まずコマンドプロンプトを管理者として開きます。

  1. R+スタートボタン
  2. 「cmd」と入力後、ctrl + shift + enter ボタンで管理者として実行できます

2.下記コマンドを実行し、開放したいポートの現在の状態を確認します。今回はポート80番を例にします。

TCPとUDPの2種類がありますが、TCPが使われることが多いです。違いをまとめたのでご参照ください。

特徴TCPUDP
接続の有無接続型(コネクションを確立してから通信)非接続型(コネクションの確立不要)
信頼性信頼性が高い(データ損失の防止、順序保証)信頼性が低い(データ損失の可能性あり、順序保証なし)
速度比較的遅い(確認応答が必要)高速(確認応答が不要)
用途信頼性重視のアプリケーション(例: Web、メール)速度重視のアプリケーション(例: ストリーミング、オンラインゲーム)
netsh advfirewall firewall show rule name=all | findstr "80"

3.次に下記コマンドでポートを開放します。

#TCPポートを開放する場合
netsh advfirewall firewall add rule name="Allow TCP Port 80" protocol=TCP dir=in localport=80 action=allow

#UDPポートを開放する場合
netsh advfirewall firewall add rule name="Allow UDP Port 123" protocol=UDP dir=in localport=80 action=allow

4.手順3のコマンドで再び開放したいポートの現在の状態を確認し、下記のような出力がされれば、ポート開放成功です。

規則名:                               Allow TCP Port 80
ローカル ポート:                      80

Linuxの場合

ubuntの環境でのまとめになります。

1.まず下記コマンドを実行し、ファイアウォールが起動しているかを確認します。

sudo systemctl status ufw

下記のような出力があれば、ファイアフォールがしっかり起動しています。(一部抜粋したものです)

Active: active (exited)

起動していなければもちろん、どのポートでも通信できますが、危ないので起動することをお勧めします。下記のコードで起動しましょう。起動後には、もう一度上記コードで状態を確認しましょう。

sudo ufw enable

2.次に、開放したいポートの現在の状態を確認します。今回はポート80番を例にします。

sudo ufw allow 80

プロトコルを指定したい場合は下記のように実行してください。指定しない場合は「TCP」になります。

sudo ufw allow 80/tcp
sudo ufw allow 80/udp

3.解放されたことを下記コマンドで確認しましょう。ポート番号の隣に「ALLOW」と出力されれば成功です。

sudo ufw status

【おまけ】

ポートの閉じ方もメモしておきます。
ポート番号の隣に「DENY」と出力されれば成功です。

sudo ufw deny 80

まとめ

ポート開放(ポートフォワーディング)は、外部との通信を可能にする重要な設定ですが、セキュリティリスクも伴います。そのため、必要最低限のポートを開放し、適切なセキュリティ対策を講じることが大切です。本記事の手順を参考に、安全にポート開放を行いましょう。問題が発生した場合は、設定を見直しながら慎重に進めてください!

コメント

タイトルとURLをコピーしました