FTP主动和被动模式
主动FTP:(PORT模式)
1、允许FTP客户机从大于1024的端口连接FTP服务器的21端口
2、允许FTP服务器从21端口回应FTP客户机中大于1024端口的网络连接
3、允许FTP服务器从20端口主动连接FTP客户机中大于1024的端口
4、允许FTP客户机从大于1024的端口回应来自FTP服务器20端口的网络连接
被动FTP:(PASV模式)
1、允许FTP客户机从大于1024的端口连接FTP服务器的21端口
2、允许FTP服务器从21端口回应FTP客户机中大于1024端口的网络连接
3、允许FTP客户机从大于1024的端口连接FTP服务器中大于1024的端口
4、允许FTP服务器从大于1024的端口回应来自FTP客户机大于1024端口的网络连接
下面是主动与被动FTP优缺点的简要总结:
主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户 端 的防火墙阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而 这个端口很有可能被服务器端的防火墙阻塞掉。
幸运的是,有折衷的办法。既然FTP服务器的管理员需要他们的服务器有最多的客户连接,那么必须得支 持被动FTP。我们可以通过为FTP服务器指定一个有限的端口范围来减小服务器高位端口的暴露。这样,不在这个范围的任何端口会被服务器的防火墙阻塞。虽 然这没有消除所有针对服务器的危险,但它大大减少了危险。
二、VSFTP的简单配置
1、检查、安装VSFTP服务
2、启动VSFTP服务
手动启动:service vsftpd start
自动启动:chkconfig --level 35 vsftpd on
3、默认根目录/var/ftp //默认anonymous和ftp用户可访问下载
4、如果要上传,要修改/etc/vsftpd/vsftpd.conf配置文件和目录权限
三、VSFTP的高级配置
1、检查、安装VSFTP服务
2、/etc/vsftpd/vsftpd.conf配置文件
nonymous_enable=YES 是否允许匿名ftp,如否则选择NO
local_enable=YES 是否允许本地用户登录
local_umask=022 默认的umask码
anon_upload_enable=YES 是否允许匿名ftp用户访问
anon_root=/ftp/pub 修改FTP匿名目录
anon_upload_enable=YES 是否允许匿名上传文件
anon_mkdir_write_enable=YES 是否允许匿名用户有创建目录的权利
dirmessage_enable=YES 是否显示目录说明文件,默认是YES但需要收 工创建.message文件
xferlog_enable=YES 是否记录ftp传输过程
connect_from_port_20=YES 是否确信端口传输来自20(ftp-data)
chown_upload=YES 是否改变上传文件的所有者
chown_username=username 上传文件的所有者改为谁
xferlog_file=/var/log/vsftpd.log ftp 传输日志的路径和名字默认是/var/log/vsftpd.log
xferlog_std_format=YES 是否使用标准的ftp xferlog模式
idle_session_timeout=600 设置默认的断开不活跃session的时间
data_connection_timeout=120 设置数据传输超时时间
nopriv_user=ftpsecure 运行vsftpd需要的非特权系统用户默认是nobody
async_abor_enable=YES 是否允许运行特殊的ftp命令async ABOR
ascii_upload_enable=YES
ascii_download_enable=YES 是否使用ascii码方式上传和下载文件
ftpd_banner=Welcome to chenlf FTP service. 定制欢迎信息
deny_email_enable=YES
banned_email_file=/etc/vsftpd.banned_emails 是否允许禁止匿名用户使用某些邮件地址,如果是输入禁止的邮件地址的路径和文件名
chroot_list_enable=YES 系统用户限制在自己/home目录中
chroot_list_file=/etc/vsftpd.chroot_list
存放用户名的列表文件:/etc/vsftpd.chroot_list
当上面为YES时,列表中用户不受限制
当上面为NO时,列表中用户受限制
max_clients=Number 最大连接客户端,默认是0不限止
message_file 设置访问一个目录时获得的目录信息文件的文件名,默认是.message
user_list_deny=YES 存放用户列表文件/etc/user_list_deny
当上面为NO时,只有这个文件中用户才能访问FTP
当上面为YES时,这个文件中用户不允许访问FTP
listen_address=IP 当有服务器有多块网卡时,可选择侦听哪个
listen_port=21 可更改监听端口
listen=YES 使用服务器监听模式(主动)
tcp_wrappers=YES 使用TCP_WRAPPERS的安全模式
3、/etc/vsftpd.ftpusers 设定哪些用户不允许访问FTP服务器
4、/etc/vsftpd.user_list 配置访问控制的文件和与/etc/vsftp/vsftpd.conf结合使用
例:新建用户ftp1访问测试
1、新建用户ftp1
2、客户端使用ftp1访问
其实就是访问/home/ftp1宿主目录,并有上传,下载权限
3、默认用户可以浏览其他目录,如果要将用户禁锢在自己目录中
修改:/etc/vsftpd/vsftpd.conf
chroot_local_user=yes
要重启服务
4、将用户添加到/etc/vsftpd.ftpusers或/etc/vsftpd.user_list中,那么用户就不能访问FTP服务器
四、配置FTP虚拟用户
1、虚拟用户是为了保证FTP服务器的安全性,由VSFTP提供非系统用户访问服务器
2、建立虚拟用户口令库文件logins.txt
按以下格式添加信息:
longlei------------用户名
longlei------------密码
配置:vi /tmp/logins.txt
ftp1 //用户名
ftptset1 //密码
ftp2 //用户名
ftptest2 //密码
3、建立访问者的口令库文件,然后修改其权限只有root可读写
db_load –T –t hash –f /tmp/logins.txt /etc/vsftpd/vsftpd_login.db
chmod 600 /etc/vsftpd/vsftpd_login.db
4、进如/etc/pam.d/中创建vsftp.vu (验证文件)
在此文件中添加如下信息
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
5、在/var/ftp/创建虚拟用户的目录并改变其属性和它的属主
useradd -d /var/ftp/ftp1 ftp1
chmod 700 /var/ftp/ftp1
6、进入vsftpd.conf修改其中的信息
guest_enable=yes----------起用虚拟用户
guest_username=ftp1------将虚拟用户映射为本地用户
guest_username=ftp2------将虚拟用户映射为本地用户
pam_service_name=vsftpd.vu
注:在主配置文件中给的权限越低,在后面分用户管理的时候对拥护的权限划分的空间就越大,因为主配置文件最高的限制服务先读主配置文件,然后再读用户的配置文件
7、默认虚拟用户能登录,看不到任何东西,能下载;做如下修改。
要在vsftpd.conf中添加: user_config_dir=/etc/vsftpd_user_conf
建目录:mkdir /etc/vsftpd_user_conf
为每个用户单独建配置文件:vi /etc/vsftpd_user_confg/ftp1
vi /etc/vsftpd_user_confg/ftp2
anon_world_readable_only=no //用户可以浏览FTP、下载
anon_upload_enable=yes //上传
anon_mkdir_write_enable=yes //建立、删除目录
anon_other_write_enable=yes //文件改名、删除文件
8、重启服务,测试
注意:如果提示db_load出错,那么默认可能只安装了db4-4.3.29-9.fc6.i386.rpm和db4-devel-4.3.29-9.fc6.i386.rpm要使用db_load需要将位其他几张光盘中的db4-java-4.3.29-9.fc6.i386.rpm\db4-tcl-4.3.29-9.fc6.i386.rpm\db4-utils-4.3.29-9.fc6.i386.rpm安装上
注意Selinu的保护问题。
主动模式:
配置文件有connect_from_port_20=YES,防火墙要开20和21端口,否则无法连接。
被动模式:
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40080
防火墙要开40000至40080的端口,和21端口。
posted on 2013-11-25 17:16
回忆之城 阅读(205)
评论(0) 编辑 收藏 引用 所属分类:
unix/linux