Linux FTP 服务器配置

Ø  简介

本文主要介绍 Linux FTP 服务器配置,包括如下内容:

1.  FTP 介绍

2.  安装及配置

3.  用户访问

4.  匿名访问

5.  连接ftp 的常用命令

6.  nmap 端口扫描工具

 

1.  FTP 介绍

FTPFile Transfer Protocol)文件传输协议,是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式,FTP 属于网络传输协议的应用层。

 

通俗的将就是,如果一台服务器上如果启用了 ftp 协议,任意的一台电脑就可以与这台服务器建立连接。只要权限足够,就可以从这个服务器上下载文件和上传文件。

 

ftp 有两个端口号,一个端口号是21,用于传输控制流;另一个端口号是20,用于传输数据流。也就是21号端口用于建立连接,20号端口用于传输数据。

 

n  常用的FTP 软件

1)  Wu-FTP

古老、配置比较复杂,安全性不是特别理想。UNIX 系统自带的 FTP 软件。

 

2)  Proftp(Professional FTP daemon)

功能强大。

 

Proftpd 简介:

全称Professional FTP daemon,是针对Wu-FTP 的弱项而开发的,软件在经过多年的发展之后完善了很多功能,ProFTP 已经成为继Wu-FTP 之后最为流行的FTP 服务器软件,越来越多的站点选用它构筑安全高效的FTP 站点。Proftpd 软件和vsftpd 一样是一个开放源代码的ftp 服务器软件,但是可配置项比vsftpd 要多,是目前比较流行的ftp 软件,Proftpd 的配置和apache 的配置相似,因此该软件也十分容易配置和管理。

 

3)  vsftp(推荐使用)

安全、高速、稳定。具有以下特点:

1.  配置简洁、使用方便,使用加密传送安全性较高。

2.  绝大多数Linux 提供的官方下载,都是有vsftp 来提供的。

 

vsftp 简介:

全称Very secure FTP daemon,比ProFTPD 具有更高的安全性。vsftpd 使用一般身份启动服务,降低了FTP 服务的PID 权限,使该服务即使被入侵也无法得到有效的系统管理权限。同时vsftpd 利用chroot 软件来改变登录者的根目录,使登陆者只能在这个目录中活动,限制了登录者的执行权限。vsftpd 通过配置vsftpd.conf 文件来完成部署,设定简单,登录者仅分为anonymous real user 两种。可以使用standalone super daemon 的方式启动。vsftpd 无法控制每个目录的流量、不能控制上传和下载的比例、不能针对不同的登陆者进行不同的权限设定。

 

2.  安装及配置

说明:以下标红的文本为安装vsftp 所需的步骤。

更多配置参考:https://www.cnblogs.com/wenwei-blog/p/8890436.html

 

n  首先检查系统是否安装了 vsftp

rpm -q vsftpd

vsftpd-3.0.2-27.el7.x86_64

 

如果没有安装,直接使用yum 安装

yum -y install vsftpd

 

安装完成后,启动 vsftpd 服务

systemctl start vsftpd

systemctl enable vsftpd     #开机自启动

或者 service vsftpd restart

启动后默认支持用户访问宿主目录,及匿名用户访问 /var/fpt目录。

 

n  vsftp 相关配置

vi /etc/vsftpd/vsftpd.conf

1.  日志选项(建议开启)

xferlog_enable=YES         #是否启用日志功能,默认开启

xferlog_std_format=YES     #日志文件记录的格式(标准格式),默认开启

xferlog_file=/var/log/xferlog   #如果启用日志,需要将日志文件存放的位置注释取消掉,默认注释

提示:Linux 系统中,建议都将日志存放在 /var/log 目录下。

 

2.  设置非标准端口

listen_port=18021          #默认连接断开为21,数据传输端口为20

添加至 listen=NO 下面;

1024以上的端口,不与其他知名端口冲突;

使用非标准断开时,需要显示指定端口号,比如:ftp 192.168.1.150 18021

设置为非标准端口,主要是为了安全性考虑,可以防止如 nmap 这种端口扫描器扫描。

 

3.  其他选项

ftpd_banner=Welcome to blah Abeam FTP service.  #设置登录欢迎信息

idle_session_timeout=600    #用户会话空闲10分钟后被断开

max_clients=50             #服务器总的并发连接数为50

max_per_ip=3               #每个客户机的最大连接数为3

 

3.  用户访问

1)  创建ftp 用户

groupadd ftpg

useradd -g ftpg -d /opt/res ftpuser

echo "ftpuser" | passwd --stdin ftpuser

 

2)  防火墙开发相应端口

systemctl start firewalld

firewall-cmd --zone=public --list-ports --permanent     #查看开放端口

firewall-cmd --zone=public --add-port=18021/tcp --permanent

# 被动式端口

firewall-cmd --zone=public --add-port=30000-31000/tcp --permanent

firewall-cmd --reload

 

3)  设置 vsftpd.conf 配置文件

vi /etc/vsftpd/vsftpd.conf

必须设置以下3个选项:

local_enable=YES           #默认YES

write_enable=YES           #默认YESNO 禁止用户上传)

local_umask=022            #本地用户创建目录或文件的掩码,默认022

