CentOS6.4_X64安装配置vsFTP-2.2.2

CentOS6.4_X64安装配置vsFTP-2.2.2

一、环境:

CentOS6.4_X64

Vsftpd-2.2.2-11.el6_3.1

二、安装软件及依赖软件包

1、一般pamdb4默认系统已经安装,如果没有安装如下一并安装吧

#rpm �Cqa pam

#rpm �Cqa db4 ///检测是否安装

#yum install vsftpd pam* db4* -y ///安装所需软件

2、将vsftp配置为系统服务
#chkconfig --level 35 vsftpd on

3、安装完成后生成如下配置文件:

[root@localhost vsftpd]# ll /etc/vsftpd/

-rw-------. 1 root root 125 Feb 192013 ftpusers

-rw-------. 1 root root 361 Feb 192013 user_list

-rw-r--r--. 1 root root 4691 Sep 17 16:54 vsftpd.conf

-rwxr--r--. 1 root root 338 Feb 192013 vsftpd_conf_migrate.sh

三、建立FTP的宿主帐户

1、建立ftp虚拟宿主帐户
#useradd vsftpd -s /sbin/nologin

///vsftpd供虚拟帐户映射的系统真实用户,不需要登录shell权限

四、VSFTPD的配置文件

配置vsftpd.conf ///该文件在/etc/vsftpd/
1
、备份现有配置文件:

# cd /etc/vsftpd/

# cp vsftpd.conf vsftpd.conf.bak

2、下面更改配置文件:

[root@localhost vsftpd]# vi vsftpd.conf

anonymous_enable=NO //不允许匿名用户访问。

local_enable=YES //设定本地用户可以访问。主要是为虚拟宿主用户,如果该项目设定为NO那么所有虚拟用户将无法访问。

write_enable=YES //设定可以进行写操作。

local_umask=022 //设定上传后文件的权限掩码。

idle_session_timeout=600

data_connection_timeout=1200 //设置超时时间
anon_upload_enable=NO //
禁止匿名用户上传。
anon_mkdir_write_enable=NO //
禁止匿名用户建立目录。

dirmessage_enable=YES ///设定开启目录标语功能。

xferlog_enable=YES ///设定开启日志记录功能。

connect_from_port_20=YES ///设定端口20进行数据连接。
chown_uploads=NO ///
设定禁止上传文件更改宿主。
xferlog_file=/var/log/vsftpd.log ///
设定Vsftpd的服务日志保存路径。该文件要手动建立,

并且必须给与该vsftpd用户对日志文件vsftpd.log的读写权限,否则服务将启动失败。

xferlog_std_format=YES ///设定日志使用标准的记录格式。
nopriv_user=vsftpd ///
设定支撑Vsftpd服务的宿主用户为手动建立的Vsftpd用户。

注意,一旦做出更改宿主用户后,必须注意一起与该服务相关的读写文件的读写赋权问题。比如日志文件就必须给与该用户写入权限等。

async_abor_enable=YES ///设定支持异步传输功能。
ascii_upload_enable=YES
ascii_download_enable=YES ///
设定支持ASCII模式的上传和下载功能。
ftpd_banner=Welcome to blah FTP service.//
设定Vsftpd的登陆标语

chroot_local_user=YES

chroot_list_enable=YES ///禁止用户登出自己的FTP主目录。

chroot_list_file=/etc/vsftpd/chroot_list ///如果开启了chroot_list_enable=YES,那么一定要开启这个,这条是锁定登录用户只能家目录的位置。

注:建立chroot_list文件

touch/etc/vsftp/chroot_list,然后将帐户输入一行一个,保存就可以了,如果不需要限制用户,也可以只建立一个空文件,或者将chroot_list_enable=NO

ls_recurse_enable=NO ///禁止用户登陆FTP后使用"ls -R"的命令。该命令会对服务器性能造成巨大开销。如果该项被允许,那么挡多用户同时使用该命令时将会对该服务器造成威胁。

