centos6.3搭建FTP服务器图文教程
今天下午不忙,没什么事,看到我大红盟linux版块如此冷清,心不能忍,做了个FTP服务器的搭建教程,大家可以看看,
不会做视频,就图文交叉了,写得不好,望谅解。以后有时间再出一个LNMP的教程。
不磨叽,开始。
系统:CENTOS 6.3
平台:vsftpd
准备:
关闭linux防火墙,(不想关的可以把ftp的21端口加到防火墙规则即可,我为了省事)
#chkconfig --level 35 iptables off
![](//img-blog.csdn.net/20140302013110953?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbW9xaWFuZzAy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
重启电脑!
开始
1.先查看系统是否安装了vsftpd和ftp,
![](//img-blog.csdn.net/20140302013130796?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbW9xaWFuZzAy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
#rpm -q vsftpd 和#rpm -q ftp
出现上图所示内容XXXX is not installed 则说明没有安装,那我们通过yum安装上,
#yum install vsftpd ftp 中途提示按y键继续。
2.查看安装是否成功,
![](//img-blog.csdn.net/20140302013201375?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbW9xaWFuZzAy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
#ftp XXX.XXX.XXX.XXX 这里用自己当前电脑的IP地址,匿名登录用户名写: anonymous ,密码空直接回车,成功登录会有上图信息。
3.配置vsftp
修改配置文件
#vi /etc/vsftpd/vsftpd.conf
取消下面内容前面的注释或者把这些内容都注释掉,在末尾自己添加:
anonymous_enable=YES/NO 是否允许匿名用户访问
local_enable=YES/NO 设置本地用户是否可以访问,如果为NO 则所有虚拟用户都将不能访问,因为虚拟用户访问在主机上其实是以本地用户访问的
pam_service_name=vsftpd pam认证文件名 在/etc/pam.d/vsftpd
chroot_list_enable=YES 限定用户不可以离开主目录
chroot_list_file=/etc/vsftpd/chroot_list 启用chroot_list_file配置项指定的用户列表文件
guest_enable=YES 启用虚拟用户功能
guest_username=ftp 指定虚拟用户的宿主用户,centos系统自带ftp用户(此处也可设置为apache或者nginx用户)
user_config_dir=/etc/vsftpd/vuser_conf 设置虚拟用户个人配置文件(此文件后面不能出现空格),如图:
![](//img-blog.csdn.net/20140302013245921?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbW9xaWFuZzAy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
注:vi编辑器打开文件之后按i键进入编辑模式,编辑完毕按ESC退出编辑模式,按:wq然后回车,保存退出。
4.安装db4,和第一步一样,见图,不BB了。yum install db4 db4-utils db4-devel db4-tcl
![](//img-blog.csdn.net/20140302013311921?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbW9xaWFuZzAy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
5.创建chroot_list文件,注:见第三步chroot_list_file=/etc/vsftpd/chroot_list这一项,
把/etc/vsftpd/vsftpd.conf 中guest_username项的值写到文件中。
#vi /etc/vsftpd/chroot_list
按i键,输入ftp,ESC——:wq——回车。
6.创建虚拟用户的目录
#vi /etc/vsftpd/vftpuser.txtx(注,基数行写帐号,偶数行写密码,见图)
![](//img-blog.csdn.net/20140302013335671?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbW9xaWFuZzAy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
然后保存退出。
7.生成虚拟用户口令文件和认证文件,
#db_load -T -t hash -f /etc/vsftpd/vftpuser.txtx /etc/vsftpd/vftpuser.db
#vi /etc/pam.d/vsftpd
注释掉/etc/pam.d/vsftpd中所有的内容,因为不要本地用户的认证了,
32位系统增加以下两句:
auth required pam_userdb.so db=/etc/vsftpd/vftpuser
account required pam_userdb.so db=/etc/vsftpd/vftpuser
64位系统增加以下两句:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser
#mkdir /etc/vsftpd/vuser_conf/
#vi /etc/vsftpd/vuser_conf/zccftp1
写入如下内容:
local_root=/var/www
write_enable=YES
download_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022
保存退出。
![](//img-blog.csdn.net/20140302013526671?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbW9xaWFuZzAy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
9.赋权
#chmod 777 /var/www/ (如果guest_username=nginx/apache,则此处可把权限设为700)
这两步根据自己需要来看,我只是演示,大家可以查查linux的权限和虚拟用户配置文件,自行设定。
不会做视频,就图文交叉了,写得不好,望谅解。以后有时间再出一个LNMP的教程。
不磨叽,开始。
系统:CENTOS 6.3
平台:vsftpd
准备:
关闭linux防火墙,(不想关的可以把ftp的21端口加到防火墙规则即可,我为了省事)
#chkconfig --level 35 iptables off
关闭selinux:编辑配置文件/etc/selinux/config,改为SELINUX=disabled
如图:
重启电脑!
开始
1.先查看系统是否安装了vsftpd和ftp,
#rpm -q vsftpd 和#rpm -q ftp
出现上图所示内容XXXX is not installed 则说明没有安装,那我们通过yum安装上,
#yum install vsftpd ftp 中途提示按y键继续。
2.查看安装是否成功,
#ftp XXX.XXX.XXX.XXX 这里用自己当前电脑的IP地址,匿名登录用户名写: anonymous ,密码空直接回车,成功登录会有上图信息。
3.配置vsftp
修改配置文件
#vi /etc/vsftpd/vsftpd.conf
取消下面内容前面的注释或者把这些内容都注释掉,在末尾自己添加:
anonymous_enable=YES/NO 是否允许匿名用户访问
local_enable=YES/NO 设置本地用户是否可以访问,如果为NO 则所有虚拟用户都将不能访问,因为虚拟用户访问在主机上其实是以本地用户访问的
pam_service_name=vsftpd pam认证文件名 在/etc/pam.d/vsftpd
chroot_list_enable=YES 限定用户不可以离开主目录
chroot_list_file=/etc/vsftpd/chroot_list 启用chroot_list_file配置项指定的用户列表文件
guest_enable=YES 启用虚拟用户功能
guest_username=ftp 指定虚拟用户的宿主用户,centos系统自带ftp用户(此处也可设置为apache或者nginx用户)
user_config_dir=/etc/vsftpd/vuser_conf 设置虚拟用户个人配置文件(此文件后面不能出现空格),如图:
注:vi编辑器打开文件之后按i键进入编辑模式,编辑完毕按ESC退出编辑模式,按:wq然后回车,保存退出。
4.安装db4,和第一步一样,见图,不BB了。yum install db4 db4-utils db4-devel db4-tcl
5.创建chroot_list文件,注:见第三步chroot_list_file=/etc/vsftpd/chroot_list这一项,
把/etc/vsftpd/vsftpd.conf 中guest_username项的值写到文件中。
#vi /etc/vsftpd/chroot_list
按i键,输入ftp,ESC——:wq——回车。
6.创建虚拟用户的目录
#vi /etc/vsftpd/vftpuser.txtx(注,基数行写帐号,偶数行写密码,见图)
然后保存退出。
7.生成虚拟用户口令文件和认证文件,
#db_load -T -t hash -f /etc/vsftpd/vftpuser.txtx /etc/vsftpd/vftpuser.db
#vi /etc/pam.d/vsftpd
注释掉/etc/pam.d/vsftpd中所有的内容,因为不要本地用户的认证了,
32位系统增加以下两句:
auth required pam_userdb.so db=/etc/vsftpd/vftpuser
account required pam_userdb.so db=/etc/vsftpd/vftpuser
64位系统增加以下两句:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser
#mkdir /etc/vsftpd/vuser_conf/
#vi /etc/vsftpd/vuser_conf/zccftp1
写入如下内容:
local_root=/var/www
write_enable=YES
download_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022
保存退出。
9.赋权
#chmod 777 /var/www/ (如果guest_username=nginx/apache,则此处可把权限设为700)
这两步根据自己需要来看,我只是演示,大家可以查查linux的权限和虚拟用户配置文件,自行设定。
10.重启ftp服务:#service vsftpd restart
让系统服务随着系统启动而启动: #chkconfig vsftpd on
11.测试:
******************************************************************
chroot_local_user=YES
chroot_list_enable=YES(这行可以没有, 也可以有)
chroot_list_file=/etc/vsftpd.chroot_list
那么, 凡是加在文件vsftpd.chroot_list中的用户都是不受限止的用户
即, 可以浏览其主目录的上级目录。
所以, 如果不希望某用户能够浏览其主目录上级目录中的内容,可以如上设置, 然后在
文件vsftpd.chroot_list中不添加该用户即可(此时, 在该文件中的用户都是可以浏览其主目录之外的目录的).
或者, 设置如下:
chroot_local_user=NO
chroot_list_enable=YES(这行必须要有, 否则文件vsftpd.chroot_list不会起作用)
chroot_list_file=/etc/vsftpd.chroot_list
然后把所有不希望有这种浏览其主目录之上的各目录权限的用户添加到文件vsftpd.chroot_list(此时, 在该文件中的用户都是不可以浏览其主目录之外的目录的)中即可(一行一个用户名)。