FTP 服务器
-
Ubuntu 创建FTP 服务器
安装
# 使用root用户 su root # 没有root用户,更新密码就好:su passwd apt-get install vsftpd卸载
# --purge 选项表示彻底删除改软件和相关文件 sudo apt-get remove --purge vsftpd配置
默认配置文件路径
/etc/vsftpd.conf# 几个常用配置修改 # 禁止匿名用户登录 anonymous_enable=NO # 允许系统用户登录 local_enable=YES # 启用可以修改文件的 FTP 命令 write_enable=YES # 本地用户创建文件的 umask 值 local_umask=022 # 允许为目录配置显示信息,显示每个目录下面的message_file文件的内容 dirmessage_enable=YES # 开启日记功能 xferlog_enable=YES # 使用标准的20端口来连接ftp connect_from_port_20=YES # 使用标准日志格式 xferlog_std_format=YES # 如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录 chroot_list_enable=YES # 指定限制的用户文件 chroot_list_file=/etc/vsftpd/chroot_list # ftp服务器将处于独立启动模式 listen=YES # 设置一个本地用户登录后进入到的目录 local_root=/home/ftp # 设置PAM认证服务的配置文件名称,该文件保存在“/etc/pam.d/”目录下 pam_service_name=vsftpd # ftp将检查userlist_file设置文件中指定的用户是否可以访问vsftpd服务器 userlist_enable=YES # 只允许user_list文件中记录的ftp用户能登录vsftp服务,其他的ftp用户都不可以登录。 userlist_deny=NO # 定义限制/允许用户登录的文件 userlist_file=/etc/vsftpd/allowed_users # ftp服务器将使用tcp_wrappers作为主机访问控制模式 tcp_wrappers=YES # 连接ftp服务费使用的端口 listen_port=21 -
ftp 常用命令整理
# 启动 重启 停止 查看状态 service vsftpd [start|restart|stop|status] # 查看端口 netstat -tnl # --------------------------- systemctl list-unit-files |grep vsftpd.service #发现vsftpd.service服务果然是关闭的如下: # vsftpd.service disabled # 需要添加软链或者运行如下命令 systemctl enable vsftpd.service # 启动该服务 systemctl start vsftp.service验证 ftp 服务器
ifconfig ftp 192.168.1.3 Connected to 192.168.1.3. 220 (vsFTPd 3.0.3) Name (192.168.1.3:lx): 331 Please specify the password. -
匿名访问的用户的目录设置
- ftp 默认匿名用户默认目录:
/srv/ftp - 修改
/etc/passwd文件,将/srv/ftp修改为/ceph_disk10/ftp
注意,考虑到安全问题,
ftp匿名用户的主目录必须为只读,如果需要上传文件,需要在主目录下新建有写权限的文件夹(pub)。当使用匿名用户访问时,vsftpd会将用户名为ftp的用户作为登录用户,进入ftp用户的主目录。
# ftp 用户不存在 sudo mkdir /ceph_disk10/ftp # 新建用户文件夹 sudo useradd -d /ceph_disk10/ftp ftp # 新建用户,并指定用户home目录 # 如果ftp用户已经存在, vim /etc/passwd # 修改ftp 的目录为 /ceph_disk10/ftp sudo mkdir /ceph_disk10/ftp/pub # 新建一个用于写数据的文件夹 sudo chmod 777 /var/ftp/pub # 修改文件夹权限配置相关修改
# ****** 原配置 ****** anonymous_enable=NO local_enable=YES # ****** 修改或变更的配置 ****** # 允许匿名访问 anonymous_enable=YES no_anon_password=YES # 禁止本地用户登录 local_enable=NO # 允许写文件 write_enable=YES # 允许匿名用户上传文件 anon_upload_enable=YES # 允许匿名用户创建目录和写权限 anon_mkdir_write_enable=YES anon_other_write_enable=YES # 允许匿名用户删除、重命名等其它权限 这个在配置文件里默认找不到 - ftp 默认匿名用户默认目录:
-
FTP 启动 异常
Process: 37066 ExecStart=/usr/sbin/vsftpd /etc/vsftpd.conf (code=exited, status=2)# 主要原因:ipV4和ipV6不能同时被监听,这边需要去掉一个监听设置,常规情况下只要去掉ipV6得就可以了。 listen=YES # listen_ipv6=YES -
用户访问目录的权限设置
在默认配置下,本地用户登入FTP后可以使用cd命令切换到其他目录,这样会对系统带来安全隐患。可以通过以下三条配置文件来控制用户切换目录。
chroot_local_user=YES # 用于指定用户列表文件中的用户是否允许切换到上级目录。默认值为NO。 chroot_list_enable=YES # 设置是否启用chroot_list_file配置项指定的用户列表文件。默认值为NO。 chroot_list_file=/etc/vsftpd.chroot_list #禁用的列表名单,格式为一行一个用户,用于指定用户列表文件, #该文件用于控制哪些用户可以切换到用户家目录的上级目录。通过搭配能实现以下几种效果:
- (1).当
chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。 - (2).当
chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。 - (3).当
chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。 - (4).当
chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。
- (1).当
-
FTP增加删除用户
增加用户mkdir -p /home/test sudo useradd -g ftp -d /home/test -m test # (注:g:用户所在的组 # d:表示创建用户的自己目录的位置给予指定 # m:不建立默认的自家目录,也就是说在/home下没有自己的目录) # 给用户添加口令 sudo passwd test # 123456- 编辑
/etc/vsftpd.chroot_list文件,将ftp的帐户名添加进去,保存退出 - 修改用户权限文件
vsftpf.chroot_list文件后一定要重启服务才能生效
删除用户sudo userdel test - 编辑