VMのUbuntuに対して指定のポートが有効かどうか確認する
概要
- 以前こちらでも設定したが、ufwで特定のポートからのアクセスを許可する方法と、それが有効か確認する方法を記載する
ufwとは
第76回 Ubuntuのソフトウェアファイアウォール:UFWの利用(1):Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
ufw(Uncomplicated FireWall)は,Ubuntuで標準的に利用できる,「iptablesを簡単に設定するツール」です。ufwを利用することで,「外部からの接続は基本的に受け付けない」「sshだけは許す」などといった設定を,iptablesにくらべて格段に少ない操作で実現できます。
新たにポートを許可
- Ubuntuで以下を設定
[~] $sudo ufw allow 5000 ルールを追加しました [~] $
- ufw statusでポートを確認する
- ※もともと80は有効。8181は上の記事で有効にしたもの
[~] $sudo ufw status 状態: アクティブ To Action From -- ------ ---- 8181 ALLOW Anywhere 80 ALLOW Anywhere 5000 ALLOW Anywhere [~] $
ホストOSのWindowsから見られることを確認
- Ubuntuで先程追加した5000番のポートを指定してWebサーバを立ち上げる
[~] $python3 -m http.server --cgi 5000 Serving HTTP on 0.0.0.0 port 5000 (http://0.0.0.0:5000/) ...
- Windows側のブラウザで以下のアドレスを見てみる
http://192.168.3.11:5000
[~] $python3 -m http.server --cgi 5000 Serving HTTP on 0.0.0.0 port 5000 (http://0.0.0.0:5000/) ... 192.168.3.2 - - [31/Jan/2018 00:06:54] "GET / HTTP/1.1" 200 - 192.168.3.2 - - [31/Jan/2018 00:06:54] code 404, message File not found 192.168.3.2 - - [31/Jan/2018 00:06:54] "GET /favicon.ico HTTP/1.1" 404 - 192.168.3.2 - - [31/Jan/2018 00:07:02] "GET / HTTP/1.1" 200 -
telnetで確認
- WindowsのコマンドプロンプトからUbuntuのアドレスとポートを指定してtelnetする
- コマンドプロンプトは、スタートメニューから「cmd」で行ける
- Window7でtelnetコマンドを使うためには以下を有効にする必要がある
- ポートが開いているかどうかをtelnetで確認する方法 | Knowledge Base
Windows VistaとWindows 7の場合、まず、telnetを有効にしなければならないことがあります: [スタート]->[コントロール パネル]->[プログラム]へ移動してください; [プログラムと機能]のメニューの[Windowsの機能の有効化または無効化]をクリックしてください; [Telnetクライアント]と[Telnetサーバー]の両方にチェックマークを付けてください; [OK]をクリックしてください。
- ポートが開いているかどうかをtelnetで確認する方法 | Knowledge Base
C: >telnet 192.168.3.11 5000
- ポートへの接続が有効な場合は以下の真っ黒な画面が表示される
- この画面で適当に打ち込むとUbuntu側に返していることがわかる
- 以下はabcdeと打ったときの結果
[~] $python3 -m http.server --cgi 5000 Serving HTTP on 0.0.0.0 port 5000 (http://0.0.0.0:5000/) ... 192.168.3.2 - - [31/Jan/2018 00:06:54] "GET / HTTP/1.1" 200 - 192.168.3.2 - - [31/Jan/2018 00:06:54] code 404, message File not found 192.168.3.2 - - [31/Jan/2018 00:06:54] "GET /favicon.ico HTTP/1.1" 404 - 192.168.3.2 - - [31/Jan/2018 00:07:02] "GET / HTTP/1.1" 200 - 192.168.3.2 - - [31/Jan/2018 00:15:20] code 400, message Bad request syntax ('abcde') 192.168.3.2 - - [31/Jan/2018 00:15:20] "abcde" 400 -
5000が有効になったことを確認できた