本文參考了網上的幾篇博文,在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...