CentOSでサービスをいれたけど拒否されてどこを確認すればよいかわかりません、といった事はないでしょうか?
CentOSにFFFTPなどでアクセスしてファイルを受け渡ししたいけどFTPが出来ないので対処法が知りたいです。
こういったサービスが上手く動かない人の疑問に答えます。
今回はファイル転送サービスのFTPを例にして、拒否の原因と解決方法を見ていきます。
筆者はWindowsサーバーやLinuxサーバーの運用構築を11年以上おこなってきました。その経験を元に知識を公開していきます!
CentOSでサービス拒否された時の対処法
ポートが解放されているか確認する
CentOSのポートが解放されているか確認してみます!
ポートが解放されているか確認するコマンドは「ss」コマンドです。以下のコマンドで確認してみます。
ss -ant
TCPのポートを全て表示する事が出来るコマンドです。ssコマンドの詳細は以下の記事を参考にしてください。
今回は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サービスがインストール完了しました!
サービスを起動させる
サービスのインストールは完了しましたが、サービスが有効になっていません。
サービスの状態を確認する
サービスが有効かどうかの確認コマンドは「service」です。以下のコマンドをうってみましょう!
service サービス名 status
systemctlでも可能です。
systemctl status サービス名
「Active: inactive(dead)」になっており、サービスが無効になっています。
サービスを有効にする
サービスを有効にするコマンドは以下です。
service サービス名 enable
systemctlでも可能です。
systemctl start サービス名
では早速サービスを有効にしてみましょう。
「service vsftpd enable」コマンドでサービス有効にしました!
「service vsftpd status」コマンドでサービス確認すると「Active: active(running)」になりました。サービスが有効になっています。
firewallでポートを許可する
Linuxではデフォルトでfirewallが有効になっていますので、ポートを許可しなくてはいけません。
firewallを操作するコマンドは「firewall-cmd」です。
firewallで許可されているポートを確認
現在の許可されているポートを確認してみましょう!確認するコマンドは以下です。
firewall-cmd --list-all
結果はサービス欄に「FTP」はありません。「http」と「ssh」しか許可されていません。
firewallでポートを許可する
ではfirewallでポートを許可しましょう!コマンドは以下です。
firewall-cmd --add-service=サービス
では今回は「firewall-cmd –add-service=ftp」コマンドを打ちましょう!
「success」となっているので成功しています。
また「firewall-cmd –list-all」で確認してみましょう!「services」に「ftp」が追加されています。
OS起動時にもfirewallでポートを許可するコマンド
これではOS再起動した場合に、元の設定に戻ってしまいます。
回避策はコマンドに「–permanent」オプションをつけましょう。そうする事で指定したポートが解放されてOSが起動してきます。
各種サービスの設定をする
ここまででサービス毎の設定以外は完了です。
後は各種サービス設定を行います。
今回のFTPの設定は以下にまとめています。
これでCentOSでサービスが拒否されなくなったのではないでしょうか?
どんどんサービスを入れて試してみましょう!