• 欢迎访问Ppabc博客网站,专注于Linux、CentOS、Apache、Nginx、MySQL、PHP等开源工具安装优化的技术博客,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入Ppabc博客
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏Ppabc博客吧

CentOS FTP服务器的架设和配置方案

Linux学习 admin 8年前 (2010-12-22) 314次浏览

1.安装 vsftpd:yum install vsftpd

2.启动/重启/关闭 vsftpd 服务器
[root@localhost ftp]# /sbin/service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
OK 表示重启成功了.


启动和关闭分别把 restart 改为 start/stop 即可.

假如是源码安装的,www.linuxidc.com 到安装文件夹下找到 start.sh 和 shutdown.sh 文件,执行它们就可以了.

3.与 vsftpd 服务器有关的文件和文件夹
vsftpd 服务器的配置文件的是: /etc/vsftpd/vsftpd.conf

vsftpd 服务器的根目录,即 FTP 服务器的主目录:
在/var/ftp 处 pub 处
假如你想修改服务器目录的路径,那么你只要修改/var/ftp 到别处就行了

4.添加 FTP 本地用户
有的 FTP 服务器需要用户名和密码才能登录,就是因为设置了 FTP 用户和权限.
FTP 用户一般是不能登录系统的,只能进入 FTP 服务器自己的目录中,这是为了安全.这样的用户就叫做虚拟用户了.实际上并不是真正的虚拟用户,只是不能登录 SHELL 了而已,没能力登录系统.

/usr/sbin/adduser -d /opt/test_ftp -g ftp -s /sbin/nologin test
这个命令的意思是:
使用命令(adduser)添加 test 用户,不能登录系统(-s /sbin/nologin),自己的文件夹在(-d /opt/test_ftp)),属于组 ftp(-g ftp)
然后你需要为它设置密码 passwd test
这样就添加了一个 FTP 用户了.下面的示例可以帮助你进入 FTP 服务器了.

[root@localhost ftp]# ftp
ftp> open 192.168.0.33
Connected to 192.168.0.33 (192.168.0.33).
220 (vsFTPd 2.0.5)
Name (192.168.0.33:gxl): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quit
221 Goodbye.

在 windows 中,只要在浏览器中输入 ftp://192.168.0.33 进入 FTP 服务器,然后右键登录,输入用户名和密码就可以登录自己的目录了.
当然你要保证自己能读写自己的目录,就要在配置文件 vsftpd.conf 里设置一下就可以读写了.
local_enable=yes
write_enable=yes
local_umask=022

5.匿名上传下载
修改配置文件即可 vsftpd.conf,确定有以下几行,没有自己添加进去就可以了.
anonymous_enable=yes
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_umask=022

然后你可以新建一个文件夹,修改它的权限为完全开放,任何用户就可以登录这个文件夹,并上传下载文件:
mkdir /var/ftp/guest
chmod 777 /var/ftp/guest

6.定制进入 FTP 服务器的欢迎信息
在 vsftpd.conf 文件中设置:
dirmessage_enable=yes
然后进入用户目录建立一个.message 文件,输入欢迎信息即可(我这里写入的是 Welcome to gxlinux’s FTP!):
[root@localhost test_ftp]# ftp 192.168.0.33
Connected to 192.168.0.33 (192.168.0.33).

220 (vsFTPd 2.0.5)
Name (192.168.0.33:gxl): test
331 Please specify the password.
Password:
230-Welcome to gxlinux’s FTP!
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

7.实现虚拟路径
将某个目录挂载到 FTP 服务器下供用户使用,这就叫做虚拟路径.
比如将 gxl 用户的目录挂载到 FTP 服务器中,供 FTP 服务器的用户使用,使用如下命令即可:
[root@localhost opt]# mount –bind /home/gxl /var/ftp/pub #使用挂载命令
[root@localhost opt]# ls /var/ftp/pub
LumaQQ Screenshot.png 桌面

8.打开 vsFTPd 的日志功能
添加下面一行到 vsftpd.conf 文件中,一般情况下该文件中有这一行,只要把前面的注释符号#去掉即可,没有的话就添加,或者修改:
xferlog_file=/var/log/vsftpd.log

9.限制链接数,以及每个 IP 最大的链接数
修改配置文件中,例如 vsftp 最大支持链接数 100 个,每个 IP 能支持 5 个链接:
max_client=100
max_per=5

