FTP 基础配置,配置虚拟FTP账号

FTP 配置

Redhait6.5 Linux Ftp 配置步骤.

理论基础

  • 命令端口
  • 数据端口
  • 主动模式(PORT)
  • 被动模式(PASV)
  • 命令
    • USER
    • PASS
    • SIZE
    • CWD
    • PASV
    • PORT
    • PETR
    • STOR
    • REST
    • QUIT

FTP服务安装启动

  • 可以使用yum命令直接安装ftp
    yum install vsftpd
  • 开启关闭命令
    service vsftpd start
    service vsftpd stop

FTP虚拟用户配置

添加账号

增加用户
root用户执行

# useradd -d /home/test  -s /sbin/nologin test //增加用户test,并制定test用户的主目录为/home/test
# passwd test //为test设置密码
# chown -R virtusers.virtusers /data1/ftp

修改VSFTPD配置

vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NO   //不允许匿名账号访问
local_enable=YES    //本地用户可以访问(采用虚拟账号访问时,这个参数也要开启(虚拟账号要寄宿本地账号),虽然开启但是本地账号是不可以登陆的)
write_enable=YES     //可写可上传。这个参数是全局配置,否则上传和下载都会报错550!
local_umask=022
listen_port=288 //监听的ftp端口
ftp_data_port=208
pasv_min_port=1788  //分配给ftp账号的最小端口。被动模式下的配置
pasv_max_port=1789  //分配给ftp账号的最大端口。每个账号分配一个端口,即最大允许2个ftp账号连接。
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES    //通过20端口传输数据
chown_uploads=NO
chroot_local_user=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
nopriv_user=virtusers
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to blah FTP service ^_^   //登陆FTP时显示的欢迎信息
chroot_list_enable=NO   //限制所有的本地用户在自家目录,即用户登陆系统后锁定在自家目录。虚拟主机配置下,在下面两个chroot配置后,这个参数必须为NO,否则登陆FTP后还可以访问其他目录!
ls_recurse_enable=NO
listen=YES
pam_service_name=vsftpd //指定PAM配置文件,即下面的/etc/pam.d/vsftpd文件要和这里指定的一致。
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES      //启用虚拟用户 若这个值设定为 YES 时,那么任何非 anonymous 登入的账号,均会被假设成为 guest (访客) 至于访客在 vsftpd 当中,预设会取得 ftp 这个使用者的相关权限。但可以透过 guest_username 来修改
guest_username=virtusers    //将虚拟用户映射为本地[virtusers]用户(前提是local_enable=YES)
virtual_use_local_privs=YES  //这个参数一定要加上,虚拟用户和本地用户有相同的权限;否则ftp连上后不能上传,报错550权限拒绝!
user_config_dir=/etc/vsftpd/vconf   //指定不同虚拟用户配置文件的存放路径
#pasv_address=127.0.0.1
reverse_lookup_enable=NO

修改防火墙

cat /etc/sysconfig/iptables

A INPUT -s 10.68.250.13 -m state --state NEW -m tcp -p tcp --dport 2021 -j ACCEPT
-A INPUT -s 10.68.250.13 -m state --state NEW -m tcp -p tcp --dport 40001:40100 -j ACCEPT

设置虚拟FTP账号

  1. 虚拟账号它不是真实存在于系统中的,即/etc/passwd文件里没有的,它是借助于宿主账号virtusers。 奇数行是账号,偶数行是密码
[root@infotech vsftpd]# cat virtusers
lteinfotech
lteinfotech1
ftpuser
123888
docuser
123888
docadmin
doc88888
  1. 生成虚拟用户口令的db文件(设置600权限)
[root@infotech vsftpd]# db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
[root@infotech vsftpd]# chmod 600 /etc/vsftpd/virtusers.db
  1. 锁定目录(非必要)
[root@infotech vsftpd]# cat /etc/vsftpd/chroot_list     //将虚拟用户放在这个列表文件里,说明这些用户登陆后都只能锁定到对应主目录内
docuser
  1. 配置虚拟配置文件
