【tech】vsftpdでchroot設定しようとしたらログインできなかったメモ




vsftpdでchroot設定をすると、パスワードはあっているはずなのにログインできないという事象にあたり、これもなかなかハマったのでメモしておきます。
色々と調べた結果、FTP先のホームディレクトリに書き込み権限がある時は、vsftpd.confに追加しなくてはいけないディレクティブがあることがわかりました。

・原因
結局つかめず。。調べた感じだとホームディレクトリに書き込み権限があるせい?

・対処法
vsftpd.confに「allow_writeable_chroot=YES」を追記

環境


ホストOS:CentOS7.5
FTPサーバ:vsftpd
IPアドレス:192.168.56.151
ユーザ:testuser
FTP先のホームディレクトリ:/home/testuser

chrootの設定済み




・手順
・ディレクトリ移動
cd /etc/vsftpd

・設定ファイル編集
vi vsftpd.conf
→最下行へ「allow_writeable_chroot=YES」追記

・vsftpd再起動
systemctl restart vsftpd

vsftpのアクセスリストまわり(YESの時はホワイトリスト~とかNOならブラックリスト~という制御)ほんとややこしいですよね。。何度も再現させて理解していきたいと思います!!FTPって一度設定してしまうと触る事ないのでなかなか身に付きませんが、みんなが知らない事こそ、さらっと答えちゃうとカッコいいですよね!


・エラーログ


[root@localhost ~]# ftp 192.168.56.151
Connected to 192.168.56.151 (192.168.56.151).
220 (vsFTPd 3.0.2)
Name (192.168.56.151:root): testuser
331 Please specify the password.
Password:
500 OOPS: chroot
Login failed.
421 Service not available, remote server has closed connection


さいごに私が使っているPC(のメモリが8GBの物)です!
私は今このPCのメモリを現在では32GBにアップグレードして使っています!笑
安くなりましたよねメモリ。SSDも安くなってるので買い換えたいです!笑

下のRedmineとZabbixの本は kindle unlimitedで無料で読めますのでお勧めです!(30日無料期間に読んで解約もアリだと思います。笑)

【tech】vsftpdのログインディレクトリを変更するメモ




CentOS7にVSFTPDをインストールしてFTPサーバを構築しています。
FTP用のディレクトリをつくって、各ユーザがFTPアクセスしてきたとき、指定のFTP用ディレクトリにアクセスされるようにする設定をメモしています。

目的


・ユーザ「testuser」のFTP接続時のホームディレクトリを
 /ws/ftp/testuser
 へ変更したい。

前提


ホストOS:CentOS7
FTP:vsftpd
ユーザ:testuser

・FTPの設定が済んでいる →FTP接続参照
・FTP用ユーザ作成が済んでいる
・FTP用ユーザがchrootの対象外である
 (homeディレクトリより上の階層に行く事ができる)


・vsftpdの設定ファイルがあるディレクトリに移動
cd /etc/vsftpd/

・配下のファイルを確認
ls

・ユーザのデフォルトディレクトリ指定用の設定ファイルを
 配置する為のディレクトリを作成する
mkdir vsftpd_user_conf

・vsftpdの設定ファイルにディレクトリを追記
vi vsftpd.conf
→下記のディレクティブを追記


user_config_dir=/etc/vsftpd/vsftpd_user_conf




・作成したディレクトリを確認
ls
→vsftpd_user_confがある事を確認

ユーザ毎のホームディレクトリを設定


・ディレクトリの移動
cd vsftpd_user_conf

・ユーザ毎のホームディレクトリファイルを作成
vi testuser
→下記のディレクティブを追記


local_root=/ws/ftp/testuser




・vsftpdを再起動
systemctl restart vsftpd

・FTP接続して確認する
ftp 192.168.56.150

testuser
testuserPW

pwd
>/workspace/ftp/testuser
これで成功!



うまくいかないときは


vsftpdのアクセス制御はややこしいので一つずつ確認していく。

・ftpusersファイル(FTPサーバへのアクセス制限ファイル)
ここに記載されているユーザはFTPサーバへアクセスできません。

・user_listファイル(FTPサーバへのアクセス制限ファイル)
vsftpd.confの設定により、振る舞いが変わります。
-user_listファイルを「許可リスト」として使用する場合
 -userlist_enable=YES (ユーザリストを使用する=YES)
 -userlist_deny=NO (ユーザリストを「拒否リスト」にする=NO)
            ※拒否リストにしない → 許可リストとして使用する

-user_listファイルを「拒否リスト」として使用する場合
 -userlist_enable=YES (ユーザリストを使用する=YES)
 -userlist_deny=YES (ユーザリストを「拒否リスト」にする=YES)

・chroot_listファイル(上位ディレクトリへのアクセス制限ファイル)
ここに記載されているユーザのみがホームディレクトリより
上位ディレクトリに移動できるようになります。
rootも記載する必要がありそうです(要調査)




さいごに私が使っているPC(のメモリが8GBの物)です!
私は今このPCのメモリを現在では32GBにアップグレードして使っています!笑
安くなりましたよねメモリ。SSDも安くなってるので買い換えたいです!笑

