«

Redhat Linux上vsftpd编译安装

尘风 发布于 阅读:370 Linux


以root账户登录RedHat bashshell

  [root@redhat ~]# tar -zxvf vsftpd-2.0.5.tar.gz //解压vsftp source文件

  [root@redhat ~]# cd vsftpd-2.0.5 //进入解压后的目录

  [root@redhat vsftpd-2.0.5]# more INSTALL //看看安装说明。比如要做什么工作。是个英文文档.

  [root@redhat vsftpd-2.0.5]# useradd nobody //这里需要加一个nobody用户。大家可以使用finger nobody查看下。看是否有这个用户。用就不需要加了

  [root@redhat vsftpd-2.0.5]# mkdir /usr/share/empty //这一步同上。服务器需要一个empty的空目录放在/usr/share/下。可以使用ls /usr/share/empty查看。如果存在就不需要了。这步也可以跳过

  如果需要开启匿名用户访问,需要做下面几步工作

  [root@redhat vsftpd-2.0.5]# mkdir /var/ftp/ //创建供匿名用户使用的目录

  [root@redhat vsftpd-2.0.5]# useradd -d /var/ftp ftp //创建ftp用户并且指定家目录为/var/ftp,这个步骤一般的系统也有。如果创建提示:user ftp exists(FTP用户存在)就表示此用户已经存在。

  继续下一步

  [root@redhat vsftpd-2.0.5]# chown root.root /var/ftp //设置/var/ftp,也就是ftp用户的家目录属组和属主都是root,为了安全。这步还是需要的

  [root@redhat vsftpd-2.0.5]# chmod og-w /var/ftp //更改权限,去掉属组和其他人的写权限

  上面这写工作做完了。下面就可以便宜了

[root@redhat vsftpd-2.0.5]# make //编译二进制文件

  [root@redhat vsftpd-2.0.5]# make install //安装,安装的时候可以看到安装的相关文件。

  [root@redhat vsftpd-2.0.5]# cp vsftpd.conf /etc/ //拷贝配置文件

  [root@redhat vsftpd-2.0.5]# cp RedHat/vsftpd.pam /etc/pam.d/ftp //拷贝PAM安全验证文件此为验证文件所在的目录

  [root@redhat vsftpd-2.0.5]# vi /etc/vsftpd.conf

  然后按,跳到行尾。设置 pam_server_name=ftp(要与你的PAM文件同名);userlist_enable=YES(用户列表的用户不允许登入服务器)。然后:wq保存退出

  [root@redhat vsftpd-2.0.5]# cp vsftpd.conf.5 /usr/local/man/man5

  [root@redhat vsftpd-2.0.5]# cp vsftpd.8 /usr/local/man/man8

  基本到这里。所有工作就做完了。但是还要说点东西

  默认情况下vsftp是以超级守护进程(xinetd)运行的。

  启动方式(二种方式)

  [root@redhat vsftpd-2.0.5]# service xinetd restart //重启超级守护进程就等于启动了vsftp

  另外一个方式,就是独立运行需要修改配置文件

  [root@redhat vsftpd-2.0.5]# vi /etc/vsftpd.conf

  然后按,跳到行尾。加上listen=YES。然后:wq保存退出

  这样就可以使用下面这条语句启动

  [root@redhat vsftpd-2.0.5]# /usr/local/sbin/vsftpd & //后台启动vsftp

  [root@redhat vsftpd-2.0.5]# echo "/usr/local/sbin/vsftpd &" >> /etc/rc.local //追加到启动脚本上

  上 面两种方式可随意使用。我还对启动脚本做了一些实验(以service vsftpd start这种方式启动),最终还是失败了。但是我想说。我努力了。由于本人对shell编程不是很了解。未能写出一个使用的脚本,哎。学!可能还是有办法解决。使用RPM方式安装一个vsftp,然后看看init.d里面的脚本是怎么写的。

