1.安装FTP服务器
[root@localhost linux1]# yum install -y vsftpd
[root@localhost linux1]# yum install -y ftp
2.创建用户和配置密码
[root@localhost linux1]# useradd xiaoming
[root@localhost linux1]# passwd xiaoming
Changing password for user ftp.
New password: 123456
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 123456
passwd: all authentication tokens updated successfully.
3.添加权限
[root@localhost linux1]# mkdir /var/ftp/pub -p
[root@localhost linux1]# chmod 777 /var/ftp/pub
[root@localhost linux1]# vim /etc/vsftpd/vsftpd.conf
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
local_root=/var/ftp/pub 匿名用户主目录
download_enable=YES 下载启用
allow_writeable_chroot=YES 设置用户访问目录,默认只允许用户自己的ftp目录
anonymous_enable=NO 拒绝匿名用户登陆
guest_enable=YES 启用虚拟用户
anon_upload_enable=NO 是否允许匿名用户上传文件
user_config_dir=/etc/vsftpd/user_conf 定义用户配置文件
重启服务
[root@localhost linux1]# systemctl restart vsftpd
进入vsftpd
[root@localhost linux1]# cd /etc/vsftpd/
4.创建虚拟用户ftp1和ftp2
[root@localhost vsftpd]# vim vuser.pwd
ftp1
密码:123456
ftp2
密码:123456
[root@localhost vsftpd]# db_load -T -t hash -f vuser.pwd vuser.db
[root@localhost vsftpd]# chmod 700 vuser.db
[root@localhost vsftpd]# vim /etc/pam.d/vsftpd
#%PAM-1.0
auth sufficient pam_userdb.so db=/etc/vsftpd/vuser
account sufficient pam_userdb.so db=/etc/vsftpd/vuser
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth required pam_shells.so
auth include password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth
[root@localhost vsftpd]# mkdir -p /var/ftp/vdir/ftp1
[root@localhost vsftpd]# mkdir -p /var/ftp/vdir/ftp2
[root@localhost vsftpd]# chmod o+w /var/ftp/vdir/ftp1
[root@localhost vsftpd]# chmod o+w /var/ftp/vdir/ftp2
[root@localhost vsftpd]# passwd ftp
Changing password for user ftp.
New password: 123456
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:123456
passwd: all authentication tokens updated successfully.
重启服务
[root@localhost vsftpd]# systemctl restart vsftpd
5.配置ftp1和ftp2
[root@localhost vsftpd]# mkdir user_conf
[root@localhost vsftpd]# vim user_conf/ftp1
guest_username=ftp
write_enable=YES
anon_upload_enable=YES
local_root=/var/ftp/vdir/ftp1
[root@localhost vsftpd]# vim user_conf/ftp2
guest_username=ftp
write_enable=NO
local_root=/var/ftp/vdir/ftp2
重启服务
[root@localhost vsftpd]# systemctl restart vsftpd
6.更改端口
[root@localhost vsftpd]# ss -nutl
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
udp UNCONN 0 0 *:916 *:*
udp UNCONN 0 0 *:58316 *:*
udp UNCONN 0 0 192.168.122.1:53 *:*
udp UNCONN 0 0 *%virbr0:67 *:*
udp UNCONN 0 0 *:68 *:*
udp UNCONN 0 0 *:111 *:*
udp UNCONN 0 0 *:5353 *:*
udp UNCONN 0 0 127.0.0.1:323 *:*
udp UNCONN 0 0 [::]:916 [::]:*
udp UNCONN 0 0 [::]:111 [::]:*
udp UNCONN 0 0 [::1]:323 [::]:*
tcp LISTEN 0 128 *:111 *:*
tcp LISTEN 0 5 192.168.122.1:53 *:*
tcp LISTEN 0 128 *:22 *:*
tcp LISTEN 0 128 127.0.0.1:631 *:*
tcp LISTEN 0 100 127.0.0.1:25 *:*
tcp LISTEN 0 128 [::]:111 [::]:*
tcp LISTEN 0 32 [::]:21 [::]:*
tcp LISTEN 0 128 [::]:22 [::]:*
tcp LISTEN 0 128 [::1]:631 [::]:*
tcp LISTEN 0 100 [::1]:25 [::]:*
[root@localhost vsftpd]# firewall-cmd --permanent --add-port=21/tcp
success
[root@localhost vsftpd]# firewall-cmd –reload
Success
7.在本机验证
[root@localhost vsftpd]# ftp 192.168.1.102
Connected to 192.168.1.102 (192.168.1.102).
220 (vsFTPd 3.0.2)
Name (192.168.1.102:root): xiaoming
331 Please specify the password.
Password:123456
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>quit
[root@localhost vsftpd]# ftp 192.168.1.102
Connected to 192.168.1.102 (192.168.1.102).
220 (vsFTPd 3.0.2)
Name (192.168.1.102:root): ftp1
331 Please specify the password.
Password:123456
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quit
[root@localhost vsftpd]# ftp 192.168.1.102
Connected to 192.168.1.102 (192.168.1.102).
220 (vsFTPd 3.0.2)
Name (192.168.1.102:root): ftp2
331 Please specify the password.
Password:123456
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quit