下のRedmineとZabbixの本は kindle unlimitedで無料で読めますのでお勧めです!(30日無料期間に読んで解約もアリだと思います。笑)



【tech】vsftpdのログインが遅い・時間がかかる時の対応メモ




CentOS7にvsftpdでFTPサーバを構築して、ログインできないなどの様々なトラブル(笑)を乗り越えてようやくログインできたものの、パスワード入力後のレスポンスがやたらと遅いので、とにかく時間がかかって気になったので調べてみました。

同じようにvsftpdのFTPログインで時間がかかってしまっている人が沢山いて、すぐに対応策が見つかりました。

・解決策
/etc/vsftpd/vsftpd.confに名前解決を使用しない設定(reverse_lookup_enable=NO)を記述する。

・手順
vi /etc/vsftpd/vsftpd.conf
→reverse_lookup_enable=NO
 を追記する

systemctl restart vsftpd

・原因:
名前解決の様な処理が行われているそうです。

これ以降は、わたしは該当しませんでしたが、/etc/hostsにIPアドレスとホスト名の記述を追記してログインの遅延が解消したという方もいたようです。


#vi /etc/hosts
192.168.100.100         kusomemo.tokyo
(※↑例です)




これでようやくvsftpdでFTPサーバが構築できました。。。

余裕が時間があればSSL接続にも挑戦したいと思いますが、そんな余裕ないだろうな~笑

後に調べてみたのですが、SSHでも同じような原因で、IDとパスワード入力後のログインに時間がかかってしまったりするみたいですね!なんとなくログイン遅延が気になっていたものの、放置していた方がいらっしゃればぜひご覧ください笑→SSHのログインに時間がかかっていた時の解決メモ


さいごに私が使っているPC(のメモリが8GBの物)です!
私は今このPCのメモリを現在では32GBにアップグレードして使っています!笑
安くなりましたよねメモリ。SSDも安くなってるので買い換えたいです!笑


下のRedmineとZabbixの本は kindle unlimitedで無料で読めますのでお勧めです!(30日無料期間に読んで解約もアリだと思います。笑)



【tech】vsftpdサーバへFTPログインしようとすると"530 Login incorrect."エラーが出た時のメモ




※2020/05/18更新!

vsftpdでFTPサーバ構築時にパスワードはあっているはずなのにincorrectエラーがでてログインできなかった時のメモです。原因は私個人の推察で書いていたりしますので、正しくは公式ドキュメントやRedHatのドキュメントをご確認ください。

・エラー
331 Please specify the password. Password: 530 Login incorrect.

・原因
ftpアクセス権まわりのせい?rootユーザをftpuserに追加していなかった?

・対処法
ftpuserに追加

・手順



・ファイルを開く
vi /etc/vsftpd/ftpuser
→rootのコメントアウトを消す(#を消す)
保存して終了

※コメントアウトがすでになかった場合は、コメントアウトして挙動確認してみるのも有効だと思います。
 vsftpdはアクセス制御がとってもややこしいので、一つずつ切り分けていきましょう

・原因
PAM認証の設定の記述(pam_service_name=vsftpd)がない。

・vsftpd.confに追記
vi /etc/vsftpd/vsftpd.conf
→pam_service_name=vsftpd
を追記

・vsftpdを再起動
systemctl restart vsftpd

さいごに私が使っているPC(のメモリが8GBの物)です!
私は今このPCのメモリを現在では32GBにアップグレードして使っています!笑
安くなりましたよねメモリ。SSDも安くなってるので買い換えたいです!笑


下のRedmineとZabbixの本は kindle unlimitedで無料で読めますのでお勧めです!(30日無料期間に読んで解約もアリだと思います。笑)



【tech】CentOS7へFTPサーバ構築VSFTPDのインストールメモ




CentOS7.5へvsftpdをインストールしてFTPサーバを構築しているのですが、なかなか難しいですね。。色々とエラーが出て起動してくれなかったり、正しいはずなのにエラーが出たりと。。笑

vsftpd.service: control process exited, code=exited status=2

自分の為、勉強の為と思ってエラーが出たらメモして対応履歴を残しています。
上記のエラーが出た時は、SSL接続設定をしていないのにvsftpd.confでSSLのONにしてしまっていた時に出たエラーです。色々と調べてみてみると、このエラーメッセージ自体は色々な要因によって出るエラーのようです。

・原因
設定の矛盾?

・解決策
vsftpd.confの「ssl_enable=YES」を「ssl_enable=NO」へ変更。

・手順

・ディレクトリの移動
cd /etc/vsftpd

・設定ファイルの編集
vi vsftpd.conf

「ssl_enable=YES」を「ssl_enable=NO」へ変更

・vsftpdの再起動
systemctl restart vsftp




さいごに私が使っているPC(のメモリが8GBの物)です!
私は今このPCのメモリを現在では32GBにアップグレードして使っています!笑
安くなりましたよねメモリ。SSDも安くなってるので買い換えたいです!笑

下のRedmineとZabbixの本は kindle unlimitedで無料で読めますのでお勧めです!(30日無料期間に読んで解約もアリだと思います。笑)