CentOSでサービスをいれたけど拒否されてどこを確認すればよいかわかりません、といった事はないでしょうか?
![](https://sugublog.org/wp-content/uploads/2021/02/cropped-dog003-150x150.png)
CentOSにFFFTPなどでアクセスしてファイルを受け渡ししたいけどFTPが出来ないので対処法が知りたいです。
こういったサービスが上手く動かない人の疑問に答えます。
今回はファイル転送サービスのFTPを例にして、拒否の原因と解決方法を見ていきます。
筆者はWindowsサーバーやLinuxサーバーの運用構築を11年以上おこなってきました。その経験を元に知識を公開していきます!
CentOSでサービス拒否された時の対処法
![エラー発生](https://sugublog.org/wp-content/uploads/2021/07/clash-1024x792.jpg)
![エラー発生](https://sugublog.org/wp-content/uploads/2021/07/clash-1024x792.jpg)
ポートが解放されているか確認する
CentOSのポートが解放されているか確認してみます!
ポートが解放されているか確認するコマンドは「ss」コマンドです。以下のコマンドで確認してみます。
ss -ant
TCPのポートを全て表示する事が出来るコマンドです。ssコマンドの詳細は以下の記事を参考にしてください。
![](https://sugublog.org/wp-content/uploads/2021/06/plugin-min-e1623592189322-300x212.jpg)
![](https://sugublog.org/wp-content/uploads/2021/06/plugin-min-e1623592189322-300x212.jpg)
![linuxでss-antコマンドでポート調査した結果](https://sugublog.org/wp-content/uploads/2023/11/linux_ss-ant.png)
![linuxでss-antコマンドでポート調査した結果](https://sugublog.org/wp-content/uploads/2023/11/linux_ss-ant.png)
今回はFTPなので使用するポートは21番ですが、ありませんでした。
サービスがインストールされていないか無効化されています。
サービスがインストールされているか確認
CentOSでサービスがインストールされているか確認します。CentOSでFTPのサービスは「vsftpd」です。
サービス一覧を表示するコマンドは「systemctl list-units –type=service」です。
![](https://sugublog.org/wp-content/uploads/2021/08/script_0809-7-300x206.jpg)
![](https://sugublog.org/wp-content/uploads/2021/08/script_0809-7-300x206.jpg)
沢山でてくるので|(パイプ)で渡して「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」を表示させてみました。
サービスをインストールする
![サービスインストール](https://sugublog.org/wp-content/uploads/2021/11/DB_1114-5-1024x682.jpg)
![サービスインストール](https://sugublog.org/wp-content/uploads/2021/11/DB_1114-5-1024x682.jpg)
まずはvsftpdサービスをインストールします。
以下のコマンドを打ちましょう!
yum -y install vsftpd
CentOSでサービスをインストールするコマンドは「yum」です。
「-y」オプションをつけると、途中で確認してくる問いに全て自動で「yes」で答えてくれます。
「install vsftpd」でvsftpdサービスを指定します。
![linuxのcentosでサービスをインストールする画面](https://sugublog.org/wp-content/uploads/2023/11/centos-vsftpd-install.png)
![linuxのcentosでサービスをインストールする画面](https://sugublog.org/wp-content/uploads/2023/11/centos-vsftpd-install.png)
これでCentOSにvsftpdサービスがインストール完了しました!
サービスを起動させる
サービスのインストールは完了しましたが、サービスが有効になっていません。
サービスの状態を確認する
サービスが有効かどうかの確認コマンドは「service」です。以下のコマンドをうってみましょう!
service サービス名 status
systemctlでも可能です。
systemctl status サービス名
「Active: inactive(dead)」になっており、サービスが無効になっています。
![linuxでservice確認結果オフ](https://sugublog.org/wp-content/uploads/2023/11/linux-service-status-dead-1.png)
![linuxでservice確認結果オフ](https://sugublog.org/wp-content/uploads/2023/11/linux-service-status-dead-1.png)
サービスを有効にする
サービスを有効にするコマンドは以下です。
service サービス名 enable
systemctlでも可能です。
systemctl start サービス名
では早速サービスを有効にしてみましょう。
「service vsftpd enable」コマンドでサービス有効にしました!
「service vsftpd status」コマンドでサービス確認すると「Active: active(running)」になりました。サービスが有効になっています。
![linuxでservice確認結果オン](https://sugublog.org/wp-content/uploads/2023/11/linux-service-status-active-1.png)
![linuxでservice確認結果オン](https://sugublog.org/wp-content/uploads/2023/11/linux-service-status-active-1.png)
![](https://sugublog.org/wp-content/uploads/2021/08/script_0809-7-300x206.jpg)
![](https://sugublog.org/wp-content/uploads/2021/08/script_0809-7-300x206.jpg)
firewallでポートを許可する
![firewallサービス](https://sugublog.org/wp-content/uploads/2021/09/jump0907-2-1024x768.jpg)
![firewallサービス](https://sugublog.org/wp-content/uploads/2021/09/jump0907-2-1024x768.jpg)
Linuxではデフォルトでfirewallが有効になっていますので、ポートを許可しなくてはいけません。
firewallを操作するコマンドは「firewall-cmd」です。
firewallで許可されているポートを確認
現在の許可されているポートを確認してみましょう!確認するコマンドは以下です。
firewall-cmd --list-all
![firewall-cmd--list-allの結果](https://sugublog.org/wp-content/uploads/2023/11/linux-firewall-cmd-list-all.png)
![firewall-cmd--list-allの結果](https://sugublog.org/wp-content/uploads/2023/11/linux-firewall-cmd-list-all.png)
結果はサービス欄に「FTP」はありません。「http」と「ssh」しか許可されていません。
firewallでポートを許可する
ではfirewallでポートを許可しましょう!コマンドは以下です。
firewall-cmd --add-service=サービス
では今回は「firewall-cmd –add-service=ftp」コマンドを打ちましょう!
![firewall-cmd--add-serviceコマンド結果](https://sugublog.org/wp-content/uploads/2023/11/linux-firewall-cmd-add-service.png)
![firewall-cmd--add-serviceコマンド結果](https://sugublog.org/wp-content/uploads/2023/11/linux-firewall-cmd-add-service.png)
「success」となっているので成功しています。
また「firewall-cmd –list-all」で確認してみましょう!「services」に「ftp」が追加されています。
![](https://sugublog.org/wp-content/uploads/2021/07/security007-2-300x187.jpg)
![](https://sugublog.org/wp-content/uploads/2021/07/security007-2-300x187.jpg)
OS起動時にもfirewallでポートを許可するコマンド
これではOS再起動した場合に、元の設定に戻ってしまいます。
回避策はコマンドに「–permanent」オプションをつけましょう。そうする事で指定したポートが解放されてOSが起動してきます。
各種サービスの設定をする
![各種サービス設定](https://sugublog.org/wp-content/uploads/2021/08/school_08-7-1024x683.jpg)
![各種サービス設定](https://sugublog.org/wp-content/uploads/2021/08/school_08-7-1024x683.jpg)
ここまででサービス毎の設定以外は完了です。
後は各種サービス設定を行います。
今回のFTPの設定は以下にまとめています。
![](https://sugublog.org/wp-content/uploads/2021/12/PC教室20211216-9-300x125.jpg)
![](https://sugublog.org/wp-content/uploads/2021/12/PC教室20211216-9-300x125.jpg)
これでCentOSでサービスが拒否されなくなったのではないでしょうか?
どんどんサービスを入れて試してみましょう!