下面贴一个别人的关于配置的文章

  #匿名用户

  anonymous_enable=NO

  #anon_mkdir_write_enable=YES

  #anon_upload_enable=YES

  #本地用户能否登陆

  #local_enable=YES

  #是否可写

  write_enable=YES

  #VSFTPD独立运行 (用vsftpd /etc/vsftpd.conf &)以及下载速度的限制

  listen=YES

  max_clients=600

  max_per_ip=5

  tcp_wrappers=YES

  connect_from_port_20=YES

  #anon_max_rate=51200 (56k)

  #local_max_rate=512000 (560k)

  #如何更改路径

  #anon_root=/var/ftp/pub

  #local_root=/var/ftp

  #如何随意增加一个用户目录

  通过useradd -d /path/dir -M name 以及chmod ? /path/dir 可以达到

#如何对磁盘限额

  用quota对/etc/fstab进行限制,然后对特定用户进行限制

  补充:

  补充一:如何把用户限制在家目录中呢?

  我们要自己建一个文件,在/etc目录中

  #touch /etc/vsftpd.chroot_list

  以beinan这个用户为例

  在vsftpd.chroot_list这个文件中,把beinan添上去就行。

  然后改/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

  如果没有这样的两行,就可以自己添加上去也是一样的。

  设置好后,重新vsFTPD服务器。

  补充二:打开vsFTP服务器的日志功能:

  把下面xferlog_file前面的#号对掉,也就是把vsftp的log功能打开,这样我们就能在/var/log目录下查看vsftpd.log。这是vsFTP的日志功能,这对于我们来说是极为重要的。

  #xferlog_file=/var/log/vsftpd.log

  补充三:如何让绑定IP到vsFTP?也就是说,如何让用户只能通过某个IP来访问FTP。其实这个功能很有意思。如果绑定的是内网的IP,外部是没有办法访问的。如果绑定的是对外服务的IP,内网也只能通过对外服务的IP来访问FTP

  在/etc/vsftpd/vsftpd.conf中加一行,以我的局域网为例,请看第一帖中的操作环境,这样外网就不能访问我的FTP了,内网也可能通过192.168.0.2来访问FTP

  listen_address=192.168.0.2

  加完后,要重启vsFTP服务器。
========================================================================

vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。下面我们一步一步介绍如何编译安装vsftpd和配置。
 1、下载vsftpd源码 

1 wget https://security.appspot.com/downloads/vsftpd-2.3.4.tar.gz
 

2、编译vsftpd源码
 64位的系统编译之前先要执行cp /lib64/libcap.so.1 /lib/libcap.so.1命令:
  
tar xzvf vsftpd-2.3.4.tar.gz
 2
 
cd vsftpd-2.3.4
 

 3
 
make
 
4
 
make install
 

3、配置vsftpd
 

1
 
cp vsftpd.conf /etc
 

 


2
 
cp RedHat/vsftpd.pam /etc/pam.d/ftp
 

 


3
 
sed i 's/anonymous_enable/#anonymous_enable=YES/g' /etc/vsftpd.conf
 

 


4
 
sed i 's/#local_enable=YES/local_enable=YES/g' /etc/vsftpd.conf
 

 


5
 
sed i 's/#write_enable=YES/write_enable=YES/g' /etc/vsftpd.conf
 

 


6
 
sed i 's/#local_umask=022/local_umask=022/g' /etc/vsftpd.conf
 

 


7
 
sed i 's/#chroot_local_user=YES/chroot_local_user=YES/g' /etc/vsftpd.conf
 

4、启动vsftpd并设置开机启动
 

 

 

1
 
/usr/local/sbin/vsftpd &
 

 


2
 
sed -i '$a/usr/local/sbin/vsftpd &' /etc/rc.d/rc.local
 

5、添加FTP用户(用户名:ftpuser ftp根目录/home/wwwroot/ftpuser)
 


1
 
useradd -d /home/wwwroot/ftpuser -g ftp -s /sbin/nologin ftpuser