首页 > 系统相关 >Linux-yum-ftp服务安装与配置

Linux-yum-ftp服务安装与配置

时间:2023-05-21 21:24:23浏览次数:33  
标签:ftp vuser etc vsftpd yum Linux master root

1. 为什么使用ftp
安装ftp主要是还为了传输文件,但是我有一台服务器或者计算机,直接登录进去获取文件不行吗?为啥还要多此一举用ftp呢?原因是用ftp的话,它的会话是持久的,只有一次认证过程,传输多个文件都是使用同一个连接。因为 ftp 就是为远程文件交互而设计的,更适;而且有些时候只是为了单纯让你做一个文件传输,运维未必会给你一台服务器,这个时候往往只是给你搭建ftp服务。
2. 什么是ftp
FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。

默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。
3. ftp的安装与配置
3.1 ftp的安装
ftp的安装一般用yum直接在线安装;
[root@master ~]# cd /tools/
[root@master tools]# yum install -y vsftpd

# 启动ftp
[root@master tools]# systemctl status vsftpd.service
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
[root@master tools]# systemctl start vsftpd.service

# 查看下ftp的默认端口21,发现能正常启动
[root@master tools]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 128 *:3706 *:*
LISTEN 0 32 [::]:21 [::]:*
LISTEN 0 128 [::]:22 [::]:*
[root@master tools]#

# 因为还没配置好,先关闭ftp
[root@master tools]# systemctl start vsftpd.service

3.2 ftp的配置文件/etc/vsftpd/vsftpd.conf
ftp安装好后,配置文件在/etc/vsftpd/vsftpd.conf,利用vim ,修改配置文件。

#打开配置文件
[root@master tools]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_202305211857_zkm
[root@master tools]# vim /etc/vsftpd/vsftpd.conf
#显示行号
:set nu
#修改配置 12 行 不允许匿名访问(不登录默认访问某目录/var/ftp),要用户名和密码
anonymous_enable=NO

#修改配置83行 允许ascii文件上传
ascii_upload_enable=YES
#修改配置84行 允许ascii文件下载
ascii_download_enable=YES
#修改配置87行
ftpd_banner=Welcome to blah FTP service.
#修改配置101,102,104行 将用户限制在为其配置的主目录
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
#添加下列内容到vsftpd.conf末尾
use_localtime=YES
# 监听端口
listen_port=21
idle_session_timeout=300
# 设置启用虚拟用户功能
guest_enable=YES
# 制定宿主用户名(我们后续需要为我们的系统增加该用户)
guest_username=ftpuser
# 制定虚拟用户配置文件放置文件夹(需要我们自己建立)
user_config_dir=/etc/vsftpd/vuser_conf
# 允许写
allow_writeable_chroot=YES
data_connection_timeout=1
virtual_use_local_privs=YES
pasv_min_port=40000
pasv_max_port=40010
accept_timeout=5
connect_timeout=1

3.3 ftp的账号、组、目录配置
# 新建一个ftpuser组
[root@master tools]# groupadd ftpuser
# 新建一个ftpuser账号,并且该账号不需要登录服务器,设定家目录在 /home/data/vsftpd
[root@master tools]# mkdir -p /home/data/vsftpd
[root@master tools]# useradd -g ftpuser -M -d /home/data/vsftpd -s /sbin/nologin ftpuser

# 设置用户 ftpuser 的密码
[root@master tools]# passwd ftpuser
Changing password for user ftpuser.
New password: ftp!#2023
Retype new password: ftp!#2023
passwd: all authentication tokens updated successfully.
[root@master tools]#

# 把 /home/data/vsftpd 的所有权给ftpuser.root
[root@master tools]# chown -R ftpuser:ftpuser /home/data

# 在家目录下先创建两个文件夹,作为后续ftp账号的默认目录
[root@master tools]# mkdir -p /home/data/vsftpd/ftp-user1 /home/data/vsftpd/ftp-user2

# 设置目录权限为755
[root@master tools]# chmod 755 -R /home/data

3.4 ftp的登录用户和密码设置
# 进入/etc/vsftpd/目录
[root@master tools]# cd /etc/vsftpd/

