1. 程式人生 > >linux(centos6)搭建ftp服務器

linux(centos6)搭建ftp服務器

useradd rect 響應 img connect clas ops ping eas

前提

ssh服務已經開啟,關閉防火墻,主機和虛擬機能ping通

查看ssh和防火墻的狀態

service sshd status

service iptables status

開啟ssh服務

service sshd start

關閉防火墻

chkconfig iptables off

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

ping 192.168.2.129

安裝並開啟tftp和vsftpd

[[email protected] ~]# yum install tftp

[[email protected] ~]# yum install vsftpd

[[email protected]

/* */ ~]# chkconfig vsftpd on

[[email protected] ~]# chkconfig tftp on

啟動vsftpd 服務

service vsftpd start

查看vsftpd 的啟動狀態

service vsftpd status

打開21和20端口

[[email protected] ~]# /sbin/iptables -I INPUT -p tcp --dport 21 -j ACCEPT

[[email protected] ~]# /sbin/iptables -I INPUT -p tcp --dport 20 -j ACCEPT

[[email protected] ~]# /etc/rc.d/init.d/iptables save

技術分享

添加ftp用戶

[[email protected] vsftpd]# useradd ftpuser

[[email protected] vsftpd]# passwd ftpuser

修改sftpd .conf配置文件

[[email protected] 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服務器的配置。如下

[[email protected] vsftpd]# cat ftpusers

# Users that are not allowed to login via ftp

root

[[email protected] vsftpd]#

重啟vstfpd 服務

[[email protected] 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的支持,所以訪問時都被阻止了。查看如下:

[[email protected] 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

[[email protected] vsftpd]#

只要把allow_ftpd_full_access --> off,ftp_home_dir --> off改為on就可以了。  #我這裏直接用setenforce 0

[[email protected] vsftpd]# setsebool ftp_home_dir 1

[[email protected] 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命令了

再次查看

[[email protected] 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

[[email protected] home]# mkdir upload

[[email protected] upload]# chmod -R 777 /home/upload 然後修改vsftp的配置文件vsftpd.conf文件

[[email protected] upload]# vi /etc/vsftpd/vsftpd.conf 在最後添加上 local_root=/home/upload 保存,然後重啟vsftpd服務器程序。

配置完成,就可以通過ftp上傳文件到/home/upload目錄下了。

linux(centos6)搭建ftp服務器