【すぐわかる】CentOSのポート開放のやり方

centosのport解放
  • このエントリーをはてなブックマークに追加
  • Pocket

最近のCentOS7やFedoraなどはデフォルトでfirewalldが有効になっており、基本的にポートは塞がっている。

サービスを提供するには、適切に設定されたサーバアプリケーションと適切なポート開放が必要となる。例えばwebサーバの場合apacheなどを設定し起動、その後firewalldの設定を行い80番のポートを開放する必要がある。

このページではCentOSのポート解放についてお伝えしよう。

そもそもポートとは?

念のためご紹介しておこう。

TCPやUDPで通信を行うときは、コンピュータ単位ではなく「プロセスやスレッド単位」で通信が行われる。この時の通信の窓口がポートである。

ネットワーク間でやり取りされる情報の基礎は「プロトコル」と「アドレス」と「ポート番号」この三つが主軸になっている。

日本語におとしこむと「どのような方法」(プロトコル)で「どこ」(アドレス)の「何号室」(ポート)でアクセスするか?という話になる。

ポートの種類

一般的なサービスを提供するため、決め打ちされたポートが多く存在している。これらは任意で変更できるが、基本的にはそのまま使用することが多い。

セキュリティのために変えることもあるが、特にはじめて勉強するときは同じままにしたほうがいいだろう。

0~1023までを「ウェルノウンポート番号」という。これらはIANAという団体により管理されていて、だいたい割り振りが決まっている。

そのなかでも代表的なポートをあげてみよう。

  • TCP 20 : FTP (データ)
  • TCP 21 : FTP (制御)
  • TCP 22 : SSH
  • TCP 23 : Telnet
  • TCP 25 : SMTP
  • UDP 53 : DNS
  • UDP 67 : DHCP(サーバ)
  • UDP 68 : DHCP(クライアント)
  • TCP 80 : HTTP
  • TCP 110 : POP3
  • UDP 123 : NTP
  • TCP 443 : HTTPS

などだ。

CentOSでポートを実際に設定してみる

例えばwebサーバを稼動させて、ポートを解放してみよう。

今回はLAN内部でwebサーバを稼動させfirewalldの設定を施しポートを開放することにする。

取り敢えずサービスであるhttpdをインストールしサービスを有効化しよう。

サーバアプリのインストール

# yum install httpd

# systemctl start httpd

起動時にサーバを起動させたいならば

# systemctl enable httpd

としておくとよいだろう。

firewalldのポートを開ける

webサーバを運営するうえで、解放しなければならないポートは80番となっている。firewalldにはメジャーなサービスを許可するためのテンプレートが用意されている。

# firewall-cmd --zone=public --add-service=http

とするとWebサーバのTCP、80番ポートが開放される。しかしこれは一時的な反映だ。恒久的な設定をするには、

# firewall-cmd --zone=public --add-service=http --permanent

としておこう。

最後に、

# firewall-cmd --reload

として恒久的な設定を反映させる。

設定を確認してみよう

# firewall-cmd --list-all

port

servicesの項目にhttpが追加された。

この時点でローカルエリアネットワーク内であればブラウザのURLにサーバのIPアドレスを入力すればサーバの稼働が確認できるはずだ。

httpd

ポートを直接開く

またサービス単位ではなくポートを直接開く方法もある。

試しにTCPの443ポートを開放してみよう。

即時反映

# firewall-cmd --zone=public --add-port=443/tcp

恒久的な設定の反映

# firewall-cmd --zone=public --add-port=443/tcp --permanent

リロード

# firewall-cmd --reload

設定を確認してみよう。

# firewall-cmd --list-all

port2

portsの項目に443/tcpが追加されているのがわかる。

ポートが開いているか確認

一般的に他のマシンから、サーバマシンへポートスキャンを行うと、どのポートが開放されているか知ることができる。代表的なポートスキャナとして「nmap」というプログラムがある。単にポートのチェックをしたいだけならば以下のようにすればよい

取り敢えずnmapをインストールしよう。

他のマシンでパッケージマネージャを使ってインストールしよう。

CentOS系の場合

# yum install nmap

一応、Debian系の場合も

# apt-get install nmap

これでインストールされるはずだ。後は

# nmap <アドレス>

とすればよい。

例えば192.168.12.18というIPアドレスを持つサーバがあるとする。nmapがインストールされたマシンから、サーバマシン192.168.12.18へポートスキャンするには以下のようにすればよい。

# nmap 192.168.12.18

nmap

ssh及び、httpとhttpsを提供するためのポートが開いているのが確認できる。

もしくはポートをインターネットからスキャンしてくれるサービスも存在する。

https://www.cman.jp/network/support/port.html

しかし外部のネットワークから、ルータを越えてスキャンを実行する場合、ルータのポートも開放しなければならないことに気をつけよう。ルータの設定はメーカー毎に違うため細かくは触れないが。大概は「ポート開放」という項目があるだろう。

ポートに関してはこちらも参照してほしい

まとめ

このページではCentOSでのポート解放についてお伝えした。ポート番号やサービスを予め把握しておき、コマンドでオープンにしていくイメージだ。

何度かチャレンジしてみて様子を確認してみよう。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できます。

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リスキルテクノロジーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメント

  1. ぞの より:

    リロードコマンドのハイフンが一つ少ないと思います。
    firewall-cmd --reload

    1. リカレントテクノロジー より:

      こちらご指摘ありがとうございます。修正させていただきます。

  2. こねこ より:

    "ポートを直接開く"のリロードコマンドのハイフンが一つ少ないです。
    firewall-cmd --reload

    1. リカレントテクノロジー より:

      コメント頂きありがとうございます。
      ご指摘の通り、-reload → --reload となります。該当箇所の記述を訂正いたしました。

      引き続き、ご愛読のほど、よろしくお願いいたします。

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リスキルテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する