FTP服务搭建
浏览量:887
基础环境
[root@youngcheung ~]# uname -r 2.6.32-573.el6.x86_64 [root@kyg ~]# cat /etc/redhat-release CentOS release 6.7 (Final)
基础环境关闭防火墙及selinux
[root@youngcheung~]# /etc/init.d/iptables status iptables: Firewall is not running. [root@youngcheung~]# getenforce Disabled
部署vsftpd及虚拟用户登录
[root@youngcheung~]# yum install -y vsftpd #vsftpd安装程序 [root@youngcheung~]# yum install -y pam* db4* #vsftpd虚拟登陆账户必要依赖包
修改/etc/vsftpd/vsftpd.conf
anonymous_enable=NO #不允许匿名用户登录 local_enable=YES #允许本地用户登录 write_enable=YES #开启全局上传 local_umask=022 #设置上传umask值为系统默认umask值 dirmessage_enable=YES #允许为配置目录显示信息 xferlog_enable=YES #打开日志记录功能 connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES chroot_list_enable=YES #是否禁锢chroot_list中的用户 chroot_list_file=/etc/vsftpd/chroot_list # chroot_list文件保存位置 listen=YES #是否作为一个独立守护进程运行 userlist_enable=YES tcp_wrappers=YES guest_enable=YES #开启虚拟用户 guest_username=www #FTP虚拟用户对应的系统用户 virtual_use_local_privs=YES user_config_dir=/etc/vsftpd/ftplogin #授权FTP虚拟用户所在目录 pam_service_name=vvsftpd #PAM认证文件
改前备份
[root@youngcheung~]# cd /etc/vsftpd/ [root@youngcheung vsftpd]# ls ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh [root@youngcheung vsftpd]# cp vsftpd.conf vsftpd.conf.ori [root@youngcheungvsftpd]# ls ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh vsftpd.conf.ori
建立相关文件及目录
[root@youngcheungvsftpd]# touch /etc/vsftpd/chroot_list [root@youngcheungvsftpd]# mkdir /etc/vsftpd/ftplogin
创建FTP虚拟登录账号
创建FTP虚拟账号明文文件:
[root@youngcheung vsftpd]# touch vuser [root@youngcheungvsftpd]# cat vuser tank 123456 boy 123456
生成pam校验数据库文件
[root@youngcheungvsftpd]# db_load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/login.db [root@youngcheungvsftpd]# chmod 600 vuser
为了安全起见,建议在生成校验数据库之后,删除vuser文件; 或者修改vuser权限,不让别的用户读
添加新的pam service
[root@youngcheungpam.d]# touch /etc/pam.d/vvsftpd [root@youngcheungpam.d]# cat vvsftpd #%PAM-1.0 ##auth required /lib/security/pam_userdb.so db=/etc/vsftpd/login ##account required /lib/security/pam_userdb.so db=/etc/vsftpd/login auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/login account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/login (注意如果是32位系统,那就用32位的校验,本例是64位的)
给FTP虚拟用户赋予权限(增加权限配置文件)详解
配置文件存放路径,就是conf中的user_config_dir,本文就是/etc/vsftpd/ftplogin,文件名必须和用户名相同
文件配置详解,默认路径需要提前用mkdir建立好,目录拥有者设置为conf中的guest_username,本文为www
#有上传/下载/修改权限
anon_world_readable_only=NO write_enable=YES anon_mkdir_write_enable=YES anon_upload_enable=YES anon_other_write_enable=YES local_root=/data/upload/
#只有上传/修改权限
anon_world_readable_only=NO write_enable=YES anon_mkdir_write_enable=YES anon_upload_enable=YES local_root=/data/upload/
#只有下载权限
anon_world_readable_only=NO local_root=/data/upload/
建立本地映射用户并设置宿主目录权限
所有的FTP虚拟用户需要使用一个系统用户(www),这个系统用户不需要密码。
[root@youngcheung~]# useradd -d /data/upload www -s /sbin/nologin -M [root@youngcheung~]# mkdir /data/upload -p [root@youngcheung~]# chown -R www.www /data/upload [root@youngcheung~]# cd /etc/vsftpd/ftplogin/ [root@youngcheungftplogin]# cat tank #创建一个以FTP虚拟用户命名的文件 anon_world_readable_only=NO write_enable=YES anon_mkdir_write_enable=YES anon_upload_enable=YES anon_other_write_enable=YES local_root=/data/upload/
启动ftp服务
[root@youngcheungftplogin]# /etc/init.d/vsftpd start Starting vsftpd for vsftpd: [ OK ] [root@youngcheungftplogin]# netstat -lntup|grep vsftpd tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1554/vsftpd
浏览器利用虚拟用户登录
ftp://ip地址(10.10.10.100)

12、FTP客户端利用虚拟用户登录

神回复
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。