vsftp部署和优化
安装
yum install -y vsftpd
yum install -y ftp
启动
/etc/init.d/vsftpd start
假如启动失败,因为21端口被占用了
killall pure-ftpd
在另外虚拟机中登录
lftp [username]@IP
如:lftp ruirui@192.168.23.135
保证安全做限制
vim /etc/vsftpd/vsftpd.conf
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
chroot_local_user=YES 打开这个
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list
vim /etc/init.d/vsftpd restart
还有 2 个文件等待编辑
[root@ruirui ~]# /etc/init.d/vsftpd restart
关闭 vsftpd: [确定]
为 vsftpd 启动 vsftpd: [确定]
登录
限制只能在当前目录操作,不能进入别的目录
创建虚拟的用户,映射虚拟用户,限制,保证安全
创建一个用户useradd virftp -s /sbin/nologin
创建一个密码文件 vim /etc/vsftpd/vsftpd_login 写入
user1 用户名
123456 密码
保存
chmod 600 /etc/vsftpd/vsftpd_login
将/etc/vsftpd/vsftpd_login升级为一个2进制额库文件
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
/etc/vsftpd/vsftpd_login.db:生成后的文件名
创建虚拟账号
mkdir /etc/vsftpd/vsftpd_user_conf 虚拟用户配置文件放置目录
cd /etc/vsftpd/vsftpd_user_conf
touch user1
vim user1
写入
local_root=/home/virftp/user1
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000
保存
mkdir /home/virftp/user
chown -R virftp:virftp /home/virftp/user
认证
vim /etc/pam.d/vsftpd 32位
#%PAM-1.0
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
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
vim /etc/pam.d/vsftpd 64位
#%PAM-1.0
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
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
保存
vim /etc/vsftpd/vsftpd.conf
修改
anonymous_enable=NO
local_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
在最下面加上
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
保存
/etc/init.d/vsftpd restart
测试
lftp user1@192.168.23.135
口令:
pureftp部署和优化-
ftp == file transfer protocol 文件传输协议
一。pure-ftpd
www.pureftpd.org 官网
1. 下载软件
pure-ftpd 官网是 http://www.pureftpd.org/project/pure-ftpd 当前最新版本为1.0.42, 但阿铭不建议使用最新版本,最新版有可能有一些小bug.
[root@localhost ~]# cd /usr/local/src/ [root@localhost src]# wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.42.tar.bz2
2. 安装pure-ftpd
[root@localhost src]# tar jxf pure-ftpd-1.0.42.tar.bz2 [root@localhost src]# cd pure-ftpd-1.0.42 [root@localhost pure-ftpd-1.0.42]# ./configure \ --prefix=/usr/local/pureftpd \ --without-inetd \ --with-altlog \ --with-puredb \ --with-throttling \ --with-peruserlimits \ --with-tls [root@localhost pure-ftpd-1.0.42]# make && make install
配置pure-ftpd
1. 修改配置文件
pure-ftpd 编译安装很快就完成了,而且极少有出现错误的时候,下面就该配置它了:
[root@localhost pure-ftpd-1.0.42]# cd configuration-file [root@localhost pure-ftpd-1.0.42]# mkdir -p /usr/local/pureftpd/etc/ [root@localhost configuration-file]# cp pure-ftpd.conf /usr/local/pureftpd/etc/pure-ftpd.conf [root@localhost configuration-file]# cp pure-config.pl /usr/local/pureftpd/sbin/pure-config.pl [root@localhost configuration-file]# chmod 755 /usr/local/pureftpd/sbin/pure-config.pl
在启动pure-ftpd之前需要先修改配置文件,配置文件为/usr/local/pureftpd/etc/pure-ftpd.conf, 你可以打开看一下,里面内容很多,如果英文好,可以好好研究一番,下面是阿铭的配置文件,如果你嫌麻烦,直接拷贝过去即可:
ChrootEveryone yes BrokenClientsCompatibility no MaxClientsNumber 50 Daemonize yes MaxClientsPerIP 8 VerboseLog no DisplayDotFiles yes AnonymousOnly no NoAnonymous no SyslogFacility ftp DontResolve yes MaxIdleTime 15 PureDB /usr/local/pureftpd/etc/pureftpd.pdb LimitRecursion 3136 8 AnonymousCanCreateDirs no MaxLoad 4 AntiWarez yes Umask 133:022 MinUID 100 AllowUserFXP no AllowAnonymousFXP no ProhibitDotFilesWrite no ProhibitDotFilesRead no AutoRename no AnonymousCantUpload no PIDFile /usr/local/pureftpd/var/run/pure-ftpd.pid MaxDiskUsage 99 CustomerProof yes
2. 启动pure-ftpd
[root@localhost ~]# /usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf
如果是启动成功,会显示一行长长的以Running开头的信息,否则那就是错误信息,如果你解决不了,请到阿铭论坛(http://www.aminglinux.com/bbs/forum-40-1.html)获取帮助吧。
3. 建立账号
[root@localhost ~]# mkdir /data/www/ [root@localhost ~]# useradd www [root@localhost ~]# chown -R www:www /data/www/ [root@localhost ~]# /usr/local/pureftpd/bin/pure-pw useradd ftp_user1 -uwww -d /data/www/ Password: Enter it again:
其中,-u将虚拟用户ftp_user1与系统用户www关联在一起,也就是说使用ftp_user1账号登陆ftp后,会以www的身份来读取文件或下载文件。-d 后边的目录为ftp_user1账户的家目录,这样可以使ftp_user1只能访问其家目录/data/www/. 到这里还未完成,还有最关键的一步,就是创建用户信息数据库文件:
[root@localhost ~]# /usr/local/pureftpd/bin/pure-pw mkdb
pure-pw还可以列出当前的ftp账号,当然也可以删除某个账号, 我们再创建一个账号:
[root@localhost ~]# /usr/local/pureftpd/bin/pure-pw useradd ftp_user2 -uwww -d /tmp [root@localhost ~]# /usr/local/pureftpd/bin/pure-pw mkdb
列出当前账号:
[root@localhost ~]# /usr/local/pureftpd/bin/pure-pw list
删除账号的命令为:
[root@localhost ~]# /usr/local/pureftpd/bin/pure-pw userdel ftp_user2
测试pure-ftpd
测试需要使用的工具叫做lftp, 先安装一下它:
[root@localhost ~]# yum install -y lftp
测试:
[root@localhost ~]# touch /data/www/123.txt [root@localhost ~]# lftp ftp_user1@127.0.0.1 口令: lftp ftp_user1@127.0.0.1:~> ls drwxr-xr-x 2 514 www 4096 Jun 12 11:14 . drwxr-xr-x 2 514 www 4096 Jun 12 11:14 .. -rw-r--r-- 1 514 www 0 Jun 12 11:14 123.txt
登陆后,使用 ls 命令可以列出当前目录都有什么文件。
阿铭建议你最好再扩展学习一下: http://www.aminglinux.com/bbs/thread-5445-1-1.html
教程答疑: 请移步这里.
欢迎你加入 阿铭学院 和阿铭一起学习Linux,让阿铭成为你Linux生涯中永远的朋友吧!
转载于:https://blog.51cto.com/632566481/1954385