listen=YES ///设定该Vsftpd服务工作在StandAlone模式下。顺便展开说明一下,所谓StandAlone模式就是该服务拥有自己的守护进程支持,在ps -A命令下我们将可用看到vsftpd的守护进程名。如果不想工作在StandAlone模式下,则可以选择SuperDaemon模式,在该模式下vsftpd将没有自己的守护进程,而是由超级守护进程Xinetd全权代理,与此同时,Vsftp服务的许多功能将得不到实现。
pam_service_name=vsftpd ///
设定PAM服务下Vsftpd的验证配置文件名。因此,PAM验证将参考/etc/pam.d/下的vsftpd文件配置。

userlist_enable=YES ///设定userlist_file中的用户将不得使用FTP

tcp_wrappers=YES ///设定支持TCP Wrappers

使用虚拟用户需要增加以下部分默认中不包含这些设定项目,需要自己手动添加:

guest_enable=YES ///设定启用虚拟用户功能。
guest_username=vsftpd ///
指定虚拟用户的宿主用户。
virtual_use_local_privs=YES ///
设定虚拟用户的权限符合他们的宿主用户。
user_config_dir=/etc/vsftpd/vconf ///
设定虚拟用户个人Vsftp的配置文件存放路径。

这个被指定的目录里,将存放每个Vsftp虚拟用户个性的配置文件,注:就是这些配置文件名必须和虚拟用户名相同。

pasv_min_port=61001

pasv_max_port=62000 //指定使用被动模式时打开端口的最小值与最大值

anon_max_rate=1000000 //匿名用户最大传输速率

local_max_rate=2000000 //本地用户最大传输速率

max_clients=30 //限制服务器最大并发连接限制数30

max_per_ip=1 //限制单个IP地址的最大并发连接为1

五、创建日志文件
[root@localhost vsftpd]# touch /var/log/vsftpd.log //
日志文件[root@localhost vsftpd]# chown vsftpd.vsftpd /var/log/vsftpd.log

六、创建虚拟用户名单文件建立了一个虚拟用户名单文件,用来记录vsftpd虚拟用户的用户名和口令的数据文件,这里命名为v_user。为了目录清晰,这个名单文件就放置在/etc/vsftpd/vconf/

[root@localhost vsftpd]# mkdir /etc/vsftpd/vconf/

[root@localhost vsftpd]# touch /etc/vsftpd/vconf/v_user

七、创建虚拟用户编辑上面创建的虚拟用户名单文件v_user,在其中加入用户的用户名和口令信息。

格式:奇数行为用户名,偶数行是密码,其他的以此类推

[root@localhost vsftpd]# vi /etc/vsftpd/vconf/v_user

test //用户名
123123 //
密码

八、生成虚拟用户数据库文件

[root@localhost vsftpd]# db_load -T -t hash -f /etc/vsftpd/vconf/v_user /etc/vsftpd/vconf/v_user.db

需要特别注意的是,以后再要添加虚拟用户的时候,只需要按照上面的格式:奇数行为用户名,偶数行是密码的格式将新用户名和口令添加进虚拟用户名单文件。如此不会生效的,还要再执行一遍“ db_load -T -t hash -f虚拟用户名单文件虚拟用户数据库文件.db ”的命令使其生效才可以!

db_load -T -t hash -f /etc/vsftpd/vconf/v_user /etc/vsftpd/vconf/v_user.db

-T允许应用程序能够将文本文件转译载入进数据库。由于我们之后是将虚拟用户的信息以文件方式存储在文件里的,为了让Vsftpd这个应用程序能够通过文本来载入用户数据,必须要使用这个选项。

-t如果指定了选项-T,那么一定要追跟子选项-t,追加在-T选项后,用来指定转译载入的数据库类型。扩展介绍下,-t可以指定的数据类型有BtreeHashQueueRecon数据库。这里,接下来我们需要指定的是Hash型。

九、设置数据库文件的权限
[root@localhost vsftpd]# chmod 600 /etc/vsftpd/vconf/v_user.db
[root@localhost vsftpd]# chmod 600 /etc/vsftpd/vconf/v_user

十、修改/etc/pam.d/vsftpd文件,增加以下红色部分内容

#%PAM-1.0

