FTP服务器配置
- FTP服务器概念
文件传输协议(File Transfer Protocol)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。专门用来传输文件的协议。 - FTP服务器工作原理
FTP是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20、21号端口,其中端口20(数据端口)用于进行数据传输,端口21(命令端口)用于接受客户端发出的相关FTP命令与参数 - 3.主要配置过程
1.关闭防火墙和Selinux
systemctl stop firewalld
setenforce 0
2.安装VsFTP服务器及客户端
#在linux下客户端为ftp,vsftpd服务器端
yum install vsftpd ftp -y
3.匿名访问模式配置
3.匿名访问模式配置(不建议使用)
#开放匿名用户的上传、下载文件的权限,以及让匿名用户创建、删除、更名文件的权限
#不建议在生产环境使用
vi /etc/vsftpd/vsftpd.conf #vsftpd主配置文件!!!
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES(文本中添加) - systemctl restart vsftpd
systemctl enable vsftpd
修改共享文件的属主:
chown -Rf ftp /var/ftp/pub - 测试:
- 4.本地用户模式
vi /etc/vsftpd/vsftpd.conf #vsftpd主配置文件!!!
anonymous_enable=NO
systemctl restart vsftpd
测试: - 5.虚拟用户模式
1.创建用户名存储文件
vi /etc/vsftpd/vuser.list
user1 #用户名
123456 #密码
user2
123456
2.db_load命令用哈希(hash)算法将原始的明文信息文件转换成数据库文件
安全,风险高。
cd /etc/vsftpd
db_load -T -t hash -f vuser.list vuser.db (保护用户信息)
file vuser.db
chmod 600 vuser.db
rm -rf vuser.list
3 创建vsftpd服务程序用于存储文件的根目录以及虚拟用户映射的系统本地用户。FTP服务用于存储文件的根目
录指的是,当虚拟用户登录后所访问的默认位置。
useradd -d /var/ftproot -s /sbin/nologin virtual
ls -ld /var/ftproot/
chmod -Rf 755 /var/ftproot/ (用户是否能创建目录和文件与他有关 )
如果创建不了文件,可以把权限给大一点
4 .建立用于支持虚拟用户的PAM文件
#PAM是一组安全机制的模块,系统管理员可以用来轻易地调整服务程序的认证方式
vi /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
编辑配置文件
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=No #许匿名用户登陆。
guest_enable=YES #启用虚拟用户。默认值为NO。
guest_username=virtual #这里用来映射虚拟用户。默认值为ftp。
allow_writeable_chroot=YES ##允许/etc/vsftpd/vuser.db文件中的用户写入
pam_service_name =vsftpd.vu #虚拟用户使用PAM认证方式。
以及/etc/ftproot属主及属组
5 为虚拟用户创建不同的权限
mkdir /etc/vsftpd/vusers_dir
cd /etc/vsftpd/vusers_dir
touch user1
vi user1
anon_upload_enable=YES #允许上传文件
anon_mkdir_write_enable=YES #允许匿名登入者有新增目录的权限
anon_other_write_enable=YES #允许匿名登入者更多于上传或者建立目录之外的权限
vi /etc/vsftpd/vsftpd.conf (编辑配置文件)
user_config_dir=/etc/vsftpd/vusers_dir (将虚拟用户权限路径指向自己创建的绝对路径)
6 用user1和user2分别进行测试,注意结果
systemctl restart vsftpd
登录user1试着创建几个目录然后删除它