# 创建用户密码信息文件
[root@master vsftpd]# vim vuser_passwd

#编辑如下内容,创建虚拟账户信息,奇数行为用户名,偶数行为密码
ftp-user1
123456
ftp-user2
123456

# 生成虚拟用户数据文件
[root@master vsftpd]# db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db

# 将该目录的权限改成600
[root@master vsftpd]# chmod 600 /etc/vsftpd/vuser_passwd.db

3.5 编辑pam认证文件
# 查看系统位数
[root@master vsftpd]# getconf LONG_BIT
64

# 备份pam认证文件
[root@master vsftpd]# mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd_20230521_zkm
[root@master vsftpd]#

# 新建pam认证文件
[root@master vsftpd]# vim /etc/pam.d/vsftpd

# 根据自己的操作系统选2行,不要全部都填写哟
# 注:db=/etc/vsftpd/vuser_passwd 中的vuser_passwd 是你生成的虚拟用户的db文件,这里不要加扩展名。

# 系统为32位:
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account
required pam_userdb.so db=/etc/vsftpd/vuser_passwd

# 系统为64位:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd

3.6 创建虚拟用户配置目录
#创建上述配置文件中配置的虚拟用户文件夹,一定要对应章节3.2配置文件的user_config_dir=/etc/vsftpd/vuser_conf
[root@master vsftpd]# mkdir -p /etc/vsftpd/vuser_conf

#切换进入 /etc/vsftpd/vuser_conf
[root@master vsftpd]# cd /etc/vsftpd/vuser_conf

#创建虚拟用户配置文件,文件名称要与虚拟用户名称相同,这里我们配置两个虚拟用户就创建两个配置文件
[root@master vuser_conf]# touch ftp-user1 ftp-user2
[root@master vuser_conf]# ll
total 0
-rw-r--r-- 1 root root 0 May 21 20:31 ftp-user1
-rw-r--r-- 1 root root 0 May 21 20:31 ftp-user2
[root@master vuser_conf]#

#编辑ftp-user1
[root@master vuser_conf]# vim ftp-user1

#写入以下内容
local_root=/home/data/vsftpd/ftp-user1
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
#wq! 保存退出

#编辑ftp-user2
vim ftp-user2

#写入以下内容
local_root=/home/data/vsftpd/ftp-user2
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
# wq! 保存退出

3.7 创建chroot_list
# 进入目录/etc/vsftpd
[root@master vuser_conf]# cd /etc/vsftpd

#创建使当前配置的虚拟用户允许访问的文件列表
[root@master vsftpd]# vim chroot_list
#写入虚拟用户名
ftp-user1
ftp-user2
# wq! 保存退出

3.8 防火墙,SELinux等配置
简单粗暴型,如果允许的话,直接关闭防火墙和SELinux,
#打开SELINUX配置文件
vim /etc/selinux/config
#修改配置参数
#注释
SELINUX=enforcing
#增加
SELINUX=disabled
#wq!保存完,需要重启!

[root@master vsftpd]# systemctl stop firewalld.service
也可以针对性的关闭防火墙和SELinux对ftp的限制。

# SELINUX不对vsftp不做任何限制
[root@master vsftpd]# setsebool -P ftpd_full_access on
setsebool: SELinux is disabled.

# 防火墙设置 IPtables 的设置方式:
vi /etc/sysconfig/iptables
#编辑iptables文件,添加如下内容,开启21端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 40000:40010 -j ACCEPT
#firewall 的设置方式,以下指令
firewall-cmd --zone=public --add-service=ftp --permanent
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=40000-40010/tcp --permanent
3.9 查看ftp状态、重启、停止、设置开机启动
#启动
[root@master vsftpd]# systemctl start vsftpd.service
#重启
[root@master vsftpd]# systemctl restart vsftpd.service
#停止
[root@master vsftpd]# systemctl stop vsftpd.service

#查看状态
[root@master vsftpd]# systemctl status vsftpd.service
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
Active: active (running) since Sun 2023-05-21 06:54:30 EDT; 23min ago
Process: 2765 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
Main PID: 2766 (vsftpd)
CGroup: /system.slice/vsftpd.service
└─2766 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