[root@infotech vsftpd]# mkdir vconf      //此目录名是在vsftpd.conf配置中指定的,里面是虚拟用户配置文件(文件名是虚拟用户名)
[root@infotech vconf]# pwd
/etc/vsftpd/vconf
[root@infotech vconf]# cat lteinfotech 
local_root=/data1/ftp  //指定虚拟账号登陆后的主目录,目录权限要是宿主账号nobody,这样就可以实现账号映射
anonymous_enable=NO
write_enable=YES     //写权限
local_umask=022
anon_upload_enable=NO   //上传权限
anon_mkdir_write_enable=NO  //创建目录权限
anon_other_write_enable=NO    //删除和重命名权限
idle_session_timeout=300
data_connection_timeout=90
max_clients=1
max_per_ip=1
local_max_rate=0
pam_service_name=vsftpd
chroot_local_user=YES
virtual_use_local_privs=NO // 如果是NO使用anon权限,否则使用主账号权限
  1. 系统其他配置
[root@infotech vsftpd]#  ll /lib64/security/pam_userdb.so
[root@infotech vsftpd]# cat /etc/pam.d/vsftpd //注释原先内容修改如下
#%PAM-1.0
auth    required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
[root@infotech vsftpd]# cat /etc/passwd|grep virtusers
virtusers:x:501:501::/data1/ftp:/sbin/nologin
[root@infotech vsftpd]# chown -R virtusers.virtusers /data1/document     //设置虚拟账号hqsbcms指定的主目录的权限为virtusers,这样就可以映射到宿主账号virtusers
[root@infotech data1]# ll
鎬荤敤閲24
drwxr-xr-x   3 root      root      4096 11鏈27 17:07 backup
drwxr-xr-x   2 root      root      4096 3鏈  9 2018 blank
drwxr-xr-x   3 virtusers virtusers 4096 1鏈  3 10:53 document
drwxr-xr-x. 15 virtusers virtusers 4096 4鏈 13 2018 ftp
drwxr-xr-x   7 virtusers virtusers 4096 12鏈 3 11:12 north
drwxr-xr-x   9 root      root      4096 4鏈 13 2018 transit
[root@infotech vsftpd]# chmod -R 700 /data1/document
           
[root@infotech vsftpd]# /etc/init.d/vsftpd start
   
[root@bastion-IDC vsftpd]# ll /data1/ftp/

建立一个新的FTP账号

root用户执行

# useradd -d /data1/document docadmin //增加用户docadmin,并制定test用户的主目录为/data1/document
# passwd docadmin //为docadmin设置密码
setfacl -R -m u:admin:rwx /data1/document        --赋权admin账号对于document目录的权限   rwx   只读  只写   执行权限
vi /etc/vsftpd/user_list  //添加新增的用户名

主配置文件

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
listen_port=288
ftp_data_port=208
pasv_min_port=1788
pasv_max_port=1789
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=NO
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
nopriv_user=virtusers
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to blah FTP service ^_^
chroot_list_enable=NO
ls_recurse_enable=NO
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
tcp_wrappers=YES
guest_enable=YES
guest_username=virtusers
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vconf
#pasv_address=127.0.0.1
reverse_lookup_enable=NO

重启vsftpd服务后发现还是无法使用,通过如下修改可以使用

[root@infotech vsftpd]# vi /etc/pam.d/vsftpd
#%PAM-1.0
#auth    required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
#account required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
session optional pam_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 required pam_loginuid.so
session include password-auth

得出结论vsftpd虚拟用户和本地用户不能共存。有可以共存的策略把required改成sufficient

auth sufficient pam_userdb.so db=/etc/vsftpd/vuser_passwd
account sufficient pam_userdb.so db=/etc/vsftpd/vuser_passwd
session optional pam_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 required pam_loginuid.so
session include password-auth

本文首发自:http://www.infotech.vip/tool-ftp.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值