大家好,今天來給大家分享一個基於centos 7的ftp服務器搭建
實現功能:匿名訪問,本地登錄
查看系統版本:
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
查看本地ip地址
[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.5 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 240e:3a2:743:df40:bb08:8c86:f745:edd4 prefixlen 64 scopeid 0x0<global>
inet6 fe80::617f:ef93:80d4:e14e prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:87:af:a6 txqueuelen 1000 (Ethernet)
RX packets 50282 bytes 3247879 (3.0 MiB)
RX errors 0 dropped 922 overruns 0 frame 0
TX packets 6542 bytes 8519343 (8.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
我們連一下xshell (遠程控制終端)
[C:\~]$ ssh 192.168.1.5
Connecting to 192.168.1.5:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
Last login: Sat Oct 23 11:15:44 2021 from 192.168.1.2
[root@localhost ~]#
測試網絡:
[root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com (180.101.49.11) 56(84) bytes of data.
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=1 ttl=54 time=10.0 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=2 ttl=54 time=9.79 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=3 ttl=54 time=7.52 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=4 ttl=54 time=8.06 ms
^C
--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 22033ms
rtt min/avg/max/mdev = 7.523/8.862/10.065/1.094 ms
這樣的話,我們的服務器就可以上網了 (可使用網絡yum源)
接下來我們安裝vsftpd服務程序
[root@localhost ~]# yum install vsftpd.x86_64 -y
進入vsftpd主目錄
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# ls
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
[root@localhost vsftpd]#
將主配置文件內容當中#全部去掉
[root@localhost vsftpd]# cat vsftpd.conf |grep -v "#"
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
這些是有效地配置文件,我們需要對它進行改動
對主配置文件改名為vsftpd.conf.bak
[root@localhost vsftpd]# mv vsftpd.conf vsftpd.conf.bak
查看
[root@localhost vsftpd]# ls
ftpusers user_list vsftpd.conf.bak vsftpd_conf_migrate.sh
將vsftpd.conf.bak的#號過濾掉,將這個結果過濾到vsftp.conf
[root@localhost vsftpd]# cat vsftpd.conf.bak |grep -v "#" >vsftpd.conf
編輯vsftpd 主配置文件
[root@localhost vsftpd]# vim vsftpd.conf
anon_umask=022
anon_update_enable=YES
anon_nkdir_write_enable=YES
anon_other_write_enable=YES //將這四行的配置文件加入vsftpd.conf,(實現匿名訪問)
如下
anonymous_enable=YES
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
:wq
保存退出
重啟ftp服務器:
[root@localhost vsftpd]# systemctl restart vsftpd
[root@localhost vsftpd]# systemctl enable vsftpd.service //設置開機自啟動
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@localhost vsftpd]#
[root@localhost vsftpd]# systemctl stop firewalld //關閉防火牆
本地測試,顯示vsftpd服務器正常
[root@localhost vsftpd]# cd /var/ftp/
[root@localhost ftp]# ls
pub(本來就有的文件)
[root@localhost ftp]#
[root@localhost ftp]# touch 123.txt //創建文件123.txt
[root@localhost ftp]#
創建文件報錯,(權限不夠)
[root@localhost ftp]# chmod 777 pub/ //加權限
匿名用戶訪問成功
開始做本地用戶
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf //編輯配置文件
anonymous_enable=YES
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES //這是我們剛剛編輯的配置文件
按箭頭去修改
改成:
或者注釋掉這四行也是一樣的效果:
anonymous_enable=NO
#anon_umask=022
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
#anon_other_write_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
編輯這個文件
[root@localhost vsftpd]# vim ftpusers
# Users that are not allowed to login via ftp
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
根據具體要求,刪掉你想登錄FTP服務的本地用戶。
例如,刪掉root。
# Users that are not allowed to login via ftp
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
~
[root@localhost vsftpd]# systemctl restart vsftpd //重啟vsftpd 服務
實驗成功。測試的時候,既可以用windows的文件搜索,也可以用第三方工具