【すぐわかる】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

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

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*