首页 > 代码库 > linux下ftp服务各种模式和ca证书认证的搭建
linux下ftp服务各种模式和ca证书认证的搭建
Red hat 下vsftpd的搭建
作者 浩浩哥来了
首先/etc/init.d/vsftpd restart 查看在当前版本是不是存在vsftpd服务 如果路径无法补全,这需要手动安装。
Yum install vsftpd* -y
/etc/init.d/vsftpd restart 将服务启动起来
Ifconfig 查看当前主机的ip地址
在windows中输入ftp://red hat 中的ip地址
匿名用户登录
Cd /var/ftp/pub/ 为匿名用户的使用工作路径
Getsebool –a | grep ftp
Setsebool –P ftp_home_dir on 打开ftp家目录的布尔值
Setsebool –P allow_ftpd_anon_write on 打开匿名用户写的权限
Chown ftp:ftp /var/ftp/pub/ 将匿名用户工作文件的用户和主组跟换为ftp
****************************************************
(默认的是pub文件夹,下面是根据自己需要修改匿名用户访问的文件路径)
Mkdir /var/ftp/luo/
Chown ftp:ftp /var/ftp/luo/
****************************************************
ll –Z –d /var/ftp/pub/ 查看文件属性的用户和主组是否更改为ftp
Man ftpd_selinux 在其中找到/var/ftp/pub 所需要的上下文
Chcon –R –t public_content_rw_t /var/ftp/pub/修改其上下文
*****************************************************
(将luo这个文件夹的上下文进行修改)
Chcon –R –t public_content_rw_t /var/ftp/luo/
*****************************************************
ll –Z –d /var/ftp/pub/ 查看ftp的上下文是否更改成 public_content_rw_t
Vim /etc/vsftpd/vsftpd.conf 为vsftpd的配置文件的路径
在配置文件中为匿名用户打开相应的权限如下:
Anonymous_enable=YES 允许匿名登录
Anon_upload_enable=YES 打开匿名用户的上传权限
Anon_mkdir_write_enable=YES 打开匿名用户的创建文件夹的权限
Anon_other_write_enable=YES 打开匿名用户对文件修改和删除的权限
Anon_root=/var/ftp 为单独创建的文件指定路径
成员用户进行登录
创建用户 ftp1 ftp2ftp3
Useradd –d /home/ftp1 ftp1
Passwd ftp1
Useradd –d /home/ftp2 ftp2
Passwd ftp2
Useradd –d /home/ftp3 ftp3
Passwd ftp3
以上是创建3个ftp用户账号
Cat /etc/passwd | grep ftp*
查看3个用户账号的情况
一个小技巧将匿名关闭,在/var/ftp/路径下将系统默认的pub文件换一个用户名
Mv /var/ftp/pub/ /var/ftp/pub.bak/
匿名登录就关闭了
Vim /etc/vsftpd/vsftpd.conf
Local_enable=YES 将用户登录打开
Chroot_local_user=YES 将本地用户不能切换到上级目录
Chroot_list_enable=YES 本地用户成员列表打开
Chroot_list_file=/etc/vsftpd/chroot_list 成员列表文件路径 默认是在/etc/vsftpd/chroot_list 自己手动创建一个名为chroot_list
Userlist_deny=NO 将用户的限制名单开启,在目前状态下user_list中用户的成员可以正常通过用户进行登录
Vim /etc/vsftpd/chroot_list 在文件中将ftp1 ftp2 ftp3 一行一个添加进去
Vim /etc/vsftpd/user_list 在文件中添加可以使用ftp的本地用户(在nobody后面一行一个ftp1 ftp2 ftp3)
虚拟用户的创建
Cd /etc/vsftpd/ 个人比较喜欢在这个路径创建东西
Vim user.txt 创建一个放虚拟用户的文档,奇数为用户名,偶数是用户密码 ,分别创建user(1-3)用户 ,密码都是123
User1
123
User2
123
User3
123
接下来需要使用db_load命令来创建口令库文件
如果没有安装的话
Yum install db* -y
Db_load -T -t hash -f /etc/vsftpd/user.txt /etc/vsftpd/user.db
Vim /etc/pam.d/vsftpd
Auth required pam_userdb.so db=/etc/vsftpd/user
Account required pam_userdb.so db=/etc/vsdftpd/user 在文档的末尾添加这两条,db等于的路径最后是没有.db结尾的切记切记
Useradd –s /sbin/nologin user 创建user的本地用户
Chmod o+rx /home/user 为user用的家目录文件的权限开通other的读和执行权限
Vim /etc/vsftpd/vsftpd.conf ftp的配置文件
Anonymous_enable=NO 必须将匿名用户进行关闭
Local_enable=YES 本地用户可以登录
Write_enable=YES 写的权限打开
Local_umask=022 创建的文件的权限是755
Anon_upload_enable=YES 匿名用户上传权限打开
Anon_mkdir_write_enable=YES 匿名用户的创建文件的权限打开
Anon_other_write_enable=YES 匿名用户的删除的权限代开
Dirmessage_enable=YES
Xferlog_enable=YES
Connect_from_port_20=YES
Xferlog_std_format=YES
Listen=YES
Pam_service_name=vsftpd 指明/etc/pam.d/vsftpd这个文件的文件名
Guest_enable=YES 虚拟用户开启
Guest_username=user 虚拟用户映射到本地用户的用户名
Virtual_use_local_privs=YES
Userlist_enable=YES
Tcp_wrappers=YES
Getsebool –a | grep ftp 查看ftp的布尔值
Setsebool –P ftp_home_dir on 将ftp的家目录布尔值打开
Setsebool –P ftpd_connect_db on 将ftp的db口令库打开
/etc/init.d/iptables stop 将防火墙关闭
/etc/init.d/vsftpd restart 将ftp启动起来
检测ftp虚拟用户是否登录上
打开本地cmd
ftp ip(linux ftp的ip地址)
user1 提示输入用户名(这里只能用user1 user2 user3 这三个虚拟出来的用户,在本地/etc/passwd 中不存在)
123 虚拟用户的密码
随后会提示230 loginsuccessful (登录过程可能很慢,不过没出现估计就是我电脑自己本身的问题)恭喜你登录上去了
ftp添加Ca 证书
Yum install openssl* -y
Cd /etc/vsftpd
Openssl req –x509 –nodes –days 365 –newkeyrsa:1024 –keyout vsftpd.pem –out vsftpd.pem 生成证书
下面是一些证书填写的信息
证书生成后在/etc/vsftpd/的路径下可以看到vsftpd.pem的一个证书
Vim /etc/vsftpd/vsftpd.conf
Ssl_enable=YES
Allow_anon_ssl=YES
Force_local_logins_ssl=YES
Force_local_data_ssl=YES
Ssl_tlsv1=YES
Rsa_cert_file=/etc/vsftpd/vsftpd.pem
ftp一些其他的参数
权限控制
write_enable=YES 本地用户可写
local_umask=022 上传文件的umask
file_open_mode=0666 使用文件的方式
anon_upload_enable=NO 匿名用户不可以上传
anon_mkdir_write_enable=NO 匿名用户不可以建目录等写操作
anon_other_write_enable=NO 匿名用户不可以做其他的写操作
anon_world_readable_only=YES 匿名用户可以读文件
#chown_uploads=YES 修改上传的文件的属主
#chown_username=ftpadmin 修改上传的文件的属主为XXX
ascii_upload_enable=NO 不使用ascii上传文件
ascii_download_enable=NO 不使用ascii下载文件
secure_chroot_dir=/usr/share/empty 默认值
超时控制
idle_session_timeout=600 空闲超时600秒
data_connection_timeout=120 传输超时120秒
accept_timeout=60 pasv模式等待时间60秒
connect_timeout=60 port模式等待时间60秒
服务控制
xferlog_enable=YES 启动日志功能
xferlog_std_format=YES 使用标准日志格式
xferlog_file=/var/log/vsftpd.log 日志默认的位置
pasv_enable=YES 启用被动模式
#port_enable=YES 启用主动模式
#注意此处pasv和port只能写一个,不能一个YES,另一个NO,要想让另一个不起作用,只能用#注释掉,否则会出错。
tcp_wrappers=YES 启用tcp_wrappers功能
nopriv_user=nobody 最低权限用户
listen=YES 使用standalone 模式(推荐的)
显示信息
ftpd_banner=welcome to ftp. 登录时的欢迎信息
dirmessage_enable=YES 启动切换目录时提示目录信息的功能
message_file=.message 目录提示信息的内容文件
文件权限设置
chroot_list_enable=YES 启动用户目录限制功能
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list 此文件中的用户不能改变到其他外层目录中。
userlist_enable=YES 启动用户限制功能
userlist_deny=YES userlist文件中的用户禁止登录,NO的话则只有userlist中用户可以登录
userlist_file=/etc/vsftpd/vsftpd.user_list 禁止登录用户列表文件名和位置(可自定义)
user_config_dir=/etc/vsftpd/userconf/ 对个别用户特殊设置的配置文件的目录(在此目录下建立对应“用户名”的文件,文件里写
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES 等权限信息,此用户将有这里所写的权限)
连接选项
max_clients=100 最大连接数
max_per_ip=5 每个ip最大连接数
connect_from_port_20=YES 启用20端口传输数据
#listen_address=192.168.0.2 指定监听的ip地址,如果你有多个ip的话
listen_port=21 监听的端口号
ftp_data_port=20 数据传输端口号
pasv_max_port=40000 被动模式的端口号的上限(0为不限)
pasv_min_port=30000 被动模式的端口号的下限(0为不限)
数据传输速度
anon_max_rate=51200 匿名用户最大传输率
local_max_rate=5120000 本地用户最大传输率
本文出自 “浩浩哥来了” 博客,谢绝转载!
linux下ftp服务各种模式和ca证书认证的搭建