Loading

记一次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

posted @ 2022-03-05 15:46  azureology  阅读(79)  评论(0编辑  收藏  举报