|
|
第74行: |
第74行: |
| | | |
| 参考文档: https://www.aliyun.com/zixun/content/2_6_518621.html | | 参考文档: https://www.aliyun.com/zixun/content/2_6_518621.html |
− |
| |
− | == Red Hat的FTP服务器vsftpd ==
| |
− |
| |
− | Red Hat 中自带了一个高安全性的FTP服务器vsftpd。
| |
− |
| |
− | 是一个安全、高速、稳定的FTP服务器。
| |
− |
| |
− | *匿名FTP服务更是十分容易。
| |
− |
| |
− | *匿名ftp的根目录不需要任何特殊的目录结构,或系统程序或其他系统文件。
| |
− |
| |
− | *不执行任何外部程序,从而减少了安全隐患
| |
− |
| |
− | *支持虚拟用户,且支持每个虚拟用户具有独立的配置。
| |
− |
| |
− | *可以设置为从inetd启动,或者是独立ftp服务器两种运行方式。
| |
− |
| |
− | *支持PAM 或 xinetd / tcp_wrappers的认证方式。
| |
− |
| |
− | *支持带宽限制等。
| |
− |
| |
− | == vsftpd的安装和启动 ==
| |
− |
| |
− | vsftpd的安装
| |
− |
| |
− | 检查是否安装:#rpm –qa|grep vsftpd
| |
− |
| |
− | 若安装了直接配置使用,若无安装需要用rpm包安装
| |
− |
| |
− | 31 mkdir /mnt/media
| |
− | 32 mount -o loop /dev/cdrom /mnt/media
| |
− | 33 ls /mnt/media
| |
− | 34 cd /mnt/media
| |
− | 35 ls Packages | grep vsftpd
| |
− | 36 cp Packages/vsftpd-2.2.2-6.el6.x86_64.rpm /home
| |
− | 37 ls /home
| |
− | 38 cd /home
| |
− | 39 rpm -ivh vsftpd-2.2.2-6.el6.x86_64.rpm
| |
− |
| |
− | vsftpd的启动和停止
| |
− |
| |
− | <nowiki># service vsftpd start
| |
− | # service vsftpd stop
| |
− | # service vsftpd restart</nowiki>
| |
− |
| |
− | == vsftpd的配置文件 ==
| |
− |
| |
− | vsftpd的主配置文件
| |
− |
| |
− | /etc/vsftpd/vsftpd.conf
| |
− |
| |
− | vsftpd的PAM配置文件
| |
− |
| |
− | /etc/pam.d/vsftpd(用户身份验证配置文件)
| |
− |
| |
− | vsftpd的用户访问控制配置文件
| |
− |
| |
− | /etc/vsftpd.ftpusers
| |
− | 指定哪些用户不能访问FTP服务器
| |
− |
| |
− | /etc/vsftpd.user_list
| |
− | 文件中指定的用户是否可以访问ftp服务器由vsftpd.conf文件中的userlist_deny的取值来决定。
| |
− |
| |
− |
| |
− | /etc/vsftpd.ftpusers
| |
− |
| |
− | 设置不允许登录的用户名单
| |
− |
| |
− | === 主配置文件 /etc/vsftpd/vsftpd.conf ===
| |
− |
| |
− | <nowiki>#vi /etc/vsftpd/vsftpd.conf
| |
− | 功能:设置FTP服务器相关选项
| |
− | 文件格式:
| |
− | #说明语句
| |
− | ……
| |
− | 配置选项
| |
− | ……</nowiki>
| |
− |
| |
− |
| |
− | 默认配置:
| |
− |
| |
− | <nowiki>anonymous_enable=YES
| |
− | //允许匿名用户登录
| |
− | local_enable= YES
| |
− | //允许本地用户登录
| |
− | write_enable= YES
| |
− | //全局写设置
| |
− | guest_enable=yes/no
| |
− | //是否允许虚拟用户登录;
| |
− |
| |
− | 注:虚拟用户只能登录FTP服务器
| |
− |
| |
− | local_mask=022
| |
− | //设置本地用户的文件生成掩码为 022,默认值为077
| |
− | dirmessage_enable= YES
| |
− | //设置切换到目录时显示.message 隐含文件的内容
| |
− | xferlog_enable= YES
| |
− | //激活上传和下载日志
| |
− |
| |
− | connect_from_port_20= YES
| |
− | //启用FTP数据端口连接
| |
− | pam_service_name=vsftpd
| |
− | //设置PAM认证服务的配置文件名称, 该文件存放在/etc/pam.d目录下
| |
− | userlist_enable= YES
| |
− | //决定vsftpd.user_list文件是否有效
| |
− | userlist_deny= YES
| |
− | //拒绝vsftpd.user_list文件中的用户
| |
− |
| |
− | 访问服务器
| |
− | listen= YES
| |
− | //是否使用独占启动方式
| |
− | tcp_wrappers= YES
| |
− | //使用tcp_wrappers作为主机访问控制方式
| |
− | 关于被动模式的数据连接
| |
− | pasv_enable=Yes/NO(默认值为yes,处于被动模式下)
| |
− |
| |
− | 设置用户登陆后所在目录
| |
− | local_root=/var/ftp(设置本地用户登陆所在目录,默认为该用户的用户主目录)
| |
− | anon_root=/var/ftp(匿名用户登陆所在目录)
| |
− | </nowiki>
| |
− |
| |
− | 默认配置文件功能说明:
| |
− |
| |
− | <nowiki>1)允许匿名用户登录/var/ftp,但不能离开主目录
| |
− | 2)允许本地用户登录,且可离开主目录
| |
− | 3)匿名用户只能下载,不能上传
| |
− | 4)本地用户允许上传/下载
| |
− | 5)写在文件/etc/vsftpd.ftpusers中的本地用户禁止登录
| |
− | 6)服务器使用独占方式启动,且无限制连接数
| |
− | </nowiki>
| |
− |
| |
− | ==配置FTP服务器==
| |
− | ===配置匿名账号===
| |
− | 编辑 /etc/vsftpd/vsftpd.conf
| |
− |
| |
− | [root@cloud17 ~]# cat /etc/vsftpd/vsftpd.conf | grep -v ^#
| |
− | <nowiki>anonymous_enable=YES
| |
− | local_enable=NO
| |
− | write_enable=YES
| |
− | local_umask=022
| |
− | anon_upload_enable=NO
| |
− | anon_mkdir_write_enable=NO
| |
− | anon_world_readable_only=NO
| |
− | max_clients=100
| |
− | max_per_ip=2
| |
− | anon_max_rate=20000
| |
− | dirmessage_enable=YES
| |
− | xferlog_enable=YES
| |
− | connect_from_port_20=YES
| |
− | xferlog_std_format=YES
| |
− | ftpd_banner=Welcome to blah FTP service.
| |
− | listen=YES
| |
− |
| |
− | pam_service_name=vsftpd
| |
− | userlist_enable=YES
| |
− | listen=YES
| |
− | tcp_wrappers=YES</nowiki>
| |
− |
| |
− | ===配置虚拟账号===
| |
− | 配置过程如下。
| |
− |
| |
− | 创建虚拟用户数据库文件,先创建一个存放虚拟用户及其密码的文本文件/etc/virtuserdb.txt,这个文件的金属行为虚拟用户名,偶数行为相应的密码。
| |
− | <nowiki>stu01
| |
− | stu01
| |
− | stu02
| |
− | stu02
| |
− | stu03
| |
− | stu03</nowiki>
| |
− |
| |
− | 执行命令:rpm –qa |grep db4-utils 看看所需的软件db4-utils.
| |
− |
| |
− | 如果没有安装,执行以下命令进行安装:
| |
− |
| |
− | 64 mount -o loop /dev/cdrom /mnt/media
| |
− | 65 ls /mnt/media
| |
− | 67 cd /mnt/media
| |
− | 68 ls Packages | grep db4
| |
− | 76 cp Packages/db4-utils-4.7.25-16.el6.x86_64.rpm /home
| |
− | 77 cd /home
| |
− | 78 rpm -ivh db4-utils-4.7.25-16.el6.x86_64.rpm
| |
− |
| |
− | 然后执行如下命令,生成虚拟用户数据库文件,并改变虚拟用户数据库文件的权限。
| |
− |
| |
− | 81 db_load -T -t hash -f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db
| |
− | 82 chmod 600 /etc/vsftpd/vftpuser.db
| |
− |
| |
− |
| |
− | ==== 编辑vsftpd的PAM认证文件 ====
| |
− |
| |
− |
| |
− | 将里面其他的都注释掉,添加下面这两行:
| |
− |
| |
− | auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
| |
− | account required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
| |
− |
| |
− | ====创建虚拟用户对应的真实账号及其所登录的目录,并设置相应的权限====
| |
− | useradd -d /var/virtuser virtuser
| |
− | chmod 744 /var/virtuser
| |
− | ====使stu03用户具有读写权限====
| |
− | 87 mkdir /etc/vsftpd/vsftpd_user_conf
| |
− |
| |
− | 88 cd /etc/vsftpd/vsftpd_user_conf
| |
− |
| |
− | 89 vi stu03
| |
− |
| |
− | <nowiki>write_enable=YES
| |
− | guest_username=virtuser
| |
− | anon_world_readable_only=NO
| |
− | anon_upload_enable=YES
| |
− | anon_mkdir_write_enable=YES
| |
− | anon_other_write_enable=YES</nowiki>
| |
− |
| |
− | ====编辑/etc/vsftpd/vsftpd.conf,在最后修改配置内容如下:====
| |
− |
| |
− | <nowiki>guest_enable=YES
| |
− | guest_username=virtuser
| |
− | anon_world_readable_only=NO
| |
− | user_config_dir=/etc/vsftpd/vsftpd_user_conf</nowiki>
| |
− |
| |
− | 同时修改anonymous_enable=NO
| |
− |
| |
− | ====保存后重启vsftpd 服务器====
| |
− | service vsftpd restart
| |
− | ====验证====
| |
− | 案例:
| |
− | 假设你是一个网络管理员,以往你们公司的服务器是用WINDOWS系统做的,而你对LINUX系统的操作却非常的熟练,你现在打算把服务器的系统改为LINUX,其中服务中有一个服务FTP服务尤其重要,它作为一台文件服务器应用是非常的广范,你重做服务器后第一项工作就是利用vsftpd配置一台支持匿名用户和本地用户登录为公司里的员工所使用,若给你以下方案,你该如何去实现:
| |
− |
| |
− |
| |
− | 支持本地用户和虚拟用户登录,不允许匿名用户登录
| |
− | 允许本地用户任意写入
| |
− | 锁定本地用户的用户主目录
| |
− | 建立虚拟用户vftp1,vftp2都对应本地用户guest,且虚拟用户在用户主目录中可以写入,但不能删除
| |
− | 设置客户端连接时的端口为5000-6000
| |
− | 最大空闲会话时间长度为600秒
| |
− |
| |
− | 设置空闲数据连接的中断时间为200秒
| |
− | 设置客户端空闲时的自动中断时间为100秒和激活连接的时间为30秒
| |
− | 本地用户的最大传输速率为2MB/s
| |
− | 使用独占启动方式,侦听192.168.5.1接口的21号端口
| |
− | 设置服务器的并发连接总数为200
| |
− | 每个客户机的并发连接总量为5
| |
− | 允许192.168.5.0/24网段内的主机访问
| |
| | | |
| 返回 [[Linux基础]] | | 返回 [[Linux基础]] |