一.FTP的基本功能:
1.FTP 服务器在预设的情况下,依据使用者登入的情况而分为三种不同的身份,分别是:
(1)实体账号,real user;
(2)访客, guest;
(3)匿名登录者, anonymous
2.命令记录与登录文件记录: 记录的信息放在/var/log/ 里面!
3.限制用户活动的目录: (change root, 简称 chroot)
二. FTP 的运作流程与使用到的端口
方法一:
主动式联机使用到的端号
1.建立命令通道的联机
2.通知 FTP 服务器端使用 active 且告知连接的端号
3.FTP 服务器主动向客户端联机
方法二:
客户端选择被动式 (Passive) 联机模式
1.用户与服务器建立命令信道
2.客户端发出 PASV 的联机要求
3.FTP 服务器启动数据端口口,并通知客户端联机
4.客户端随机取用大于 1024 的端口进行连接
三.FTP服务器所需要的软件以及软件结构
1. FTP服务器所需要的软件vsftpd
2.vsftpd软件结构:
/etc/vsftpd/vsftpd.conf vsftpd 的配置文件
/etc/pam.d/vsftpd vsftpd 使用 PAM 模块时的相关配置文件
/etc/vsftpd/ftpusers PAM 模块 (/etc/pam.d/vsftpd) 所指定的那个无法登入的用户配置文件
/etc/vsftpd/user_list 是否能够生效与 vsftpd.conf 内的两个参数有关,分别是userlist_enable, userlist_deny
/etc/vsftpd/chroot_list 文件事先是不存在的.主要功能是可以将某些账号的使用者 chroot 在他们的家目录下
/usr/sbin/vsftpd vsftpd的主要执行档
/var/ftp/ vsftpd预设匿名者登入的根目录(ftp 这个账号的家目录).
四./etc/vsftpd/vsftpd.conf配置文件里面的内容解释.
1.与服务器环境较相关的设定值
connect_from_port_20=YES (NO) FTP 服务器的 port
listen_port=21 vsftpd 使用的命令通道 port
dirmessage_enable=YES (NO) 用户进入某个目录时显示该目录需要注意的内容.显示的档案默认是 .message
message_file=.message 当 dirmessage_enable=YES 时,可以设定这个项目来让 vsftpd 寻找该档案来显示讯息!
listen=YES (NO) 设定为 YES 表示 vsftpd 是以 stand alone 的方式来启动.
pasv_enable=YES (NO) 支持数据流的被动式联机模式(passive mode),一定要设定为 YES
use_localtime=YES (NO) 是否使用本地时间
write_enable=YES (NO) 允许用户上传数据时,就要启动这个设定值
idle_session_timeout=300 使用者在 300 秒内都没有命令动作,强制脱机
max_clients=0 设定同一时间,最多有多少 client 可以同时连上 vsftpd
max_per_ip=0 同一个 IP 同一时间可允许多少联机
ftpd_banner=一些文字说明 当使用者联机进入到 vsftpd 时,在 FTP 客户端软件上头会显示的说明文字。
banner_file=/path/file 使用者登入 vsftpd 服务器时所显示的欢迎字眼
2.与实体用户较相关的设定值
guest_enable=YES (NO) 设定为 YES 时,那么任何实体账号,均会被假设成为 guest至于访客在 vsftpd 时,预设会取得 ftp 这个使用者的相关权限
guest_username=ftp 指定访客的身份
local_enable=YES (NO) 设定值为 YES 时,在 /etc/passwd 内的账号才能以实体用户的方式登入vsftpd 服务器
local_max_rate=0 实体用户的传输速度限制,单位为 bytes/second, 0 为不限制
chroot_local_user=YES (NO) 是否要将使用者限制在自己的家目录之内
chroot_list_enable=YES (NO) 是否启用 chroot 写入列表的功能
chroot_list_file=/etc/vsftpd/chroot_list
userlist_enable=YES (NO) 是否藉助 vsftpd 的抵挡机制来处理某些不受欢迎的账号
userlist_deny=YES (NO) YES时,使用者账号被列入到某个档案时, 在该档案内的使用者将无法登入 vsftpd 服务器
userlist_file=/etc/vsftpd/user_list 若上面 userlist_deny=YES 时,在这个档案内的账号都无法使用 vsftpd.
3.匿名者登入的设定值
anonymous_enable=YES (NO) 是否允许 anonymous 登入vsftpd 主机
anon_world_readable_only=YES (NO) 仅允许 anonymous 具有下载可读档案的权限
anon_other_write_enable=YES (NO) 是否允许 anonymous 具有除了写入之外的权限
anon_mkdir_write_enable=YES (NO) 是否让 anonymous 具有建立目录的权限
anon_upload_enable=YES (NO) 是否让 anonymous 具有上传数据的功能
deny_email_enable=YES (NO) 将某些特殊的 email address 抵挡住,不让那些 anonymous 登入
banned_email_file=/etc/vsftpd/banned_emails 如果 deny_email_enable=YES 时,可以利用这个设定项目来规定哪个 email address 不可登入vsftpd
no_anon_password=YES (NO) YES时anonymous 将会略过密码检验步骤,而直接进入 vsftpd服务器
anon_max_rate=0 限制 anonymous 的传输速度,0 则不限制
anon_umask=077 限制 anonymous 上传档案的权限
4.关于系统安全方面的一些设定值
ascii_download_enable=YES (NO) 如果设定为 YES ,client 就优先使用 ASCII 格式下载文件。一般不建议开启.
ascii_upload_enable=YES (NO) 如果设定为 YES ,client 就优先使用 ASCII 格式上传文件。一般不建议开启.
tcp_wrappers=YES (NO) 是否开启tcp包
xferlog_enable=YES (NO) 设定为 YES 时,使用者上传与下载文件都会被纪录起来
xferlog_file=/var/log/xferlog 纪录使用者上传与下载等信息的文件
xferlog_std_format=YES (NO) 是否设定为 wu ftp 相同的登录档格式
pam_service_name=vsftpd 这个是 pam 模块的名称,放置在 /etc/pam.d/vsftpd中