您的位置:首页 > 编程语言 > PHP开发

ftp服务搭建与配置

2017-11-23 01:42 561 查看
15.1-15.5 vsftpd, xshell和xftp,pure-ftpd

ftp是方便的文件传输方式但是存在一定的安全风险所以现今主要是个人使用,企业使用的比较少。

ftp搭建的方式主要有两种,vsftpd以及pure-ftpd。

vsftpd

vsftpd需要yum安装,同时也需要db4_utils包,但是在yum安装vsftpd时会自动安装db4_utils。

db4_utils的用途是把用户名密码文件生成为二进制文件。

账号

因为ftp是远程登录,为了避免一些安全问题,账户思路是,创建一个linux系统账户,这个账户不可登录。然后在这个linux账户下创建多个虚拟账户,这些账户专门用于ftp的登录。

yum install -y vsftpd

useradd virftp -s /sbin/nologin  //-s是指定使用的shell为nologinshell

vim /etc/vsftpd/vsftpd_login  //创建用于ftp登录的虚拟帐号,奇数行为账号,偶数行为密码
testuser1
123123
testuser2
123123

chmod 600 /etc/vsftpd/vsftpd_login  //更改权限提高安全性

db_load -T -t hash -f /etc/vsftpd/vsftpd_login  /etc/vsftpd/vsftpd_login.db  //生成密码库文件

mkdir /etc/vsftpd/vsftpd_user_conf //创建虚拟帐号目录及配置文件
cd !$

vim testuser1  //内容如下
local_root=/home/virftp/testuser1
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

//创建用户家目录
mkdir /home/virftp/testuser1
touch /home/virftp/testuser1/111.txt
chown -R virftp:virftp /home/virftp //递归的改变这个文件夹的属主和组

vim /etc/pam.d/vsftpd //在最开头添加如下两行内容
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

//修改全局配置文件
vim /etc/vsftpd/vsftpd.conf
将anonymous_enable=YES 改为 anonymous_enable=NO
将#anon_upload_enable=YES 改为 anon_upload_enable=NO
将#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO
再增加如下内容
chroot_local_user=YES
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES

systemctl start vsftpd //启动vsftpd服务

[root@cent01 testuser1]# ps aux |grep ftp  //查看服务是否已启动
root       4620  0.0  0.0  53212   572 ?        Ss   00:12   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root       4622  0.0  0.0 112676   980 pts/2    S+   00:13   0:00 grep --color=auto ftp


ftp登录

登录需要用lftp客户端,先yum安装
yum install -y lftp

[root@cent01 ~]# lftp testuser1@127.0.0.1
口令:
lftp testuser1@127.0.0.1:~> ls
-rw-r--r--    1 1007     1008            0 Nov 17 14:42 aming.txt

1007和1008分别是virftp用户的uid和gid。

[root@cent02 ~]# lftp testuser1@192.168.27.128  //在其他机器上登录也能成功
口令:
lftp testuser1@192.168.27.128:~> ls
-rw-r--r--    1 1007     1008            0 Nov 17 14:42 aming.txt

如果遇到登录问题,可以查看日志/var/log/secure和/var/log/messages


pure-ftpd

pure-ftpd是一款小巧的ftp软件,平时用的比较多。

linux帐号以及虚拟账号建立的思路与vsftpd类似。

需要yum安装,但是得从epel扩展源安装
yum install -y epel-release
yum install -y pure-ftpd

启动pure-ftp之前先更改配置文件
vim /etc/pure-ftpd/pure-ftpd.conf  //找到pureftpd.pdb这行,把行首的#删除

因为与vsftpd都是用的21端口,所以先关闭vsftpd
systemctl stop vsftpd

systemctl start pure-ftp
[root@cent01 testuser1]# ps aux|grep pure
root       5506  0.0  0.0 202480  1208 ?        Ss   01:10   0:00 pure-ftpd (SERVER)
root       5508  0.0  0.0 112676   980 pts/2    S+   01:11   0:00 grep --color=auto pure

mkdir /data/ftp    //创建共享目录
useradd -u 1010 pure-ftp  //创建linux用户
chown -R pure-ftp:pure-ftp /data/ftp  //更改共享家目录递归的属主和组
pure-
4000
pw useradd ftp_usera -u pure-ftp  -d /data/ftp //把虚拟账号ftp_usera与pure-ftp帐号关联,其登录后使用pure-ftp的身份进行下载,并且只能访问pure-ftp的指定目录
Password:    //设置密码
Enter it again:
[root@cent01 testuser1]# pure-pw mkdb  //生成密码库文件,这一步很重要
[root@cent01 testuser1]# pure-pw list  //列出系统已有的虚拟账号
ftp_usera           /data/ftp/./
ftp_userb           /data/ftp/./
[root@cent01 testuser1]# lftp ftp_usera@127.0.0.1  //登录测试
口令:
lftp ftp_usera@127.0.0.1:~> ls
drwxr-xr-x    2 1010       pure-ftp           21 Nov 17 23:59 .
drwxr-xr-x    2 1010       pure-ftp           21 Nov 17 23:59 ..
-rw-r--r--    1 1010       pure-ftp            0 Nov 17 23:59 123.txt

pure-pw list/userdel/usermod/passwd   分别是列出用户,删除用户,更改用户权限,更改用户密码


xshell,xftp

xshell与xftp配合时也可以用做ftp软件。可以很方便的管理ftp。且服务端不需要做任何配置。但是这种情况实际是用linux账号登录的,只能管理员自己使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: