安装vsftpd服务程序
yum install vsftpd -y
Vsftpd的程序与配置文件:
主程序 | /usr/sbin/vsftpd |
用户禁止登陆列表 | /etc/vsftpd/ftpusers /etc/vsftpd/user_list |
主配置文件 | /etc/vsftpd/vsftpd.conf |
vsftpd程序配置文件参数的作用:
参数 | 作用 |
listen=[YES|NO] | 是否以独立运行的方式监听服务。 |
listen_address=IP地址 | 设置要监听的IP地址。 |
listen_port=21 | 设置FTP服务的监听端口。 |
download_enable=[YES|NO] | 是否允许下载文件。 |
userlist_enable=[YES|NO] userlist_deny=[YES|NO] |
是否启用“禁止登陆用户名单”。 |
max_clients=0 | 最大客户端连接数,0为不限制。 |
max_per_ip=0 | 同一IP地址最大连接数,0位不限制。 |
anonymous_enable=[YES|NO] | 是否允许匿名用户访问。 |
anon_upload_enable=[YES|NO] | 是否允许匿名用户上传文件。 |
anon_umask=022 | 匿名用户上传文件的umask值。 |
anon_root=/var/ftp | 匿名用户的FTP根目录。 |
anon_mkdir_write_enable=[YES|NO] | 是否允许匿名用户创建目录。 |
anon_other_write_enable=[YES|NO] | 是否开放匿名用户其他写入权限。 |
anon_max_rate=0 | 匿名用户最大传输速率(字节),0为不限制。 |
local_enable=[YES|NO] | 是否允许本地用户登陆FTP。 |
local_umask=022 | 本地用户上传文件的umask值。 |
local_root=/var/ftp | 本地用户的FTP根目录。 |
chroot_local_user=[YES|NO] | 是否将用户权限禁锢在FTP目录,更加的安全。 |
local_max_rate=0 | 本地用户最大传输速率(字节),0为不限制。 |
Vsftpd的验证方式
1 匿名访问模式
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES anon_umask=022 anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES
更改FTP根目录/var/ftp所属主为ftp
chown ftp /var/ftp/pub
在客户端安装ftp
yum install ftp -y
连接服务端,进行访问
[root@oracledb ~]# ftp 192.168.0.80 Connected to 192.168.0.80 (192.168.0.80). 220 (vsFTPd 2.2.2) Name (192.168.0.80:root): anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd pub 250 Directory successfully changed. ftp> mkdir dir1 257 "/pub/dir1" created ftp> rename dir1 database 350 Ready for RNTO. 250 Rename successful. ftp> exit 221 Goodbye.
2.本地用户模式
vsftpd服务程序默认已经允许本地用户模式,我们要做的是添加设置本地用户模式权限的参数:
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 listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES anon_umask=022
vsftpd服务为了让FTP服务更加的安全,默认禁止以root身份登入,那么创建个普通用户吧:
[root@wls12c vsftpd]# useradd ftpadmin [root@wls12c vsftpd]# passwd ftpadmin 更改用户 ftpadmin 的密码 。 新的 密码: 无效的密码: 它基于字典单词 重新输入新的 密码: passwd: 所有的身份验证令牌已经成功更新。
在客户端登录访问:
[root@oracledb ~]# ftp 192.168.0.80 Connected to 192.168.0.80 (192.168.0.80). 220 (vsFTPd 2.2.2) Name (192.168.0.80:root): ftpadmin 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> mkdir files 257 "/home/ftpadmin/files" created ftp> exit 221 Goodbye.
3 虚拟用户模式
因为虚拟用户模式的帐号口令都不是真实系统中存在的,所以只要配置妥当虚拟用户模式会比本地用户模式更加安全,但是Vsftpd服务配置虚拟用户模式的操作步骤相对复杂一些。
附:
自动化的脚本:
上传文件到/home/ftpadmin目录下:
!/bin/bash ftp -niv <<-EOF open 192.168.0.80 user ftpadmin ftpadmin bin put test.txt close bye EOF