FTP文件传输协议(FileTransferProtocol),即能够让用户在互联网中上传、下载文件的文件协议,而FTP服务器就是支持FTP传输协议的主机,要想完成文件传输则需要FTP服务端和FTP客户端的配合才行。
FTP协议占用两个端口号:
21端口:命令控制,用于接收客户端执行的FTP命令。
FTP数据传输的类型:
主动模式:FTP服务端主动向FTP客户端发起连接请求。
被动模式:FTP服务端等待FTP客户端的连接请求。
下面介绍用虚拟用户登录ftp,因为虚拟用户模式的帐号口令都不是真实系统中存在的,所以相对于本地用户要比较安全多了。
步骤:
1.查看系统版本
#uname-a Linuxnode23.10.0-327.36.3.el7.x86_64#1SMPMonOct2416:09:20UTC2016x86_64x86_64x86_64GNU/Linux
2.安装vsftpd
#yuminstallvsftpd-y
3.备份配置文件
#cd/etc/vsftpd #mvvsftpd.confvsftpd.conf.bak #egrep-v"^$|^#"vsftpd.conf.bak>vsftpd.conf
4.创建一个系统账户 (方便后面虚拟用户映射使用)
#useradd-d/data/-s/sbin/nologinvirturl #chmod755/data
5.创建虚拟用户并生成数据文件(这种方法比较麻烦,每次创建都需要重新生成数据库文件,不过可以使用MysqL来代替 这种方法。)
#cd/etc/vsftpd #vimvip.list(文件一行用户一行密码) blog 123567 cache 123456 使用db_load命令用HASH算法生成FTP用户数据库文件vip.db #db_load-T-thash-fvip.listvip.db 刚创建的vip.list这个文件就可以删除了,不然被人发现就破解了,数据库文件比较重要,更改权限。 #chmod600vip.db
6.使用系统上面的pam认证文件
#vim/etc/pam.d/vip(指定我们刚刚上面生成的数据库文件,去掉后缀名就可以了) authrequiredpam_userdb.sodb=/etc/vsftpd/vip accountrequiredpam_userdb.sodb=/etc/vsftpd/vip
#cd/etc/vsftpd #mkdirvip_dir(在里面用ftp账户命名创建文件,文件里面配置权限,默认是没有上传,下载,删除等权限的。) #vimblog anon_upload_enable=YES#(上传权限) anon_mkdir_write_enable=YES#(创建文件目录) anon_other_write_enable=YES#(其他权限) #vimcache anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES
8.配置vsftpd配置文件
#vim/etc/vsftpd/vsftpd.conf anonymous_enable=NO#(禁用匿名用户) local_enable=YES#(允许本地用户登录) guest_enable=YES#(需要虚拟用户登录) guest_username=virtual#(映射的系统用户) pam_service_name=vip#(pam认证文件) allow_writeable_chroot=YES#(允许禁锢的FTP根目录可写而不拒绝用户登入请求) user_config_dir=/etc/vsftpd/vip_dir#(指定用户权限的目录) write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=NO listen_ipv6=YES userlist_enable=YES tcp_wrappers=YES
9.启动vsftpd
#systemctlstartvsftpd
10.防火墙允许 20,21端口通过
#iptables-IINPUT-ptcp--dport20:21-jACCEPT
11.就可以用客户端去登录了。window软件的我用了filezilla这个软件,需要打开主动模式去连接,不会报错。
原文链接:https://www.f2er.com/centos/379869.html