上文:Linux服务器配置-VSFTP服务配置(二)

一、vsftpd服务防火墙配置

1、主动(POST)模式 FTP 防火墙配置

  • CentOS6 系统 iptables 的配置

iptables -t filter --line-number -nL INPUT#显示现有防火墙规则,查看是否开启20、21号端口。

iptables -t filter -I INPUT -p tcp -m multiport --dport 20,21 -m state --state NEW -j ACCEPT #如没有开启端口,添加规则,开启20、21号端口。

service iptables save#保存防火墙设置。

service iptables restart #重启防火墙。

iptables -t filter --line-number -nL INPUT#查看新添加的规则是否成功。

  • RHEL7 系统 firewalld 的配置

方法1—通过添加FTP服务规则,开启防火墙通道。

firewall-cmd --list-services #查看防火墙是否允许FTP服务通过。

firewall-cmd --permanent --zone=public --add-service=ftp #如没有允许FTP服务通过,添加防火墙规则允许其通过。

firewall-cmd --reload #重新加载防火墙。

firewall-cmd --list-all #查看新添加的防火墙规则是否允许FTP服务通过。

方法2—通过添加端口规则,开启防火墙通道。

firewall-cmd --list-ports #查看防火墙是否开启20、21端口。

firewall-cmd --permanent --zone=public --add-port=20-21/tcp #如没有开启端口,添加规则,开启20、21号端口。

firewall-cmd --reload #重新加载防火墙

firewall-cmd --list-all #查看新添加的规则是否成功。

以上两种方法使用哪一种都可以。

2、被动(PASV)模式FTP防火墙配置

如果FTP开启被动(PASV)模式,就需要修改配置文件(vsftpd.conf),指定一个端口范围,然后根据这个端口范围来配置防火墙。

下面是配置文件指定的端口范围

pasv_enable=YES

pasv_min_port=59800

pasv_max_port=59900

  • CentOS6系统iptables的配置

iptables -t filter --line-number -nL INPUT#显示现有防火墙规则,查看是否开启21号端口。

iptables -t filter -I INPUT -p tcp -m tcp --dport 21 -m state --state NEW -j ACCEPT#如没有开启端口,添加规则,开启21号端口。

iptables -t filter -I INPUT -p tcp -m tcp --dport 59800:59900 -m state --state NEW -j ACCEPT#开启被动端口。

service iptables save#保存防火墙设置。

service iptables restart #重启防火墙。

iptables -t filter --line-number -nL INPUT #查看新添加的规则是否成功。

  • RHEL7系统firewalld的配置

方法1—通过添加FTP服务规则,开启防火墙通道。

firewall-cmd --list-services #查看防火墙是否允许FTP服务通过。

firewall-cmd --permanent --zone=public --add-service=ftp #如没有允许FTP服务通过,添加防火墙规则允许其通过。

firewall-cmd --permanent --zone=public --add-port=59800-59900/tcp #开启被动端口。

firewall-cmd --reload #重新加载防火墙。

firewall-cmd --list-all #查看新添加的防火墙规则是否允许FTP服务通过。

方法2—通过添加端口规则,开启防火墙通道。

firewall-cmd --list-ports #查看防火墙是否开启21端口。

firewall-cmd --permanent --zone=public --add-port=21/tcp #如没有开启端口,添加规则,开启21号端口。

firewall-cmd --permanent --zone=public --add-port=59800-59900/tcp #开启被动端口。

firewall-cmd --reload #重新加载防火墙。

firewall-cmd --list-all #查看新添加的规则是否成功。

以上两种方法使用哪一种都可以。

注:在Windows下用ftp命令连接,都是采用主动模式连接,可以采用图形界面的FTP工具软件,默认一般为被动模式。

二、SELinux中关于vsftpd服务的说明

1、vsftp 的 SELinux 的文件类型

SElinux 一共定义了两种文件类型用于设置 vsftp 服务器。

public_content_t

说明:vsftpd服务可以读取的文件和目录,其他服务如 Apache、Samba 和 NFS 也可以,但是 public_content_t 类型的文件不能被写入,即使 Linux 权限允许。

public_content_rw_t

说明:vsftpd服务可以读取和写入的文件和目录,其他服务其他服务如 Apache,Samba 和 NFS 也可以,不过必须开放相关的布尔变量。

2、vsftp 的布尔变量

下面是常用的布尔变量。

allow_ftpd_anon_write

说明:关闭这个布尔变量会阻止 vsftpd 读取 public_content_rw_t 类型的文件和目录。如果允许用户通过 FTP 上传文件。必须开放这个布尔变量。

allow_ftpd_full_access

说明:当开放这个布尔变量时只有 Linux(DAC)的权限来控制访问,通过验证的用户可以读取和写入标记为 public_content_t 或 public_content_rw_t 类型的文件。

allow_ftpd_use_cif