auth sufficient pam_userdb.so db=/etc/vsftpd/vconf/v_user

account sufficient pam_userdb.so db=/etc/vsftpd/vconf/v_user

session optionalpam_keyinit.so force revoke

auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

auth required pam_shells.so

auth include password-auth

account include password-auth

session requiredpam_loginuid.so

session include password-auth

以上红色部分两条是手动添加的,内容是对虚拟用户的安全和帐户权限进行验证。

这里的auth是指对用户的用户名口令进行验证。
这里的account是指对用户的帐户有哪些权限哪些限制进行验证。
其后的sufficient表示充分条件,也就是说,一旦在这里通过了验证,那么也就不用经过下面剩下的验证步骤了。相反,如果没有通过的话,也不会被系统立即挡之门外,因为sufficient的失败不决定整个验证的失败,意味着用户还必须将经历剩下来的验证审核。

再后面的pam_userdb.so表示该条审核将调用pam_userdb.so这个库函数进行。
最后的db=/etc/vsftpd/v_user则指定了验证库函数将到这个指定的数据库中调用数据进行验证。

特别注意:一定要使用“sufficient”,按照老版本的做法,这里使用required,则会发生用户认证不通过,报如下错误:

[root@localhost vsftpd]# tail /var/log/secure

Sep 17 17:28:20 localhost vsftpd[1387]: pam_unix(vsftpd:auth): check pass; user unknown

Sep 17 17:28:20 localhost vsftpd[1387]: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=test r

host=localhost

Sep 17 17:28:20 localhost vsftpd[1387]: pam_succeed_if(vsftpd:auth): error retrieving information about user test

十一、创建用户的配置文件
1
、完全控制配置文件

用户配置文件的名字要和创建的虚拟用户名字对应

#touch /etc/vsftpd/vconf/test

#vim /etc/vsftpd/vconf/test

local_root=/data/ftp/ //虚拟用户的个人目录路径
anon_world_readable_only=NO

//如果开启,那么所有非匿名登陆的用户名都会被切换成guest_username指定的用户名

anon_upload_enable=YES //匿名用户可以上传

anon_mkdir_write_enable=YES //匿名用户可以建目录

anon_other_write_enable=YES //匿名用户其它的写权利

local_max_rate=1048576 //本地用户的最大传输速度,单位是Byts/s

2、只可下载,无其他权限

write_enable=NO //用户无写权限
anon_world_readable_only=NO

anon_upload_enable=NO //匿名用户不可以上传

anon_mkdir_write_enable= NO //匿名用户不可以建目录

anon_other_write_enable= NO //匿名用户无写权利

Byts/s

十二、建立虚拟用户目录
如果不建立虚拟用户的个人目录,那么所有的虚拟用户登录后所在的目录都是同一个目录下# mkdir /data/ftp/

# chown vsftpd.vsftpd /data/ftp/

# chmod 700 /data/ftp/ ///如果不设置为700的权限,则会发生如下错误

“500 OOPS: cannot change directory:/data/ftp”

配置就此完成,如果想增加新的用户,只要按照上面的第八步、第十一步进行就可以了。

十三、所有配置完后的目录文件及结构

-rw-r--r--. 1 root root 0 Sep 17 16:47 chroot_list

drwxr-xr-x. 2 root root 4096 Sep 17 18:22 vconf

-rw-r--r-- 1 root root 4689 Sep 18 10:32 vsftpd.conf

[root@localhost vsftpd]# ll /etc/vsftpd/vconf

-rw-r--r-- 1 root root125 Sep 17 18:22 test

-rw-------. 1 root root 12 Sep 17 16:55 vir_user

-rw-------. 1 root root 12288 Sep 17 16:55 vir_user.db

十四、关于防火墙规则

1、关闭防火墙

#service iptables stop //临时关闭iptables,即时生效,重启失效

# chkconfig iptables on //重启后开启

#chkconfig iptables off //重启后永久关闭

2SElinux状态及关闭

#getenforce //查询SElinux状态

三种模式:enforcing //强制模式,开启状态

permissive //宽容模式,代表运作中

disabled //关闭状态,并没有实际运作

