FTP服务的基本概念
FTP是用于进行文件传输的网络协议
FTP服务中分为服务器和客户机两个角色
FTP服务器的传输模式
主动模式:由服务器主动连接客户机建立数据链路
被动模式:FTP服务器等待客户机建立数据链路
FTP服务器使用的端口
21端口用于与客户机建立命令链路
在主动模式下服务器使用20端口向客户机建立数据链路
主动模式的连接过程:
被动模式的连接过程:
常用的FTP服务器软件:
Windows下常用的FTP服务器软件
IIS具有FTP服务器的功能
Serv-U是流行的FTP服务器软件
============================
Linux下的FTP服务器
Wu-ftpd出现较早,运行稳定,安全性稍差
Proftpd在配置文件和安全性方面有很大改进
vsftpd着重强调服务的安全性,运行效率也很高
下面我们就来试着安装一个FTP服务器
接下来我们来看一下vsftpd的主配置文件的路径
再来看看主目录下的内容:
ftpusers是用来进行保存不能进行FTP登录的本地用户
ftpusers文件中可禁止高权限本地用户登录FTP服务器,提高了系统的安全性
user_list文件具有更灵活的对FTP服务器进行访问控制
使用vsftpd.user_list文件需要在主配置文件中进行设置,如何设置呢?
接下来我们来该主配置文件的默认有效配置
FTP提供三种用户模式来登录,分别是:匿名用户、本地用户、虚拟用户
其中所以匿名用户默认情况下都会登录的/var/ftp目录下面,且以此目录为根目录,只能向下切换,而不可向上切换。/var/ftp下有一个共享目录pub。FTP匿名登录可用于构建公共文件的下载服务。
下面我们来启动服务登录一下试试:
要想在FTP服务器本地用户登录的时候被禁锢在自己的家目录,在主配置文件中添加如下一行:
chroot_local_user=YES
默认情况下本地用户可以在FTP服务器上新建目录,但匿名用户不可以!
下面我们来解释一下主配置文件中各个选项的含义:
loacal_umask=022:上传文件默认权限为644(666-022)
anon_upload_enable=YES 匿名用户上传
anon_mkdir_write_enable=YES 匿名用户新建目录
dirmessage_enable=YES显示目录说明文件.message
xferlog_enable=YES是否记录ftp传输过程
connetct_from_port_20=YES是否确信端口传输来自20
chown_username=username是否改变匿名用户上传文件的属主
xferlog_log=/var/log/vsftpd.log日志文件
idle_session_timeout=600设置默认的断开不活跃session的时间
data_connection_timeout=120设置数据传输超时时间
chroot_local_user=YES 将本地用户禁锢在自己的家目录里边
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list 是否将系统用户限制在自己的宿主目录下
max_clients=Number用户最大连接数,0不限制
max_per_ip=Number每个ip地址最多有几个联机(多线程下载)
setproctitle_enable=YES每个联机都能以独立的process来呈现
anon_max_rate=50000匿名用户最大传输速率为50KB/S
local_max_rate=200000本地用户最多传输速率为200KB/S
user_config_dir=/etc/vsftpd/userconf为每个用户创建单独的配置文件
listen_port=21 命令侦听端口
ftp_data_port=20 数据传输端口
port_enable=YES 主动FTP,默认开启,客户端必须采用主动模式联机
pasv_enable=YES被动模式FTP,默认开启,客户端必须采用被动模式联机。注明:windows的ftp命令和ie不支持pasv.只有在服务器上开一些端口。
pasv_min_port=9981被动模式端口范围,默认为0不限制
pasv_max_port=9986
tcp_wrappers=YES支持tcp_wrappers防火墙
下面来学习将vsftpd封装在xinetd服务
1.修改/etc/vsftpd/vsftpd.conf
将listen=YES改为listen=NO
2.vim /etc/xinetd.d/vsftpd
service vsftpd
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
port = 21
log_on_failure += USERID
disable = no
}
3.启动服务:service xinetd restart
4.nmap 192.168.1.23发现21端口没有开启
5.查找原因:tail /var/log/messages vsftpd/tcp 没有在services中
6.编辑/etc/services:vsftpd 21/tcp
7.测试。
在FTP中,!pwd是执行客户端操作系统的命令
lcd是在客户端系统上切换目录