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:                                    [确定]

登录

lftp ruirui@192.168.23.135

限制只能在当前目录操作,不能进入别的目录

创建虚拟的用户,映射虚拟用户,限制,保证安全

创建一个用户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生涯中永远的朋友吧!