10.限制传输速度
修改配置文件中,例如让匿名用户和 vsftd 上的用户(即虚拟用户)都以 80KB=1024*80=81920 的速度下载
anon_max_rate=81920
local_max_rate=81920

11.将用户(一般指虚拟用户)限制在自家目录
修改配置文件中,这样用户就只能访问自己家的目录了:
chroot_local_user=yes
假如只想某些用户仅能访问自己的目录,其它用户不做这个限制,那么就需要在 chroot_list 文件(此文件一般是在/etc/vsftpd/中)中添加此用户.
编辑此文件,比如将 test 用户添加到此文件中,那么将其写入即可.一般的话,一个用户占一行.
[root@localhost vsftpd]# cat chroot_list
test

12.绑定某个 IP 到 vsFTPd
有时候要限制某些 IP 访问服务器,只答应某些 IP 访问,例如只答应 192.168.0.33 访问这个 FTP,同样修改配置文件:
listen_address=192.168.0.33
配置 vsftpd.conf
                   anonymous_enable=NO                    #禁止匿名
                   local_enable=YES                       #答应本地登录
                   write_enable=YES                       #答应写,如需上传,则必须
                   local_umask=027                        #将上传文件的权限设置为:777-local_umask
                   anon_upload_enable=YES                #答应虚拟用户和匿名用户上传
                   anon_other_write_enable=YES            #答应虚拟用户和匿名用户修改文件名和删除文件
                   dirmessage_enable=YES         
                   xferlog_enable=YES                      #打开日志记录
                   connect_from_port_20=YES
                   xferlog_file=/var/log/vsftpd.log       #日志存放位置
                   xferlog_std_format=YES                 #标准日志格式
                   idle_session_timeout=600               #空闲连接超时
                   data_connection_timeout=120
                   ftpd_banner=Welcome to ChinaRise FTP service       #欢迎信息
                   guest_enable=yes                       #答应虚拟用户
                   guest_username=vsftpdguest             #虚拟用户使用的系统账号
                   virtual_use_local_privs=YES            #虚拟用户拥有本地系统权限

                   chroot_local_user=NO            
                   chroot_list_enable=YES                 #以上两行将虚拟用户限制在其目录下,不能访问其他目录,或者直接用                          
                   chroot_local_user=YES                              

                   listen=yes                           #监听/被动模式
                   listen_port=21                       #监听端口

                   chroot_list_file=/etc/vsftpd/vsftpd.chroot_list      #虚拟用户名单保存在件/etc/vsftpd/vsftpd.chroot_list 中
                   user_config_dir=/etc/vsftpd/vsftpd_user_conf       #每个虚拟用户名的更加具体的培植保存在/etc/vsftpd/vsftpd_user_conf 中

虚拟用户其他设置

      在/etc/vsftpd/vsftpd.chroot_list 文件中写入答应登陆的虚拟用户名称,每行一个
      在/etc/vsftpd/vsftpd_user_conf 文件夹中创建一个以虚拟用户用户名命名的文件,
      写入:local_root = /var/FTP/子目录名
      然后在/var/FTP 下创建一个对应的目录即可

111http://hi.baidu.com/geitel/blog/item/b97b6da5ce0d3f98d14358c9.html

