记录一次centos7服务器开启ftp服务及授权过程

本文详细介绍了在Linux环境下部署VSFTPD服务器的过程,包括关闭防火墙、SELINUX,安装及配置VSFTPD,设置虚拟用户,调整权限,以及创建软连接等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 关闭防火墙

[root@localhost ~]#systemctl stop firewalld.service #关闭防火墙

[root@localhost ~]#systemctl disable firewalld.service #禁止防火墙开机启动

  1. 如果考虑安全问题不想关闭防火墙,再次可安装iptables防火墙

[root@localhost ~]#yum install iptables-service #安装iptable防火墙

[root@localhost ~]#vim /etc/sysconfig/iptables #编辑iptables防火墙配置文件

-# Firewall configuration written by system-config-firewall

Manual customization of this file is not recommended.

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-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 10060:10090 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
说明:21端口是ftp服务端口;10060到10090是Vsftpd被动模式需要的端口,可自定义一段大于1024的tcp端口。

[root@localhost ~]#systemctl restartiptables.service #重启防火墙使配置生效

[root@localhost ~]#systemctl enableiptables.service #使防火墙开机启动

  1. 关闭SELINUX

在这里说一下为什么关闭SELINUX,因为麻烦!!!

[root@localhost ~]#vim /etc/selinux/config #修改selinux配置文件

#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
[root@localhost ~]#sentenforce 0 #使配置立即生效

  1. 安装vsftpd

[root@localhost ~]#vsftpd –v #查看系统里面是否有ftp服务

[root@localhost ~]#yum install –y csftpd #安装vsftpd

[root@localhost ~]#yum install -y psmiscnet-tools systemd-devel libdb-devel perl-DBI

#安装vsftpd虚拟用户配置依包

[root@localhost ~]#systemctl start vsftpd.service #启动

[root@localhost ~]#systemctl enable vsftpd.service #设置vsftpd开机启动

  1. 匹配vsftp服务器

[root@localhost ~]#cp /etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf_bak #备份默认配置文件

执行下面命令进行设置

sed -i"s/anonymous_enable=YES/anonymous_enable=NO/g"’/etc/vsftpd/vsftpd.conf’

sed -i"s/#anon_upload_enable=YES/anon_upload_enable=NO/g"’/etc/vsftpd/vsftpd.conf’

sed -i “s/#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=YES/g”’/etc/vsftpd/vsftpd.conf’

sed -i"s/#chown_uploads=YES/chown_uploads=NO/g" ‘/etc/vsftpd/vsftpd.conf’

sed -i “s/#async_abor_enable=YES/async_abor_enable=YES/g”’/etc/vsftpd/vsftpd.conf’

sed -i"s/#ascii_upload_enable=YES/ascii_upload_enable=YES/g"’/etc/vsftpd/vsftpd.conf’

sed -i"s/#ascii_download_enable=YES/ascii_download_enable=YES/g"’/etc/vsftpd/vsftpd.conf’

sed -i"s/#ftpd_banner=Welcome to blah FTP service./ftpd_banner=Welcome to FTPservice./g" ‘/etc/vsftpd/vsftpd.conf’

echo -e"use_localtime=YES\nlisten_port=21\nchroot_local_user=YES\nidle_session_timeout=300

\ndata_connection_timeout=1\nguest_enable=YES\nguest_username=ftp

\nuser_config_dir=/etc/vsftpd/vconf\nvirtual_use_local_privs=YES

\npasv_min_port=10060\npasv_max_port=10090

\naccept_timeout=5\nconnect_timeout=1">> /etc/vsftpd/vsftpd.conf

在此注意标红的字段,nguest_username=ftp是等会我们需要新建的一个系统用户,在这里先可以将名称命名,也可先创建用户,在执行匹配服务器的操作

  1. 建立虚拟用户名单

[root@localhost ~]#touch /etc/vcftpd/virt_users

编辑虚拟用户名单文件:(第一行账号,第二行密码,注意:不能使用root做用户名,系统保留)先新建两个虚拟用户

[root@localhost ~]#vim /etc/vcftpd/virt_users

user1

123456

user2

123456

  1. 生成虚拟用户数据文件

[root@localhost ~]#db_load -T -t hash -f/etc/vsftpd/virt_users /etc/vsftpd/virt_users.db

[root@localhost ~]#chmod 600 /etc/vsftpd/virtusers.db #设定PAM验证文件,并指定对虚拟用户数据库文件进行读取

  1. 在 /etc/pam.d/vsftpd 的文件头部加入一下信息

[root@localhost ~]#cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd_bak #修改前先备份

[root@localhost ~]#vim /etc/pam.d/vsftpd #修改文件内容,将下面两句加在vsftpd文件的头部,加载后面会无效

#%PAM-1.0

auth sufficient/lib64/security/pam_userdb.so db=/etc/vsftpd/virt_users

account sufficient/lib64/security/pam_userdb.so db=/etc/vsftpd/virt_users

#上面两句是新加的

注意:如果系统为32位,上面改为lib,否则配置失败

session optional pam_keyinit.so force revoke

auth required pam_listfile.soitem=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

auth required pam_shells.so

auth include password-auth

account include password-auth

session required pam_loginuid.so

session include password-auth

  1. 新建系统用户 ftp , 用户目录为/home/FTPpath, 用户登录终端设为/bin/false(即使之不能登录系统)

[root@localhost ~]#useradd ftp –d /home/FTPpath –s /bin/false

[root@localhost ~]#chown ftp:ftp/home/FTPpath –R

  1. 建立虚拟用户个人vsftp的配置文件

[root@localhost ~]#mkdir /etc/vsftpd/vconf

[root@localhost ~]#cd /etc/vsftpd/vconf

[root@localhost ~]#touch user1 user2 #创建两个虚拟用户的配置文件

[root@localhost ~]#mkdir –p/home/FTPpath/file #新建ftp数据传输并有用户权限的文件夹

[root@localhost ~]#mkdir -p /home/FTPpath/soft

[root@localhost ~]#vim user1

local_root=/home/FTPpath/file
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
allow_writeable_chroot=YES
[root@localhost ~]#vim user2

local_root=/home/FTPpath/soft
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
allow_writeable_chroot=YES

  1. 最后重启vsftpd服务器

[root@localhost ~]#systemctl restart vsftpd.service

注意:

Vsftpd的服务器部署安装已经完成,但是在上传和下载可能 会出现权限不够的情况,导致不能下载和上传文件

将要上传到服务器上的文件夹的权限改为777,如

[root@localhost ~]#chmod-R 777 /home/FTPpath

软连接也是很有用的一个命令, 它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,

1.软链接:

建立软链接:ln -s/usr/local/node-v4.2.6-linux-x86/bin/node /usr/local/bin/node

解释:将/usr/local/node-v4.2.6-linux-x86/bin/下的node映射到/usr/local/bin/下的node

删除软链接:rm -rf/usr/local/bin/node

例如: [root@localhost~]#ln -s /home/apache-tomcat-7.0.59-x64/webapps/project/ /home/FTPpath/tangyong

将project文件中内容软连接到tangyong文件中,

删除软连接切记最后不可加 ”/” 否则会将文件夹删除

原文链接:https://blog.youkuaiyun.com/shaun17/article/details/79371252

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mr xk_f

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值