说明:当开放这个布尔变量时 vsftpd 允许 cifs_t 类型的文件和目录,因此这个布尔变量启用,可以让你的 FTP 服务器可以使用 Samba 文件系统。

allow_ftpd_use_nfs vsftpd

说明:当开放这个布尔变量时 vsftpd 允许 nfs_t 类型的文件和目录,因此这个布尔变量启用,可以让你的 FTP 服务器可以使用 NFS 文件系统。

ftp_home_dir

说明:当开放这个布尔变量时认证用户可以读写自己的主目录中的文件。

ftpd_connect_db

说明:当开放这个布尔变量时允许 vsftpd 连接数据库。

httpd_enable_ftp_server

说明:当开放这个布尔变量时容许的 httpd 作为 FTP 服务器,并且监听 FTP 端口。

tftp_anon_write

说明:当开放这个布尔变量时允许 TFTP 访问一个公共的目录。

注:关于SELinux 环境下的 FTP 配置将在实例中加以说明。

三、匿名认证登录FTP配置

匿名方式登录FTP服务器是一种最不安全的认证方式,因为任何人都可以无需密码访问FTP服务器中的数据。但在企业内部局域网中可以通过这种方式共享一些不重要的数据文件(比如软件的共享等)。

vsftpd服务程序安装完成并启动服务后,默认是开启匿名访问的,但只是提供查看和下载文件的权限,如果需要开放匿名用户的上传、创建、删除、更名文件的权限,就需要做一些相应的配置,针对匿名用户放开这些权限会带来潜在的危险,这里为了在Linux系统中练习配置vsftpd服务程序而放开了这些权限,不建议在生产环境中使用匿名登录方式。

1、配置软件环境说明

CentOS6系统:

CentOS release 6.10 (Final)

vsftpd-2.2.2-24.el6.x86_64

RHEL7系统

Red Hat Enterprise Linux Server release 7.6 (Maipo)

vsftpd-3.0.2-25.el7.x86_64

服务器配置要求:

FTP服务采用被动模式运行,并只允许匿名用户登录,匿名用户具有可下载、上传、新建目录(文件)、更名、及删除文件的权限。

2、备份原有配置文件

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

3、修改配置文件(/etc/vsftpd/vsftpd.conf)

说明:此配置文件将一般常用的设置项全部列出,需要用到的时候更改相应的设置即可。

listen_port=21

connect_from_port_20=NO

pasv_enable=YES

pasv_min_port=59800

pasv_max_port=59900

listen=YES

listen_ipv6=NO

max_clients=0

max_per_ip=0

one_process_model=NO

connect_timeout=60

accept_timeout=60

data_connection_timeout=300

idle_session_timeout=300

dirmessage_enable=YES

message_file=.message

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

write_enable=YES

download_enable=YES

tcp_wrappers=YES

userlist_enable=YES

userlist_deny=YES

userlist_file=/etc/vsftpd/user_list

xferlog_enable=YES

xferlog_file=/var/log/xferlog

xferlog_std_format=YES

use_localtime=YES

anonymous_enable=YES

anon_world_readable_only=YES

anon_other_write_enable=YES

anon_mkdir_write_enable=YES

anon_upload_enable=YES

chown_uploads=NO

chown_username=username

no_anon_password=NO

ftp_username=ftp

anon_root=/var/ftp

anon_max_rate=0

anon_umask=077

local_enable=NO

local_umask=022

file_open_mode=0666

local_root=/home/username

local_max_rate=0

user_config_dir=/etc/vsftpd/userconf

pam_service_name=vsftpd

guest_enable=NO

guest_username=ftp

virtual_use_local_privs=NO

user_config_dir=/etc/vsftpd/vuser_config

4、重启vsftp服务

  • CentOS6系统

service vsftpd restart

  • RHEL7系统

systemctl restart vsftpd

5、修改FTP上传目录的所有者

因为匿名用户,使用ftp用户身份来访问FTP服务器,所以需将FTP允许上传文件的目录的所有者更改为ftp。

匿名用户不能直接对FTP根目录进行写操作,只有在下级目录中才可以,所以这里设置可对pub目录进行写操作。

chown -Rf ftp /var/ftp/pub

6、修改SELinux中 vsftp 的布尔变量

CentOS6系统

setsebool -P allow_ftpd_full_access on

RHEL7系统

setsebool -P ftpd_full_access on

上图为CentOS6系统实例

7、验证配置结果

以上是我在学习Linux系统中整理的一些学习要点,肯定会有不对的地方,希望各位大侠给与指正,我们共同学习!谢谢!

下篇:Linux服务器配置-VSFTP服务配置(四)

通过实例说明如何配置本地用户登录FTP服务器。

