FTP介绍
FTP(file transfer protocol)文件传输协议,用于在Internet上控制文件的双向传输。FTP主要作用是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷贝到本地计算机,或把本地文件传送到远程计算机。
该服务在小公司用的比较多,由于FTP服务的安全性较差,所以大公司不使用该服务。
使用vsftpd搭建ftp服务(上)
1,安装vsftp工具及创建用户
[root@dl-001 src]# yum install vsftpd
[root@dl-001 src]# useradd -s /sbin/nologin virftp
说明: vsftpd可以使用系统级别的用户进行登录,但是这样做不安全,所以需要使用vsftpd创建一个虚拟用户。在此创建一个系统普通用户的作用是使vsftpd的虚拟用户来进行映射,然后完成数据的传输。
2,编辑虚拟用户密码文件,并更改文件权限
[root@dl-001 src]# vim /etc/vsftpd/vsftpd_login
test1
dinglet1
tese2
dinglet2
[root@dl-001 src]# chmod 600 /etc/vsftpd/vsftpd_login
说明: 该文件中内容奇数行为用户名,偶数行为用户密码。
3,文件转换
将该密码文件转换成计算机能识别的二进制文件。
[root@dl-001 src]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
[root@dl-001 src]# ls -l /etc/vsftpd/
总用量 32
-rw-------. 1 root root 125 8月 3 14:10 ftpusers
-rw-------. 1 root root 361 8月 3 14:10 user_list
-rw-------. 1 root root 5030 8月 3 14:10 vsftpd.conf
-rwxr--r--. 1 root root 338 8月 3 14:10 vsftpd_conf_migrate.sh
-rw-------. 1 root root 30 1月 3 09:45 vsftpd_login
-rw-r--r--. 1 root root 12288 1月 3 09:47 vsftpd_login.db //查看生成密码文件成功
4,创建虚拟用户配置文件
[root@dl-001 src]# mkdir /etc/vsftpd/vsftpd_user_conf
[root@dl-001 src]# cd !$
cd /etc/vsftpd/vsftpd_user_conf
[root@dl-001 vsftpd_user_conf]# vim test1 //创建test1虚拟用户配置文件
local_root=/home/virftp/test1
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
[root@dl-001 vsftpd_user_conf]# ls
test1
说明:保持虚拟用户配置文件和虚拟用户名称一致。
5,创建虚拟用户家目录
[root@dl-001 vsftpd_user_conf]# mkdir /home/virftp/test1
[root@dl-001 vsftpd_user_conf]# touch /home/virftp/test1/dl.txt
[root@dl-001 vsftpd_user_conf]# chown -R virftp:virftp /home/virftp
6,虚拟用户密码匹配
[root@dl-001 vsftpd_user_conf]# 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
[root@dl-001 vsftpd_user_conf]# ls /lib64/security/pam_userdb.so //查看该文件是否存在
/lib64/security/pam_userdb.so
说明: 在该文件中添加这两行内容,用于指定用户密码文件位置。
注意: 在centos6中“/lib64/security/pam_userdb.so”该文件区分版本(32位、64位)。
7,编辑vsftpd主配置文件
[root@dl-001 vsftpd_user_conf]# vim /etc/vsftpd/vsftpd.conf //编辑vsftpd的主配置文件
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
8,启动服务并查看监听的端口
[root@dl-001 vsftpd_user_conf]# systemctl start vsftpd
[root@dl-001 vsftpd_user_conf]# ps aux|grep vsftp
root 2514 0.0 0.0 53216 572 ? Ss 10:14 0:00 /usr/sbin/vsftpd /etc/vsftd/vsftpd.conf
root 2516 0.0 0.0 112680 976 pts/0 R+ 10:14 0:00 grep --color=auto vsftp
[root@dl-001 vsftpd_user_conf]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1463/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2211/master
tcp6 0 0 :::3306 :::* LISTEN 1986/mysqld
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::21 :::* LISTEN 2514/vsftpd
tcp6 0 0 :::22 :::* LISTEN 1463/sshd
tcp6 0 0 ::1:25 :::* LISTEN 2211/master
说明:FTP服务监听21端口;sshd监听22端口;telnet监听23端口。