如何在Centos下centos安装ftp服务器器

专注于信息系统项目管理
一直在路上
CentOS下文件服务器安装(FTP+Nginx)
最近在做项目时遇到一个问题,原先的产品设计在使用文件服务器时,使用的是nfs,在每台服务器上配置Mount进行挂载。此种方式将远程主机上的文件当作本地文件进行处理,减少了开发的困难程度。但对于日后做CDN等造成了一定的困难。因而设计了ftp+nginx的组合方案。本方案主机采用CentOS6.5 64Bit,ftp采用vsftp, 并以nginx作为容器。展示vsftp上传的内容,考虑到nginx的并发及处理静态文件的优越性,本处没有使用apache作为容器(实际上将nginx换做apache也是可以的)。
1.原理:当图片做为一个单独的文件系统保存在单独一台文件服务器时,需保证该服务器的frp服务启动,将文件保存的目录配置到共享中,设置允许访问的IP地址和访问权限,以便后台管理系统和web应用系统都可以访问到该目录下的附件。通过vsftp服务提供文件的上传、文件夹的创建、文件的修改删除等操作;考虑到nginx具有优异的性能,通过nginx实现通过子域名/域名对静态文件的访问。
2.Vsftp的安装和配置
2.1.安装:使用yum install –y vsftpd,安装的位置在/etc/vsftpd目录下;
2.2.修改vsftpd.conf配置文件,修改以下内容:
#设定不允许匿名访问
anonymous_enable=NO
#设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问
local_enable=YES
#使用户不能离开主目录
chroot_list_enable=YES
ascii_upload_enable=YES
#设定支持ASCII模式的上传和下载功能
ascii_download_enable=YES
#PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证
pam_service_name=vsftpd
#设定启用虚拟用户功能
guest_enable=YES
#指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了
guest_username=ftp
#设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名进行认证
user_config_dir=/etc/vsftpd/vuser_conf
chroot_list_file=/etc/vsftpd/vuser_passwd.txt
2.3.安装Berkeley DB工具,进行db_load对于用户密码加密;命令:yum install db4 db4-utils
2.4.创建用户密码文本/etc/vsftpd/vuser_passwd.txt,奇数行为用户名,偶数行为密码;执行完毕后,生成密码文件:
命令:db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
2.5. 编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句,再增加以下两句:
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
2.6.创建虚拟用户配置文件
mkdir /etc/vsftpd/vuser_conf/
vi /etc/vsftpd/vuser_conf/pinpinjobs #文件名等于vuser_passwd.txt里面的账户名,否则下面设置无效
local_root=/www/ftp #虚拟用户根目录,根据实际情况修改
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
2.7.设置selinux配置(或直接关闭selinux)
setsebool -P ftp_home_dir=1#设置ftp可以使用home目录
sersebool -P allow_ftpd_full_access=1#设置ftp用户可以有所有权限
2.8.设置ftp根目录的权限,主目录为755权限(必须设置755),子目录设置为777;
2.9.关闭PASV模式,打开/etc/vsftpd/vsftpd.conf,在末尾添加:
#关闭PASV模式(可选开启,若开启则需要配置下面的端口号)
pasv_enable=NO
#最小端口号
pasv_min_port=40000
#最大端口号
pasv_max_port=40080
#关闭控制连接和数据连接验证
pasv_promiscuous=YES
2.10.开启防火墙TCP协议21端口,端口;在所有需要连接ftp的服务器端增加防火墙模块(不是在ftp服务器上):
#vim /etc/sysconfig/iptables-config
修改IPTABLES_MODULES的值:IPTABLES_MODULES=”ip_nat_ftp ip_conntrack_ftp”
2.11.重启防火墙和vsftpd服务;
3.nginx的安装配置
3.1.编辑源,在centos6.x下执行:
http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
3.2.安装nginx,命令:yum install nginx
3.3.修改配置文件/etc/nginx/conf.d/default.conf中root部分为ftp目录位置(即nginx的容器目录)
root /var/www/html/
#charset koi8-r;
#access_log logs/host.access.
location / {
index index.html index.
………………..(此处不变,直接忽略)
3.4.开放防火墙tcp协议80端口,重启防火墙;
Share this:
浏览:1611
本文短网址:
关于互联网领域动态
&&Copyright&&风筝领地(www.zhukai.net)&. All rights reserved.
| 备案编号:
&&本作品采用进行许可。
网站统计:centos创建ftp服务器
centos创建ftp服务器
1.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即可.
如果是源码安装的,到安装文件夹下找到start.sh和shutdown.sh文件,执行它们就可以了.
3.与vsftpd服务器有关的文件和文件夹
vsftpd服务器的配置文件的是: /etc/vsftpd/vsftpd.conf
4.添加FTP用户
/usr/sbin/adduser -d /data0/htdocs/blog&-g ftp -s /sbin/nologin gaohaifeng
使用命令(adduser)添加test用户,不能登录系统(-s /sbin/nologin),自己的文件夹在(-d /opt/test_ftp)),属于组ftp(-g ftp)
然后你需要为它设置密码 passwd test
命令行输入 passwd gaohaifeng &(gaohaifeng 是上面的用户名),会提示你输入2次新密码
这样就添加了一个FTP用户了.下面的示例可以帮助你进入FTP服务器了.
在windows中,只要在浏览器中输入&&进入FTP服务器,然后 右键 登录,输入用户名和密码就可以登录自己的目录了.
也可以用ftp工具,比如我本人用flashFXP
当然你要保证自己能读写自己的目录,就要在配置文件vsftpd.conf里设置一下就可以读写了.&
vi&/etc/vsftpd/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.
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
10.限制传输速度
修改配置文件中,例如让vsftd上的用户(即虚拟用户)都以80KB=20的速度下载
local_max_rate=81920 &没有的话在末尾加上
注意:上传文件到ftp前确保该目录权限可写
发表评论:
TA的最新馆藏[转]&7902人阅读
linux(4)
1.先检查有没有安装&& rpm -q vsftpd
如果没有安装&& yum install vsftpd
2.先关闭防火墙进行调试.
service iptables stop
或者一步到位& &添加规则允许21端口通行
vi /etc/sysconfig/iptables
添加一条&&
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
为了让FLASHFXP之类的软件更好的连接服务器,得让VSFTPD支持被动模式才行:
b.防火墙配置开放:
-A INPUT -p tcp&--dport
重启防火墙即可
service iptables restart
这时应该可以用 winscp进行 SFTP连接了& ROOT帐户
现在开始设置FTP&& 默认的已经可以用匿名登录了
二。备份 etc/vsftpd/vsftpd.conf&&&& cp /etc/vsftpd/conf /etc/vsftpd/vsftpd.conf.bak
编辑vsftpd.config文件&& vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
设定不允许匿名用户访问。
为了让FLASHFXP之类的软件更好的连接服务器,得让VSFTPD支持被动模式才行,上面已经开通相应端口防火墙,在最后加入
pasv_enable=YES
pasv_max_port=30100
pasv_min_port=30000
(上面的3端口号可以是其它的,在此举例)
/usr/sbin/setenforce 0 立刻关闭 SELINUX
#mkdir /tmp/test&& //首先创建好目录
#adduser -d /tmp/test -g ftp -s /sbin/nologin test
//-s /sbin/nologin是让其不能登陆系统,-d 是指定用户目录为/opt/srsman ,即该账户只能登陆ftp,却不能用做登陆系统用。-g 是指定为FTP用
#passwd test
Changing password for user beinan.//接下来会出现让你设置新的密码
有必要的话& 设置TEST目录权限
修改/var/www目录属性:
$ chmod -R 777 /var/www 递归地给此目录下所有文件和子目录的读、写、执行权限
$ chgrp -R ftp&& /var/www 递归地把此目录及该目录下所有文件和子目录的组属性设置成ftp组
三。接着 限制用户目录,不得改变目录到上级
修改/etc/vsftpd/vsftpd.conf&
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
新增一个文件: /etc/vsftpd/chroot_list&
内容写需要限制的用户名:
重新启动vsftpd
# service vsftpd restart
四。最后为了防止服务器由于断电、重启等现象发生,导致ftp进程在开机后未启动,将其添加到开机启动文件中:
(1)找到/etc/rc.local文件
(2)打开该文件,在最后一行添加:service vsftpd start
(3)保存,退出
附:vsftpd的配置文件说明:
  vsftpd.ftpusers:位于/etc目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。&
  vsftpd.user_list:位于/etc目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。&
  vsftpd.conf:位于/etc/vsftpd目录下。来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。&
  (1)用户登录控制&
  anonymous_enable=YES,允许匿名用户登录。&
  no_anon_password=YES,匿名用户登录时不需要输入密码。&
  local_enable=YES,允许本地用户登录。&
  deny_email_enable=YES,可以创建一个文件保存某些匿名电子邮件的黑名单,以防止这些人使用Dos攻击。&
