| 2018-12-7
照例,还是先说下FTP的工作原理。就是本地共享一些文件/目录,客户机可以通过访问,连接进入,能上传和下载数据。端口的话,FTP控制连接,说使用的是TCP 21端口,用于发送FTP命令信息。FTP的数据连接所使用的端口号是 TCP 22端口,用于上传和下载数据。数据连接的话,分为主动模式和被动模式,一般都是被动模式,主动模式需要关闭客户机的防火墙。。。所以,你懂的。。。
另外FTP的用户分为,匿名用户,本地用户和虚拟用户。匿名就是FTP和anonymous,密码任意。虚拟用户是通过一个本地账号虚拟映射为多虚拟账号。今天我们这里讲的是linux/unix系统下的vsftp。客户机的话,windows直接可以访问,linux需要安装ftp命令。
1:准备工作
yum -y install vsftpd安装vsftpd
/etc/init.d/iptables stop关闭防火墙
setenforce 0关闭selinux
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.$(date+%Y%m%d%H)给主配置文件做备份,后面的是年月日小时。
chmod ftp /var/ftp/pub给默认共享目录权限
12 anonymous_enable=YES允许匿名访问
15 local_enable=YES允许本地访问
18 write_enable=YES允许修改(修改的总开关)
22 local_umask=022本地用户的权限是755
27 anon_upload_enable=YES匿名允许上传
31 anon_mkdir_write_enable=YES允许匿名创建目录
35 dirmessage_enable=YES显示文件列表
42 connext_from_port_20=YES20端口连接
47 chown_upload=YES属主可上传
48 chown_username=whoever属主用户名是 whoever
62 data_connection_timeout=120120秒后,连接超时
96 chroot_local_user=YES开启本地用户家目录锁定
117 pam_service_name=vsftpdpam验证服务的脚本名是vsftpd
118 userlist_enable=YESuserlist开始使用(里面记录的本地用户账号不能登陆)
其他配置:
listen=YES开启监听
listen_address=192.168.137.11监听地址
listen_port=2121监听端口
pasv_enable=YES开启被动模式
pasv_min_port=24500被动模式端口下限
pasv_max_port=24600被动模式端口上限
max_clients=2000最大15000,最大客户连接数,一般不限制
max_per_ip=2每个IP限制最多打开几个客户端工具,一般不限制
anon_max_rate=50000匿名最大传输速率,一般不限制
local_max_rate=20000本地用户最大传输速率,一般不限制
可添加的:
anon_other_write_enable=YES匿名用户可以有其他写入权限(删除、重命名等)
anon_umask=022匿名用户的umask值
/etc/vsftpd下的ftpusers文件是ftp服务的黑名单,写入账号之后,永久不能登陆
user_list文件写入账号之后,可通过主配置文件写入 userlist_deny=NO 不拒绝uerlist登陆
2:设置虚拟映射账号
需要先创建本地映射账号,指定家目录/var/ftproot,并且指定不能登陆
chmod 777 /var/ftproot给需要映射账号的家目录修改权限,或用chown改变该家目录的属主
在/etc/vsftpd下,创建虚拟用户账号密码列表文件test.list
db_load -T -t hash -f test.list test.db用test.list生成test.db数据库文件,允许非Berkeley程序使用该数据库,指定hash算法,-f是指定源文件的。(如果电脑里没有db_load命令,需要先安装db4-utils。)
chmod 600 test.*修改有关用户密码文件的权限,增强安全性
增加pam认证
vim /etc/pam.d/vsftpd.vu 手动创建此pam认证文件
内容为:
authrequiredpam_userdb.sodb=/etc/vsftpd/test
accountrequiredpam_userdb.sodb=/etc/vsftpd/test此处不加.db,用为前面是db=
在主配置文件内,加入允许虚拟用户登陆:
guest_enable=YES
guest_username=test
在/etc/vsftpd/下创建test.dir/目录,里面创建虚拟用户文件:如 test1 test2 test3
在每个虚拟用户文件内,配置每个用户的不同权限,格式为:
anon_upload_enable=YES允许匿名用户上传
anon_mkdir_write_enable=YES允许匿名用户写目录
anon_other_write_enable=YES允许匿名用户其他写的权限
anon_max_rate=1匿名用户传输的最大速度是1K,如果写0的话,是不限速
local_root=/var/test指定家目录
给每个账户都设置好权限后,需要在主配置文件内加入:
user_config_dir=/etc/vsftpd/test.dir指定用户配置目录
3:客户机测试
客户机可用ftp FTP服务器IP 连接服务器
匿名用户用ftp 密码任意登陆服务器
登陆进入服务器之后,可用命令:
mkdir创建目录
rmdir删除目录
cd切换路径
get下载
put上传
mdir创建多个目录
mget下载多个文件/目录
mput上传多个文件/目录
ls列表
delete删除文件
mdelete删除多个文件
?显示可用命令
4:给VSFTP服务做日志
在主配置文件内加入:
xferlog_std_format=YES
xferlog_file=/var/log/xferlog手动添加,使FTP服务日志文件保存为/var/log/xferlog
当然大家可以用可相互ping通的windows主机测试,在地址栏里直接输入 ftp://FTP服务器IP 就能进入,再右键有登陆,就可以了。
到此。FTP服务器安装测试完毕。大家一起共同学习进步,有不理解的,可以在下方评论回复。希望大家多多关注,给我这个新人多多的支持。谢谢。因为一天只能发一个,所以明天预计发一个DNS的。
花生壳是一套完全免费的动态域名解析服务客户端软件。当您安装并注册该项服务,可实现在家或者异地搭建网站、FTP、Mail、 异地或分支机构访问办公OA、CRM、ERP系统。“花生壳”支持的线路包括普通电话线、ISDN、ADSL、有线电视网络、双绞线到户的宽带网和其它任何能够提供互联网真实IP的接入服务线路,而无论连接获得的IP属于动态还是静态。利用宽带联接搭建视频监控,视频会议系统等。