配置Ubuntu安装vsftpd 只能访问默认目录 禁止用户登录SSH允许FTP Ubuntu 安装vsftpd 方法



配置 xinetd.conf 文件

在includedir /etc/xinetd.d上添加以下代码

service ftp
{
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/sbin/vsftpd
        log_on_success += DRUATION USERID
        log_on_failure += USERID
        nice            = 10
        disable         = no
}


执行命令:sudo apt-get install vsftpd安装完毕

开始配置:

执行命令打开vi /etc/vsftpd.conf

需要开启的命令 把"#"去掉 以下是我配置的信息


#如果你用xinetd来控制ftp 选择NO否则YES

listen=NO


#若设置为YES,则允许匿名用户访问;若设置为NO则拒绝匿名用户访问。

anonymous_enable=NO


#若设置为YES,则允许通过本地用户帐号访问;若设置为NO,则拒绝本地用户帐号访问。

local_enable=YES 


#若设置为YES,则开启FTP全局的写权限;若设置为NO,则不开。这个必须开启

write_enable = YES


#FTP创建文件和文件夹权限 文件夹777-022=755 文件666-022=644

local_umask=022


#若设置为YES,则可开启目录信息推送

#也就是用户登录FTP后可以列出当前目录底下的文件、目录。 这个应该要开启吧!

dirmessage_enable=YES

#如果启用,vsftpd将显示时间的目录清单
#在当地时区。默认是显示GMT。

use_localtime=YES


#若设置为YES,则开启登录、上传、下载等事件的日志功能。应开启!

xferlog_enable=YES

# 若设置为YES,则服务器的端口设为20。

#如果不想用端口20,可以另外通过ftp_data_port来指定端口号。
connect_from_port_20=YES


#指定默认的日志文件,可指定为其他文件。

xferlog_file=/var/log/vsftpd.log

#FTP用户登入时显示的信息 。

ftpd_banner=Welcome to blah FTP service. 


#若chroot_local_user 设置为YES,chroot_list_enable设置为NO

#则锁定FTP登录用户只能在其默认目录活动,不允许切换到默认目录以外。

#这里我是这样设置的

chroot_local_user=YES
chroot_list_enable=NO

#这个/etc/vsftpd.chroot_list文件是不存在的 有可能登录FTP出错

#执行命令touch /etc/vsftpd.chroot_list创建一个就行 不添加任何内容 等配置完创建
chroot_list_file=/etc/vsftpd.chroot_list


#这个选项必须指定一个空的资料夹且任何登入者都不能有写入的权限

#当vsftpd不需要访问系统文件的权限时,就会将使用者限制在此资料夹中

#这个必须开启否则无法登录FTP
secure_chroot_dir=/var/run/vsftpd/empty

#这个字符串是PAM服务vsftpd将使用的名称。必须启用
pam_service_name=vsftpd

#此选项指定用于SSL的RSA证书的位置
#加密连接。必须开启
rsa_cert_file=/etc/ssl/private/vsftpd.pem

配置完成别忘啦创建touch /etc/vsftpd.chroot_list文件



接下来限制用户登录SSH 

通过安装vsftpd服务,然后禁止其通过pam认证并将check_shell配置为NO,添加用户的时候将用户的shell配置为/bin/false,这样既能够禁止用户ssh登录又能够正常使用ftp。

需要/etc/pam.d/vsftpd/etc/vsftpd.conf文件修改


执行命令:vi  /etc/pam.d/vsftpd


# Standard behaviour for ftpd(8).
auth    required        pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.

# Standard pam includes
@include common-account
@include common-session
@include common-auth
auth    required        pam_shells.so

#改为加上#号

#auth    required        pam_shells.so


保存
接着执行命令: vi /etc/vsftpd.conf

找到 rsa_cert_file=/etc/ssl/private/vsftpd.pem

check_shell=NO添加在下面即可


rsa_cert_file=/etc/ssl/private/vsftpd.pem

check_shell=NO


保存

添加用户的时候加上选项-s /bin/false即可。


测试 新建一个用户 root用户是不让登陆FTP的 所以新建一个

mkdir /home/wwwroot/想创建的用户目录

useradd 用户名 -d /home/wwwroot/用户名目录 -s  /bin/false

passwd 用户名


如果无法上传建立文件使用命令

chmod 777 /home/wwwroot/用户目录

你可能感兴趣的:(linux)