昨天开始安装配置公司服务器dell PowerEdge750,RedHat 9.0找不到网卡,下了个驱动也没装上,时间紧,来不及细看,于是装RedHat Linux AS3.0,今天又突然网络服务报错:找不到smb服务器,急着拷东西,那就架ftp吧,一些基本的东西,高级配置日后再细细琢磨
系统环境: RedHat Linux AS3.0 + vsftpd-1.2.1-3
VSFTP 概述
FTP,file transfer protocol,档案传输的通讯协议,也是一般最常用来传送档案的方式。
FTP 分为两类,一种为PORT FTP,也就是一般的FTP 另一类是PASVFTP,分述如下:
PORT FTP
这是一般形式的FTP,首先会建立控制频道,默认值是port 21,也就是跟 port 21 建立联机,并透过此联机下达指令。第二,由FTP server 端会建立数据传输频道,默认值为20,也就是跟port 20 建立联机,并透过port 20 作数据的传输。
PASV FTP 跟PORT FTP 类似,首先会建立控制频道,默认值是port 21,也就是跟 port 21 建立联机,并透过此联机下达指令。第二,会由client 端做出数据传输的请求,包括数据传输port 的数字。
这两者的差异为何?PORT FTP 当中的数据传输port 是由FTP server 指定,而PASV FTP 的数据传输port 是由FTP client 决定。通常我们使用PASV FTP,是在有防火墙的环境之下,透过client 与server 的沟通,决定数据传输的port。
简易VSFTPD服务器的构建
1.确认是否安装VSFTPD软件:
#rpm –qa|grep vsftpd
2.启动FTP服务器:
#service vsftpd start
3.默认的FTP目录为 /var/ftp/pub
4.FTP 127.0.0.1进行匿名测试,name:anonymous pass:
vsftp安装(我没试过,直接用rhel3.0自带的,可能有点出入)
#解压
tar -zxf vsftpd-xx.tar.gz
cd ./vsftpd-xx
#vsftpd需要使用nobody来作为运行者,一般已经存在
useradd nobody
#安装时需要/usr/share/empty/ 作为临时目录,一般已经存在
mkdir /usr/share/empty/
#编译
make
make install
#如果make install没有安装文件,你可能需要手动执行下面的命令
#cp vsftpd /usr/local/sbin/vsftpd
#cp vsftpd.conf.5 /usr/local/man/man5
#cp vsftpd.8 /usr/local/man/man8
cd ./EXAMPLE/INTERNET_SITE
cp vsftpd.conf /etc
cp vsftpd.xinetd /etc/xinetd.d/vsftpd
/etc/rc.d/init.d/xinetd restart
配置vsftpd.conf
核心配置文件vsftpd.conf。地址为“/etc/vsftpd/vsftpd.conf”,控制语句格式为“语句=值”,注意不要在格式间加入任何空格和标点符号。man手册页中把控制语句分为布尔类(值为YES或NO)、数字类(值为数字)和字符串类(值为字符串)三种。
1. 匿名服务器的连接(独立的服务器)
在/etc/vsftpd/vsftpd.conf配置文件中添加如下几项:
anonymous_enable=yes (允许匿名登陆)
dirmessage_enable=yes (切换目录时,显示目录下.message的内容,少了这个.费了我两个小时,好多文档都把这个.漏了)
local_umask=022 (FTP上本地的文件权限,默认是077)
connect_form_port_20=yes (启用FTP数据端口的数据连接)*
xferlog_enable=yes (激活上传和下传的日志)
xferlog_std_format=yes (使用标准的日志格式)
fFtpd_banner=XXXXX (欢迎信息)
pam_service_name=vsftpd (验证方式)*
listen=yes (独立的VSFTPD服务器)*
功能:只能连接FTP服务器,不能上传和下传注:其中所有和日志欢迎信息相关连的都是可选项,打了星号的无论什么帐户都要添加,是属于FTP的基本选项
功能:只能连接FTP服务器,不能上传和下传
注:其中所有和日志欢迎信息相关连的都是可选项,打了星号的无论什么帐户都要添加,是属于FTP的基本选项
2. 开启匿名FTP服务器上传权限
在配置文件中添加以下的信息即可:
anon_upload_enable=yes (开放上传权限)
anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件)
write_enable=yes (开放本地用户写的权限)
anon_other_write_enable=yes (匿名帐号可以有删除的权限)
3. 开启匿名服务器下传的权限
在配置文件中添加如下信息即可:
anon_world_readable_only=no
注:要注意文件夹的属性,匿名帐户是其它(other)用户要开启它的读写执行的权限
(R)读-----下传 (W)写----上传 (X)执行----如果不开FTP的目录都进不去
4.普通用户FTP服务器的连接(独立服务器)
在配置文件中添加如下信息即可:
local_enble=yes (本地帐户能够登陆)
write_enable=no (本地帐户登陆后无权删除和修改文件)
功能:可以用本地帐户登陆vsftpd服务器,有下载上传的权限
注:在禁止匿名登陆的信息后匿名服务器照样可以登陆但不可以上传下传
5. 用户登陆限制进其它的目录,只能进它的主目录
设置所有的本地用户都执行chroot
chroot_local_user=yes (本地所有帐户都只能在自家目录)
设置指定用户执行chroot
chroot_list_enable=yes (文件中的名单可以调用)
chroot_list_file=/etc/vsftod/chroot_list(指定文件存放的路径)
注意:chroot_list 是没有创建的需要自己添加,要想控制帐号就直接在文件中加帐号即可
6. 限制本地用户访问FTP
userlist_enable=yes (用userlist 来限制用户访问)
userlist_deny=no (yes名单中的人不允许访问,no只有名单中的人才能访问)
userlist_file=/etc/vsftod/user_list(指定文件存放的路径和名称)
注:开启userlist_enable=yes匿名帐号不能登陆(不一定,需要三者组合的结果)
7. 安全选项
idle_session_timeout=600(秒) (用户会话空闲后10分钟)
data_connection_timeout=120(秒) (将数据连接空闲2分钟断)
accept_timeout=60(秒) (将客户端空闲1分钟后断)
connect_timeout=60(秒) (中断1分钟后又重新连接)
local_max_rate=50000(bite) (本地用户传输率50K)
anon_max_rate=30000(bite) (匿名用户传输率30K)
pasv_min_port=50000 (将客户端的数据连接端口改在
pasv_max_port=60000 50000—60000之间)
max_clients=200 (FTP的最大连接数)
max_per_ip=4 (每IP的最大连接数)
listen_port=5555 (指定5555端口进行数据连接)
8. 查看谁登陆了FTP,并杀死它的进程(没来得及试)
ps –xf |grep ftp
kill 进程号