vsftpd

1.安装ftp(客户端),vsftpd(服务器端)

yum install -y vsftpd  

2.创建ftp访问帐号(指定家目录,使用密码),锁定guest帐号不能登录shell

useradd -d /home/guest guest -p  

vim /etc/passwd 

找到guest对应的行,将/bin/bash改成/sbin/nologin
3.修改配置
#vim /etc/vsftpd/vsftpd.conf 增加或都将如下设置前的#(注释去掉)

#localUser settings
local_enable=YES
local_umask=022
chroot_local_user=yes
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot
userlist_enable=YES
userlist_deny=NO
user_config_dir=/etc/vsftpd/userconf
local_max_rate=0

0表示不限速
4.创建锁定帐号的配置文件并添加guest

echo 'guest'> /etc/vsftpd/chroot_list 

5.将guest添加进user_list。

echo 'guest'>>/etc/vsftpd/user_list

6.启动vsftpd服务,配置自动启动

service vsftpd start  

chkconfig --level 35 vsftpd on 

7.更改selinux安全设置开启ftp_home_dir,并查看设置情况(没有selinux可跳过此步)

 
setsebool -P ftp_home_dir on  

setsebool -P allow_ftpd_full_access on  

getsebool -a|grep ftp  

完整的配置文件 

View Code

其它

 1.若要实现匿名FTP上传,创建文件夹等写权限。添加或更改为如下配置

#nonymous settings
anonymous_enable=YES
anon_root=/var/ftp/pub/anonymous
anon_umask=000
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_max_rate=102400

2.设置selinux,允许ftp匿名。

setsebool -P allow_ftpd_anon_write on  
getsebool -a|grep ftp  

3.20端口是ftp的数据传输端口,很容易被猜到。为了安全起见,建议将数据传输模式由默认的主动改成被动。添加如下配置

#passive mode settings
connect_from_port_20=NO
pasv_enable=YES

pasv_min_port=40000
pasv_max_port=40003

如果启用了selinux设置如下

setsebool -P ftpd_use_passive_mode on

3./var/ftp是ftp用户的家目录。anonymous用户(FTP)空密码登录后会映射成ftp用户。我们可手动指定anonymous的家目录(上传目录),并锁定它只能在此目录里进行操作。通过上面配置项里的anon_root指定上传目录,在user_list 

错误

1.500 OOPS: vsftpd: refusing to run with writable anonymous root

vsftp不允许权限为777的主目录

mkdir -p /var/ftp/pub/anonymous

chmod 755 /var/ftp/pub/anonymous

2.put config/vsftpd.conf

553 Could not create file.

将上传命令改成

put config/vsftpd.conf vsftpd.conf

3.500 Illegal PORT command.

passive mode on

结语

   第一次搭FTP环境,折腾了个把星期。企业版红帽的默认安全设置可真严。
层层把关,你以为可以了,其实可能还有你不知道的安全设置在起作用(比如selinux),在配置文件里已经设置了anon_enable=YES,anon_write_enable=YES,可以还是不能匿名上传,这是selinux在做怪。
还有pam_servie_name=/etc/pam.d/vsftpd,默认是pam_servie_name=vsftpd
网上我看到的关于FTP设置的都是采用默认的,其实这个下面根本就没有vsftpd这个文件,而且对于菜鸟来说怎么会知道这是引用一个关于安全验证的文件呢?它的实际路径是/etc/pam.d/vsftpd
还有关于ftpusers(禁止ftp访问),user_list(允许ftp访问),chroot_list(锁定用户目录)这三个文件也是有关安全的,哪一步出错都不行,所以一定要从根本上弄懂才行。
而且ftpusers,和pam_servie_name的配置不当所导致的登录错误也不一样。user_list,chroot_list的含义是可变的,这要看你的配置文件怎么写了!
有时你看到的错误信息可能只是表像,不要轻信自己的眼睛! 

转载于:https://www.cnblogs.com/ysjjovo/articles/2727678.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值