Linux中FTP服务器配置
2019-08-29 08:58:28来源:博客园 阅读 ()
Linux中FTP服务器配置
1、FTP服务器的一些基本概念 (1)FTP连接方式 控制连接:标准端口为21,用于发送FTP命令信息。 数据连接:标准端口为20,用于上传、下载数据。 (2)数据连接的建立类型 主动模式:服务端从20端口主动向客户端发起连接。 被动模式:服务端在指定范围内的某个端口被动等待客户端发起连接。 一般都采用被动模式。主动模式存在安全隐患,客户机很容易发起DdoS攻击。 (3)FTP传输模式 文本模式:ASCII模式,以文本序列传输数据。 二进制模式:Binary模式,以二进制序列(比特流)传输数据。 ASCII模式一般只用于纯文本文件传输,而Binary模式更适合传输程序、图片等文件。尤其是对于可执行文件,如果把可执行文件以文本模式传输,则下载下来的文件将无法正常使用。 在rhel6中默认采用二进制模式,在rhel6以前的版本中默认采用文本模式,为了提高可靠性,rhel6不再支持文本模式。 (4)FTP用户的类型 匿名用户:anonymous或ftp,这两个其实是同一个用户。 本地用户:帐号名称、密码等信息保存在passwd、shadow文件中。但是系统用户在访问时默认只能访问自己的主目录,而不是vsftpd的主目录/var/ftp 虚拟用户:使用独立的帐号/密码数据文件。 2、vdftpd服务 后台进程:vsftpd 启动脚本:/etc/init.d/vsftpd 类型:System V 服务 使用端口:20(ftp-data),21(ftp) 所需RPM包:vsftpd 配置文件:/etc/vsftpd/vsftpd.conf 查看配置文件帮助:man vsftpd.conf 默认主目录是:/var/ftp 3、配置匿名用户下载和上传 [root@test ~]# cat /etc/redhat-release CentOS release 6.5 (Final) 3.1安装FTP软件包,客户端和服务器端: tftp-server-0.49-7.el6.i686 ftp-0.17-51.1.el6.i686 tftp-0.49-7.el6.i686 vsftpd-2.2.2-6.el6_0.1.i686 lftp-4.0.9-1.el6.i686 gvfs-obexftp-1.4.3-12.el6.i686 启动服务,并设为开机自动 service vsftpd start chkconfig vsftpd on 编辑主配置文件/etc/vsftpd/vsftpd.conf anonymous_enable=YES 表示允许匿名用户访问。 local_enable=YES 表示允许使用系统用户访问, write_enable=YES 表示允许允许匿名用户或系统用户具有写入权限 将“/var/ftp/pub”目录的属主改为ftp,即可赋予匿名用户写入权限 [root@test ~]# chown ftp /var/ftp/pub/ 同时在配置文件/etc/vsftpd/vsftpd.conf中增加以下几行: anon_upload_enable=YES #表示允许匿名用户上传 anon_mkdir_write_enable=YES #表示允许匿名用户创建目录 anon_umask=022 #表示设置匿名用户的umask值 anon_max_rate=500000 #表示对匿名用户的传输速率进行限制,单位为字节。 重启服务:service vsftpd restart(reload) 3.2、在客户端使用匿名用户访问测试 此时匿名用户可以新建文件夹,可以上传文件,如下图: 4、配置本地用户上传和下载 (1)vsftpd可以直接使用Linux系统的本地用户作为FTP用户。 使用本地用户登录FTP服务器后,默认将位于用户自己的主目录中,且具有读写权限。 如利用test用户访问ftp,那么默认将进入到的目录是/home/test。 创建系统用户,并设置密码,并在主目录中放置一个测试文件: useradd ftptest passwd ftptest echo ‘ftp test’ > /home/ftptest/ftptest.txt 创建系统用户test,并设置密码: useradd test passwd test (2)实现的场景一:允许用户test登录,且登录成功后位于自己的家目录中。不允许ftptest用户登录 配置参数: anonymous_enable=NO local_enable=YES write_enable=YES chroot_local_user =YES chroot_list_enable=NO chroot_list_file=/etc/vsftpd/chroot_list local_umask=022 userlist_enable=YES userlist_deny=NO 将test用户加入到 /etc/vsftpd/user_list文件。 [root@test vsftpd]# vi /etc/vsftpd/user_list test [root@test ~]# cd /home/test/ [root@test test]# ls test.txt 新建文件夹 测试: (3)实现场景二:允许ftptest用户登录,登录成功后位于/data目录,禁止test用户登录。 anonymous_enable=NO local_enable=YES write_enable=YES chroot_local_user =YES chroot_list_enable=NO chroot_list_file=/etc/vsftpd/chroot_list local_umask=022 userlist_enable=YES userlist_deny=NO local_root=/data 将ftptest用户加入到 /etc/vsftpd/user_list文件。从此文件中删除test用户。 [root@test vsftpd]# vi /etc/vsftpd/user_list ftptest 配置参数解释:- anonymous_enable=NO //禁止匿名用户登录
- local_enable=YES //是否允许本地系统用户访问
- write_enable=YES // 表示允许允许匿名用户或系统用户具有写入权限
- chroot_local_user =YES // 本地用户在访问时只能访问自己家目录
- chroot_list_enable=NO //指定一些用户访问限止在自己的home目录下,就是只能访问自己的家目录
- chroot_list_file=/etc/vsftpd/chroot_list //在/etc/vsftpd/chroot_list文件中中列出的是被限制的用户的列表,文件不存在得新建
- local_umask=022 // 设定本地用户上传文件所用的掩码。
- local_root=/data //设置用户登陆时是访问ftp服务的主目录/data
chroot_local_user=YES | chroot_local_user=NO | |
chroot_list_enable=YES | 1、所有用户都被限制在其主目录下; 2、使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制 | 1、所有用户都不被限制其主目录下; 2、使用chroot_list_file指定的用户列表,这些用户作为“例外”,受到限制 |
chroot_list_enable=NO | 1、所有用户都被限制在其主目录下; 2、不使用chroot_list_file指定的用户列表,没有任何“例外”用户 | 1、所有用户都不被限制其主目录下; 2、不使用chroot_list_file指定的用户列表,没有任何“例外”用户 |
添加: guest_enable=YES #表示启用虚拟用户映射功能 guest_username=virtual #表示指定所映射的系统用户名称 pam_service_name=vsftpd.vu #表示指定PAM认证文件 user_config_dir=/etc/vsftpd/vuser #表示虚拟用户配置文件的存放目录。 (5)创建虚拟用户配置文件 为了对虚拟用户进行精确控制,实现不同用户拥有不同的权限,还需要为每个虚拟用户建立独立的配置文件,在vsftpd.conf配置文件中我们已经指定了虚拟用户配置文件的存放位置/etc/vsftpd/vuser。 下面我们首先创建虚拟用户配置文件存放目录,然后为harry用户创建配置文件,文件名即是用户名: mkdir /etc/vsftpd/vuser cd /etc/vsftpd/vuser vim harry 然后设置允许harry用户上传,设置方法同匿名用户: anon_upload_enable=YES anon_mkdir_write_enable=YES 再为natasha也创建一个配置文件,如果natasha只允许下载,那么只需要有一个配置文件即可,文件内容保持空白。 touch natasha 重启服务:service vsftpd restart 这样虚拟用户便全部设置好了,harry用户具有下载和上传的权限,而natasha只能下载不能上传。 (6)登录测试 防火墙的配置: 添加规则: iptables -t filter -A INPUT -s 192.168.0.0/16 -p tcp --dport 21 -j ACCEPT SElinux配置 set -P allow_ftpd_anon_write on set -P allow_ftpd_full_access on set -P ftp_home_dir on
原文链接:https://www.cnblogs.com/liuxing0007/p/11430231.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Linux中哪些工具堪称神器?
下一篇:Linux基础学习5
- Linux系统如何设置开机自动运行脚本? 2020-06-11
- Linux指令和shell脚本 2020-06-11
- 适合开发者的最佳Linux发行版 2020-06-11
- RAID 1 软件实现(Linux 系统) 2020-06-10
- linux各级目录 2020-06-08
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash