サイトアイコン スグブログ

【Linux基礎】CentOSでサービス拒否された時の対処法

落ちている

CentOSサービスをいれたけど拒否されてどこを確認すればよいかわかりません、といった事はないでしょうか?

CentOSでFTPが出来なくて困っている人

CentOSにFFFTPなどでアクセスしてファイルを受け渡ししたいけどFTPが出来ないので対処法が知りたいです。

こういったサービスが上手く動かない人の疑問に答えます。

今回はファイル転送サービスのFTPを例にして、拒否の原因と解決方法を見ていきます。

筆者はWindowsサーバーやLinuxサーバーの運用構築を11年間以上おこなってきました。その経験を元に知識を公開していきます!

CentOSでサービス拒否された時の対処法

ポートが解放されているか確認する

CentOSのポートが解放されているか確認してみます!

ポートが解放されているか確認するコマンドは「ss」コマンドです。以下のコマンドで確認してみます。

ss -ant

TCPのポートを全て表示する事が出来るコマンドです。ssコマンドの詳細は以下の記事を参考にしてください。

linuxでss-antコマンドでポート調査した結果

今回はFTPなので使用するポートは21番ですが、ありませんでした。

サービスがインストールされていないか無効化されています。

サービスがインストールされているか確認

CentOSでサービスインストールされているか確認します。CentOSでFTPのサービスは「vsftpd」です。

サービス一覧を表示するコマンドは「systemctl list-units –type=service」です。

沢山でてくるので|(パイプ)で渡して「grep」で絞り込みましょう。

[root@localhost ~]# systemctl list-units --type=service | grep vsftpd
[root@localhost ~]#

コマンドを打ちましたが何も出てきません。「vsftpd」サービスはまだないようです。

[root@localhost ~]# systemctl list-units --type=service | grep httpd
  httpd.service                      loaded active running The Apache HTTP Server
[root@localhost ~]#

サービスがあると表示されます。サービスがある「httpd」を表示させてみました。

サービスをインストールする

まずはvsftpdサービスをインストールします。

以下のコマンドを打ちましょう!

yum -y install vsftpd

CentOSでサービスをインストールするコマンドは「yum」です。

「-y」オプションをつけると、途中で確認してくる問いに全て自動で「yes」で答えてくれます。

「install vsftpd」でvsftpdサービスを指定します。

これでCentOSにvsftpdサービスがインストール完了しました!

仮想環境のvirtualboxで環境構築していて、インターネット接続できずにサービスインストールできない場合は以下の記事を参考にインターネット接続できるようにしてください。

サービスを起動させる

サービスのインストールは完了しましたが、サービスが有効になっていません。

サービスの状態を確認する

サービスが有効かどうかの確認コマンドは「service」です。以下のコマンドをうってみましょう!

service サービス名 status

systemctlでも可能です。

systemctl status サービス名

「Active: inactive(dead)」になっており、サービスが無効になっています。

linuxでservice確認結果オフ

サービスを有効にする

サービスを有効にするコマンドは以下です。

service サービス名 enable

systemctlでも可能です。

systemctl start サービス名

では早速サービスを有効にしてみましょう。

「service vsftpd enable」コマンドでサービス有効にしました!

「service vsftpd status」コマンドでサービス確認すると「Active: active(running)」になりました。サービスが有効になっています。

linuxでservice確認結果オン

サービスの状態を確認したり操作したりするコマンドも、以下の記事にまとめています。

firewallでポートを許可する

Linuxではデフォルトでfirewall有効になっていますので、ポートを許可しなくてはいけません。

firewallを操作するコマンドは「firewall-cmd」です。

firewallで許可されているポートを確認

現在の許可されているポートを確認してみましょう!確認するコマンドは以下です。

firewall-cmd --list-all
firewall-cmd–list-allの結果

結果はサービス欄に「FTP」はありません。「http」と「ssh」しか許可されていません。

firewallでポートを許可する

ではfirewallでポートを許可しましょう!コマンドは以下です。

firewall-cmd --add-service=サービス

Linuxのサービス名ではない事に気をつけましょう!ここでは「vsftpd」ではなく「ftp」です。

では今回は「firewall-cmd –add-service=ftp」コマンドを打ちましょう!

firewall-cmd–add-serviceコマンド結果

「success」となっているので成功しています。

また「firewall-cmd –list-all」で確認してみましょう!「services」に「ftp」が追加されています。

CentOSでのfirewallサービスの詳細な記事は以下にまとめています。

OS起動時にもfirewallでポートを許可するコマンド

これではOS再起動した場合に、元の設定に戻ってしまいます。

回避策はコマンドに「–permanent」オプションをつけましょう。そうする事で指定したポートが解放されてOSが起動してきます。

各種サービスの設定をする

ここまででサービス毎の設定以外は完了です。

後は各種サービス設定を行います。

今回のFTPの設定は以下にまとめています。

これでCentOSでサービスが拒否されなくなったのではないでしょうか?

どんどんサービスを入れて試してみましょう!

モバイルバージョンを終了