May 21 06:54:30 master systemd[1]: Starting Vsftpd ftp daemon...
May 21 06:54:30 master systemd[1]: Started Vsftpd ftp daemon.
[root@master vsftpd]#

#设置开机启动
[root@master vsftpd]# systemctl enable vsftpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

3.10 测试ftp连接
IP:192.168.1.5
ftp-user1
123456

标签:ftp,vuser,etc,vsftpd,yum,Linux,master,root
From: https://www.cnblogs.com/zhangkaimin/p/17419183.html

相关文章

  • linux中/etc/passwd文件与/etc/shadow文件解析
     在linux操作系统中,/etc/passwd文件中的每个用户都有一个对应的记录行,记录着这个用户的一下基本属性。该文件对所有用户可读。  而/etc/shadow文件正如他的名字一样,他是passwd文件的一个影子,/etc/shadow文件中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/pas......
  • [ Linux ] 获取本机公网 IP
    https://www.cnblogs.com/yeungchie/使用dig获取本机的公网IP地址,方便在Shell脚本中使用。[email protected]......
  • Linux不用Flash解决在线电视直播、PPTV问题(技术向)
     我看了完美Linux在线电视(直播) 之类的文章 我自己谈谈有什么办法在ubuntu下完美看电视直播,PPTV视频播放这类问题。  其实只要你安装了Flash插件应该可以在网页上完整播放几乎所有的视频了。 至少我见过很多视频站都是用FLash 这里讨论一些有技术的。就是我不用Flas......
  • Linux 文件描述符
    最近在复习tcp/ip知识,其中有关的一个问题"一台服务器做多支持多少个TCP链接"和Linux下的文件描述符有关,学习一下。Linux中,一切设备都是文件,对文件的操作都是通过文件描述符来进行的。文件描述符的定义:文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一......
  • mycat linux 搭建,分表分库,增长长插入
    下载Mycat-server-1.6.7.1-release-20200209222254-linux.tar下载地址:Mycat-server-1.6.7.1-release-20200209222254-linux.tar解压进入bin启动./mycatstart启动./mycatstop停止./mycatrestart重启mycat分库分表server.xml<?xmlversion="1.0"encoding="UTF-8&qu......
  • 转载文章:linux安装软件包
    一、安装.deb软件包sudodpkg--installXXX.deb二、rpm软件管理工具rpm-ivh软件包名-evh 软件名卸载软件-q软件名查询已安装软件-qa查询已安装的所有软件-ql软件名软件程序列表-qf文件绝对路径查询某一个文件是由哪一个包提供-uv......
  • 嵌入式linux—初级理解
    对于不使用操作系统或使用小型实时操作系统(如freeRTOS)的设备来说,与硬件相关的驱动程序与应用程序往往混合在一起,因此常常不会对驱动与应用进行严格的区分,这也导致更换硬件平台时,应用程序移植困难。1、使用了Linux系统的设备,硬件会由操作系统接管。Linux系统的一个重要设计哲学......
  • Linux:RID技术与LVM磁盘阵列技术
    RAIDRAID即独立磁盘冗余阵列,其工作原理是将多个磁盘合并成一个逻辑设备,在此基础上提供数据保护、容错和性能优化等功能。RAID0:将两个或多个磁盘组合在一起,并将数据划分为块。每个块都被分配到不同的磁盘上,从而实现并行访问,提高了读写性能。但是,RAID0没有容错机制,如果其中一个......
  • Linux目录下明明有可执行文件却提示找不到,“No such file or directory”
    明明一切正常,findls均可找到,权限也是777 检查文件的头部:readelf-hrepeat发现machine条目:Machine:    Intel80386问题出在了文件是32位的,但是虚拟机是64位的 如果想要运行文件,需要安装32位程序的运行架构:$sudoyuminstallxulrunner.i686$su......
  • 把一个nodejs程序做成传统linux服务
     1:http://howtonode.org/deploying-node-upstart-monit  (  DeployingNode.jsWithUpstartandMonit)  2: https://www.exratione.com/2013/02/nodejs-and-forever-as-a-service-simple-upstart-and-init-scripts-for-ubuntu/    ( Node.jsandFor......