linux中vsftpd服务,Linux Vsftpd服务

安装vsftpd

yum install vsftpd -y

系统认证

vi /etc/vsftpd/vsftpd.conf

[root@localhost pub]# egrep -v "#|^$" /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_file=/var/log/xferlog

xferlog_std_format=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

listen=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

#启动服务

service vsftpd start

#创建用户

useradd -s /sbin/nologin backup

passwd backup #设置密码

touch /etc/vsftpd/chroot_list

虚拟用户

yum install db4 db4-utils #进行认证首先,安装Berkeley DB工具,很多人找不到db_load的问题就是没有安装这个包

#更改配置文件

vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_file=/var/log/xferlog

xferlog_std_format=YES

ascii_upload_enable=YES

ascii_download_enable=YES

chroot_list_enable=YES #开启限制在家目录内

chroot_list_file=/etc/vsftpd/chroot_list #限制名单文件路径

listen=YES # 开启监听

pam_service_name=vsftpd # 使用pam认证模块

userlist_enable=YES # 禁止用户登录名单

tcp_wrappers=YES

guest_enable=YES #开启虚拟用户

guest_username=ftp #指定虚拟用户映射到本地的用户//指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了 这里的用户也可以用//useradd vsftpuser -s /sbin/nologin -M自行创建

user_config_dir=/etc/vsftpd/vuser_conf #指定虚拟用户自定义配置文件路径

#创建用户密码本

vim /etc/vsftpd/vuser_passwd.txt

backup #user

123456 #passwd

#生成虚拟用户认证的db文件

db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

vim /etc/pam.d/vsftpd

#全部注释,添加以下两行

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd

account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd

#创建虚拟用户配置文件

mkdir /etc/vsftpd/vuser_conf #vsftpd.conf 里面指定的路径

vim /etc/vsftpd/vuser_conf/backup #这里文件名必须要和之前创建的vuser_passwd.txt中虚拟用户名一一对应

local_root=/databak/data #指定他的主目录

write_enable=YES #开启写

anon_umask=022 #匿名umask码

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

#创建虚拟用户的指定用户主目录(上传目录)

mkdir /databak/data -p

chmod 755 /databak #最新的vsftpd要求对主目录不能有写的权限所以ftp为755,主目录下面的子目录再设置757权限

chmod 757 /databak/data

service vsftpd restart

服务端脚本安装

#!/bin/bash

#author:vaedit

#date:2017/11/14

read -p "请输出用户名" name

read -p "请输入密码" password

echo -e '\033[32;40;1m开始安装\033[0m'

yum install vsftpd db4 db4-utils -y

useradd -s /sbin/nologin ftpuser

mv /etc/vsftpd/vsftpd.conf{,.bak}

#创建配置文件

cat>/etc/vsftpd/vsftpd.conf <

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_file=/var/log/xferlog

xferlog_std_format=YES

userlist_enable=YES

chroot_list_enable=YES

chroot_local_user=YES

chroot_list_file=/etc/vsftpd/chroot_list

listen=YES

pam_service_name=vsftpd

tcp_wrappers=YES

guest_enable=YES

guest_username=ftpuser

user_config_dir=/etc/vsftpd/vuser_conf

virtual_use_local_privs=YES

EOF

touch /etc/vsftpd/chroot_list

#创建账户密码文件

cat>/etc/vsftpd/vuser_passwd.txt<

$name

$password

EOF

db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

chmod 700 /etc/vsftpd/vuser_passwd.db

cat>/etc/pam.d/vsftpd<

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd

account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd

EOF

#创建虚拟用户配置文件

mkdir /etc/vsftpd/vuser_conf -p

cat>/etc/vsftpd/vuser_conf/$name<

local_root=/data/ftp_$name

write_enable=YES

anon_world_readable_only=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

EOF

mkdir /data/ftp_$name -p

chown ftpuser.ftpuser /data/ftp_$name -R

setenforce 0

service vsftpd start

ps -ef|grep vsftpd

netstat -ntulp|grep ":21"

配置文件注意点

#chroot控制

1)当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到上级目录;未在文件中列出的用户,不能切换到站点根目录的上级目录。

2)当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd/chroot_list文件中列出的用户,不能切换到站点根目录的上级目录;未在文件中列出的用户,可以切换到上级目录。

3)当chroot_list_enable=NO,chroot_local_user=YES时,所有用户均不能切换到上级目录。

4)当chroot_list_enable=NO,chroot_local_user=NO时,所有用户均可以切换到上级目录。

#访问控制

对用户的访问控制由/etc/vsftpd/user_list和/etc/vsftpd/ftpusers文件来控制实现。相关配置命令如下:

userlist_enable=YES

// 决定/etc/vsftpd/user_list文件是否启用生效。YES则生效,NO不生效。

userlist_deny=YES

// 决定/etc/vsftpd/user_list文件中的用户是允许访问还是不允许访问。若设置为YES,则/etc/vsftpd/user_list 文件中的用户将不允许访问FTP服务器;若设置为NO,则只有vsftpd.user_list文件中的用户,才能访问FTP服务器。

客户端好用的命令行工具ncftp安装使用

yum install ncftp -y

#源码安装:

tar zxvf ncftp-3.2.3-src.tar.gz

cd ncftp-3.2.3/

./configure --prefix=/usr/local/ncftp

make && make install

#参数

-u:指定登录FTP服务器时使用的用户名;

-p:指定登录FTP服务器时使用的密码;

-P:如果FTP服务器没有使用默认的TCP协议的21端口,则使用此选项指定FTP服务器的端口号。

-m:在传之前尝试在目录位置创建目录(用于传目录的情况)

-E: 使用主动模式

-R:递规传子目录

#用法

#将本地/root/ssf 文件拷贝到远程ftp的根目录

ncftpput -u backup -p 123456 192.168.246.128 . /root/ssf

#常用操作命令

lls: 列出本地当前目录文件;

lmkdir : 本地建立目录;

lrename: 本地文件改名;

lpwd: 显示当前本地路径;

lchmod: 改变本地文件权限;

lpage: 显示本地文件内容;

lrm: 删除本地文件;

lrmdir: 删除本地目录。

来源:51CTO

作者:Vaedit

链接:https://blog.51cto.com/vaedit/2520630

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值