&&& banned_email_file=/etc/vsftpd.banned_emails,当启用deny_email_enable功能时,所需的电子邮件黑名单保存路径(默认为/etc/vsftpd.banned_emails)。&
  (2)用户权限控制&
  write_enable=YES,开启全局上传权限。&
  local_umask=022,本地用户的上传文件的umask设为022(系统默认是077,一般都可以改为022)。&
  anon_upload_enable=YES,允许匿名用户具有上传权限,很明显,必须启用write_enable=YES,才可以使用此项。同时我们还必须建立一个允许ftp用户可以读写的目录(前面说过,ftp是匿名用户的映射用户账号)。&
  anon_mkdir_write_enable=YES,允许匿名用户有创建目录的权利。&
  chown_uploads=YES,启用此项,匿名上传文件的属主用户将改为别的用户账户,注意,这里建议不要指定root账号为匿名上传文件的属主用户!&
  chown_username=whoever,当启用chown_uploads=YES时,所指定的属主用户账号,此处的whoever自然要用合适的用户账号来代替。&
  chroot_list_enable=YES,可以用一个列表限定哪些本地用户只能在自己目录下活动,如果chroot_local_user=YES,那么这个列表里指定的用户是不受限制的。&
&&&& chroot_list_file=/etc/vsftpd.chroot_list,如果chroot_local_user=YES,则指定该列表(chroot_local_user)的保存路径(默认是/etc/vsftpd.chroot_list)。&
  nopriv_user=ftpsecure,指定一个安全用户账号,让FTP服务器用作完全隔离和没有特权的独立用户。这是vsftpd系统推荐选项。&
  async_abor_enable=YES,强烈建议不要启用该选项,否则将可能导致出错!&
  ascii_upload_enable=YES;ascii_download_enable=YES,默认情况下服务器会假装接受ASCⅡ模式请求但实际上是忽略这样的请求,启用上述的两个选项可以让服务器真正实现ASCⅡ模式的传输。&
  注意:启用ascii_download_enable选项会让恶意远程用户们在ASCⅡ模式下用“SIZE/big/file”这样的指令大量消耗FTP服务器的I/O资源。&
  这些ASCⅡ模式的设置选项分成上传和下载两个,这样我们就可以允许ASCⅡ模式的上传(可以防止上传脚本等恶意文件而导致崩溃),而不会遭受拒绝服务攻击的危险。&
  (3)用户连接和超时选项&
  idle_session_timeout=600,可以设定默认的空闲超时时间,用户超过这段时间不动作将被服务器踢出。&
  data_connection_timeout=120,设定默认的数据连接超时时间。&
  (4)服务器日志和欢迎信息&
  dirmessage_enable=YES,允许为目录配置显示信息,显示每个目录下面的message_file文件的内容。&
  ftpd_banner=Welcome to blah FTP service,可以自定义FTP用户登录到服务器所看到的欢迎信息。&
  xferlog_enable=YES,启用记录上传/下载活动日志功能。&
  xferlog_file=/var/log/vsftpd.log,可以自定义日志文件的保存路径和文件名,默认是/var/log/vsftpd.log。&
  anonymous_enable=YES 允许匿名登录local_enable=YES 允许本地用户登录&
  write_enable=YES 开放本地用户写权限&
  local_umask=022 设置本地用户生成文件的掩码为022&
  #anon_upload_enable=YES 此项设置允许匿名用户上传文件&
  #anon_mkdir_write_enable=YES 开启匿名用户的写和创建目录的权限&
  dirmessage_enable=YES 当切换到目录时,显示该目录下的.message隐藏文件的内容&
  xferlog_enable=YES 激活上传和下载日志&
  connect_from_port_20=YES 启用FTP数据端口的连接请求&
  #chown_uploads=YES 是否具有上传权限. 用户由chown_username参数指定。&
  #chown_username=whoever 指定拥有上传文件权限的用户。此参数与chown_uploads联用。&
  #xferlog_file=/var/log/vsftpd.log&
  xferlog_std_format=YES 使用标准的ftpd xferlog日志格式&
  #idle_session_timeout=600 此设置将在用户会话空闲10分钟后被中断&
  #data_connection_timeout=120 将在数据连接空闲2分钟后被中断&
  #ascii_upload_enable=YES 启用上传的ASCII传输方式&
  #ascii_download_enable=YES 启用下载的ASCII传输方式&
  #ftpd_banner=Welcome to blah FTP service 设置用户连接服务器后显示消息&
  #deny_email_enable=NO 此参数默认值为NO。当值为YES时,拒绝使用banned_email_file参数指定文件中所列出的e-mail地址用户登录。&
  #banned_email_file=/etc/vsftpd.banned_emails 指定包含拒绝的e-mail地址的文件.&
  #chroot_list_enable=YES 设置本地用户登录后不能切换到自家目录以外的别的目录&
  #chroot_list_file=/etc/vsftpd.chroot_list&
  #ls_recurse_enable=YES&
  pam_service_name=vsftpd 设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/&
  userlist_enable=YES 此项配置/etc/vsftpd.user_list中指定的用户也不能访问服务器,若添加userlist_deny=No,则仅仅/etc/vsftpd.user_list文件中的用户可以访问,其他用户都不可以访问服务器。如过userlist_enable=NO,userlist_deny=YES,则指定使文件/etc/vsftpd.user_list中指定的用户不可以访问服务器,其他本地用户可以访问服务器。&
  listen=YES 指明VSFTPD以独立运行方式启动&
  tcp_wrappers=YES 在VSFTPD中使用TCP_Wrappers远程访问控制机制,默认值为YES
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:274971次
积分:2379
积分:2379
排名:第11748名
原创:36篇
评论:95条<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&

我要回帖

更多关于 centos 7 ftp服务器 的文章

 

随机推荐