Alma Linux 9.4 でproftpd 使ってみた

仕事でftp を使うことがたまにあります。その時、sftp やvsftpd を使用することは多いのですが、proftpd は使ったことがなかったので、今回その備忘録として残します


# Proftpd インストールする前の前準備

proftpd インストールするためにepel が必要になるので、先にインストールしていきましょう。dnf update は任意ですが、update しないとたまにインストールできない場合があるので、先にupdate すること推奨します

```
# パッケージアップデート
dnf update (-y)

# epel インストール
dnf install epel-release
```


# Proftpd インストールしていこう

proftpd をインストールするには crb とepel のrepository を指定する必要があります。
```
dnf install --enablerepo=crb,epel proftpd


AlmaLinux 9 - CRB                                                                                                            6.2 MB/s | 3.8 MB     00:00
Extra Packages for Enterprise Linux 9 - x86_64                                                                                14 MB/s |  23 MB     00:01
Last metadata expiration check: 0:00:01 ago on Thu 10 Oct 2024 12:46:25 PM UTC.
Dependencies resolved.
=============================================================================================================================================================
 Package                                        Architecture                     Version                                Repository                      Size
=============================================================================================================================================================
Installing:
 proftpd                                        x86_64                           1.3.8b-3.el9                           epel                           3.2 M
Installing dependencies:
 libmemcached-awesome                           x86_64                           1.1.0-12.el9                           crb                            110 k
 libsodium                                      x86_64                           1.0.18-8.el9                           epel                           161 k

Transaction Summary
=============================================================================================================================================================
Install  3 Packages

Total download size: 3.4 M
Installed size: 9.8 M
Is this ok [y/N]:
```

proftpd がインストールできたら、起動していく前に少し設定ファイルを確認していきましょう!!!


# Proftpd のconf ファイル確認してみよう

初期で有効化されているconf の設定は以下になります。コメントアウトしてない部分を取り出してみましょう。

```
grep -v '^\s*#' proftpd.conf

Include /etc/proftpd/modules.conf

---------------------------------------------------------------------

ServerName                      "ProFTPD server"
ServerIdent                     on "FTP Server ready."
ServerAdmin                     root@localhost
DefaultServer                   on

DefaultRoot                     ~ !adm

AuthPAMConfig                   proftpd
AuthOrder                       mod_auth_pam.c* mod_auth_unix.c

UseReverseDNS                   off

User                            nobody
Group                           nobody

MaxInstances                    20

UseSendfile                     off

LogFormat                       default "%h %l %u %t \"%r\" %s %b"
LogFormat                       auth    "%v [%P] %h %t \"%r\" %s"

LogOptions                      -Timestamp -Hostname +RoleBasedProcessLabels

ControlsEngine                  on
ControlsACLs                    all allow user root
ControlsSocketACL               allow user *
ControlsLog                     /var/log/proftpd/controls.log

<IfModule mod_ctrls_admin.c>
  AdminControlsEngine           on
  AdminControlsACLs             all allow user root
</IfModule>

<IfModule mod_vroot.c>
  VRootEngine                   on
</IfModule>

<IfDefine TLS>
Include /etc/proftpd/mod_tls.conf
</IfDefine>

<IfModule mod_ban.c>
Include /etc/proftpd/mod_ban.conf
</IfModule>

<IfModule mod_qos.c>
Include /etc/proftpd/mod_qos.conf
</IfModule>

<Global>

  Umask                         022

  AllowOverwrite                yes
  <Limit ALL SITE_CHMOD>
    AllowAll
  </Limit>

</Global>

<IfDefine ANONYMOUS_FTP>
Include /etc/proftpd/anonftp.conf
</IfDefine>

Include /etc/proftpd/conf.d/*.conf

```

proftpd のパスワードとグループ管理を楽にしたいので、passwd とgroup のファイルを指定して、ユーザ作成していきましょう。なので、この設定を足してあげましょう
ファイル名は任意で問題ないです！

```
AuthUserFile            /etc/ftpdpasswd
AuthGroupFile           /etc/ftpdgroup
```
そして、ユーザ作成していきましょう！ftppasswdコマンドを叩いていこうと思ったら、command not found が表示されました。
```
ftppasswd --passwd ....

 command not found
```

どうもproftpd-utils というのをインストールしたら、その中にftppasswd が入っているようです。

```
dnf install proftpd-utils
```

そうすると、ftppasswd が使えるようになりました！！

```
touch ftpdpasswd
touch ftpdgroup

ftpasswd --passwd --file=/etc/ftpdpasswd --name=test-user --uid=48 --gid=48 --home=/var/www/html --shell=/bin/shell
```

そうすると、password を入力してくださいとの表示がでるので、パスワードを適当に入れていき、成功するとftpdpasswd にshadow みたいに入力されるようになっています。

そして、syntax check をして問題ないことを確認できたら、proftpd を起動していきましょう！！

```
proftpd -t
Checking syntax of configuration file
Syntax check complete
(問題があったらエラーが表示されます)

systemctl start proftpd
systemctl enable proftpd
```

# まとめ

ftppasswd の設定自体は簡単にできるので、みなさんも時と場合に応じて設定してみてください！！！