记一次ftp服务器搭建
需求
团队日渐壮大,需要FTP服务器满足数据交换需求。
准备
查阅资料,主流使用vsftpd
提供ftp服务。
考虑日后扩容,选择LVM对物理磁盘进行管理。
步骤
建立储存池
假设两款新硬盘为/dev/sdb
和/dev/sdc
首先建立group
$ sudo apt install lvm2
$ sudo vgcreate lvm /dev/sdb /dev/sdc
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
Volume group "lvm" successfully created
使用全部空间建立volume默认采用Linear模式,其他模式详见LVM Logical Volumes Red Hat Enterprise Linux 5
注意:有关Striped模式个人理解类似于raid 0提高i/o同时增加风险,后期扩容修改stripe number
非常复杂,不建议采用
$ sudo lvcreate -l 100%FREE -n ftp lvm
Logical volume "ftp" created.
$ sudo lvscan
ACTIVE '/dev/ftp/ftp_logic' [<6.99 TiB] inherit
格式化磁盘,直接使用全盘不分区
$ sudo mkfs.ext4 /dev/lvm/ftp
挂载分区
$ sudo mount /dev/lvm/ftp /mnt/ftp
添加用户
添加一个只用于ftp的用户test
限制登陆且$HOME
指向储存池
sudo useradd test -d /mnt/ftp/test -s /usr/sbin/nologin
sudo passwd test
安装服务
sudo apt install vsftpd
配置参数
sudo vi /etc/vsftpd.conf
local_enable=YES
write_enable=YES
allow_writeable_chroot=YES
chroot_local_user=YES
pam_service_name=ftp
简单解释这些参数:
- local_enable: 允许本地用户登陆
- write_enable: 这个好理解,不开只能读
- allow_writeable_chroot: 不开chroot登陆会报权限错误
- chroot_local_user: 限制登陆用户只能看见自己的
$HOME
- pam_service_name: 默认
vsftpd
会检查用户是否持有合法shell导致nologin
用户收到530 Login incorrect
重启服务生效
sudo systemctl restart vsftpd
参考
partitioning - Manual install with LVM spanning multiple unpartitioned spaces - Ask Ubuntu
3.3. LVM Logical Volumes Red Hat Enterprise Linux 5 | Red Hat Customer Portal
server - vsftpd: 530 Login incorrect - Ask Ubuntu
Manpage of VSFTPD.CONF