设为首页 收藏本站
查看: 616|回复: 0

[经验分享] ubuntu安装ftp服务器(一般配置) .

[复制链接]

尚未签到

发表于 2018-5-5 12:38:55 | 显示全部楼层 |阅读模式
  ubuntu安装ftp服务器
  1: 安装vsftpd
  ~$ sudo apt-get install vsftpd
  ubuntu10.10自己装了,这步省略。
  2: 配置vsftpd
  2.1 修改vsftpd的配置文件。此类配置文件通常位于 /etc 目录下。
  ~$ sudo gedit /etc/vsftpd.conf
  原文件中不少指令被注释,只要启用部分即可,一下是启用的命令(配置文件中对每一条都有具体说明)
  listen=YES       # 服务器监听
  anonymous_enable=YES       # 匿名访问允许
  local_enable=YES    # 本地主机访问允许
  write_enable=YES    # 写允许
  anon_upload_enable=YES
  # 匿名上传允许,默认是NO,嫌麻烦的可以开起来。出了问题我不负责~
  anon_mkdir_write_enable=YES  # 匿名创建文件夹允许
  dirmessage_enable=YES  # 进入文件夹允许
  xferlog_enable=YES   #  ftp 日志记录允许
  connect_from_port_20=YES     # 允许使用20号端口作为数据传送的端口
  secure_chroot_dir=/var/run/vsftpd/empty
  pam_service_name=vsftpd
  rsa_cert_file=/etc/ssl/private/vsftpd.pem
  保存。
  2.2  设置ftp相关目录
  安装完毕后,/srv下会增加一个ftp目录。同时系统会增加一个名为ftp的用户组,可以用~$ sudo cat    /etc/shadow 查看, 如 ftp:*:14993:0:99999:7:::。我们在/srv/ftp目录下创建两个分别名为upload和download的目录,分别用于上传和下载。接下来我们为刚才创建的几个目录设置权限,如下:
  权限                            /srv/ftp                     /srv/ftp/upload                 /srv/ftp/download
  用户组(ftp)            读                                  读写                                    读
  其他用户                    读                                   读写                                    读
  执行命令:
  ~$ sudo chmod 755 /home/ftp
  ~$ sudo chmod 777 /home/ftp/upload
  ~$ sudo chmod 755 /home/ftp/download
  如此,一方面我们允许了用户组ftp访问/home/ftp (匿名访问);一方面赋予了用户组ftp对/srv/ftp/upload的写权利,因此网络上的用户可以方便地上传文件,但注意,当他们上传后,上传的文件只有root对这些文件拥有权限,也就是说这个目录仅能用于上传,无法下载其中的文件;此外赋予了用户组ftp对 /home/ftp/download的读权利,同时我们拷贝进该目录下的文件对于用户组而言通常都有读权利,因此网络上的用户从此目录下能且仅能下载文件。从而满足了我们预先的要求。
  3:启动vsftpd
  ~$ sudo service vsftpd start
  查看当前所有进程: ~$ ps -e
  2183 ?        00:00:00 vsftpd
  至此服务器端vsftp的最基本配置已完成,vsftpd已开启。(注意你的防火墙配置,作为简单试验可以直接停用防火墙)
  当然关闭vsftpd进程只需要执行~$ sudo service vsftpd stop,同时还可以使用命令~$ pgrep vsftpd 来查看进程vsftp是否存在。
  4:vsftpd 设置用户目录,如果你设置了匿名用户也可以登录上传的话~这个可以省了~
  (1) 增加组 sudo groupadd ftpgroup
  (2 )修改vsftpd.conf
  ~$ sudo gedit /etc/vsftpd.conf
  将底下三行
  #chroot_list_enable=YES
  # (default follows)
  #chroot_list_file=/etc/vsftpd/chroot_list
  改为
  chroot_list_enable=YES
  # (default follows)
  chroot_list_file=/etc/vsftpd/chroot_list
  (3) 增加用户ftpuser并设置其目录为/home/nation/ftp/upload
  sudo useradd -g ftpgroup -d /home/nation/ftp/upload -M ftpuser
  (注:G:用户所在的组 d:表示创建用户的自己目录的位置给予指定
  M:不建立默认的自家目录,也就是说在/home下没有自己的目录)
  (4 )设置用户口令 passwd ftpuser
  (5) 编辑chroot_list文件:
  sudo gedit /etc/vsftpd.chroot_list
  内容为ftp用户名,每个用户占一行,如:
  ftpuser
  (6 )重新启动vsftpd:
  sudo service vsftpd start
  Ubuntu下ftp服务器配置方法
  Ubuntu自 带的FTP服务器是vsftpd.
  1、安装vsftpd
  Ubuntu安装软件倒不是件困难的事,输入:
  sudo apt-get install vsftpd
  安装了之后会在/home/下建立一个ftp目录。这时候你可以试着访问下ftp://IP地 址。应该可以看到一个空白内容的ftp空间。
  默认设置下匿名用户可以下载,但不能写入或是上传
  2、设置 vsftpd.conf文件
  现在我们要让匿名用户无法访问,并且得输入linux上的用户密码后才能访问到他们自己目录里的内容。
  首先找到设置vsftpd的文件,位置在/etc/vsftpd.conf
  修改之前最好先备份下这个文件:
  sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.old
  然后可以改动了:
  1. 匿名服务器的连接(独立的服务器)
  在/etc/vsftpd/vsftpd.conf配置文件中添加如下几项:
  Anonymous_enable=yes (允许匿名登陆)
  Dirmessage_enable=yes (切换目录时,显示目录下.message的内容)
  Local_umask=022 (FTP上本地的文件权限,默认是077)
  Connect_form_port_20=yes (启用FTP数据端口的数据连接)*
  Xferlog_enable=yes (激活上传和下传的日志)
  Xferlog_std_format=yes (使用标准的日志格式)
  Ftpd_banner=XXXXX (欢迎信息)
  Pam_service_name=vsftpd (验证方式)*
  Listen=yes (独立的VSFTPD服务器)*
  功能:只能连接FTP服务器,不能上传和下传
  注:其中所有和日志欢迎信息相关连的都是可选项,打了星号的无论什么帐户都要添加,是属于FTP的基本选项
  2. 开启匿名FTP服务器上传权限
  在配置文件中添加以下的信息即可:
  Anon_upload_enable=yes (开放上传权限)
  Anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件)
  Write_enable=yes (开放本地用户写的权限)
  Anon_other_write_enable=yes (匿名帐号可以有删除的权限)
  3. 开启匿名服务器下传的权限
  在配置文件中添加如下信息即可:
  Anon_world_readable_only=no
  注:要注意文件夹的属性,匿名帐户是其它(other)用户要开启它的读写执行的权限
  (R)读-----下传 (W)写----上传 (X)执行----如果不开FTP的目录都进不去
  4.普通用户FTP服务器的连接(独立服务器)
  在配置文件中添加如下信息即可:
  Local_enble=yes (本地帐户能够登陆)
  Write_enable=no (本地帐户登陆后无权删除和修改文件)
  功能:可以用本地帐户登陆vsftpd服务器,有下载上传的权限
  注:在禁止匿名登陆的信息后匿名服务器照样可以登陆但不可以上传下传
  5. 用户登陆限制进其它的目录,只能进它的主目录
  设置所有的本地用户都执行chroot
  Chroot_local_user=yes (本地所有帐户都只能在自家目录)
  设置指定用户执行chroot
  Chroot_list_enable=yes (文件中的名单可以调用)
  Chroot_list_file=/任意指定的路径/vsftpd.chroot_list
  注意:vsftpd.chroot_list 是没有创建的需要自己添加,要想控制帐号就直接在文件中加帐号即可
  6. 限制本地用户访问FTP
  Userlist_enable=yes (用userlistlai 来限制用户访问)
  Userlist_deny=no (名单中的人不允许访问)
  Userlist_file=/指定文件存放的路径/ (文件放置的路径)
  注:开启userlist_enable=yes匿名帐号不能登陆
  7. 安全选项
  Idle_session_timeout=600(秒) (用户会话空闲后10分钟)
  Data_connection_timeout=120(秒) (将数据连接空闲2分钟断)
  Accept_timeout=60(秒) (将客户端空闲1分钟后断)
  Connect_timeout=60(秒) (中断1分钟后又重新连接)
  Local_max_rate=50000(bite) (本地用户传输率50K)
  Anon_max_rate=30000(bite) (匿名用户传输率30K)
  Pasv_min_port=50000 (将客户端的数据连接端口改在
  Pasv_max_port=60000 50000—60000之间)
  Max_clients=200 (FTP的最大连接数)
  Max_per_ip=4 (每IP的最大连接数)
  Listen_port=5555 (从5555端口进行数据连接)
  8. 查看谁登陆了FTP,并杀死它的进程
  ps –xf |grep ftp
  kill 进程号
  VSFTPD的高手篇
  作者:龙磊
  我可不是高手!!!^_^我只不过是个菜鸟,尽我的能力写出了我这个菜鸟觉得的高手篇,所以有什么错误请大家指正哦!!!
  环境:linux as 3.0 + vsftpd -1.2.0-4的系统架构,是在独立服务器下的哦!讨厌XINETD^_^
  1. 配置本地组访问的FTP
  首先创建用户组 test和FTP的主目录
  groupadd test
  mkdir /tmp/test
  然后创建用户
  useradd -G test –d /tmp/test –M usr1
  注:G:用户所在的组 d:表示创建用户的自己目录的位置给予指定
  M:不建立默认的自家目录,也就是说在/home下没有自己的目录
  useradd –G test –d /tmp/test –M usr2
  接着改变文件夹的属主和权限
  chown usr1.test /tmp/test ----这表示把/tmp/test的属主定为usr1
  chmod 750 /tmp/test ----7表示wrx 5表示rx 0表示什么权限都没有
  这个实验的目的就是usr1有上传、删除和下载的权限
  而usr2只有下载的权限没有上传和删除的权限
  当然啦大家别忘了我们的主配置文件vsftpd.conf
  要确定local_enable=yes、write_enable=yes、chroot_local_usr=yes这三个选项是有的哦!
  2. 配置独立FTP的服务器的非端口标准模式进行数据连接
  这个非常容易:在VSFTPD。CONF中添加
  Listen_port=33333
  就可以了啦!
  好了重头戏来了,这也是我为什么叫高手篇的缘故!^_^(大家不要扔鸡蛋哦!)
  3. 配置单独的虚拟FTP,使用虚拟FTP用户,并使建立的四个帐户中有不同的权限
  (两个有读目录的权限,一个有浏览、上传、下载的权限,一个有浏览、下载、删除和改文件名的权限)
  A:配置网卡
  第一块网卡地址是10.2.3.4 掩码是255.255.0.0
  ifconfig eth0:1 211.131.4.253 netmask 255.255.255.0 up
  B:写入/etc/sysconfig中(为了重起后IP地址不会丢失)
  cd /etc/sysconfig/network-scripts
  cp ifcfg-eth0 ifcfg-eth0:1
  vi ifcfg-eth0:1在其中修改内容如下
  DEVICE=eth0:1
  BROADCAST=211.131.4.255
  HWADDR=该网卡的MAC地址
  IPADDR=211.131.4.253
  NETMASK=255.255.255.0
  NETWORK=211.131.4.0
  ONBOOT=yes
  TYPE=Ethernet
  wq推出
  C:进入vsftpd.conf所在的文件夹
  cp vsftpd.conf vsftpd2.conf
  修改vsftpd.conf添加以下信息
  Listen_address=10.2.3.4
  修改vsftpd2.conf添加以下信息
  Listen_address=211.131.4.253
  Ftpd_banner=this is a virtual ftp test
  到此虚拟的FTP服务器建立好了
  D:建立logins.txt
  vi /tmp/logins.txt
  添加入下信息:
  longlei------------用户名
  longlei------------密码
  zhangweibo
  zhangweibo
  jinhui
  jinhui
  lxp
  lxp
  格式要按照我的来哦,一个用户名,一个密码啦
  F:建立访问者的口令库文件,然后修改其权限
  db_load –T –t hash –f /tmp/logins.txt /etc/vsftpd_login.db
  G:进如/etc/pam.d/中创建ftp.vu
  在此文件中添加如下信息
  auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
  account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
  H:在/var/ftp/创建目录并改变其属性和它的属主
  useradd -d /var/ftp/test qiang
  chmod 700 /var/ftp/test
  在目录中添加test_file测试文件
  I:进入vsftpd2.conf修改其中的信息(我加的是)
  Listen_yes
  Anonymous_enable=no
  Local_enable=yes
  Write_enable=no
  Anon_upload_enable=no
  Anon_mkdir_write_enable=no
  Anon_other_write_enable=no
  Chroot_local_user=yes
  Guest_enable=yes----------起用虚拟用户
  Guest_username=qiang------将虚拟用户映射为本地用户
  Listen_port=5555
  Max_client=10
  Max_per_ip=1
  Ftpd_banner=this is a virtual server and users
  Pam_service_name=ftp.vu
  注:在主配置文件中给的权限越低,在后面分用户管理的时候对拥护的权限划分的空间就越大,因为主配置文件最高的限制服务先读主配置文件,然后再读用户的配 置文件
  重起服务
  到此虚拟USER就建好了
  J:在VSFTPD。CONF所在的目录中创建virtaul文件目录
  并在文件目录中创建以你用户名命名的配置文件
  Longlei zhangweibo jinhui lxp
  在longlei中添加:
  Anon_world_readable_only=no
  在lxp中添加
  Anon_world_readable_only=no
  这样此两个用户就有了浏览目录的权限了
  在jinhui中添加
  Anon_world_readable_only=no
  Write_enable=yes
  Anon_upload_enable=yes
  此用户就有了上传、下载和浏览的权限
  在zhangweibo中添加
  Anon_world_readable_only=no
  Write_enable=yes
  Anon_upload_enable=yes
  Anon_other_write_enable=yes
  此用户就有了上传、下载、删除文件目录、修改文件名和浏览的权限
  K:修改vsftpd2.conf
  加入user_config_dir=/vsftpd.conf所在的目录/virtual
  重起服务器就搞定了
  好了大家别走开,现在隆重推出VSFTPD。CONF中的我所知道的所有配置信息
  Anonymous_enable=yes (允许匿名登陆)
  Dirmessage_enable=yes (切换目录时,显示目录下.message的内容)
  Local_umask=022 (FTP上本地的文件权限,默认是077)
  Connect_form_port_20=yes (启用FTP数据端口的数据连接)*
  Xferlog_enable=yes (激活上传和下传的日志)
  Xferlog_std_format=yes (使用标准的日志格式)
  Ftpd_banner=XXXXX (欢迎信息)
  Pam_service_name=vsftpd (验证方式)*
  Listen=yes (独立的VSFTPD服务器)*
  Anon_upload_enable=yes (开放上传权限)
  Anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件)
  Write_enable=yes (开放本地用户写的权限)
  Anon_other_write_enable=yes (匿名帐号可以有删除的权限)
  Anon_world_readable_only=no (放开匿名用户浏览权限)
  Ascii_upload_enable=yes (启用上传的ASCII传输方式)
  Ascii_download_enable=yes (启用下载的ASCII传输方式)
  Banner_file=/var/vsftpd_banner_file (用户连接后欢迎信息使用的是此文件中的相关信息)
  Idle_session_timeout=600(秒) (用户会话空闲后10分钟)
  Data_connection_timeout=120(秒) (将数据连接空闲2分钟断)
  Accept_timeout=60(秒) (将客户端空闲1分钟后断)
  Connect_timeout=60(秒) (中断1分钟后又重新连接)
  Local_max_rate=50000(bite) (本地用户传输率50K)
  Anon_max_rate=30000(bite) (匿名用户传输率30K)
  Pasv_min_port=50000 (将客户端的数据连接端口改在
  Pasv_max_port=60000 50000—60000之间)
  Max_clients=200 (FTP的最大连接数)
  Max_per_ip=4 (每IP的最大连接数)
  Listen_port=5555 (从5555端口进行数据连接)
  Local_enble=yes (本地帐户能够登陆)
  Write_enable=no (本地帐户登陆后无权删除和修改文件)
  这是一组
  Chroot_local_user=yes (本地所有帐户都只能在自家目录)
  Chroot_list_enable=yes (文件中的名单可以调用)
  Chroot_list_file=/任意指定的路径/vsftpd.chroot_list
  (前提是chroot_local_user=no)
  这又是一组
  Userlist_enable=yes (在指定的文件中的用户不可以访问)
  Userlist_deny=yes
  Userlist_file=/指定的路径/vsftpd.user_list
  又开始单的了
  Banner_fail=/路径/文件名 (连接失败时显示文件中的内容)
  Ls_recurse_enable=no
  Async_abor_enable=yes
  One_process_model=yes
  Listen_address=10.2.2.2 (将虚拟服务绑定到某端口)
  Guest_enable=yes (虚拟用户可以登陆)
  Guest_username=所设的用户名 (将虚拟用户映射为本地用户)
  User_config_dir=/任意指定的路径/为用户策略自己所建的文件夹
  (指定不同虚拟用户配置文件的路径)
  又是一组
  Chown_uploads=yes (改变上传文件的所有者为root)
  Chown_username=root
  又是一组
  Deny_email_enable=yes (是否允许禁止匿名用户使用某些邮件地址)
  Banned_email_file=//任意指定的路径/xx/
  又是单的
  Pasv_enable=yes ( 服务器端用被动模式)
  User_config_dir=/任意指定的路径//任意文件目录 (指定虚拟用户存放配置文件的路径)
  如需要使用本地用户登陆关闭来宾用户,必须设置如下命令:
  anonymous_enable=no
  guest_enable=no
  local_enable=yes
  write_enable=yes
  local_umask=022
  chroot_list_enable=yes
  chroot_list_file=/etc/vsftpd.chroot_list (如没有则自己创建)
  (在etc/vsftpd.chroot_list 填入需要登陆的本地用户名)
  =======================================================
  解决vsftpd的中文乱码问题
  这里有点建议,如果想让自己编译后的vsftpd与源安装没有什么区别的话
  最好先安装源中的vsfpd,然后把所有的功能都配置完后,在解决中文乱码问题
  因 为删除源的vsftpd后它的/init.d/vsftpd与/vsftpd.conf是不会删除的,可以为我们打好铺垫,不然你会发现很无奈的!如果你 是直接编译安装,附件给出会给出我的init.d/vsftpd与vsftpd.conf文件,把他们覆盖到/etc下吧!
  这里是需要手工编译的,大家不要怕麻烦,其实很简单的
  开始做编译的准备工作,准备编译环境需要的库包
  sudo apt-get build-dep vsftpd
  ----------------------------------------
  这里使用先安装源里的vsftpd,然后卸载
  sudo apt-get install vsftpd
  sudo apt-get remove vsftpd
  -----------------------------------------
  下载附件并解压包
  tar -zxvf vsftpd-2.0.6
  cd vsftpd-2.0.6
  sudo su :使用root用户开始编译
  make #编译命令,如果无错误出现,表示成功
  make install #安装
  如果安装中出现找不到目录的话,就建立那个缺的目录就好了
  基本上都会提示缺少/man8和/man5目录的,建立后在重新make install
  下边就来测试下效果修改配置文件,加入
  charset_filter_enable=YES #开启符过滤
  charset_client=GB2312 #客户端字符设置为简体中文
  好了现在把服务开启测试下吧
  sudo /etc/init.d/vsftpd restart
  在win下上传一个中文文件,看看效果吧,然后在把配置文件中关于字符的关掉,重起服务,在看吧
  如果有什么问题的话,请回帖留言
  已经测试过,服务器ubuntu8.04-server,客户机xp,xp上传后编码正常
  补充下会遇到的问题
  1:如果使用/etc/init.d/vsftpd restart 没有任何输出的话,请更改/init.d/vsftpd的内容把启动路径该为/usr/local/sbin/vsftpd,因为编译安装首先会优先安装 到这个路径
  2:如果匿名用户无法登陆,老是提示不允许匿名登陆而配置文件中又设置了允许,请建立目录
  sudo mkdir /usr/share/empty 建立后就可以了
  3:如果在linux下上传文件,如果工具允许的话,设置为gb2312编码上传,或是尽量用英文
  4:因为补丁在一定程度覆盖原程序,所以有2G限制,有时间会去看下源代码的,基本确定是数值溢出问题
  如果修复的话,会补充上的

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-456178-1-1.html 上篇帖子: ubuntu 类文章 下篇帖子: Ubuntu 12.04使任何用户都有设置图形网络权限的方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表