首页 > 代码库 > 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