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目录下了。

相关文章
相关标签/搜索