linux(centos6)搭建ftp服務器

 

前提

ssh服務已經開啓,關閉防火牆,主機和虛擬機能ping通linux

查看ssh和防火牆的狀態windows

service sshd status服務器

service iptables statusssh

開啓ssh服務tcp

service sshd startide

關閉防火牆性能

chkconfig iptables off測試

測試主機和虛擬機的連通性spa

ping 192.168.2.129rest

安裝並開啓tftp和vsftpd

[root@localhost ~]# yum install tftp

[root@localhost ~]# yum install vsftpd

[root@localhost ~]# chkconfig vsftpd on

[root@localhost ~]# chkconfig tftp on

啓動vsftpd 服務

service vsftpd start

查看vsftpd 的啓動狀態

service vsftpd status 

打開21和20端口

[root@localhost ~]# /sbin/iptables -I INPUT -p tcp --dport 21 -j ACCEPT

[root@localhost ~]# /sbin/iptables -I INPUT -p tcp --dport 20 -j ACCEPT

[root@localhost ~]# /etc/rc.d/init.d/iptables save

添加ftp用戶

[root@localhost vsftpd]# useradd ftpuser

[root@localhost vsftpd]# passwd ftpuser

修改sftpd .conf配置文件

[root@localhost vsftpd]#vi /etc/vsftpd/vsftpd.conf

把第一行的 anonymous_enable=YES ,改成NO

注:

vsftpd的配置,配置文件中限定了vsftpd用戶鏈接控制配置。
vsftpd.ftpusers:位於/etc目錄下。它指定了哪些用戶帳戶不能訪問FTP服務器,例如root等。
vsftpd.user_list:位於/etc目錄下。該文件裏的用戶帳戶在默認狀況下也不能訪問FTP服務器,僅當vsftpd .conf配置文件裏啓用userlist_enable=NO選項時才容許訪問。
vsftpd.conf:位於/etc/vsftpd目錄下。來自定義用戶登陸控制、用戶權限控制、超時設置、服務器功能選項、服務器性能選項、服務器響應消息等FTP服務器的配置。以下

[root@Mclass vsftpd]# cat ftpusers

# Users that are not allowed to login via ftp

root

[root@Mclass vsftpd]#

重啓vstfpd 服務

[root@localhost upload]# service vsftpd restart

windows cmd測試連接

C:\Users\Administrator>ftp 192.168.1.112

鏈接到 192.168.1.112。

220 (vsFTPd 2.2.2)

用戶(192.168.1.112:(none)): ftpuser

331 Please specify the password.

密碼:

500 OOPS: cannot change directory:/home/ftpuser

登陸失敗。

ftp> bye

能夠看到報了個錯誤:500 OOPS: cannot change directory:/home/ftpuser。緣由是CentOS系統安裝了SELinux,由於默認下是沒有開啓FTP的支持,因此訪問時都被阻止了。查看以下:

[root@localhost vsftpd]# getsebool -a | grep ftp

allow_ftpd_anon_write --> off

allow_ftpd_full_access --> off

allow_ftpd_use_cifs --> off

allow_ftpd_use_nfs --> off

ftp_home_dir --> off

ftpd_connect_db --> off

httpd_enable_ftp_server --> off

tftp_anon_write --> off

[root@localhost vsftpd]#

只要把allow_ftpd_full_access --> off,ftp_home_dir --> off改成on就能夠了。

[root@localhost vsftpd]# setsebool ftp_home_dir 1

[root@localhost vsftpd]# setsebool allow_ftpd_full_access 1

開啓SELinux

如執行getsebool -a | grep ftp出現getsebool: SELinux is disabled的錯誤,需從新開啓selinux

vi /etc/selinux/config

更改成:SELINUX=enabled

必須重啓linux,不重啓是沒辦法馬上開啓selinux的

重啓完之後,就可使用getsebool -a | grep ftp命令了

再次查看

[root@localhost vsftpd]# getsebool -a | grep ftp

allow_ftpd_anon_write --> off

allow_ftpd_full_access --> on

allow_ftpd_use_cifs --> off

allow_ftpd_use_nfs --> off

ftp_home_dir --> on

ftpd_connect_db --> off

httpd_enable_ftp_server --> off

tftp_anon_write --> off

 

再次測試鏈接

C:\Users\Administrator>ftp 192.168.1.112

鏈接到 192.168.1.112。

220 (vsFTPd 2.2.2)

用戶(192.168.1.112:(none)): ftpuser

331 Please specify the password.

密碼:

230 Login successful.

ftp> ls

200 PORT command successful. Consider using PASV.

150 Here comes the directory listing.

226 Directory send OK.

ftp> bye

221 Goodbye.

Ok,配置成功,能夠用flashxftp來進行上傳文件了。

Flashxftp上傳文件

首先在/home的目錄中建立一個目錄,而後設置權限爲777
[root@localhost home]# mkdir upload

[root@localhost upload]# chmod -R 777 /home/upload
而後修改vsftp的配置文件vsftpd.conf文件

[root@localhost upload]# vi /etc/vsftpd/vsftpd.conf
在最後添加上
local_root=/home/upload
保存,而後重啓vsftpd服務器程序。

配置完成,就能夠經過ftp上傳文件到/home/upload目錄下了。

相關文章
相關標籤/搜索