一、FTP介绍
FTP是文件传输协议,用法有匿名访问并下载,另一种是用FTP账号进行进行上传和下载,账号通常是用数据库或者ldap进行管理,Linux下的FTP服务是vsftpd,vsftp是非常安全ftp的意思,具有良好的安全记录没有被攻破过。Vsftp既可以本地用户登陆也可以匿名用户登录。
二、ftp服务实验
- 实验环境:准备两台虚拟机,其中一台Linux系统做服务器,一台Windows做客户机。并且能互通
- 实验目的:ftp实验
- 实验过程:
1、安装开启ftp软件包
[root@localhost /]# yum -y install vsftpd ##安装软件包vsftpd
[root@localhost vsftpd]# iptables -F ##关闭防火墙
[root@localhost vsftpd]# setenforce 0
[root@localhost vsftpd]# systemctl start vsftpd 开启vsftpd服务
2、客户机登录
3、权限管理
[root@localhost vsftpd]# vim vsftpd.conf
[root@localhost vsftpd]# grep -v "#" /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES ##开启下载权限
anon_mkdir_write_enable=YES
anon_other_write_enable=YES ##添加一项其他用户权限
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
[root@localhost vsftpd]# systemctl restart vsftpd #重启服务
[root@localhost var]# ll ftp/
总用量 4
drwxr-xr-x. 2 root root 6 7月 14 19:03 centos7
-rw-r--r--. 1 root root 1276 7月 14 19:28 ks.cfg
drwxrwxrwx. 2 root root 6 10月 31 2018 pub #ftp下的一个关联的目录里面没东西
[root@localhost var]# chmod 777 ftp/pub ##将此目录权限放到最大然后客户端可以上传文件
(若是ftp目录权限放到最大,则客户端远程访问不了,因为Linux系统的一个保护功能)
user_list配置文件:仅允许或拒绝指定用户访问
[root@localhost vsftpd]# vim user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
建立虚拟用户使用ftp
[root@localhost vsftpd]# ls
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
[root@localhost vsftpd]# vim vuser #创建虚拟用户文件
tom1 #用户名
123123 #密码
tom2
123123
[root@localhost vsftpd]# db_load -T -t hash -f vuser vuser.db ##转换成虚拟数据库文件
[root@localhost vsftpd]# chmod 600 vuser
[root@localhost vsftpd]# chmod 600 vuser.db #禁止查看文件内容(有密码信息)
[root@localhost vsftpd]# useradd -d /opt/vuser -s /sbin/nologin vuser ##创建一个用户,指定家目录,禁止shell登录
[root@localhost vsftpd]# vim /etc/pam.d/vsftpd.vu #认证模块
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf
结尾添加
guest_enable=YES
guest_username=vuser
pam_service_name=vsftpd.vu ##pam模块认证登录开启
[root@localhost vsftpd]# systemctl restart vsftpd
[root@localhost vsftpd]# user_config_dir=/etc/vsftpd/vu_dir
[root@localhost vsftpd]# mkdir vu_dir
[root@localhost vsftpd]# vim /etc/vsftpd/vu_dir/tom
anon_umask=055 ##指定上传文件的权限
[root@localhost vsftpd]# systemctl restart vsftpd