FTP服务搭建与配置
FTP介绍
FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。
FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。
小公司用的多,大企业不用FTP,因为不安全。
使用vsftpd搭建ftp服务
centos上自带vsftpd
安装:yum install -y vsftpd
创建一个用户:useradd -s /sbin/nologin virftp
这个用户不是登录服务器用的,只是用来传输数据用的,所以这个普通用户的目的是为了让这些虚拟的用户来做一个映射,因为你要登录这台机器去传输数据
-s指定他的shell这样为了安全,/sbin/nologin表示这个用户不能够登录系统(安全)
编辑文件:vim /etc/vsftpd/vsftpd_login //这个文件我们叫做虚拟用户的密码文件,需要定义他的用户名和密码,奇数行为用户名,偶数行为密码,多个用户就写多行,内容格式如下:
testuser1
aminglinux
user1
987654321
编辑完更改权限:chmod 600 /etc/vsftpd/vsftpd_login 不能让所有用户都能读
把文本的密码文件转换成计算机识别的二进制文件:
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
创建虚拟用户配置文件所在的目录:
mkdir /etc/vsftpd/vsftpd_user_conf
这个目录也是自定义的所以也要去配置文件中去定义
先进入到该目录下:cd /etc/vsftpd/vsftpd_user_conf
创建并编辑用户的配置文件:vim testuser1 //创建用户的配置文件要跟你的用户名字一致(也是上边vsftpd_login创建的用户名),加入以下内容://注释
local_root=/home/virftp/testuser1//定义虚拟用户的家目录
anonymous_enable=NO//是否允许秘密用户
write_enable=YES//是否允许可写
local_umask=022//创建新目录新文件的权限是什么,跟系统的保持一致的
anon_upload_enable=NO//是否允许秘密用户可上传
anon_mkdir_write_enable=NO//是否允许秘密用户可创建目录并且写
idle_session_timeout=600//上传超出多少时间断开连接/s
data_connection_timeout=120//数据传输的超出时间/s
max_clients=10//最大的客户端有多少
创建虚拟用户的家目录:mkdir /home/virftp/testuser1
在touch一个测试文件:touch /home/virftp/testuser1/aming.txt
更改权限:chown -R virftp:virftp /home/virftp 因为最后你要映射成virftp这个用户,他需要有读的权限
编辑配置文件,定义它的密码文件在哪里:vim /etc/pam.d/vsftpd //在最前面加上,登录ftp有一个认证的过程
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
编辑vfstpd的主配置文件:vim /etc/vsftpd/vsftpd.conf
将anonymous_enable=YES 改为 anonymous_enable=NO 不允许秘密用户
将#anon_upload_enable=YES 改为 anon_upload_enable=NO
将#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO 是否允许创建目录
在最下边再增加如下内容
chroot_local_user=YES
guest_enable=YES
guest_username=virftp 映射的系统用户
virtual_use_local_privs=YES 是否使用虚拟用户
user_config_dir=/etc/vsftpd/vsftpd_user_conf 虚拟用户配置文件所在路径
allow_writeable_chroot=YES
启动服务:systemctl start vsftpd 查看下进程:ps aux |grep vsftp
查看监听端口:netstat -lntp vsftp监听的是21端口;22端口是sshd;23端口是telnet
测试ftb
安装客户端软件:yum install -y lftp
lftp [email protected]
执行命令ls,看是否正常输出
输入问号?查看可以使用的命令
常用的命令put;get 比如你get一个文件,他就会get到当前目录下,quit退出来
若不正常查看日志/var/log/messages和/var/log/secure
windows下安装filezilla客户端软件,进行测试
ctrl+alt+f
使用pure-ftbd搭建ftb服务
比vsftpd更加轻量简单
下载扩展源:yum install -y epel-release
下载 pure-ftpd: yum install -y pure-ftpd
修改配置文件:vim /etc/pure-ftpd/pure-ftpd.conf//找到pureftpd.pdb这行,把行首的#删除
因为pure也属于一个ftb传输软件,也监听着21端口,所以你要先把之前开启的vsftpd关掉 (这一步针对上边搭建了vsftpd服务的来操作,如果直接搭建pure-ftpd服务则不需要)
systemctl stop vsftpd
再来开启pure服务:systemctl start pure-ftpd
创建测试目录(用来给pure用户使用):mkdir /data/ftp
创建一个普通目录:useradd -u 1010 pure-ftp
把属主属组改一下:chown -R pure-ftp:pure-ftp /data/ftp
创建一个用户:pure-pw useradd ftp_usera -u pure-ftp -d /data/ftp //ftp_usera虚拟用户名;-u指定系统用户是谁,其实也是映射用的;-d指定虚拟用户的家目录
查看pure都支持那些用法:pure-pw --help
必须执行这一步,不然没办法登录:pure-pw mkdb
创建一个测试文件:touch /data/ftp/123.txt
登录:lftp [email protected] ls查看一下有没有123.txt文件