CentOS上搭建FTP伺服器

2021-06-03 02:13:26 字數 3790 閱讀 3878

本文參考了網上的幾篇博文,在centos上搭建ftp伺服器,兩種搭建方式:gssftp與vsftpd。

redhat和centos都自帶了乙個gssftp服務,使用方式如下:

1 進入gssftp目錄

[root@linux local]# cd /etc/xinetd.d

[root@linux xinetd.d]# ls

chargen cups-lpd daytime-udp echo-udp gssftp krb5-telnet rsync time-udp

chargen-udp daytime echo eklogin klogin kshell time 

[root@linux xinetd.d]# vi gssftp

# default: off

# description: the kerberized ftp server accepts ftp connections \

# that can be authenticated with kerberos 5.

service ftp

3重啟xinetd服務:

[root@linux xinetd.d]# service xinetd restart

stopping xinetd: [ ok ]

starting xinetd: [ ok ]

這時檢視21埠已經開啟:

[root@linux xinetd.d]# netstat -tnlp

active internet connections (only servers)

proto recv-q send-q local address foreign address state pid/program name

tcp 0 0 0.0.0.0:21 0.0.0.0:* listen 22543/xinetd

4 如果防火牆沒有開啟埠,則開放21埠並重啟防火牆服務:

[root@linux xinetd.d]# vi /etc/sysconfig/iptables

[root@linux xinetd.d]# service iptables restart

flushing firewall rules: [ ok ]

setting chains to policy accept: filter [ ok ]

unloading iptables modules: [ ok ]

5 使用者登入

到這裡ftp服務就可用了,可以使用linux系統使用者登入或者其他使用者登入。gssftp不能指定共享目錄,僅供內部測試使用,便捷的ftp服務需要利用vsftp來搭建。

vsftpd安裝配置

1.安裝vsftpd

一般在centos上都自動安裝了vsftd,若沒有安裝則可以使用以下步驟進行安裝: 

yum -y install vsftpd

touch /var/log/vsftpd.log # 建立vsftp的日誌檔案

在centos中,這樣就可以完成了乙個簡單的匿名ftp的搭建。你可以通過訪問ftp://yourip來進行,不過這個ftp沒有任何許可權。

2.基於匿名的ftp架設

3.基於虛擬使用者的ftp架設

所謂虛擬使用者就是沒有使用真實的帳戶,只是通過某種手段達到對映帳戶和設定許可權的目的。

1)我們在/etc/vsftpd/vsftpd.conf中做如下centos ftp服務配置:

anonymous_enable=no 設定不允許匿名訪問

local_enable=yes 設定本地使用者可以訪問。注:如使用虛擬宿主使用者,在該專案設定為no的情況下所有虛擬使用者將無法訪問。

chroot_list_enable=yes 使使用者不能離開主目錄

xferlog_file=/var/log/vsftpd.log 設定vsftpd的服務日誌儲存路徑。注意,該檔案預設不存在。必須要手動touch出來

ascii_upload_enable=yes

pam_service_name=vsftpd pam認證檔名。pam將根據/etc/pam.d/vsftpd進行認證

以下這些是關於vsftpd虛擬使用者支援的重要centos ftp服務配置專案。預設vsftpd.conf中不包含這些設定專案,需要自己手動新增centos ftp服務配置。 

guest_enable=yes 設定啟用虛擬使用者功能。

guest_username=ftp 指定虛擬使用者的宿主使用者。-centos中已經有內建的ftp使用者了

user_config_dir=/etc/vsftpd/vuser_conf 設定虛擬使用者個人vsftp的centos ftp服務檔案存放路徑。存放虛擬使用者個性的centos ftp服務檔案(配置檔名=虛擬使用者名稱)

2)建立chroot list,將使用者ftp加入其中: 

touch /etc/vsftpd/chroot_list

echo ftp >> /etc/vsftpd/chroot_list

3)進行認證: 

首先,安裝berkeley db工具,很多人找不到db_load的問題就是沒有安裝這個包。

yum install db4 db4-utils

然後,建立使用者密碼文字/etc/vsftpd/vuser_passwd.txt ,注意奇行是使用者名稱,偶行是密碼

ftpuser1

ftppass1

ftpuser2

ftppass2

接著,.生成虛擬使用者認證的db檔案

db_load -t -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

隨後,編輯認證檔案/etc/pam.d/vsftpd,全部注釋掉原來語句

再增加以下兩句

auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd

account required pam_userdb.so db=/etc/vsftpd/vuser_passwd

最後,建立虛擬使用者個性centos ftp服務檔案

mkdir /etc/vsftpd/vuser_conf/

vi /etc/vsftpd/vuser_conf/ftpuser1

內容如下:

local_root=/opt/var/ftp1 虛擬使用者的根目錄(根據實際修改)

write_enable=yes 可寫

anon_umask=022 掩碼

anon_world_readable_only=no 

anon_upload_enable=yes 

anon_mkdir_write_enable=yes

anon_other_write_enable=yes

4.啟動vsftp伺服器 

mkdir /opt/var/ftp/ftpuser1

chmod 777 /opt/var/ftp/ftpuser1

service vsftpd start

troubleshootings:

1.553 could not create file

一般都是selinux的問題,設定selinux的乙個值,重啟伺服器即可。

setsebool -p ftpd_disable_trans 1 

service vsftpd restart

2.500 oops: bad bool value in config file for: write_enable

注意你的centos ftp服務檔案中保證每一行最後沒有任何空格,一般出錯就是在多餘的空格上。

注:後半部分待測試。

centos搭建ftp伺服器

yum install y vsftpd 新增ftp使用者並設定ftp使用者密碼 下面是新增ftpuser使用者,設定根目錄為 home wwwroot ftpuser,禁止此使用者登入ssh的許可權,並限制其訪問其它目錄。1 修改 etc vsftpd vsftpd.conf,將底下三行 chro...

Centos7上搭建ftp伺服器

ftp伺服器搭建 1.安裝好centos系統,配好yum倉庫 2.安裝vsftpd元件,restart,enable,status操作,並用netstat nltp grep 21檢視21埠是否開啟3.改配置檔案 etc vsftpd vsftpd.conf,之後重啟服務 禁用 12 yes 改為n...

linux上FTP伺服器搭建

一 啟動vsftpd服務 1 啟動vsftp伺服器 a.cenos下執行 yum install vsftpd b.登入linux主機後,執行命令 service vsftpd start c.要讓ftp每次開機自動啟動,執行命令 chkconfig level 35 vsftpd on 二 設定f...