centos开启ftp-含防火墙开启放行服务(不同于端口)

原文:https://blog.csdn.net/zz_aiytag/article/details/107451720

推荐文章:https://www.cnblogs.com/fan-yuan/p/11347943.html    ( 修改配置 root登陆)

提醒:链接的时候选择 sftp  不是 ftp   端口默认21 可以修改

文章目录

 

环境与需求

安装

首先检查系统是不是已经有了ftp服务

[root@worker opt]# rpm -qa | grep vsftpd

我这里没有安装,直接安装

[root@worker opt]#  yum -y install vsftpd
  •  

创建ftp用户

创建用户

# useradd -s 是指定用户登入后所使用的shell。默认值为/bin/bash
# 这里指定/sbin/nologin是不允许系统login,可以使用其他ftp等服务
# -d 是指定用户登入时的主目录
# 这个ftpuser01目录不要手动创建,否则还需要修改权限,在下面指令执行后会自动创建对应目录
[root@worker opt]# useradd -s /sbin/nologin -d /home/ftpuser01 ftpuser01

查看用户

[root@worker opt]# cat /etc/passwd
ftpuser01:x:1001:1001::/home/ftpuser01:/sbin/nologin

设置用户密码

[root@worker opt]# passwd ftpuser01
Changing password for user ftpuser01.
New password: # 我这里输入的是123456
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.

修改配置文件

编辑/etc/vsftpd/vsftpd.conf文件

[root@worker opt]# vim /etc/vsftpd/vsftpd.conf
# 是否允许匿名用户登录,改成NO
anonymous_enable=NO
# 所有的用户只能在自己的目录范围内活动
chroot_list_enable=NO
chroot_local_user=YES
#不增加此行参数,登录时会出现用户身份验证失败
allow_writeable_chroot=YES 
# 如果配置了上面一行仍然出现用户身份验证失败的问题,则有可能是selinux问题了
# 可以临时关闭selinux测试一下
# setenforce 0
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

以下核心参数按照默认即可

local_enable=YES
write_enable=YES
local_umask=022
pam_service_name=vsftpd
connect_from_port_20=YES

先暂时修改上述参数,保存退出,重启vsftpd服务

[root@worker opt]# systemctl restart vsftpd
[root@worker opt]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2020-07-19 22:01:03 CST; 6s ago
  Process: 1152 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
 Main PID: 1153 (vsftpd)
   CGroup: /system.slice/vsftpd.service
           └─1153 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

我这里使用xftp登录
在这里插入图片描述
登录后只显示根目录,然后在根目录创建一个文件夹,在LINUX中查看该文件夹,可知根目录就是用户的活动空间。

[root@worker opt]# cd /home/ftpuser01/
[root@worker ftpuser01]# ll
total 0
drwxr-xr-x 2 ftpuser01 ftpuser01 6 Jul 19 22:12 testpath

启用日志功能

以下日志默认是开启的,不用管,直接查看/var/log/xferlog即可

xferlog_enable=YES
xferlog_std_format=YES 
xferlog_file=/var/log/xferlog

看了很多博客,说vsftpd本身有自己风格的日志,需要配置以下

dual_log_enable=YES 
vsftpd_log_file=/var/log/vsftpd.log

但是我配了之后,启动vsftpd失败,说参数有问题,先暂时不处理

[root@worker log]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Sun 2020-07-19 22:26:31 CST; 54s ago
  Process: 1220 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=2)
 Main PID: 1183 (code=killed, signal=TERM)

Jul 19 22:26:31 worker.learn.bigdata systemd[1]: Starting Vsftpd ftp daemon...
Jul 19 22:26:31 worker.learn.bigdata vsftpd[1220]: 500 OOPS: bad bool value in config file for: dual_log_enable
Jul 19 22:26:31 worker.learn.bigdata systemd[1]: vsftpd.service: control process exited, code=exited status=2
Jul 19 22:26:31 worker.learn.bigdata systemd[1]: Failed to start Vsftpd ftp daemon.
Jul 19 22:26:31 worker.learn.bigdata systemd[1]: Unit vsftpd.service entered failed state.
Jul 19 22:26:31 worker.learn.bigdata systemd[1]: vsftpd.service failed.
  •  

安全设置

# 用户空闲超时,单位秒
idle_session_timeout=600
# 数据连接空闲超时,单位秒
data_connection_timeout=120
# 将客户端空闲1分钟后断开
accept_timeout=60
# 本地用户传输速率,单位bite
local_max_rate=100000
# FTP的最大连接数
max_clients=200
# 每IP的最大连接数
max_per_ip=10
  •  

被动模式设置

# 是否开户被动模式
pasv_enable=YES
# 被动模式最小端口
pasv_min_port=30000
# 被动模式最大端口
pasv_max_port=30999
  •  

防火墙开启状态设置

文章中以上操作都是防火墙关闭状态下进行的,当防火墙开启时,会出现如下一系列的问题。
查看防火墙状态

[root@manager services]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2020-07-22 10:14:35 CST; 35min ago
     Docs: man:firewalld(1)
 Main PID: 561 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─561 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

防火墙开启状态下,使用ftp工具连接时出现无法连接的情况。
在这里插入图片描述
不关闭防火墙,只能对防火墙的规则进行修改。
firewalldiptables不太一样,firewalld可以直接对服务进行策略设置。

[root@manager firewalld]# cd /usr/lib/firewalld
[root@manager firewalld]# ll
total 16
drwxr-xr-x. 2 root root  203 Jul 16 09:21 helpers
drwxr-xr-x. 2 root root 4096 Jul 16 09:21 icmptypes
drwxr-xr-x. 2 root root   20 Jul 16 09:21 ipsets
drwxr-xr-x. 2 root root 8192 Jul 22 10:44 services
drwxr-xr-x. 2 root root   94 Jul 16 09:21 xmlschema
drwxr-xr-x. 2 root root  163 Jul 16 09:21 zones

查看firewalld自带的服务,在services目录下有自带的ftp.xml文件,它已经定义好了21端口。

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>FTP</short>
  <description>FTP is a protocol used for remote file transfer. If you plan to make your FTP server publicly available, enable this option. You need the vsftpd package installed for this option to be useful.</description>
  <port protocol="tcp" port="21"/>
  <module name="nf_conntrack_ftp"/>
</service>

使用firewall-cmd工具直接将ftp服务放入通行名单
先查看firewall-cmd工具版本

[root@manager services]# firewall-cmd --version
0.4.4.4

查看当前活动区域

[root@manager services]# firewall-cmd --get-active-zones
public
  interfaces: ens33

查看当前区域的服务

[root@manager services]# firewall-cmd --list-service
ssh dhcpv6-client

开放ftp服务

# 暂时开放
[root@manager services]# firewall-cmd --add-service=ftp
success
# 永久开放
[root@manager services]# firewall-cmd --add-service=ftp --permanent
success
# 永久关闭
[root@manager services]# firewall-cmd --remove-service=ftp --permanent
success
# 任何改动操作都需要重新加载
[root@manager services]# firewall-cmd --reload
success

执行完永久开放和重新加载后,再次查看服务

[root@manager services]# firewall-cmd --list-service
ssh dhcpv6-client ftp

再次登录就能正常登录了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值