Linux安装配置FTP(CentOS8)


最近公司需要搭建FTP服务器,正好没啥事,就再写点乱七八糟的东西吧。

首先安装vsftpd,执行如下命令:

yum install -y vsftpd

安装完成后,新增一个本地账号,执行如下命令:

useradd -g ftp -s /sbin/nologin ftpuser

为了保证系统安装,我们需要限制新建的本地账号只能用于登陆ftp服务,所以加入参数-s /sbin/nologin。

为ftpuser配置密码,执行如下命令:

passwd ftpuser

ftp需要通过/etc/shells判断哪些shell的账号可以登陆,所以需要在/etc/shells添加/sbin/nologin。执行命令nano /etc/shells。

创建新的ftp根目录,执行命令:

mkdir /var/ftp/ftpfiles

更改新ftp根目录所有者及所有组,执行命令:

chown -R ftpuser:ftp /var/ftp/ftpfiles

更改新ftp根目录权限,执行命令:

chmod -R 775 /var/ftp/ftpfiles

修改vsftpd用户列表文件,添加本地账号。执行命令:

nano /etc/vsftpd/user_list

修改vsftpd配置文件。执行命令:

nano /etc/vsftpd/vsftpd.conf

其中anonymous_enable=NO表示禁止匿名登录;local_enable=YES表示启用本地账号登录;write_enable=YES表示允许写入;加入一行local_root=/var/ftp/ftpfiles,表示指定ftp根目录;userlist_enable=NO表示使用user_list文件确定哪些用户可以登录ftp。

重启vsftpd服务,执行命令:

systemctl restart vsftpd

配置防火墙,开启tcp21端口,开启ftp服务,并重启防火墙,执行命令:

firewall-cmd --add-port=21/tcp --zone=public --permanent
firewall-cmd --add-service=ftp --zone=public --permanent
firewall-cmd --reload

配置Selinux开启ftp对外网访问,执行命令:

setsebool -P allow_ftpd_full_access on

测试是否能增删文件。

至此Linux系统配置ftp完成。