之前跟着廖廖学习的时候,觉得搭建一个ftp服务器是很简单的事情,自己动手在阿里云上搭建了一次,才发现,很多东西,概念没有理解的很清晰,将我搭建的过程记录分享给大家,也作为备忘。
配置/etc/vsftpd/vsftpd.conf文件
根据配置文件,在/etc/vsftpd中新建virtual_users.db文件和user目录
操作环境
阿里云 CentOS 6.5搭建过程
yum install vsftpd配置/etc/vsftpd/vsftpd.conf文件
根据配置文件,在/etc/vsftpd中新建virtual_users.db文件和user目录
碰到问题
530 login incorrect
- 后来发现原因是pam模块错误,需要自己根据配置文件的命名新建pam模块,而新建pam模块需要根据virtual_users.txt生成virtual_users.db文件,然后在pam配置文件中制定db文件路径,才能在登录时成功,务必注意,单行是帐号,双行是密码,最后一行要有回车,否则系统无法识别原txt文件设置权限仅备忘用
- 生成db文件需要用到db4-utils工具,默认已经安装,命令是db_load -T -t hash -f virtual_users.txt virtual_users.db
- 专业术语是建立虚拟用户数据库,步骤是新建一个txt文档--db4-util
ftp_username无法识别
- 原因在于没有创建一个系统账户,后来新建一个vsftpd账户并nologin设置
- 命令 useradd -d /home/www/ -s /sbin/nologin vsftpd (新建用户,并制定目录,设置shell为nologin)
还没有解决
- stand alone机制还不是很理解
- vsftpd.conf配置文件allow_writeable_chroot=YES这一项不是很理解
一些新的理解
登录ftp的三种方式
- 匿名 默认的方式,用户名为ftp/anonymous
- 本地用户登录 系统用户,存在于/etc/passwd中的用户
- 虚拟用户登录 FTP专有用户,好处是只能访问ftp服务器资源,增加系统安全性,两种方式实现虚拟用户,一是本地数据文件,而是数据库服务器
SCP命令
- scp /home/../news.txt name@ip:/etc/vsftpd 本机文件复制到远程服务器
- scp remote@ip:/usr/local/ /home/administrator 远程服务器复制到本机
uname命令
- -r
- -a
- cat /etc/redhat-release 查看CentOS
nologin-shell用户
- 已存在用户 usermod -s /sbin/nologin name
- 新建用户 useradd -s /sbin/nologin newname
CentOS防火墙
- CentOS 6之前用的是iptables机制
- chkconfig iptables on 重启生效
- service iptables start 即时生效,重启失效
- CentOS 7之后默认安装firewalld
- 命令和之前类似