一、FTP工作原理(1)FTP使用端口 [root@localhost ~]# cat /etc/services | grep ftp ftp-data 20/tcp #数据链路:端口20 ftp 21/tcp #控制链路:端口21 (2)FTP连接方式
1.客户端从自己的一个任意端口(N > 1024)和FTP服务器的21端口建立控制链路
1.客户端从自己的一个任意端口(N > 1024)和FTP服务器的21端口建立控制链路 注意:
二、ftp服务器搭建需求:在Linux中搭建一个ftp服务器在存储文件,创建一个ftp用户:test,主目录是:/home/test,设置该用户不允许登录服务器,并需要限制该用户不能离开自己的主目录。 【实现步骤】 1.查看系统有没有安装vsftpd 2.查看vsftpd服务是否开机自启 3.建立一个新用户账户test,-d 参数指定用户登入时的主目录,参数-m 表示如果主目录不存在则自动创建 为用户设置密码,输入命令: 4.vsftpd的配置
查看vsftpd.conf配置文件 1 [root@localhost ~]# cat /etc/vsftpd/vsftpd.conf | grep -v '^#' 2 #----匿名用户设置---- 3 anonymous_enable=NO #禁止匿名用户登录 4 5 #----本地用户设置---- 6 local_enable=YES #允许本地用户登录ftp服务器 7 write_enable=YES #允许用户想服务器执行写入操作 8 local_umask=022 #设置服务器上本地用户创建文件的权限掩码 9 10 #----欢迎语设置---- 11 dirmessage_enable=YES #启用目录提示消息 12 13 #----日志文件设置---- 14 xferlog_enable=YES #启用日志文件功能,记录于/var/log/xferlog 15 xferlog_std_format=YES #启用标准的日志格式 16 17 #----FTP工作方式与端口设置---- 18 connect_from_port_20=YES #主动模式下,是否启用默认的20端口进行数据传输 19 20 #----与连接相关的设置---- 21 listen=NO #vsftpd不是以独立的服务运行,要受到xinetd服务的管控,功能上会受到限制 22 listen_ipv6=YES 23 24 #----控制用户是否允许切换到上级目录---- 25 chroot_list_enable=YES #开启限制用户在主目录的功能 26 chroot_list_file=/etc/vsftpd/chroot_list #在chroot_list文件中加入你要限制的用户名,一行一个用户 27 28 #----虚拟用户设置---- 29 pam_service_name=vsftpd #虚拟用户使用PAM认证方式 30 31 #----控制用户访问(通过vsftpd.user_list和ftpusers文件来实现)---- 32 userlist_enable=YES #是否启用userlist_file文件 33 userlist_file=/etc/vsftpd/user_list #允许user_list文件中加入的用户访问ftp服务器 34 35 #----控制主机访问---- 36 tcp_wrappers=YES #vsftpd服务器检查/etc/hosts.allow和/etc/hosts.deny中的设置,来决定请求连接的主机,是否允许访问该FTP服务器 37 38 #----其它设置---- 39 allow_writeable_chroot=YES #去除用户主目录的写权限 在上述vsftpd.conf的相关选项的配置下,对ftpuser文件和user_list文件的配置如下:
5.开启vsftpd服务 6.访问ftp服务器方法
注意:关闭ftp服务器上的防火墙及Selinux(防止端口限制)
------------------------------- 补充知识点
xferlog_enable=YES //开启日志功能 xferlog_file=/var/log/xferlog //日志文件的存放位置 xferlog_std_format=YES //使用标准格式记录日志 xferlog该日志文件记录了FTP会话,可以显示出用户向从FTP服务器拷贝了什么文件。其中一条记录如下: Thu Feb 16 10:09:05 2017 1 10.10.10.9 990 ./home/ftpie.txt b _ o r test ftp 0 * c 含义:在某个时间test用户向主机10.10.10.9上传了哪些文件 数据参数说明
服务器安装完成vsftpd后是允许匿名用户访问的,匿名访问的用户名是ftp,密码为空。这个用户可以在/etc/passwd文件中找到 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin 数据参数说明:
默认情况下,匿名用户登录所访问的文件夹一般是/var/ftp,当然也可以由用户自行添加或删除。而且,匿名用户的权限只能是下载,而不能上传或是其它写操作。
在/etc/vsftpd.conf中,将list_port=10034或者其它端口号选项加入该文件中即可,然后重新启动vsftp守护进程。 # ftp 127.0.0.1 10034 注:此时测试以前使用的21端口,该端口已经不再有用;如果要使用ftp默认的21端口工作,需要删除或者使用#屏蔽掉前面加入的选项即可。
|
|
来自: 昵称27831725 > 《Linux中ftp服务器搭建》