首页 > 代码库 > vsftpd

vsftpd

1 先装ftp服务 yum installvsftpd –y

  设置开机启动 chkconfig vsftpd on 启动服务 /etc/init.d/vsftpd start

 设置防火墙,让防火墙添加此服务为信任服务或者刷掉防火墙 iptables–F或者关闭防火墙/etc/init.d/iptables stop

 查看防火墙 iptables –nL

2 新建ftp发布目录如下:(selinux是关闭的setenforce0

cd /var/ftp 

mkdir test

chmod 775 test/

chgrp ftp test/ 此时可以进入发布目录了,但不能上传和下载,要上传更改配置文件如下:

vi /etc/vsftpd/vsftpd.conf 更改如下:

anon_uploadenable=YES 的注解去掉就可以上传了。更改完一定重启服务 /etc/init.d/vsftpd restart

Chmod 777 /var/ftp/test  这样才可以上传,要不我们登陆的默认是anonymous,对755的话对目录没有写的权限,不能上传,不改目录权限也可以,lftp的时候加上-u ftp指明用户,反正目录要有对应的用户的x权限

设置可以下载:vi/etc/vsftpd/vsftpd.conf 更改如下:

添加anon_umask=022 重启服务后就可以下载了

3 设置其他用户可以更改家目录 lftp 192.168.0.191 –u lee 此时ls 看不了容易 selinux 打开)500 错误

       Chcon–t public_content_t test

       Getsebool–a | grep ftp

      Setsebool –P ftp_home_dir on  此时lee用户可以进入test目录了。但不可以新建文件夹

       如果selinux 打开为 setenforce 1 就不能上传了 要更改安全上下文

Semanage       fcontext  -a -t  public_content_rw_t  ‘/var/ftp/pub(/.*)?’ 更改安全上下文

 Restorecon  -RFvv     /var/ftp/pub/

4          setenforce 1 打开selinux

 netstat –antlpe  | grep vsftpd 查看ftp 的端口

       Semanage       fcontext -a  -t  public_content_rw_t  ‘/var/ftp/pub(/.*)?’ 更改安全上下文

 Restorecon  -RFvv     /var/ftp/pub/

 getsebool –a | grep ftp

 setsebool –P allow_ftpd_anon_write  on 就可以上传了

5 更改发布目录

  Man5  vsftpd.conf 

 /root

vi /etc/vsftpd/vsftpd.conf  更改如下:

添加anon_root=/vsftpd/pub

Mkdir –p /vsftpd/pub  touch/vsftpd/pub  file

/etc/init.d/vsftpd  restart

lftp localhost    ls 查看有没有file 但在此目录下不能上传和下载

 chmod 775 /vsftpd  -R 更改安全上下文

semanage fcontext –a –t public_content_t ‘/vsftpd/pub(/.*)?’

semanage fcontext –a –t public_content_t ‘/vsftpd(/.*)?’

restorecon –RFvv /vsftpd/

restorecon –RFvv  /vsftpd/pub/

ls –Zd

vi /etc/vsftpd/vsftpd.conf 更改如下:

打开anon_upload_enable=YES

     Anon_mkdir_write_enable=YES

添加anon_world_readable_only=NO

       Anon_other_write_enable=YES

问题:

ls: Login failed: 500 OOPS: vsftpd:refusing to run with writable anonymous root

解决:ftp的家目录(就是ftp进去时候默认的目录权限不能为777

Chmod 775 /ftp家目录

5          用户登录可以更改根目录 vi /etv/vsftpd/vsftpd.conf 更改如下:

  添加 chown_uploads=YES

              Chown_username=leo

/etc/init.d/vsftpd restart

Setenforce 0

Lftp –u lee localhost

Ls 可以看到更目录

Setenforce 1 就不能了

Getsebool –a | grep ftp

Setsebool –P ftp_home_dir on

6 编写白名单(chroot_list_file

Vi /etc/vsftpd/chroot_list 添加容许更改目录的用户姓名

       Chroot_local_user=YES

       Chroot_list_enable=YES

     Chroot_list_file=/etc/vsftpd/chroot_list

7虚拟用户

 Cd/etc/vsftpd

Vi user (虚拟用户名单和密码)

user1   

user1passwd

user2   

user2passwd

格式像这样

Yum install  db4-utils  -y安装加密软件

Db_load –T –t hash –f user login.db

如果有错误,吧login.db删除,在执行上面的:

Db_load –T –t hash –f user login.db

Vim /etc/vsftpd/vsftpd.conf更改如下:

在最下面添加如下:

Pam_server_name=virtual

Userlist_enable=YES

Tcp_wrappers=YES

Guest_enable=YES

Guest_username=ftp

Local_root=/var/ftp/virtual/$USER

User_sub_token=$USER

/etc/init.d/vsftpd  restart

 Cd  /etc/pam.d/

 Vim     virtual更改如下:

auth               required         pam_userdb.so       db=/etc/vsftpd/login

auth               required         pam_userdb.so       db=/etc/vsftpd/login

lftp –u user1 localhost  ls 看有没有file1验证

lftp –u user2  localhost ls 看有没有file2

cd /var/ftp/

mkdir virtual/

cd virtual

mkdir user1 mkdir user2

cd uer1 touch file1

cd ../user2

touch file2

7更改接听端口

 List_port5000

 /etc/init.d/vsftpd restart

Netstat –antlpe | grep ftp

Lftp localhost:5000

8 ftp限制内外网的上传下载速度

先在本机上加一块网卡:

Cd /etc/sysconfig/network-script/

Cp ifcig-eth0 ifcig-eth0:0

Vi eth0:0 更改如下:

DEVICE=eth0:0

BOOTPROTO=none

ONBOOT=yes

IPADDR=192.168.0.252  NETMASK GATEWAY  DNS1  DNS2 重启网络

Vi /etc/vsftpd/vsftpd.conf 更改如下

Listen = YES

Listen_address=192.168.0.251

Local_max_rate=102400

Anon_max_rate=10240

重启服务

Netstat –antlpe | grep ftp 查看

Cd /etc/vsftpd

Cp vsftpd.conf  vsftpd1.conf

Vi vsftpd1.conf 更改如下:

Listen = YES

Listen_address=192.168.0.252

Local_max_rate=102400

Anon_max_rate=10240

重启服务


vsftpd