CentOS配置VSFTP
- 格式:docx
- 大小:27.90 KB
- 文档页数:19
1、使用PuTTy(/)(为了安全起见,去PuTTy官方网站下载),登录到服务端2、查看FTP服务是否已安装:rpm –q vsftpd或rpm –e vsftpd;如已安装,查看是否已启动:pgrepvsftpd3、网络安装vsftpd:yum install vsftpd–y安装完成后,对vsftpd进行配置:cp /usr/share/doc/vsftpd-2.2.2/vsftpd.xinetd /etc/xinetd.d/vsftpd #复制一份到/etc/xinetd.d/下vi /etc/xinetd.d/vsftpd #修改vsftpd配置将disabled = yes改成disabled = novi /etc/vsftpd/vsftpd.cont #修改vsftpd.conf配置#listen = yes 去掉#注释#空闲连接超时#dle_session_timeout=600 去掉#注释#数据传输超时#data_connection_timeout=120 去掉#注释:wq #保存,并退出重启vsftpdservicevsftpd restart使用Flashfxp连接FTP时,如果只能连接到CentOS,但无法登录,需要关闭防火墙serviceiptables stop关闭后再重启vsftpd可登录后,如果出现“500 OOPS:cannot change directory:目录”的问题在开了root用户上传权限,也关了系统的防火墙,但ftp连接的时候依然还会出现"500 OOPS:cannot change directory:/root" 错误,如何解决呢?解决:1、查看SELinux的状态:sestatus -b | grep ftp 确切地说,只是查看了ftp的状态。
2、在出现的结果中可以看到ftp_home_dir offtftpd_disable_trans off之类。
CentOS 6.5 多站点vsftp服务器多项安全策略配置【例题】1、安装VSFTPD服务,创建三个FTP站点,分别为、、,其分别对应用的IPv4地址192.168.0.168、192.168.0.169、192.168.0.170,本地用户登录时,其主目录分别为/var/ftp、/var/ftp1、/var/ftp2。
2、所有站点域用户都可以上传文件和下载文件,所有站点本地用户访问的最大传输速率为1M,匿名用户访问的最大传输速率为512KB/S。
3、最大客户端连接数为100,同一IP地址允许最大客户端连接数20。
设置无任何操作的超时时间为5分钟, 设置数据连接的超时时间为2分钟。
4、设置FTP服务需要在运行级别3和5级别开机自动启动。
【配置】# cd /etc/sysconfig/network-scripts/ #切换到网卡文件目录下# cp -p ifcfg-eth0 ifcfg-eth0:1 #拷贝第一个网卡参数到第一个子网卡# cp -p ifcfg-eth0 ifcfg-eth0:2 #拷贝第一个网卡参数到第二个子网卡# vim ifcfg-eth0 #编辑第一个网卡文件[root@Linux network-scripts]# vim ifcfg-eth0:1 #编辑第一个子网卡文件[root@Linux network-scripts]# vim ifcfg-eth0:2 编辑第二个子网卡文件[root@Linux network-scripts]# service network restart #重启网卡下面是关闭和启动的提示正在关闭接口 eth0:设备状态:3 (断开连接)[确定]关闭环回接口: [确定]弹出环回接口: [确定]弹出界面 eth0:活跃连接状态:激活的活跃连接路径:/org/freedesktop/NetworkManager/ActiveConnection/3[确定][root@Linux network-scripts]# ifconfig #显示网卡配置的参数eth0 Link encap:Ethernet HWaddr 08:00:27:F6:5F:F7inet addr:192.168.0.168 Bcast:192.168.0.255 Mask:255.255.255.0inet6 addr: fe80::a00:27ff:fef6:5ff7/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:8826 errors:0 dropped:0 overruns:0 frame:0TX packets:38 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:573538 (560.0 KiB) TX bytes:2040 (1.9 KiB)eth0:1 Link encap:Ethernet HWaddr 08:00:27:F6:5F:F7inet addr:192.168.0.169 Bcast:192.168.0.255 Mask:255.255.255.0UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1eth0:2 Link encap:Ethernet HWaddr 08:00:27:F6:5F:F7inet addr:192.168.0.170 Bcast:192.168.0.255 Mask:255.255.255.0UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1lo Link encap:Local Loopbackinet addr:127.0.0.1 Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING MTU:16436 Metric:1RX packets:200 errors:0 dropped:0 overruns:0 frame:0TX packets:200 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:15444 (15.0 KiB) TX bytes:15444 (15.0 KiB)[root@Linux network-scripts]# mount /dev/cdrom /mnt #挂载光盘到/mnt目录mount: block device /dev/sr0 is write-protected, mounting read-only #提示挂载成功[root@Linux network-scripts]# cd /mnt/Packages/ #切换到光盘的软件包目录下[root@Linux Packages]# rpm -ivh vsftpd-2.2.2-11.el6_4.1.i686.rpm #安装vsftpd服务器主程序[root@Linux Packages]# rpm -ivh bind-libs-9.8.2-0.17.rc1.el6_4.6.i686.rpm #这个四个都是DNS服务器包[root@Linux Packages]# rpm -ivh bind-9.8.2-0.17.rc1.el6_4.6.i686.rpm[root@Linux Packages]# rpm -ivh bind-chroot-9.8.2-0.17.rc1.el6_4.6.i686.rpm [root@Linux Packages]# rpm -ivh bind-utils-9.8.2-0.17.rc1.el6_4.6.i686.rpm [root@Linux Packages]# cd /etc/ #切换到/etc目录下[root@Linux etc]# vim -p named.conf named.rfc1912.zones 同时编辑两个文件,这里开始配置DNSnamed.conf主配置文件的配置结果named.rfc1912.zones 正反区域配置文件的结果[root@Linux etc]# cd /var/named/ #切换到/var/named目录下[root@Linux named]# cp -p named.localhost .zone #拷贝正解模板文件到这个正解区域文件[root@Linux named]# cp -p named.loopback 192.168.0.zone #拷贝反解模板文件到这个反解区域文件[root@Linux named]# vim -p .zone 192.168.0.zone #打开编辑正解和反解文件.zone文件配置192.168.0.zone 文件配置[root@Linux named]# service named start #启动DNS服务器Generating /etc/rndc.key: [确定]启动 named: [确定] #启动成功提示[root@Linux named]# nslookup #DNS测试命令> #测试这个域名的能否解析,以下一样。
Linux CentOS6.2 x64 配置vsftpd虚拟用户服务器一、安装vsftpd需要的组件[root@localhost ~]# yum -y install pam*[root@localhost ~]# yum -y install db4*[root@localhost ~]# yum -y install vsftpd*二、建立虚拟用户[root@localhost ~]#vi /etc/vsftpd/vftpusers.txt添加虚拟用户名和密码,奇数行为用户名,偶数行为密码ftpusers123456Ftpusers1123456三、生成虚拟用户口令认证文件[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vftpusers.txt/etc/vsftpd/vftpusers.db四、编辑vsftpd的PAM认证[root@localhost ~]# vi /etc/pam.d/vsftpd将原有内容全部注释,并在最后添加如下两行(32位系统下需将lib64改为lib):auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpusers account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpusers五、建立本地映射用户并设置宿主权限[root@localhost ~]# useradd -d /app/syncdata -s /sbin/nologinvftpusers [root@localhost ~]#chmod 776 /app/syncdata六、配置vsftpd.conf(设置虚拟用户配置项)可上传、下载、不能删除和创建目录[root@localhost ~]# vi /etc/vsftpd/vsftpd.confanonymous_enable=NOlocal_enable=YESwrite_enable=YESlocal_umask=022anon_umask=002anon_upload_enable=YESanon_other_write_enable=NOanon_mkdir_write_enable=NOdirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESchown_uploads=NOxferlog_std_format=YESnopriv_user=vftpusersasync_abor_enable=YESascii_upload_enable=YESascii_download_enable=YESchroot_local_user=YESls_recurse_enable=NOlisten=YESguest_enable=YESguest_username=vftpusers#virtual_use_local_privs=YESpam_service_name=vsftpduserlist_enable=YEStcp_wrappers=YEShide_file=.*七、关闭selinux[root@localhost ~]# vi /etc/selinux/config将SELINUX=enforcing修改为SELINUX=disabled重启服务器八、测试登录[root@localhost ~]#servicevsftpd restart重启vsftpd服务然后测试登录。
centos6.5vsftpd虚拟⽤户配置⼀:基本知识1:虚拟⽤户:与系统⽆关联,不能登⼊系统,只能访问FTP服务器2:vsftp的服务进程是vsftpd3:vsftpd的配置⽂件是/etc/vsftpd/vsftpd.conf .4:vsftpd的⽤户⽂件是/etc/vsftpd/ftpusers5:vsftpd的⽤户⽂件是/etc/vsftpd/user_list6:推荐使⽤虚拟⽤户登⼊vs-FTP服务器⼆:安装1.检查是否安装过vsftpdrpm -qa vsftpd安装:(1) yum -y install vsftpd lftp(2) 关闭iptables 和 selinux/etc/init.d/iptables stop临时关闭selinuxsetenforce 0永久性的关闭selinuxvim /etc/selinux/config修改为 ————》SELINUX=disabled(3) 创建虚拟⽤户⽂本⽂件,添加⽤户及密码cd /etc/vsftpdtouch vuser.txt备注:奇数⾏是⽤户名,偶数⾏是密码。
例如:alix123456(4) ⽣成虚拟数据库⽂件(需使⽤到db_load)yum -y install db4-utils db4-devel db4-4.3db-load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db(5) 配置PAM⽂件,⽤来验证客户端vim /etc/pam.d/vsftpdauth required pam_userdb.so db=/etc/vsftpd/vuseraccount required pam_userdb.so db=/etc/vsftpd/vuser(6)修改虚拟数据库⽂件的权限chmod 700 /etc/vsftpd/vuser.db(7) 增加⼀个系统⽤户vuser,⽤于匿名⽤户的映射。
Linux(Centos)配置vsftp使⽤账号密码(虚拟⽤户)登录ftp进⾏⽂件上传和修改安装vsftpyum install vsftpd -y安装完成之后进⼊vsftp的配置⽂件夹cd /etc/vsftpd/⽂件夹内容如下[root@VM-0-12-centos vsftpd]# lltotal 20-rw------- 1 root root 125 Oct 1400:10 ftpusers-rw------- 1 root root 361 Oct 1400:10 user_list-rw------- 1 root root 5116 Oct 1400:10 vsftpd.conf-rwxr--r-- 1 root root 338 Oct 1400:10 vsftpd_conf_migrate.sh在当前⽬录下创建⼀个⽤户名和密码的⽂件⽂件名名称为 ftp_user.txtvim /etc/vsftpd/ftp_user.txt再ftp_user.txt⽂件⾥配置⽤户和密码yvioo123456kaifa12345678其中yvioo 是ftp登录的⽤户名123456 是ftp中yvioo⽤户登录的密码kaifa 是ftp登录的⽤户名12345678 是ftp中kaifa⽤户登录的密码以此内推,可以添加多个然后保存退出wq!执⾏命令⽣成虚拟数据库db_load -T -t hash -f /etc/vsftpd/ftp_user.txt /etc/vsftpd/ftp_login.db其中/etc/vsftpd/ftp_user.txt 是上⾯存放⽤户名和密码⽂件的绝对路径/etc/vsftpd/ftp_login.db 这个是⽣成的数据库的路径数据库名称为 ftp_login.db设置⽣成的数据库的访问权限chmod 777 /etc/vsftpd/ftp_login.db编辑账号的pam验证⽂件vim /etc/pam.d/vsftpd在最上⽅增加auth sufficient pam_userdb.so db=/etc/vsftpd/ftp_loginaccount sufficient pam_userdb.so db=/etc/vsftpd/ftp_login其中db=/etc/vsftpd/ftp_login 这个就是上⼀步⽣成的虚拟数据库(⽂件名称根据⾃⼰的来),注意:这⾥不⽤加 .db 后缀如下图所⽰创建⼀个⽂件夹mkdir /home/vsftpd新建⼀个系统⽤户vsftpd⽤户登录终端设为/bin/false(即不能登录系统)useradd vsftpd -d /home/vsftpd -s /bin/false其中vsftpd 这个就是创建的⽤户的⽤户名(这个下⾯配置⽂件⾥会使⽤)/home/vsftpd 就是刚才创建的⽂件夹根据需要创建修改/etc/vsftpd/vsftpd.conf,以下设置vim /etc/vsftpd/vsftpd.conf修改配置#禁⽤匿名登⼊anonymous_enable=YES 改为 anonymous_enable=NO#监听为专⽤模式listen=NO 改为 listen=YES#将ipv6监听注释掉listen_ipv6=YES 改为 #listen_ipv6=YES在配置⽂件底部增加#对⽤户访问只限制在主⽬录不能访问其他⽬录(这个已经有了但是默认是注释的可以取消注释或者直接新增)chroot_local_user=YES#启⽤guestguest_enable=YES#使⽤虚拟账号形式(vsftpd 就是我们上⾯创建的⽤户的⽤户名)guest_username=vsftpd#虚拟账号配置⽬录(这个还没创建我们下⾯再进⾏创建,先这样写)user_config_dir=/etc/vsftpd/user_conf#对vsftpd的⽤户使⽤pam认证(这个就是我们上⾯改的pam验证⽂件的⽂件名,这个默认已经有了,所以不⽤添加,没有的话再添加)pam_service_name=vsftpd#允许本地⽤户登录(这个默认的也有了,没有的话添加上)local_enable=YES然后保存退出接着创建虚拟账号配置⽬录mkdir /etc/vsftpd/user_conf进⼊⽂件夹cd /etc/vsftpd/user_conf/创建⽂件vim /etc/vsftpd/user_config/yvioo其中yvioo 就是我们上⾯ftp_user.txt中配置的ftp的账号的⽤户名(这⾥创建的⽂件名要对应上,如果有多个ftp⽤户就创建多个ftp⽂件对应的⽤户名⽂件,然后在⾥⾯设置权限即可)然后添加write_enable=YESanon_world_readable_only=NOanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YESlocal_root=/data/www说明如下#是否允许登陆⽤户有写权限。
centos 安装配置vsftp虚拟用户访问绝对成功包括目录权限配置第一步:安装vsftp pam db41.#yum install vsftpd pam* db4* -y通过setup对系统服务及防火墙进行配置,然后reboot系统或者使用命令将vsftp配置为系统服务1.#chkconfig --level 35 vsftpd on第二步:配置vsftpd服务的宿主1.#useradd vsftpdadmin -s /sbin/nologin这个vsftpdadmin只是用来替换root的,并不需要登录第三步:建立ftp虚拟宿主帐户1.#useradd ftpuser -s /sbin/nologin这ftpuser只个虚拟帐户的宿主,本身是不用登录的第四步:配置vsftpd.conf更改配置前最好备份一下然后再改1、#cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak2、#vim /etc/vsftpd/vsftpd.conf主要修改下面部分anonymous_enable=YES --> anonymous_enable=NO //不允许匿名用户访问,默认是允许。
#chroot_list_enable=YES --> chroot_list_enable=YES //不允许FTP用户离开自己主目录,默认是被注释掉的。
#chroot_list_file=/etc/vsftpd/chroot_list --> chroot_list_file=/etc/vsftpd/chroot_list //如果开启了chroot_list_enable=YES,那么一定要开启这个,这条是锁定登录用户只能家目录的位置,如果不开启用户登录时就会报500 OOPS的错。
注意:/etc/vsftp/chroot_list本身是不存在的,这要建立vim /etc/vsftp/chroot_list,然后将帐户输入一行一个,保存就可以了无需修改local_enable=YES //允许本地用户访问,默认就是YES,不用改write_enable=YES //允许写入,默认是YES,不用改local_umask=022 //上传后文件的权限掩码,不用改dirmessage_enable=YES //开启目录标语,默认是YES,开不开无所谓,我是默认就行xferlog_enable=YES //开启日志,默认是YES,不用改connect_from_port_20=YES //设定连接端口20,不用改xferlog_std_format=YES //设定vsftpd的服务日志保存路径,不用改(这步后面要有几个操作才能运行,也就是touch这个文件(见第五步),因为它本身不存在,而且还要给文件写入的权限)#idle_session_timeout=600 --> idle_session_timeout=600 //会话超时,客户端连接到ftp但未操作,默认被注释掉,可根据个人情况修改#async_abor_enable=YES --> async_abor_enable=YES //支持异步传输功能,默认是注释掉的,去掉注释#ascii_upload_enable=YES --> ascii_upload_enable=YES //支持ASCII模式的下载功能,默认是注释掉的,去掉注释#ascii_download_enable=YES --> ascii_download_enable=YES //支持ASCII模式的上传功能,默认是注释掉的,去掉注释#ftpd_banner=Welcome to blah FTP service //FTP的登录欢迎语,本身是被注释掉的,去不去都行#chroot_local_user=YES --> chroot_local_user=YES //禁止本地用户登出自己的FTP 主目录,本身被注释掉,去掉注释pam_service_name=vsftpd //设定pam服务下vsftpdd的验证配置文件名,不用改userlist_enable=YES //拒绝登录用户名单,不用改TCP_wrappers=YES //限制主机对VSFTP服务器的访问,不用改(通过/etc/hosts.deny 和/etc/hosts.allow这两个文件来配置)如果没有则添加pam_service_name=vsftpduserlist_enable=YES #此处打开后,本地用户不能登录,只有虚拟用户可以登录userlist_deny=NOuserlist_file=/etc/vsftpd/er_listtcp_wrappers=YESchroot_local_user=NOguest_enable=YES //设定启用虚拟用户功能。
CentOS中vsftp安装与配置详解⼀般我们在安装完系统后都会⾃动安装了vsftp服务了,但是有时候还是得需要⾃⼰动⼿的,⽐如这两天就在给我朋友配置了⼀下,顺⼿把过程记录下来,以便需要的时候查阅或者给需要的朋友提供⽅便:)1. 安装使⽤chkconfig --list来查看是否装有vsftpd服务;使⽤yum命令直接安装:yum -y install vsftpd然后为它创建⽇志⽂件:touch /var/log/vsftpd.log这样简单的两个命令就完成了vsftp的安装,但是如果你现在想这样ftp://your_ip来访问的话,那还不⾏,为什么??很简单,权限的问题!2. 启动与配置⾃启动使⽤chkconfig --list来查看vsftpd服务启动项情况;如果看到的是如下显⽰的结果:vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off服务全部都是off的,注意这⾥的off表⽰的是服务器启动的时候是否会⾃启动服务,我们使⽤如下命令来配置其⾃启动:chkconfig --level 2345 vsftpd on #2345对应的是上⾯对应的0-6项查看与管理ftp服务:启动ftp服务:service vsftpd start查看ftp服务状态:service vsftpd status重启ftp服务:service vsftpd restart关闭ftp服务:service vsftpd stop3. 配置vsftp服务编辑/etc/vsftpd/vsftpd.conf⽂件,配置vsftp服务#vi /etc/vsftpd/vsftpd.conf3.1 编辑修改如下项⽬:anonymous_enable=NO #设定不允许匿名访问local_enable=YES #设定本地⽤户可以访问。
注:如使⽤虚拟宿主⽤户,在该项⽬设定为NO的情况下所有虚拟⽤户将⽆法访问。
阿里云CentOS使用vsftpd搭建FTP服务器1.检查更新:#yumcheck-update2.安装更新:#yum update前两条可省略3.检查是否安装vsftpd:#rpm -q vsftpd或者rpm –qa | grep vsftpd4.安装vsftpd:#yum install vsftpd –y5.vsftpd.ftpusers:位于/etc目录下.它指定了哪些用户账户不能访问FTP服务器,例如root等.er_list:位于/etc目录下.该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问.vsftpd.conf:位于/etc/vsftpd目录下.来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP 服务器的配置.6.设置开机启动vsftpd ftp服务#chkconfig vsftpd on启动vsftpd服务#service vsftpd start管理vsftpd相关命令:停止vsftpd: #service vsftpd stop重启vsftpd: #service vsftpd restart7.开通telnet服务(这一步经过验证可以省略。
)#rpm -q xinetd#yum -y install xinetd#chkconfig xinetd on#service xinetd start这样就开通了telnet了。
8.建立用户组和用户和相应的文件夹并更改权限,达到题目要求# groupadd group1# useradd -ggroup1 user1# useradd -ggroup1 user2# useradd -ggroup1admin增加一个新用户到主要用户组,-g的意思是将user1的主要用户组设为group1# passwd user1# passwd user2# passwd admin# mkdir /home/zc# chown :group1 /home/zcchown将指定文件的拥有者改为指定的用户或组# chmod 770 /home/zc8.linux下如何查看所有的用户和组信息/etc/group 文件是用户组的配置文件。
Centos7中支持虚拟用户vsftpd 服务的配置vsftp是Linux系统首推的FTP服务器软件,在安全、稳定、速度上有一定优势。
本文结合单位实际介绍了FTP服务配置,最终实现这样一个功能,匿名用户仅能登录下载文件,虚拟用户能登录并能在自己的文件夹内上传文件,这些文件夹对匿名用户可见,虚拟用户的用户名、密码存储在MySQL数据库中,同时修改Firewall、SeLinux配置保护系统安全。
1软件安装考虑服务器效率及安全,Centos7选用最小安装,并配置基本编译环境。
vsftp安装采用yum安装,运行命令如下:yum install vsftpdMySQL不采用yum安装,否则在编译pam_mysql时会发生找不到mysql.h文件的错误,解决起来比较麻烦,采用源代码编译安装比较好,安装后mysql的头文件和库安装在/usr/local/mysql目录下。
pam_mysql是基于MySQL数据库的PAM认证模块,是vsftpd与MySQL 之间的桥梁,最新源代码包为pam_mysql-0.7RC1.tar.gz,在字符命令界面下,可通过wget命令下载。
下载解压后在编译时要设置两个参数:--with-pam-mods-dir=/lib64/security #pam_mysql.so安装位置。
--with-mysql=/usr/local/mysql #mysql头文件和库安装位置。
2服务配置过程2.1 pam_mysql配置配置文件在/etc/pam.d目录下,文件名用户自己确定,本文中命名为vsftpd.mysql,文件中包括pam_mysql.so文件位置,MySQL数据库用户名,密码,用户数据库名称,用户表名称,表结构,加密方式等,具体如下:auth required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=*** host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2 verbose=1account required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=*** host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2 verbose=1verbose=1选项用于调试,输出信息在/var/log/secure中。
centos Vsftp 安装配置1.查看是否安装vsftprpm –qa|grep vsftpd如果出现vsftpd-2.0.5-16.el5_5.1 说明已经安装vsftp安装vsftpyum -y install vsftpd2.测试是否安装成功(ip 改成自己啊,不要用俺的此次登录为匿名登录user: anonymous 密码为空如果成功登录会有下面内容这说明vsftpd安装成功)[root@localhost ~]#service vsftpd start为vsftpd 启动vsftpd:[确定][root@localhost ~]#ftp 192.168.1.107Connected to192.168.1.107.220 (vsFTPd 2.0.5)530 Please loginwith USER and PASS.530 Please loginwith USER and PASS.KERBEROS_V4 rejectedas an authentication typeName(192.168.1.107:root): anonymous331 Please specifythe password.Password:230 Loginsuccessful.Remote system typeis UNIX.Using binary mode totransfer files.ftp> bye221 Goodbye.[root@localhost ~]#3.修改配置文件/etc/vsftpd/vsftpd.conf[root@localhost ~]#vi /etc/vsftpd/vsftpd.con取消下面内容前面的注释或添加anonymous_enable=YES/NO 是否允许匿名用户访问chroot_list_enable=YES限定用户不可以离开主目录chroot_list_file=/etc/vsftpd/chroot_listloca_enable=YES/NO 本地用户是否可以访问注:如果为NO 则所有虚拟用户都将不能访问原因:虚拟用户访问在主机上其实是以本地用户访问的pam_service_name=vsftpd pam认证文件名在/etc/pam.d/vsftpdguest_enable=YES 启用虚拟用户功能guest_username=ftp 指定虚拟用户的宿主用户–centos 里面已经有内置的ftp用户了(注:此用户在chroot_list_file=/etc/vsftpd/chroot_list文件里所指定的用户)user_config_dir=/etc/vsftpd/vuser_conf 设置虚拟用户个人vsftp的服务配置文件(此文件后面不能出现空格)4.查看是否安装db4 db4-utils[root@localhost ~]#rpm -qa|grep db4 运行后出现下面内容说明已经安装可以使用db_load 命令(主要是db4-utils)db4-devel-4.3.29-10.el5_5.2db4-4.3.29-10.el5_5.2db4-devel-4.3.29-10.el5_5.2db4-4.3.29-10.el5_5.2db4-tcl-4.3.29-10.el5_5.2db4-utils-4.3.29-10.el5_5.2[root@localhost ~]#如果没安装则要安装db4-utils4.1安装db4-utils[root@localhost ~]#yum -y install db4-utils5. 创建chroot_list_file=/etc/vsftpd/chroot_list文件[root@localhost ~]#vi /etc/vsftpd/chroot_list (编辑文件把/etc/vsftpd/vsftpd.conf 中guest_username的值写到文件中本例中为ftp)或者直接按下面进行操作[root@localhost ~]#touch /etc/vsftpd/chroot_list[root@localhost ~]# echoftp >> /etc/vsftpd/chroot_list (此处ftp 也要是/etc/vsftpd/vsftpd.conf中的guest_username的值)6.创建虚拟用户目录(密码文本)[root@localhost ~]#vi /etc/vsftpd/vftpuser.txtx (奇数行为用户名,偶数行为密码)本文中添加如下(用cat 命令查看)[root@localhost ~]#cat /etc/vsftpd/vftpuser.txtxaaaaaftp1zzzzz[root@localhost ~]#7.生成虚拟用户的db文件[root@localhost ~]#db_load -T -t hash -f /etc/vsftpd/vftpuser.txtx /etc/vsftpd/vftpuser.db 8.生成虚拟用户的认证文件[root@localhostvsftpd]# vi /etc/pam.d/vsftpd#%PAM-1.0session optional pam_keyinit.so force revokeauth required pam_listfile.so item=user sense=denyfile=/etc/vsftpd/ftpusersonerr=succeedauth required pam_shells.soauth include system-authaccount include system-authsession include system-authsession required pam_loginuid.so注释掉/etc/pam.d/vsftpd中所有的内容反正已经不要本地用户的认证了特别注意以下区别32位系统增加以下两句:auth required pam_userdb.so db=/etc/vsftpd/vftpuseraccount required pam_userdb.so db=/etc/vsftpd/vftpuser64位系统增加以下两句:auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuseraccount required /lib64/security/pam_userdb.sodb=/etc/vsftpd/vftpuser注:db=/etc/vsftpd/vftpuser 中的vftpuser 是你生成的虚拟用户的db文件9.创建每个虚拟用户自己的配置文件,配置文件的路径是/etc/vsftpd/vsftpd.conf中的user_config_dir=/etc/vsftpd/vuser_conf路径在/etc/vsftpd/vuser_conf/下面创建以用户名为名称的文件(名称是/etc/vsftpd/vftpuser.txtx 下面的奇数行)[root@localhostvsftpd]# cat /etc/vsftpd/vftpuser.txtxzzaaaaaftp1zzzzz[root@localhostvsftpd]# mkdir vuser_conf[root@localhostvsftpd]# vi /etc/vsftpd/vuser_conf/zz内容如下local_root=/var/www(虚拟用户的根目录根据实际修改)write_enable=YES (可写)download_enable=YESanon_world_readable_only=NOanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YESlocal_umask=02210.给文夹权限(否则不能上传权限可自定本人给的是777)[root@localhostvsftpd]# chmod 777 /var/www/11.重启vsftpd[root@localhostvsftpd]# service vsftpd restart到此安装配置完成如果出现连接被同位体重置或其它错误请查看SELinux的当前模12.登录测试[root@localhost vsftpd]# ftp192.168.1.107Connected to 192.168.1.107.220 (vsFTPd 2.0.5)530 Please login with USER and PASS.530 Please login with USER and PASS.KERBEROS_V4 rejected as anauthentication typeName (192.168.1.107:root): zz331 Please specify the password.Password:500 OOPS: cannot changedirectory:/var/wwwLogin failed.ftp>查看方法[root@localhost vsftpd]# getenforceEnforcing 如果出现(Enforcing )关闭方法:[root@localhost vsftpd]#setenforce 0 (0|1 开|关)再次测试登录成功[root@localhost vsftpd]# chmod 777/var/www/[root@localhost vsftpd]# ftp192.168.1.107Connected to 192.168.1.107.220 (vsFTPd 2.0.5)530 Please login with USER and PASS.530 Please login with USER and PASS.KERBEROS_V4 rejected as anauthentication typeName (192.168.1.107:root): zz331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp>查看系统是多少位的命令[root@bogon ~]# getconf LONG_BIT 64 (64|32)。
一.安装:1.安装Vsftpd服务相关部件:[root@ ~]# yum install vsftpd* -yDependencies Resolved================================================ =============================Package Arch Version Repository Size================================================ =============================Installing:vsftpd i386 2.0.5-10.el5 base 137 kTransaction Summary================================================ =============================Install 1 Package(s)Update 0 Package(s)Remove 0 Package(s)2.确认安装PAM服务相关部件:[root@ ~]# yum install pam* -yDependencies Resolved================================================ =============================Package Arch Version Repository Size================================================ =============================Installing:pam-devel i386 0.99.6.2-3.14.el5 base 186 kTransac tion Summary================================================ =============================Install 1 Package(s)Update 0 Package(s)Remove 0 Package(s)开发包,其实不装也没有关系,主要的目的是确认PAM。
3.安装DB4部件包:这里要特别安装一个db4的包,用来支持文件数据库。
[root@ ~]# yum install db4* -yDependencies Resolved================================================ =============================Package Arch Version Repository Size================================================ =============================Installing:db4-devel i386 4.3.29-9.fc6 base 2.0 Mdb4-java i386 4.3.29-9.fc6 base 1.7 Mdb4-tcl i386 4.3.29-9.fc6 base 1.0 Mdb4-utils i386 4.3.29-9.fc6 base 119 kTransaction Summary================================================ =============================Install 4 Package(s)Update 0 Package(s)Remove 0 Package(s)二.系统帐户1.建立Vsftpd服务的宿主用户:[root@ ~]# useradd vsftpd -s /sbin/nologin默认的Vsftpd的服务宿主用户是root,但是这不符合安全性的需要。
这里建立名字为vsf tpd的用户,用他来作为支持Vsftpd的服务宿主用户。
由于该用户仅用来支持Vsftpd服务用,因此没有许可他登陆系统的必要,并设定他为不能登陆系统的用户。
2.建立Vsftpd虚拟宿主用户:[root@ nowhere]# useradd virtusers -s /sbin/nologin本篇主要是介绍Vsftp的虚拟用户,虚拟用户并不是系统用户,也就是说这些FTP的用户在系统中是不存在的。
他们的总体权限其实是集中寄托在一个在系统中的某一个用户身上的,所谓Vsftpd的虚拟宿主用户,就是这样一个支持着所有虚拟用户的宿主用户。
由于他支撑了FTP的所有虚拟的用户,那么他本身的权限将会影响着这些虚拟的用户,因此,处于安全性的考虑,也要非分注意对该用户的权限的控制,该用户也绝对没有登陆系统的必要,这里也设定他为不能登陆系统的用户。
三.调整Vsftpd的配置文件:1.编辑配置文件前先备份[root@ ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.b ak编辑主配置文件Vsftpd.conf[root@ ~]# vi /etc/vsftpd/vsftpd.conf这里我将原配置文件的修改完全记录,凡是修改的地方我都会保留注释原来的配置。
其中加入我对每条配置项的认识,对于一些比较关键的配置项这里我做了我的观点,并且原本英语的说明我也不删除,供参考对比用。
------------------------------------------------------------------------------# Example config file /etc/vsftpd/vsftpd.conf## The default compiled in settings are fairly paranoid. This sample file# loosens things up a bit, to make the ftp daemon more usable.# Please see vsftpd.conf.5 for all compiled in defaults.## READ THIS: This example file is NOT an exhaustive list of vsftpd option s.# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's # capabilities.## Allow anonymous FTP? (Beware - allowed by default if you comment thi s out).#anonymous_enable=YESanonymous_enable=NO#设定不允许匿名访问,实际环境可以开放匿名用户的登录。
## Uncomment this to allow local users to log in.local_enable=YES#设定本地用户可以访问。
注意:主要是为虚拟宿主用户,如果该项目设定为NO那么所有虚拟用户将无法访问。
## Uncomment this to enable any form of FTP write command.write_enable=YES#设定可以进行写操作。
## Default umask for local users is 077. You may wish to change this to 022,# if your users expect that (022 is used by most other ftpd's)local_umask=022#设定上传后文件的权限掩码。
## Uncomment this to allow the anonymous FTP user to upload files. This only# has an effect if the above global write enable is activated. Also, you will # obviously need to create a directory writable by the FTP user.#anon_upload_enable=YESanon_upload_enable=NO#禁止匿名用户上传。
## Uncomment this if you want the anonymous FTP user to be able to crea te# new directories.#anon_mkdir_write_enable=YESanon_mkdir_write_enable=NO#禁止匿名用户建立目录。
## Activate directory messages - messages given to remote users when the y# go into a certain directory.dirmessage_enable=YES#设定开启目录标语功能。
## Activate logging of uploads/downloads.xferlog_enable=YES#设定开启日志记录功能。
## Make sure PORT transfer connections originate from port 20 (ftp-data). connect_from_port_20=YES#设定端口20进行数据连接。
## If you want, you can arrange for uploaded anonymous files to be owned by# a different user. Note! Using "root" for uploaded files is not# recommended!#chown_uploads=YESchown_uploads=NO#设定禁止上传文件更改宿主。
#chown_username=whoeverchroot_local_user=YES#设定登陆后.只可以访问自己的属主目录.不可访问上一层目录文件# You may override where the log file goes if you like. The default is sho wn# below.xferlog_file=/var/log/vsftpd.log#设定Vsftpd的服务日志保存路径。