ftp服务器简单配置【广域网共享文件、精细化配置】
问题描述
之前我们有配置过samba,但是其仅限用于 局域网,并不适合于广域网间的共享文件。
FTP(File Transfer Protocol)将会是一个很好的选择!
基于 TCP/IP 的编程
0.查询是否安装
rpm -qa | grep ftp
1.安装软件包
查询ftp相关软件包
yum list | grep ftp
2.查询装了什么
rqm -ql vsftpd
查询文档
man vsftpd.conf
尝试启动
service vsftpd start
默认只能下载,不能上传,不能删除
这里我们尝试连接一下
放文件
ftp默认的目录地址为/var/ftp/pub
我们尝试复制一些文件进去
cp ./* /var/ftp/pub
我们查看一下是否有对应的文件
ls /var/ftp/pub
查看ip
ifconfig
查询到ip后,我们尝试连接
ftp 对应ip地址
默认用户名:
ftp
默认密码:空
出现这样的结果表示连接成功
这里我们可以尝试查看当前所有支持的命令——
help
获取文件
记得改变一下文件目录
cd pub
进入查看文件
直接通过get
命令下载文件
出现上述结果,表示传输成功
我们可以尝试!ls
查询自己当前本地的文件
尝试上传文件
put 本地文件
尝试删除文件
rm 文件名
3.配置ftp
查看配置
切换配置文件目录
cd /etc/vsftpd
去除注释,查看内容
cat vsftpd.conf | grep -v [\\#]
umask:扣除权限 (0022)
umask:扣除权限(0022)
扣除同组 和 其他用户的
write
权限
协议端口
connect_from_prot_20=yes
21
:传送指令(get、put)20
:传送数据(数据通道)——很大,很长!两者建立连接后,客户端将主动发送指令至21端口,服务端响应指令。
客户端告诉服务端从一个 1024 ~ 65535 中随机选择一个端口进行传输;
服务端忠实的向这一端口发送数据,但是这样会有什么样的问题呢?
我们要想到,客户端 和 服务端之间会有一个 防火墙,它将对端口进行限制,对未开放的端口传输的数据将会直接拦截。
因此,若客户端随机选择一个端口接受数据,可能将会被 防火墙拦截!
所以,这里我们就设置
20
为传输数据的通道!
密码验证机制
pam_service_name=vsftpd
开启监听
listen=yes
若不开启,则无法绑定至IP
匿名用户登录功能
所有匿名用户都登录到相同的目录——
/var/ftp
(用于构建公共下载)
通过man vsftpd
查看修改参数——anno_root
当我们在vsftpd.conf文件中添加anno_root
尝试启动,但是会提示没有对应权限
不允许登录的本地账号
/etc/vsftpd/ftpusers
系统级账号
在命令模式按
o
,末尾添加
1.创建一个本地账号
useradd ftpuser
2.创建密码
passwd ftpuser
3.重启服务
service vsftpd restart
4.尝试登录
将会登录至/home/用户名
然后通过pwd
查看当前目录
我们开始尝试突破安全控制,尝试访问不属于我用户的目录
我们cd ..
回到上一级,就可以看到所有的用户了!
也就是说,这样就会可能造成安全问题!!!!(虽然我这里只是简单回到上一级,但是linux中一切皆文件,一切信息都会存放至文件,若是有不法分子进入,将可能造成难以估量的后果 !!!)
锁定本地用户目录
若我们不限制这一项,用户将会随便访问系统任意位置的文件,可能造成信息泄露的危险
chroot_local_user=YES
将ftp本地用户禁锢在宿主目录
重启服务
service vsftpd restart
继续尝试
继续以ftpuser登录,通过pwd看看当前我的目录是什么
但是我们一般不进行这样操作,因为这样的用户将会被允许远程登录系统,存在安全隐患!
用户访问控制
/etc/vsftpd/user_list
首先需要使用
userlist_anble = YES
确保这个是可以使用的默认
userlist_deny = yes
——默认在这个文件的用户名都是黑名单(拒绝访问)
我们可以尝试将刚才创建的user(ftpuser)加入至当前文件中
按wq
,保存并退出
这里其实并不需要重启了,因为每次需要登录时 ftp都会去扫描该文件
我们尝试以ftpuser
继续登录一下