一,ftp概述
1,概念
file transfer protocol文件传输协议
2,传输模式
a,主动模式:由服务器主动连接客户端建立数据链路
b,被动模式:ftp服务器等待客户端建立数据链路
3,使用端口
21 用于与客户机建立命令链路
20 在主动模式下服务器使用20向客户机建立数据链路
4,常用的ftp软件
服务器
windows: iis serv-u
linux: wu-ftpd proftpd vsftpd(rhel默认)
客户机
windows: cuteftp filezilla
linux: gftp
二,配置vsftpd(very secure非常安全)
1,安装
vsftpd
主配置文件
/etc/vsftpd/vsftpd.conf vsftpd服务器的主配置文件
/etc/vsftpd.ftpusers 黑名单
/etc/vsftpd.user_list 白/黑名单
当userlist_deny=yes被禁止
当userlist_deny=no被允许
/var/ftp/ 默认共享出来的目录
匿名用户登陆用
ftp anonymous
2,配置
a,禁止匿名用户访问
把anonymous_enable=yes改为anonymous_enable=no
b,允许匿名用户上传
把anon_upload_enable=yes
anon_mkdir_write_enable=yes
在把上传目录的权限+上
如你想让上传的匿名用户修改文件名的话在加上
anon_other_write_enable=yes
c,禁锢普通用户在家目录
chroot_local_user=yes
d,自定义用户访问文件夹
local_root=路径 系统用户
anon_root=路径 匿名用户
e,max_per_ip=每个客户机最大连接数
local_max_rate=50000 本地用户下载50k
anon_max_rate=30000 匿名用户下载30k
f,连接服务器的欢迎信息
ftpd_banner=welcome to linux ftp server~!
进入每个目录提示信息
在每个目录下建立.message
g,虚拟用户
a,建立虚拟用户口令库文件
#cat logins.txt
mike
123
john
321
口令库文件中奇数行设置用户名,偶数行设置口令
b,生成vsftpd的认证文件(在第3张光盘中安装)
#rpm -ivh db4-utils*
#db_load -t -t hash -f /root/logins.txt /etc/vsftpd/vsftpd_login.db 生成认证文件
c, 设置认证文件只对用户可读可写
# chmod 600 /etc/vsftpd/vsftpd_login.db
d,建立虚拟用户所需的pam配置文件
手工建立vsftpd.vu文件 在这里需要注意 小心写错了,最好看看书上面的
# cat /etc/pam.d/vsftpd.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
e,建立虚拟用户及要访问的目录并设置相应的权限
建立所有ftp虚拟用户帐号使用的系统用户帐号,并设置该帐号宿主目录的权限
# useradd -d /home/ftpsite virtual
# chmod 700 /home/ftpsite
f,设置vsftpd.conf配置文件
在配置文件中添加虚拟用户的配置内容
guest_enable=yes
guest_username=virtual
pam_service_name=vsftpd.vu
重新启动vsftpd服务程序
g,对vsftpd.conf文件修改后需要重新启动vsftpd服务程序
# service vsftpd restart
现在就应该可以用虚拟帐号登陆了,但是什么权限都没的,只能登陆。。。
4,对虚拟用户设置不同的权限
设置主配置文件
在vsftpd.conf文件中添加用户配置文件目录设置
user_config_dir=/etc/vsftpd_user_conf
建立用户配置文件目录
使用mkdir命令建立用户配置文件目录
# mkdir /etc/vsftpd_user_conf
为虚拟用户建立单独的配置文件
用户配置文件名称与用户名相同
/etc/vsftpd_user_conf/mike
/etc/vsftpd_user_conf/john
里面的内容如下:
anon_world_readable_only=no 表示用户可以浏览ftp目录和下载文件
anon_upload_enable=yes 表示用户可以上传文件
anon_mkdir_write_enable=yes 表示用户具有建立和删除目录的权限
anon_other_write_enable=yes 表示用户具有文件改名和删除文件的权限
没有的配置项默认按照vsftpd.conf的配置内容
5,ftp服务器的资源限制 这可以在vsftpd.conf中添加 这我就不演示了 大家看看 知道就可以了
在企业中用的很多的
max_clients=100 允许最大的客户端连接数
max_per_ip=5 同一ip最大客户端的连接数
local_max_rate=5000000 设置本地用户最大传输数率
anon_max_rate=2000000 匿名用户最大的传输数率
三,启动
#service vsftpd restart
/etc/init.d/vsftpd restart
四,常用ftp命令
? ! lcd pwd get put mget mput