iptables 配置后连接不上数据库_Linux服务器配置-VSFTP服务配置(三)相关推荐

  1. mysql8.0版本的服务器名称_Linux服务器配置-VSFTP服务配置(六)

    上文:Linux服务器配置-VSFTP服务配置(五) 上文中已经介绍了使用数据库文件方式配置虚拟用户认证登录FTP服务器,这篇文件将介绍通过数据库方式(vsftpd服务+pam_mysql+MySQL ...

  2. centos6配置mysql远程访问_Linux服务器配置-VSFTP服务配置(六)

    上文:Linux服务器配置-VSFTP服务配置(五) 上文中已经介绍了使用数据库文件方式配置虚拟用户认证登录FTP服务器,这篇文件将介绍通过数据库方式(vsftpd服务+pam_mysql+MySQL ...

  3. iptables 配置后连接不上数据库_CentOs中iptables配置允许mysql远程访问

    在CentOS系统中防火墙默认是阻止3306端口的,我们要是想访问mysql数据库,我们需要这个端口,命令如下: 1 /sbin/iptables -I INPUT -p tcp --dport 30 ...

  4. linux搭建完redis集群后连接不上,大师网-CentOS7 64位配置Redis集群错误处理(1)

    0.环境介绍 Linux采用CentOS7 64位 主节点: 192.168.25.137:7000 192.168.25.138:7000 192.168.25.139:7000 从节点 192.1 ...

  5. 关于修改密码后,远程服务器项目连接不上数据库的处理办法

    有次去修改了mysql普通用户的密码,结果导致项目连接不上数据库.后来在linux系统将密码改回来了,还是登录不上.后来把远程服务器上管理数据库的类文件下载下来,用反编译软件编译成java文件一看,果 ...

  6. 【DBA之路】关于连接不上数据库

    无法连接到数据库实例: ORA-12505: TNS:listener does not currently know of SID given in connect descriptor (DBD ...

  7. spss连接mysql_spssstatistics19.0配置odbc连接远程oracle数据库

    本文档讲的是spss statistics 19.0如何配置odbc连接本地oracle数据库,步骤如下: 1.开启远程oracle数据库服务,开启以下两个即可 2.在本地客户端中,安装好oracle ...

  8. linux安装后连接不上网络

    linux安装后连接不上网络 linux最小版安装后 ping www.baidu.com 结果显示notknow 解决办法: 1.可能ip地址和网关dns没配置 2.可能windows系统有两个服务 ...

  9. spss statistics 19.0配置odbc连接远程oracle数据库

    本文档讲的是spss statistics 19.0如何配置odbc连接本地oracle数据库,步骤如下: 1.开启远程oracle数据库服务,开启以下两个即可 2.在本地客户端中,安装好oracle ...

最新文章

  1. 今天是第一次开博客,for--futurechild!!!
  2. windows server 2003 域控制器重命名
  3. python easygui_极客养成记/Python一点也不难/第四节
  4. 是否是工作日和节假日判定
  5. 追踪源码自定义负载均衡策略
  6. 工作思想的转变_转变成以员工为中心的工作场所的3个技巧
  7. hadoop安装单机配置
  8. 20170724 Airflow官网资料学习
  9. Atitit 培训之道 attilax著 1. 概念 培训就是及教育 1 1.1. 知识体系化 2 1.2. 组织架构 2 1.3. 人员架构 梯队化培训 2 2. 培训目标,尽可能与项目相关技术点
  10. FPGA(二)---38译码器
  11. c语言运算优先级口诀简单,C语言运算符优先级和口诀
  12. 机器学习——概率模型
  13. 什么是IAST(交互式应用安全测试)?
  14. Redis zset 底层数据结构之跳表
  15. 华三虚拟机服务器型号,03-虚拟机配置
  16. 自己收藏的两款夹娃娃PHP源码
  17. 2018-7-16 2-1 分别由signed 和unsigned 限定的 char,short,int,long类型变量的取值范围
  18. 父子进程终止顺序与僵死进程
  19. Java泛型方法的定义
  20. WorkFlow学习分享:WFGOTask线

热门文章

  1. pandas中inplace_pandas回顾小结(二)
  2. 比亚迪定薪后多久给offer_比亚迪车主给爱车做四门隔音,没想到两年后肠子都悔青...
  3. 中装订线位置_企业宣传画册、产品目录常用的装订方法
  4. matlab三维选取二维,基于Matlab绘制二维和三维图形以及其他图形控制函数的使用方法...
  5. 计算机动画专业要学什么课程,计算机动画制作专业主要课程有哪些?
  6. HTML中直接写js 函数
  7. Docverter – 文本文件轻松转换为 PDF,Docx 和 ePub 文件
  8. 关于导入oracle10g的数据到sqlserver2005里的方案总结
  9. DBMS-数据库设计与E-R模型:E-R模型、约束、E-R图、E-R扩展特性、E-R图转换为关系模式、UML建模...
  10. maven 配置 pom.xml 打包生成:单jar包/jar包+lib目录