在这里,我们架设的是虚拟用户,所谓虚拟用户就是没有使用真实的帐户,只是通过某种手段达到映射帐户和设置权限的目的。
yum install vsftpd
touch /var/log/vsftpd.log #创建 vsftp 的日志文件
在 CentOS 中,这样就可以完成了一个简单的匿名 FTP 的搭建。你可以通过访问ftp://yourip来进行,不过这个 FTP 没有任何权限。
2.启动/重启/关闭 vsftpd 服务器
[root@localhost ftp]# /sbin/service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
OK 表示重启成功了.
启动和关闭分别把 restart 改为 start/stop 即可.
如果是源码安装的,到安装文件夹下找到 start.sh 和 shutdown.sh 文件,执行它们就可以了.
3.与 vsftpd 服务器有关的文件和文件夹
vsftpd 服务器的配置文件的是: /etc/vsftpd/vsftpd.conf
vsftpd 服务器的根目录,即 FTP 服务器的主目录:
在/var/ftp 处 pub 处
如果你想修改服务器目录的路径,那么你只要修改/var/ftp 到别处就行了
————————————————————————————————————–
4.添加 FTP 本地用户(简单方案)
有的 FTP 服务器需要用户名和密码才能登录,就是因为设置了 FTP 用户和权限.
FTP 用户一般是不能登录系统的,只能进入 FTP 服务器自己的目录中,这是为了安全.
这样的用户就叫做虚拟用户了.实际上并不是真正的虚拟用户,只是不能登录 SHELL 了而已,没能力登录系统.
/usr/sbin/adduser -d /opt/test_ftp -g ftp -s /sbin/nologin test
这个命令的意思是:
使用命令(adduser)添加 test 用户,不能登录系统(-s /sbin/nologin),自己的文件夹在(-d /opt/test_ftp)),属于组 ftp(-g ftp)
然后你需要为它设置密码 passwd […]
———————————————————————————————————-
1)我们在/etc/vsftpd/vsftpd.conf 中做如下 CentOS FTP 服务配置:(复杂方案)
anonymous_enable=NO 设定不允许匿名访问
local_enable=YES 设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为 NO 的情况下所有虚拟用户将无法访问。
chroot_list_enable=YES 使用户不能离开主目录
xferlog_file=/var/log/vsftpd.log 设定 vsftpd 的服务日志保存路径。注意,该文件默认不存在。必须要手动 touch 出来
ascii_upload_enable=YES
ascii_download_enable=YES 设定支持 ASCII 模式的上传和下载功能。
pam_service_name=vsftpd PAM 认证文件名。PAM 将根据/etc/pam.d/vsftpd 进行认证
以下这些是关于 Vsftpd 虚拟用户支持的重要 CentOS FTP 服务配置项目。
默认 vsftpd.conf 中不包含这些设定项目,需要自己手动添加 CentOS FTP 服务配置。
guest_enable=YES 设定启用虚拟用户功能。
guest_username=ftp 指定虚拟用户的宿主用户。-CentOS 中已经有内置的 ftp 用户了
user_config_dir=/etc/vsftpd/vuser_conf 设定虚拟用户个人 vsftp 的 CentOS FTP 服务文件存放路径。
存放虚拟用户个性的 CentOS FTP 服务文件(配置文件名=虚拟用户名)
2)创建 chroot list,将用户 ftp 加入其中:
touch /etc/vsftpd/chroot_list
echo ftp >> /etc/vsftpd/chroot_list
3)进行认证(可以不认证):
首先,安装 Berkeley DB 工具,很多人找不到 db_load 的问题就是没有安装这个包。
yum install db4 db4-utils
然后,创建用户密码文本/etc/vsftpd/vuser_passwd.txt ,注意奇行是用户名,偶行是密码
ftpuser1
ftppass1
ftpuser2
ftppass2
接着,.生成虚拟用户认证的 db 文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
随后,编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句
再增加以下两句
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
最后,创建虚拟用户个性 CentOS FTP 服务文件
mkdir /etc/vsftpd/vuser_conf/
vi /etc/vsftpd/vuser_conf/ftpuser1
内容如下:
local_root=/opt/var/ftp1 虚拟用户的根目录(根据实际修改)
write_enable=YES 可写
anon_umask=022 掩码
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
————————————————————————————————————————-
5、检测 ftp 是否配置成功:yum install gftp,gftp 是一款很方便的 ftp 传输软件,可以用来检测 ftp 服务器是否架设成功
6、常见错误:1.553 Could not create file
一般都是 SELinux 的问题,设置 SELinux 的一个值,重启服务器即可。
setsebool -P ftpd_disable_trans 1
service vsftpd restart
2.500 OOPS: bad bool value in config file for: write_enable
注意你的 CentOS FTP 服务文件中保证每一行最后没有任何空格,一般出错就是在多余的空格上。
http://www.linuxidc.com/Linux/2010-09/28720p2.htm

http://blog.163.com/yumen_guohou/blog/static/16830428120107510483882/

http://www.centospub.com/make/proftpd.html
CentOS 安装 proftpd 方法(二)
http://hi.baidu.com/lo%B1%F2%B1%F2%D3%D0%C0%F1ve/blog/item/c36d768c18861f1cb21bba0b.html

测试过很多 FTP 服务端软件后来还是决定使用 pureftpd


Selinux 中国 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:CentOS FTP 服务器的架设和配置方案
喜欢 (0)