FTP文件传输协议(File Transfer Protocol),即能够让用户在互联网中上传、下载文件的文件协议,而FTP服务器就是支持FTP传输协议的主机,要想完成文件传输则需要FTP服务端和FTP客户端的配合才行。
FTP协议占用两个端口号:
21端口:命令控制,用于接收客户端执行的FTP命令。
20端口:数据传输,用于上传、下载文件数据。
FTP数据传输的类型:
主动模式:FTP服务端主动向FTP客户端发起连接请求。
被动模式:FTP服务端等待FTP客户端的连接请求。
下面介绍用虚拟用户登录ftp,因为虚拟用户模式的帐号口令都不是真实系统中存在的,所以相对于本地用户要比较安全多了。
步骤:
1.查看系统版本
# uname -a Linux node2 3.10.0-327.36.3.el7.x86_64 #1 SMP Mon Oct 24 16:09:20 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
2.安装vsftpd
#yum install vsftpd -y
3.备份配置文件
# cd /etc/vsftpd # mv vsftpd.conf vsftpd.conf.bak # egrep -v "^$|^#" vsftpd.conf.bak > vsftpd.conf
4.创建一个系统账户 (方便后面虚拟用户映射使用)
# useradd -d /data/ -s /sbin/nologin virturl # chmod 755 /data
5.创建虚拟用户并生成数据文件(这种方法比较麻烦,每次创建都需要重新生成数据库文件,不过可以使用mysql来代替 这种方法。)
# cd /etc/vsftpd # vim vip.list (文件一行用户一行密码) blog 123567 cache 123456 使用db_load命令用HASH算法生成FTP用户数据库文件vip.db # db_load -T -t hash -f vip.list vip.db 刚创建的vip.list这个文件就可以删除了,不然被人发现就破解了,数据库文件比较重要,更改权限。 # chmod 600 vip.db
6.使用系统上面的pam认证文件
# vim /etc/pam.d/vip (指定我们刚刚上面生成的数据库文件,去掉后缀名就可以了) auth required pam_userdb.so db=/etc/vsftpd/vip account required pam_userdb.so db=/etc/vsftpd/vip
7.创建用户权限的文件
# cd /etc/vsftpd # mkdir vip_dir (在里面用ftp账户命名创建文件,文件里面配置权限,默认是没有上传,下载,删除等权限的。) # vim blog anon_upload_enable=YES #(上传权限) anon_mkdir_write_enable=YES #(创建文件目录) anon_other_write_enable=YES #(其他权限) # vim cache 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
# systemctl start vsftpd
10.防火墙允许 20,21端口通过
# iptables -I INPUT -p tcp --dport 20:21 -j ACCEPT
11.就可以用客户端去登录了。window软件的我用了filezilla这个软件,需要打开主动模式去连接,不会报错。
时间: 2024-10-08 10:27:57