vsftpd配置

vsftpd安装完毕后,咱们如今开始配置vsftpd,不过在正式配置以前,咱们还有几步工做要作。linux

3.1 用户相关配置 由于是使用vsftpd的虚拟用户,因此咱们须要先在系统中建立一个用户,而且该用户对/www目录具备可读可写可执行权限。ubuntu

建立用户,以下:vim

sudo useradd -m -s /bin/bash virtual安全

cat /etc/passwd |grep virtualbash

注意:建立的用户ftpilanni如今是没法登陆到系统的,由于没有给该用户设置密码。在此,咱们也无需ftpilanni登陆到系统,这样相对来讲比较安全。post

用户建立完毕后,咱们来建立对应的目录并修改其所属用户,以下:测试

sudo mkdir /wwwui

sudo chown -R virtual:virtual /www/加密

有关用户相关配置结束后,咱们开始设置登陆vsftp的用户与密码文件login.txt。以下:rest

sudo mkdir /etc/vsftpd/

sudo vim /etc/vsftpd/login.txt

ailanni ailannipassword

login.txt为登陆vsftpd的用户与密码文件。

login.txt设置完毕后,咱们要使用db_load进行加密。而db_load须要db-util这个软件。因此须要咱们如今安装db-util,以下:

sudo apt-get -y install db-util

db-util安装完毕后,如今开始使用db_load对loginx.txt进行加密。以下:

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

loginx.txt加密完成后,咱们如今开始配置vsftpd的PAM验证。

3.2 PAM验证配置 vsftpd的PAM验证,在此我没有使用vsftpd安装时所生成的/etc/pam.d/vsftpd文件。

由于通过我屡次的测试,发现若是使用该文件进行验证的话,没法验证经过。不知道为何,猜测颇有多是vsftpd的一个BUG。

建立验证文件,以下:

sudo vim /etc/pam.d/vsftpd.virtual

auth required pam_userdb.so db=/etc/vsftpd/login

account required pam_userdb.so db=/etc/vsftpd/login

vsftpd.virtual文件的内容,也能够根据OS的版本进行调整。我如今使用的是ubuntu x64,因此也能够填写为:

auth required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/login

account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/login

其中/etc/vsftpd/login对应/etc/vsftpd/login.db文件

3.3 vsftp权限配置 如今正式配置vsftpd,vsftpd的几乎全部配置项都在/etc/vsftpd.conf文件中进行。

根据业务要求vsftpd.conf配置内容以下:

grep -vE “^#|^$” /etc/vsftpd.conf

listen=YES

listen_ipv6=NO

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

use_localtime=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_file=/var/log/vsftpd.log

xferlog_std_format=YES

chroot_local_user=YES

chroot_list_enable=NO

allow_writeable_chroot=YES

secure_chroot_dir=/var/run/vsftpd/empty

pam_service_name=vsftpd

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

ssl_enable=NO

guest_enable=YES

pam_service_name=vsftpd.virtual

user_config_dir=/etc/vsftpd/vu

pasv_enable=YES

pasv_min_port=30000

pasv_max_port=31000

在以上配置文件中,有几点须要重点指出。

local_enable=YES

write_enable=YES

local_umask=022

这两项是启用系统用户的写权限。特别是write_enable=YES项必定要启用,不然vsftpd虚拟用户将没法登陆vsftpd。

为何会是这样?由于虚拟用户依赖与系统用户。

chroot_local_user=YES

chroot_list_enable=NO

这三项是配置vsftpd用户禁止切换上级目录的权限。

guest_enable=YES

pam_service_name=vsftpd.virtual

user_config_dir=/etc/vsftpd/vu

这三项是启用vsftpd虚拟用以及虚拟用户帐号配置目录。

pasv_enable=YES

pasv_min_port=30000

pasv_max_port=31000

这三项是启用vsftpd被动模式及相关端口。

3.4 虚拟用户相关配置 vsftpd配置文件修改文件后,如今开始配置虚拟用户的相关权限。以下:

sudo mkdir /etc/vsftpd/vu

sudo vim /etc/vsftpd/vu/ailanni

guest_username=virtual

local_root=/www/

virtual_use_local_privs=YES

anon_umask=133

以上配置参数,其中guest_username=ftpilanni表示的是设置FTP对应的系统用户为ftpilanni

local_root=/www/表示使用本地用户登陆到ftp时的默认目录。

virtual_use_local_privs=YES虚拟用户和本地用户有相同的权限。

anon_umask表示文件上传的默认掩码。计算方式是777减去anon_umask就是上传文件的权限。在此咱们设置的是133,也就是说上传后文件的权限是644。即上传的文件对所属用户来讲只有读写权限,没有执行权限。

chkconfig vsftpd on ---设置自动启动

sudo service vsftpd restart ---重启vsftpd来生效

IPtables配置以下:

sudo iptables-save >/home/ilanni/iptables.rule

clip_image017

sudo iptables-restore < /home/ilanni/iptables.rule

sudo iptables -nL

sudo vim /etc/network/interfaces

pre-up iptables-restore < /home/ilanni/iptables.rule

post-down iptables-save < /home/ilanni/iptables.rule

相关文章
相关标签/搜索