centos7 ftp服务器搭建_CentOS7下搭建vsftpd服务器(本地用户模式)

04002178c1d253678f60b50a340e20bf.png

​CentOS7下搭建vsftpd服务器(本地用户模式)

1、首先yum方式安装vsftpd

yum install vsftpd

ed234d93b0405235ee52c53815b5dbb0.png
f1b62b351cdef482540ed8738ccadfcc.png

2、修改vsftpd.conf配置文件

cd /etc/vsftpd/

cp vsftpd.conf vsftpd.conf_default

#修改下列参数的值

anonymous_enable=NO #禁止匿名登录FTP服务器

local_enable=YES #允许本地用户登录FTP服务器

listen=YES #监听IPv4 sockets

#listen_ipv6=YES #关闭监听IPv6 sockets或者改为NO

chroot_local_user=YES #全部用户被限制在主目录

chroot_list_enable=YES #启用例外用户名单

chroot_list_file=/etc/vsftpd/chroot_list #指定例外用户列表文件,列表中用户不被锁定在主目录

allow_writeable_chroot=YES

以上配置可以直接用下面命令进行替换修改

sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf

sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf

sed -i 's/listen_ipv6=YES/listen_ipv6=NO/' /etc/vsftpd/vsftpd.conf

sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf

sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf

sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf

echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf

b1fd33bd03affa84fa76a178a1ee903d.png

3、创建ftp用户 例如yuanfan

useradd -d /data/FTP -s /sbin/nologin yuanfan

passwd yuanfan

并设置密码

030ff67548a56670b271477589262027.png

4、启动vsftpd服务,并设置开机自启动

systemctl enable vsftpd

systemctl start vsftpd

8cd7de3402aa9ea677a4e1f718175d51.png

若有防火墙,需要防火墙添加ftp服务

5、客户端登录测试

ftp 172.16.30.200

d7cd0b6143d5af505e0d57ced7fff7c5.png

输入正确的用户名密码提示530错误

解决办法vi /etc/pam.d/vsftpd

注释掉这一行

#auth required pam_shells.so

然后重启vsftpd服务

5b1dc34c4564d66acbb1ec8e9443ac49.png
0fa159ae8ae780d6af690fea3a86bcce.png

这时再进行登录提示

e436a92d34e1b57889c5cc10739c5c7c.png

再手动在/etc/vsftpd/目录下创建一下chroot_list文件即可

touch /etc/vsftpd/chroot_list后重新登录,可以正常登录了

5063b75ccbba13f6c72c718bce3b9e22.png
6370aa5ca9b4c886444c0d7f052e1185.png

在FTP服务器上可以下客户端上传上来的文件

1e3ebb3d4dfd7316d7d29a09e23727dc.png

6、要实现用户能够切换用户家目录

在FTP服务器这边将用户加到/etc/vsftpd/chroot_list文件中

可以man vsftpd.conf查看chroot_list帮助说明

44117cfc36b9b03b249458fe6d75be98.png

echo yuanfan > /etc/vsftpd/chroot_list然后重启vsftpd服务

如下图所示,就可以切换家目录了(可以看出用户切换家目录风险较高)

bd4fe9d9385be0edc187092ded32919c.png

7、被动模式限定端口

echo "pasv_enable=YES">> /etc/vsftpd/vsftpd.conf

echo "pasv_min_port=30001">> /etc/vsftpd/vsftpd.conf

echo "pasv_max_port=30010">> /etc/vsftpd/vsftpd.conf

97e5a69fb883cec168d0fa5b860a5d83.png

抓包分析可以看到传输端口已经被限制在30001-30010端口范围内

9600dc42bd1e7926e9afb690b4459ec8.png

另外ftp登录过程是明文传输的,抓包可以看到用户名与密码

8、设置成主动模式

删除上一步中被动模式添加的配置,改成主动模式的配置

pasv_enable=NO

port_enable=YES

connect_from_port_20=YES(默认有一行)

88f62a97c96e086510929b5d68d85e42.png

服务端要开放20端口

firewall-cmd --add-port=20/tcp --permanent

firewall-cmd --reload

如下图所示Linux客户端使用主动模式需要关闭防火墙

passive命令切换成主动模式

c2ed6dbeb53648935eff5eabb1e04ad0.png
abf0d73332fe1a13519d6557dc6e65a8.png

抓包可以看到传输端口为20

9、安全加固

1)禁止显示 banner 信息

#ftpd_banner=Welcome to blah FTP service.

取消注释,进行修改即可

2)限制 FTP 登录用户

在 ftpusers 和 user_list 文件中列举的用户都是不允许访问 FTP 服务的用户(例如 root、bin、daemon 等用户)。除了需要登录 FTP 的用户外,其余用户都应该添加至此拒绝列表中

3)修改监听地址和默认端口

修改 VSFTP 配置文件 vsftpd.conf,设置监听 1.1.1.1 地址的2121 端口

listen_address=1.1.1.1

isten_port=2121

55b4a0bd5e3b5b4be9d59dd50374685c.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值