#setenforce 0|1 //配置状态

0:转成permissive宽容模式

1:转成enforcing强制模式

#vim /etc/selinux/config //编辑文件SELINUX=diskabled”,即时不生效,重启后生效。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


linux下开机自启: 在/etc/init.d目录下新建文件elasticsearch 并敲入shell脚本: 注意, 前两行必须填写,且要注释掉。 第一行为shell前行代码,目的告诉系统使用shell。 第二行分别代表运行级别、启动优先权、关闭优先权,且后面添加开机服务会用到。 shell脚本
1、因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权 chmod +x /etc/rc.d/rc.local 2、赋予脚本可执行权限假设/usr/local/script/autostart.sh是你的脚本路径,给予执行权限 chmod +x /usr
最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用ls -ll,会显示成字节大小,而ls- lh会以KB、MB等为单位进行显示,这样比较直观一些。 通过命令du -h –max-depth=1 *,可以查看当前目录下各文件、文件夹的大小,这个比较实用。 查询当前目录总大小可以使用d
ASP.NET Core应用程序发布linux在shell中运行是正常的。可一但shell关闭网站也就关闭了,所以要配置守护进程, 用的是Supervisor,本文主要记录配置的过程和过程遇到的问题 安装Supervisor 1 yum install python-setuptools
设置时区(CentOS 7) 先执行命令timedatectl status|grep 'Time zone'查看当前时区,如果不是时区(Asia/Shanghai),则需要先设置为中国时区,否则时区不同会存在时差。 #已经是Asia/Shanghai,则无需设置 [root@xia
vim /etc/sysconfig/network-scripts/ifcfg-eth0 BOOTPROTO="static" ONBOOT=yes IPADDR=192.168.8.106 NETMASK=255.255.252.0 GATEWAY=192.168.
一、安装gcc依赖 由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装 [root@localhost local]# yum install -y gcc 二、下载并解压安装包 [root@localhost local
第一步 On CentOS/RHEL 6.*: $ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm On CentOS/RHEL 7: $
/// <summary> /// 取小写文件名后缀 /// </summary> /// <param name="name">文件名</param> /// <returns>返回小写后缀,不带“.”</ret
which nohup .bash_profile中并source加载 如果没有就安装吧 yum provides */nohup nohup npm run start & nohup ./kibana &
1.1 MySQL安装 1.1.1 下载wget命令 yum -y install wget 1.1.2 在线下载mysql安装包 wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm 1.1.3 安装My
重启 reboot shutdown -r now init 6 关闭 init 0 shutdown -h now shutdown -h 20:25 #8点25关机查看内存 free CPU利用率 top 日期 date 设置时间 date 033017002015 #月日时间年 日历 cal
1、firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status firewalld 开机禁用 : systemctl disable firewalld 开机启用 :
1 下载并安装MySQL官方的 Yum Repository wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 使用上面的命令就直接下载了安装用的Yum Repository,大概
CentOS6.x CentOS6中转用Upstrat代替以前的init.d/rcX.d的线性启动方式。 一、相关命令 通过initctl help可以查看相关命令 [root@localhost ~]# initctl help Job commands: start Start job. sto
1、使用命令:df -lk 找到已满磁盘 2、使用命令:du --max-depth=1 -h 查找大文件,删除
ifconfig:查看网卡信息 网卡配置文件位置: /etc/sysconfig/network-scripts/文件夹 nmtui:配置网卡 netstat -tlunp:查看端口信息 端口信息存储位置: /etc/services文件 route:查看路由信息 wget:下载网路文件,例如 wg
ps -ef:查看所有进程, ps -ef |grap firewalld 查看与firewalld相关的进程 which :查看进程:which firewalld kill 进程id:杀掉进程 kill 640,强制杀:kill -9 640 man:查看帮助,例如 man ps 查看
useradd:添加用户 useradd abc,默认添加一个abc组 vipw:查看系统中用户 groupadd:添加组groupadd ccna vigr:查看系统中的组 gpasswd:将用户abc添加到ccna组 gpasswd -a abc ccna groups abc:查看用户abc属