linux服务器配置实例<4>---配置FTP服务器

配置FTP服务器

vsftpd:Very Secure ,是一个基于 GPL 发布的类 UNIX 系统上使用的 FTP 服务器的软件,具有安全、稳定 ( 单机上支持 4000 个以上的并发用户同时连接 ) 和高速 ( 千兆以太网可达 86M /s) 的特点
著名的 vsftpd 站点 :ftp.redhat.com ftp.suse.com ftp.gnome.org
3.FTP 服务的使用者 : 本地用户 ( 本地用户可能通过输入自已的帐号和口令登陆到自家目录,即可以下载也可以上传 ) 、虚拟用户 (FTP 服务器上只用于文件传输的的帐号 ) 和匿名用户 ( 匿名用户可以输入 anonmous ftp 和口令用户自己的 E-Mail 地址来进行登陆 )
.FTP 服务器的配置
2. 启动 vsftpd
service vsftpd start
pstree|grep vsftpd
ntsysv
3.Red Hat Linux9 中的配置文件
/etc/vsftpd/vsftpd.conf 是主配置文件 /etc/vsftpd.ftpusers 指定哪些用户不能访问 FTP 服务器 /etc/vsftpd.user_list 中指定的用户在 /etc/vsftpd/vsftpd.conf 中设置了 userlist_enable=YES userlist_deny=YES 时不能访问 FTP 服务器
4.vsftpd 的默认主配置文件
anonymous_enable=YES 允许匿名登录
local_enable=YES 允许本地用户登录
write_enable=YES 开放本地用户的写权限
local_umask 设置本地用户的文件生成掩码为 022, 默认值为 077
dirmessage_enable=YES
xferlog_enable=YES 激活上传和下载日志
connect_from_port_20=YES 启用 FTP 数据端口的连接请求
xferlog_std_name=vsftpd 使用标准的 ftpd xferlog 日志格式
pam_service_name=vsftpd 设置 PAM 认证服务的配置文件名称,
该文件存放在 /etc/pam.d/ 目录下
userlist_enable=YES 文件中所列的用户均不能访问此 vsftpd 服务器
listen=YES 使 vsftpd 处于独立启动模式
tcp_wrappers=YES 使用 tcp_wrappers 作为主机访问控制方式
1. 允许匿名用户上传
anon_upload_enable=YES 允许匿名用户上传
write_enable=YES 匿名用户对文件系统的上传目录具有写权限
anon_mkdir_write_enable=YES 开启匿名用户的写和创建目录的权限
anon_world_readable_only=NO 放开匿名用户 YES 览权限 , 即浏览此服务器中全部的内容
anon_other_write_enable=YES 开放了文件更名、删除文件等权限
创建匿名上传目录 mkdir /var/ftp/incoming
#chmod o+w /var/ftp/incoming/
#service vsftpd restart
测试匿名用户上传
ftp 192.168.1.57
>ls 列出文件和目录列表 put install.log 将本地文件传送至远程主机 mkdir newdir bye 退出 ftp
2. 配置基于本地用户的访问控制
限制指定的用户不能访问,而其他本地用户可访问。例如
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.user_list
使文件 /etc/vsftpd.user_list 中指定的本地用户不能访问 FTP 服务器
限制指定的用户能访问,而其他本地用户不能访问。例如
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.user_list
使文件 /etc/vsftpd.user_list 中指定的本地用户能访问 FTP 服务器
3. 配置基于主机的访问控制
Vsftpd 从版本 1.1.3 以后内置了对 TCP_wrppers 支持,为独立的 vsftpd 提供基于主机的访问控制配置 .TCP_wrappers 使用 /etc/hosts.allow /etc/hosts.deny 两个配置文件实现访问控制
#cat /etc/vsftpd/vsftpd.conf|grep tcp_wrappers
tcp_wrappers=YES
#cat<<! >>/etc/vsftpd/vsftpd.conf
>local_max_rate=10000
>anon_max_rate=10000
>max_per_ip=1
>!
编辑 /etc/hosts.deny
ALL: ALL@ALL, PARANOID 除非在 allow 文件中说明允许访问,所有服务、所有主机都被拒绝。
编辑 /etc/hosts.allow
#cat<<!>>/etc/hosts.allow
>vsftpd:.smartrainig.com,192.168.1.0/24 \
>:setenv VSFTPD_LOAD_CONF /etc/vsftpd/vsftpd_tcp_wrap.conf
>vsftp: 202.54.15.99 foo.com 对于你的客户机来说: 202.54.15.99 IP 地址, foo.com 为允许使用 ftp 的一个客户机。
>vsftpd:192.168.1.0/255.255.255.0:allow
vsftpd: 主机表: setenv VSFTPD_LOAD_CONF 配置文件名
vsftpd 表示是对 vsftpd 进程实施访问控制 表示当遇到主机表中的主机访问本 FTP 服务器时,修改环境变量的值为指定的配置文件名 . 其意图是让 vsftpd 守护进程读取新的配置文件中的配置项来覆盖主配置文件中的配置,关于主机表的书写形式 Hostname 可解析的主机名 IP Address 点分十进制表示的 IP 地址 .domain 匹配一个域中的所有主机,表示在 DNS smartraining.com 中的任何主机 network-number 匹配 IP 地址的开始部分,如 192.168 IPAddress/netmask 定义要匹配的网络或子网,例 172.19.16/20 匹配从 172.19.16.0 172.19.31.255
编辑 /etc/vsftpd/vsftpd_tcp_wrap.conf
#cat<<!>>/etc/vsftpd/vsftpd.conf
>local_max_rate=0
>anon_max_rate=0
>max_per_ip=0
>!
#service vsftpd restart
4. 配置本地组访问的 FTP 服务器
本地组 softgrp 3 个用户 soft soft1 soft2 ,其中 soft FTP 有读写权限,而 soft1 soft2 FTP 只有读的权限,可借助于本地文件系统的权限设置来实现
#vi /etc/vsftpd/vsftpd.conf
local_enable=YES
write_enable=YES
chroot_local_user=YES 不允许本地用户切换到自家目录以外的目录进行浏览
#mkdir -p /var/local-ftp/softgrp
#groupadd softgrp
#groupadd softgrp
#useradd -G softgrp -d /var/local-ftp/softgrp -M soft -G 指定新用户的附加组 -d 指定宿主目录 -M 不建立新用户的自家目录
#useradd -G softgrp -d /var/local-ftp/softgrp -M soft1
#useradd -G softgrp -d /var/local-ftp/softgrp -M soft2
#passwd soft #passwd soft1 #passwd soft2
#chown soft.softgrp /var/local-ftp/softgrp
#chmod 750 /var/local-ftp/softgrp
#ll -d /var/local-ftp/softgrp
#ftp 192.168.1.57
ftp>put install.log
ftp>close
ftp>open 192.168.1.57
5. 配置 vsftpd 在非标准端口下提供服务
#echo "listen_port=10021">>/etc/vsftpd/vsftpd.conf
#service vsftpd restart
#ftp 192.168.1.57 10021
ftp>bye
6. 配置独立启动的基于 IP 的虚拟 FTP 服务器
配置虚拟 IP 地址
建立虚拟 FTP 的服务器目录并设置适当的权限
建立虚拟 FTP 的服务器的主配置文件
#ifconfig |grep -1 eth0
#ifconfig eth0:1 192.168.1.57 up
#ifconfig |grep -1 eth0:1
#mkdir -p /var/ftp2/pub
#ll -d /var/ftp2/pub
#ll -d /var/ftp2
#echo "hello">/var/ftp2/pub/test_file
#useradd -d /var/ftp2 -M ftp2
#vi /etc/vsftpd/vsftpd.conf
listen_address=192.168.1.67
#cp /etc/vsftpd/vsftpd.conf.rh9 /etc/vsftpd/vsftpd_site2.conf
#vi /etc/vsftpd/vsftpd_site2.conf
listen_address=192.168.1.234
ftp_username=ftp2
ftpd_banner=This is the alternative FTP site,and vsftpd in "standalone" mode.
#service vsftpd restart
测试
7. 配置简单的虚拟用户 FTP 服务器
生成虚拟用户口令库文件
配置生成 vsftpd 的认证文件
建立虚拟用户所要访问的目录并设置相应权限
建立配置文件
cat <<! >logins.txt
>tom
>foo
>fred
>bar
单数行为用户名,偶数行为口令
#db_load -T -t hash -f ~/logins.txt /etc/vsftpd/vsftpd_login.db 使用 db_load 命令生成口令库文件前,要先安装 db4-utils- 4.0.14 -20 工具插入第二张光盘 #rpm -ivh db4_utils-4.0.14-20.i386.rpm
#chmod 600 /etc/vsftpd/vsftpd_login.db
#vi /etc/pam.d/vsfpt.vu
类型 (type) 控制 (control) 模块路径 (module-path) 模块参数 (module-arguments)
auth required /lib/security/pam_userdb.so db=/etcvsftpd/vsftpd_login
accout required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
PAM,Pluggable Authentication Modules for Linux
类型 :accout 验证用户帐号是否被允许访问服务,如用户帐号口令是否已过期等 auth 验证用户身份,一般为通过口令进行验证
控制 : 控制标记告诉 PAM 如何对待模块认证失败,例 :required 模块认证失败会导致拒绝用户认证,但在拒绝用户之前 PAM 仍将调用所有的其他模块
模块路径 :module-path 告诉 PAM 使用哪个模块的路径 , 如未给出模块路径 PAM 会在默认的 PAM 模块目录 /lib/security 中查找
模块参数 :module-arguments 用于给模块传递参数
#useradd -d /home/ftpsite virtual
#chmod 700 /home/ftpsite/
#su -virtual -c "echo hello>/home/ftpsite/test_file"
#cp /etc/vsftpd/vsftpd/conf/bak /etc/vsftpd/vsftpd.conf
#vi /etc/vsftpd/vsftpd.conf
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
one_process_model=NO 这个设定项目比较危险一点 , 当设定为 YES 时,表示每个建立的连线都会拥有一支 process 在负责,可以增加 vsftpd 的效能。不过,除非您的系统比较安全,而且硬体配备比较高,否则容易耗尽系统资源!一般建议设定为
chroot_local_user=YES
ftp_banner=This FTP server is virtual user only
guest_enable=YES
guest_username=virtual
pam_service_name=vsftp.vu
#service vsftpd restart
下面分别创建虚拟用户 tom 的配置文件
#vi /etc/vsftpd.conf
user_config_dir=/etc/vsftpd_user_conf 激活对不同的虚拟用户进行不同权限配置的配置语句
#vi /etc/vsftpd_user_conf/tom
anon_upload_enable=YES
write_enable=YES
anon_world_readable_only=NO
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
8. 配置安全的 vsftpd
仅仅允许匿名用户访问 anonymous_enable=YES
不允许本地用户访问 local_enable=NO
关闭所有写权限 write_enable=NO
不允许匿名用户上传 anon_upload_enable=NO anon_other_write_enable=NO
设置客户端连接时的端口范围 pasv_min_port=50000 pasv_max_port=60000
设置匿名用户的最大传输速率限制 anon_max_rate=50000
设置空闲的数据连接的中断时间 data_connection_timeout=300
设置客户端空闲时的自动中断和激活连接的时间 accept_timeout=60 connect_timeout=60
配置每个主机的最大连接数 max_per_ip=5
配置总的并发连接数 instances=60
配置禁止访问的主机 userlist_enable=YES userlist_deny=YES userlist_file=/etc/vsftpd/user_list
 
配置安全日志 xferlog_enable=YES anon_world_readable_only=YES connect_from_port_20=YES
 

你可能感兴趣的:(linux,职场,休闲,linux服务器配置实例)