Linux-010 centos7下搭建FTP服务器

来源:互联网 发布:ubuntu修改文件夹权限 编辑:程序博客网 时间:2024/06/14 14:18

一、安装ftp服务

1、安装vsftpd

1 yum -y install vsftpd

2、设置开机启动

1 systemctl enable vsftpd

3、启动ftp服务

1 [root@localhost vsftpd]#systemctl start vsftpd.service  或 systemctl restart vsftpd  #启动服务2 [root@localhost vsftpd]# /bin/systemctl status vsftpd   #显示状态vsftpd.service - Vsftpd ftp daemon   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled)   Active: active (running)since 日 2016-01-10 12:52:13 CST; 3s ago  Process: 10040 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS) Main PID: 10042 (vsftpd)   CGroup: /system.slice/vsftpd.service           └─10042 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

二、添加专门的ftp用户4、添加ftp用户

1 useradd -g root -d /var/wwwRoot/  -s /sbin/nologin ftpuser 或 useradd ftpuser

注:表示新增一个ftpuser(用户名),且指定上传目录在  /home/wwwroot/ 下

如果后期想变更此用户的上传目录到(/run/media/Root/xxx/wwwroot/xxx.org),请使用下面的命令:

2 usermod -d /run/media/root/xxx/wwwRoot/xxx.org    ftpuser

5、设置用户密码

1 passwd ftpuser

6、设置权限

1 chown -R ftpuser:root /var/wwwRoot/   (使用useradd ftpuser创建的不需要次步骤)


三、修改ftp配置文件

7、修改vsftp配置文件,禁用匿名登录

路径:/etc/vsftpd/vsftpd.conf

anonymous_enable=YES 改为: anonymous_enable=NO


8.修改vsftpd ftp登录用户配置文件,允许root用户登陆(不使用root用户登陆ftp可不改)

如果你希望可以使用root用户登录ftp的话,需要将 /etc/vsftpd/ftpusers 文件中root用户去掉

/etc/vsftpd/ftpusers 

 该文件中定义的用户,是不允许通过ftp登录的。 而默认情况下,这里的用户列表有root用户,因此为了让root用户可以ftp方式登录,此处需要注释掉root。

该文件先于下面的文件检查ftp用户。

/etc/vsftpd/user_list

该文件的使用方法与/etc/vsftpd/vsftpd.conf中的配置项userlist_deny配套使用。


四、设置防火墙和外网访问

9、打开防火墙,开放21端口、开放ftp服务

1 firewall-cmd --zone=public --add-port=21/tcp --permanent2 firewall-cmd --permanent --zone=public --add-service=ftp3 firewall-cmd --reload4 firewall-cmd --list-all

10、配置selinux 允许ftp访问home和外网访问

1 sestatus   #查看selinux状态2 sestatus -b|grep ftp  #查看ftp被拦截情况3 setsebool -P allow_ftpd_full_access on # 允许外网访问  4 setsebool -P ftp_home_dir on  或 setsebool -P tftp_home_dir on #允许访问home

[root@localhost vsftpd]# sestatus
SELinux status:                 enabled  #开启中
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28
[root@localhost vsftpd]# sestatus -b|grep ftp  #查看ftp被拦截情况
ftp_home_dir                                off
ftpd_anon_write                             off
ftpd_connect_all_unreserved                 off
ftpd_connect_db                             off
ftpd_full_access                            off
ftpd_use_cifs                               off
ftpd_use_fusefs                             off
ftpd_use_nfs                                off
ftpd_use_passive_mode                       off
httpd_can_connect_ftp                       off
httpd_enable_ftp_server                     off
sftpd_anon_write                            off
sftpd_enable_homedirs                       off
sftpd_full_access                           off
sftpd_write_ssh_home                        off
tftp_anon_write                             off
tftp_home_dir                               off
[root@localhost vsftpd]# setsebool -P ftpd_full_access on 

[root@localhost vsftpd]# setsebool -P tftp_home_dir on  或   setsebool -P ftp_home_dir on

[root@localhost vsftpd]# getsebool -a|grep ftp
ftp_home_dir --> on
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> on
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off
tftp_anon_write --> off
tftp_home_dir --> on



 

五、连接ftp服务:


1)本地测试:打开终端,输入ftp localhost,再根据提示输入用户名和密码连接。

2)同网络其他主机测试:

首先查看本机ip:

[root@localhost home]# ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:be:23:a8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.180/24 brd 192.168.1.255 scope global enp0s3

得到ip:192.168.1.180,在其他主机上连接:

xxx@Xin-Water:/home/xxx$ ftp 192.168.1.180 #打开连接
Connected to 192.168.1.180.
220 (vsFTPd 3.0.2)
Name (192.168.1.180:xxx): ftpuser      #输入用户名
331 Please specify the password.
Password:                                          #输入密码
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.         #连接成功

ftp> help          #使用ftp帮助命令
Commands may be abbreviated.  Commands are:
。。。。。。


六、其他命令:

重启        service vsftpd restart

启动/停止service vsftpd start/stop

状态        service vsftpd status

原创粉丝点击