FTP服务器(VSFTPD):
FTP(文本传输协议)
FTP服务的两种工作模式:
主动模式:客户端从任意的n+1端口(n>1024)发送链接请求到服务器得21端口,客户端开始监听N+1,并发送FTP命令到port n+1端口到服务器,FTP服务器以数据端口(20)连接到客服端指定的数据端口(N+1)。
被动模式:客户端从一个任意端口N(N>1024)链接到FTP服务器的port 21命令端口,客户端开始监听端口N+1,客户端提交pasv命令,服务器会开启一个任意的短裤(p>1024),并发送port p命令给客户端。客户端发起从本地端口N+1到服务器的端口P的链接用来发送数据。
搭建FTP服务器:
安装FTP服务器:
yum install vsftpd* -y
启动服务,尝试登陆,默认是本地用户和匿名用户都可以登陆。
输入ftp://192.168.176.4(我的ftp服务器IP)
再尝试用户登录
新建一个文件夹并到wanghcao的目录下去看看
vsftpd服务认识:
/etc/vsftpd/vsftpd.conf 配置文件
/etc/vsftpd/ftpuser 用户配置文件
/etc/vsftpd/userlist 用户配置文件
FTP的匿名用户访问
修改配置文件/etc/vsftpd/vsftpd.conf加入如下内容:
anonymous=YES 匿名用户访问开启
anon_upload_enable=YES 允许匿名用户上传和下载
anon_mkdir_write_enbale=YES 允许匿名用户创建文件夹
anon_other_write_enable=YES 允许匿名用户其他写入权限。
更改/var/vfstpd/pub用户为ftp,并且加上o+w权限
重启服务service vsftpd restart
匿名用户访问配置完成
本地用户访问,最简单将anonymous改成NO即可。同时使用linux的用户即可登录
配置虚拟用户登录
首先配置虚拟用户登录需要使用到pam模块,安装三个软件
#yum install pam* libdb* libdb-utils --skip-broken -y
创建一个用户文件(名称和路径都可以自定义)写入用户名,和密码,例如
vim /etc/vsftpd/viruser.txt
创建虚拟用户数据库
#db_load -T -t hash -f /etc/vsftpd/viruser.txt /etc/vsftpd/vir_login.db
#chmod 600 /etc/vsftpd/vir_login.db
修改pam模块配置
#vim /etc/pam.d/vsftpd
将原来的内容全部注释掉,并添加如下两行(行与行之间不要有空格)(如果是32位才操作系统将pam_userdb.so改成/usr/lib/security/pam_userdb.so)
auth required pam_userdb.so db=/etc/vstftpd/vir_login
account required pam_userdb.so db=/etc/vsftpd/vir_login
创建虚拟用户的映射用户,此用户不需要登录
#useradd -s /sbin/nologin ftpuser
修改vsftp配置文件
加入如下行
allow_writeable_chroot=YES(放到文件第一行) 禁锢至主目录
guest_enable=YES 虚拟用户登录开启
guest_username=ftpuser 虚拟用户映射用户
user_config_dir=/etc/vsftpd/vir_conf(自定义路径,这里是目录)虚拟用户配置文件目录
virtual_use_local_privs=yes 虚拟用户使用本地用户权限
重启服务,至此已经可以实现虚拟用户登录并共用/home/ftpuser目录
当然我们也可以为每个虚拟用户配置自己主目录
#cat>/etc/vsftpd/vir_conf/wangch1<<EOF
>local_root=/home/ftpuser/wangch1 虚拟用户wangch1的主目录
>write_enable=YES 写入权限打开
>anon_world_readable_only=YES 允许用户下载,并读取文件
>anon_upload_enable=YES 允许用户上传下载文件权限,只有wrtie_enable=YES是生效
>anon_mkdir_write_enable=YES 允许用户创建文件
>anon_other_write_enable=YES 允许用户的其他写入
>EOF
创建虚拟用户主目录
#mkdir /home/ftpuser/wangch1
#cd /home
#chown -R ftpuser:ftpuser ftpuser/
至此wangch1登录时就会登录到自己主目录内。