local_max_rate=200000      #设置用户最大传输速率为200KB/s(添加)

 

若启用了 SELinux,允许用户上传文件到宿主目录,需要执行以下命令:

getsebool -a | grep ftp     #查看状态

setsebool -P tftp_home_dir on

setsebool -P allow_ftpd_full_access on

注意:否则用户也无法上传文件。

关闭 SELinux,编辑 /etc/selinux/config

SELINUX=enforcing 改为 disabled     #阿里云 ESC 默认为 disabled

 

注意:阿里云 ESC 一定不要设置为enforcing,否则重启后无法连接。

clip_image002

后来,登录阿里云控制台远程连接,发送远程命令才得以解决!!!

mv /etc/selinux/config /etc/selinux/config.bak

sed 's/enforcing/disabled/g' /etc/selinux/config.bak >> /etc/selinux/config    #enforcing 替换为 disabled

 

 

4)  用户访问控制(两种方式)

限制指定的用户不可以访问,而其他用户可以访问,适合大多数可以访问:

userlist_enable=YES                    #默认只有该选项

userlist_deny=YES                      #是否为禁止模式

userlist_file=/etc/vsftpd.user_list     #每个用户名占一行

 

限制指定的用户可以访问,而其他用户不可以访问,适合大多数用户不可以访问:

userlist_enable=YES

userlist_deny=NO

userlist_file=/etc/vsftpd.user_list

 

5)  设置 chroot

chroot 就是把ftp 用户宿主目录作为/根目录,使其用户无法切换到其他目录。

设置所有用户执行chroot

vi /etc/vsftpd/vsftpd.conf

chroot_local_user=YES      #限制只能访问自身目录,默认注释

allow_writeable_chroot=YES  #加入此项

 

设置指定的用户不执行chroot

chroot_local_user=YES      #启用chroot,默认注释

chroot_list_enable=YES     #启用指定的用户执行chroot,默认注释

chroot_list_file=/etc/vsftpd/chroot_list    #每个用户名占一行,默认注释

 

6)  启用被动连接模式

vi /etc/vsftpd/vsftpd.conf  #末尾添加以下选项

#启用被动连接模式

pasv_enable=YES

pasv_min_port=30000

pasv_max_port=31000

 

4.  匿名访问

n  设置 vsftpd.conf 配置文件

vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NO         #是否允许匿名访问,默认为YES

anon_max_rate=100000       #设置匿名用户最大传送速率为100KB/s(这个选项默认没有,需要添加,开启匿名下载时建议开启此限制)

 

开启匿名用户上传功能

#anon_upload_enable=YES

#anon_mkdir_write_enable=YES

 

1)  匿名 FTP 用户名:ftp anonymous,密码为空即可;

 

2)  匿名用户访问的目录:为ftp 伪用户的宿主目录下:/var/fpt

grep ftp /etc/passwd    #查看ftp 伪用户的宿主目录

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

 

3)  使用Windows DOS 命令测试连接 vsftp

C:\Users\Abeam>ftp 192.168.1.150

用户(192.168.1.150:(none)): ftp    #用户名输入ftp

或者

C:\Users\Abeam>ftp

ftp> open 192.168.1.150

 

# 如果连接不上,关闭防火墙或开放2021端口

systemctl stop firewalld

 

5.  连接ftp 的常用命令

连接ftpftp FTP地址

ftp>

ls      #查看目录下的文件

cd      #切换目录(FTP服务器)

bin     #二进制传输(vsftp 不需要)

lcd     #指定下载目录(本地),如果不指定默认下载到当前登录目录

get     #下载单个文件

mget    #下载多个文件

put     #上传单个文件

mput    #上传多个文件

prompt  #关闭交互模式(如:提示某某文件是否需要下载?关闭后默认为下载)

bye     #退出

open    #连接 FTP 服务器

user    #输入 FTP 服务器用户名和密码

另外,ftp 命令也可以执行 Linux 的一些命令,如:pwd

 

说明:其实也可以不用掌握这些命令,通常都使用 FTP 的客户端来实现上传和下载。但如果需要实现自动化的上传和下载,就需要了解这些命令了。

clip_image004

 

6.  nmap 端口扫描工具

nmap 基本功能有三个,一是探测一组主机是否在线;其次是扫描 主机端口,嗅探所提供的网络服务;还可以推断主机所用的操作系统 。

1)  光盘安装nmap

mount /dev/cdrom /mnt/cdrom/

find /mnt/cdrom -name "nmap*"       #搜索软件包

/mnt/cdrom/Packages/nmap-6.40-16.el7.x86_64.rpm        #命令行

/mnt/cdrom/Packages/nmap-ncat-6.40-16.el7.x86_64.rpm    #图形工具

rpm -ivh /mnt/cdrom/Packages/nmap-6.40-16.el7.x86_64.rpm    #安装

 

2)  使用方法

nmap 192.168.1.150             认扫描1 – 65535

clip_image006

 

nmap -p1-1024 192.168.1.150     #扫描指定端口范围

clip_image008

posted @ 2021-12-25 13:16  Abeam  阅读(2562)  评论(0编辑  收藏  举报