hostname | ip | 端口 |
---|---|---|
server | 128.0.0.101 | 21 |
client | 128.0.0.102 | 21 |
[root@server ~]# yum -y install vsftpd
[root@server ~]# useradd -d /var/ftp/share ftpuser
[root@server ~]# useradd -d /var/ftp/vip ftpvip
[root@server ~]# chmod -R 500 /var/ftp/share/
[root@server ~]# chmod -R 700 /var/ftp/vip/
[root@server ~]# vim /etc/vsftpd/vsftpd_virtualuser.txt
ftp
123456
vip
123456
[root@server ~]# chmod 600 /etc/vsftpd/vsftpd_login
[root@server ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_virtualuser.txt /etc/vsftpd/vsftpd_virtualuser.db
[root@server ~]# chmod 600 /etc/vsftpd/vsftpd_virtualuser.db
[root@server ~]# mkdir /etc/vsftpd/vuserconfig
[root@server ~]# touch /etc/vsftpd/vuserconfig/ftp
[root@server ~]# touch /etc/vsftpd/vuserconfig/vip
[root@server ~]# vim /etc/vsftpd/vuserconfig/ftp
guest_enable=yes
guest_username=ftpuser
anon_world_readable_only=no
anon_max_rate=50000
[root@server ~]# vim /etc/vsftpd/vuserconfig/vip
guest_enable=yes
guest_username=ftpvip
anon_world_readable_only=no
write_enable=yes
anon_mkdir_write_enable=yes
anon_upload_enable=yes
anon_max_rate=100000
注:注释掉其他的
[root@server vsftpd_user_conf]# vim /etc/pam.d/vsftpd
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_virtualuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_virtualuser
[root@server vsftpd_user_conf]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
user_config_dir=/etc/vsftpd/vuserconfig
max_clients=300
max_per_ip=10
[root@server ~]# /etc/init.d/vsftpd start
Starting vsftpd for vsftpd: [ OK ]
[root@server ~]# service vsftpd status
vsftpd (pid 1442) is running...
[root@server ~]# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1442/vsftpd
[root@client ~]# ftp 128.0.0.101
Connected to 128.0.0.101 (128.0.0.101).
220 (vsFTPd 2.2.2)
Name (128.0.0.101:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (128,0,0,101,65,142).
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 0 Oct 03 16:31 test
226 Directory send OK.
ftp> get test
local: test remote: test
227 Entering Passive Mode (128,0,0,101,77,230).
150 Opening BINARY mode data connection for test (0 bytes).
226 Transfer complete.
[root@client ~]# ftp 128.0.0.101
Connected to 128.0.0.101 (128.0.0.101).
220 (vsFTPd 2.2.2)
Name (128.0.0.101:root): vip
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/"
ftp> ls
227 Entering Passive Mode (128,0,0,101,50,133).
150 Here comes the directory listing.
226 Directory send OK.
ftp> put
anaconda-ks.cfg .bashrc .tcshrc
.bash_history .cshrc test
.bash_logout install.log .viminfo
.bash_profile install.log.syslog
ftp> put anaconda-ks.cfg
local: anaconda-ks.cfg remote: anaconda-ks.cfg
227 Entering Passive Mode (128,0,0,101,248,68).
150 Ok to send data.
226 Transfer complete.
1016 bytes sent in 0.000715 secs (1420.98 Kbytes/sec)