VSFTP服务器配置
VSFTP服务器配置VSFTPD的文件结构主要包括: 安装第一张光盘 vsftpd-1.1.3-8.i386.rpm/usr/sbin/vsftpd ---- VSFTPD的主程序 /etc/rc.d/init.d/vsftpd ---- 启动脚本 /etc/vsftpd/vsftpd.conf ---- 主配置文件 /etc/pam.d/vsftpd ---- PAM认证文件 /etc/logrotate.d/vsftpd.log 日志 /etc/vsftpd.ftpusers ---- 禁止使用VSFTPD的用户列表文件 /etc/vsftpd.user_list ---- 禁止或允许使用VSFTPD的用户列表文件 最后两个是重复的设置,不过,这样比较安全。PAM模块是外挂的程序,而另一个则是vsftpd提供的功能 ,上述两个文件要一起修改。!两种启动方式:xinetd(守护进程)和standalone(独立) 创建一个nobody用户useradd nobody一般情况下默认存在建一个empty目录 /usr/share/empty一般情况下默认存在创建vtp用户并指定其目录(当需要匿名访问的时候),并设置安全的权限mkdir /var/ftp/ useradd –d /var/ftp ftp ftp用户默认存在chown root.root /var/ftp chmod og-w /var/ftp 下面详细解释配置文件的命令:/etc/vsftpd/vsftpd.conf关于主机的设定值:listen_port=21 -命令通道的端口设置Connect_from_port_20=YES-启动主动连接的端口20Listen=YES-表示vsftpd是以standalone方式启动的write_enable=YES (NO) -是否允许使用者具有写入权限,包括删除与修改connect_timeout=60 -单位是秒,如果client尝试连接我们的vsftpd命令通道超过 60 秒,则不等待,强制 断线咯。data_connection_timeout=300 -如果 client与Server间的资料传送在 300 秒內都无法传送成功, -那 Client 的连线就会被我们的 vsftpd 强制剔除! idle_session_timeout=300 -如果使用者在 300 秒內都沒有命令动作,强制离线!max_clients=0 -如果 vsftpd 是以 stand alone 方式启动的,那么这个设定项目可以设定 -同一时间,最多有多少 client 可以同時连上 vsftpd 哩max_per_ip=0 -与上面 max_clients类似,这里是同一个 IP 同一时间可允许多少连线? 关于本地用戶登入者的设定值:local_enable=YES (NO) -这个设定值必须要为 YES 时,在 /etc/passwd 內的帐号才能以 -本地用戶的方式登入我们的 vsftpd 主机喔!local_root= -定义所有本地用户的根目录。当本地用户登入时,将被更换到此目录下。默认值为无。local_max_rate=0 -实体用戶的传输速度限制,单位为 bytes/second, 0 为不限制。chroot_local_user=YES (NO) -将使用者限制在自己的家目录之內(chroot)!这个设定在 vsftpd -当中预设是 NO,因为有底下两个设定项目的辅助喔! -所以不需要改动他!! chroot_list_enable=YES (NO) -是否启用将某些实体用戶限制在他们的家目录内?!预设是 NO , -不过,如果您想要让某些使用者无法离开他门的家目录时, -可以考虑将这个设定为 YES ,并且规定下个设定值 chroot_list_file=/etc/vsftpd.chroot_list -如果 chroot_list_enable=YES 那么就可以设定这个项目了!他里面可以规定 -那一个实体用戶会被限制在自己的家目录內而无法离开!(chroot) -一行一个帐号即可! userlist_enable=YES (NO) -若此设定值为 YES 时,则当使用者帐号被列入到某个档案时,在该档案內 -的使用者将无法登入 vsftpd 服务器!该档案名与下列设定项目有关。 userlist_file=/etc/vsftpd.user_list -若上面 userlist_enable=YES 时,则这个档案就有用处了!在这个档案內的 -帐号都无法使用 vsftpd 喔!userlist_deny=YES|NO -决定禁止还是只允许由userlist_file指定文件中的用户登录FTP服务器。此选项在userlist_enable 选项启动后才生效。YES,默认值,禁止文件中的用户登录,同时也不向这些用户发出输入口令的提示。NO,只允许在文件中的用户登录FTP服务器。 关于匿名者登入的设定值:anonymous_enable=YES -设定为允许 anonymous 登入我们的 vsftpd 主机!预设是 YES ,底下的所有 -相关設定都需要将这个设定为anonymous_enable=YES 之后才会生效!anon_world_readable_only=YES -允許 anonymous 具有下载可读文件的权限。anon_other_write_enable=YES (NO) -控制匿名用户是否拥有除了上传和新建目录以外的其他权限,如删除,更名等。anon_mkdir_write_enable=YES (NO) -是否让 anonymous 具有建立目录的权限?预设值是 NO!如果要设定为 YES, -那么 anony_other_write_enable 必须设定为 YES !当然在文件系统上,-FTP匿名用户必需对新目录的上层目录拥有写权限。 anon_upload_enable=YES (NO) -是否让 anonymous 具有上传资料的功能,预设是 NO,如果要能上传,要要满足另两个条件: -write_enable=YES 必须设定;在文件系统上,FTP匿名用户对某个目录有写权限。 deny_email_enable=YES (NO) -将某些特殊的 email address 抵挡住,不让那些 anonymous 登入! -如果以 anonymous 登入主机时,不是会要求输入密码吗?密码不是要您 -输入您的 email address吗?如果你很讨厌某些 email address , -就可以使用这个设定來将他取消登入的权限!需与下个设定项目配合: banned_email_file=/etc/vsftpd.banned_emails -如果 deny_email_enable=YES 時,可以利用这个设定项目來规定那个 -email address 不可登入我们的 vsftpd 喔!在上面设定的档案內, -一行输入一个 email address 即可! no_anon_password=YES (NO) -当设定为 YES时,表示 anonymous 将会略过密码检验步骤, -而直接进入 vsftpd 伺服器內喔!所以一般预设都是 NO 的! anon_max_rate=0 -这个设定值后面接的数值单位为 bytes/秒 ,限制 anonymous 的传输速度, 如果是 0 则不限制(由最大带宽所限制),如果您想让 anonymous 有 30 KB/s 的速度,可以设定『anon_max_rate=30000』 anon_umask=077 -限制 anonymous 的权限!如果是 077 则 anonymous 传送过來的档案 -权限是 -rw------- 喔!ftp_username= - 匿名用户所使用的系统用户名。默认下,此参数在配置文件中不出现,值为ftp。anon_root= -设定匿名用户的根目录,即匿名用户登入后,被定位到此目录下。 -主配置文件中默认无此项,默认值为/var/ftp/。chown_uploads=YES|NO -是否修改匿名用户所上传文件的所有权。YES,匿名用户所上传的文件的所有权将改为另外一个不同的用户所有,用户由chown_username参数指定。此选项默认值为NO。 chown_username=whoever -指定拥有匿名用户上传文件所有权的用户。此参数与chown_uploads联用。不推荐使用root用户。 系统安全设置:ascii_download_enable=YES (NO) -如果设定为YES ,那么 client 就可以使用 ASCII 格式下载档案。 一般來说,由于启动了这个设定项目可能会导致 DoS 的攻击,因此预设是NO。ascii_upload_enable=YES (NO) -与上一個设定类似的,只是这个设定针对上传而言!预设是 NO。 async_abor_enable=YES (NO) -如果您的 FTP client 有 "async ABOR" 这个指令时,这个设定才需要启用 -一般來说,由这个设定并不安全,所以通常都是将他取消的!check_shell=YES (NO) -如果您想让拥有任何奇怪的 shell 的使用者(在 /etc/passwd 的 shell ) -可以使用 vsftpd 的話,这个设定可以为 NO 喔!one_process_model=YES (NO) -这个设定项目比较危险一点~当为 YES 时,表示每个建立的连线 -都会拥有一支 process 在负责,可以增加 vsftpd 的效能。不过, -除非您的系统比较安全,而且硬件配置比较高,否则容易耗尽系统资源喔! 一般建议为 NO 啦! tcp_wrappers=YES (NO) -当然我们都习惯支援 TCP Wrappers !所以预设为 YES 吧! xferlog_enable=YES (NO) -当设定为 YES 时,使用者上传下载档案都会被记录起來。记录档案 -与下一个设定项目有关: xferlog_file=/var/log/vsftpd.log -如果上一个 xferlog_enable=YES 的话,这个就可以设定了! -这个是登陆档的档名啦! nopriv_user=nobody -我们的 vsftpd 预设以 nobody 作为此一服务执行者的权限。因为 nobody 的权限 -相当的低,因此即使被入侵,入侵者只能取得 nobody 的权限喔! pam_service_name=vsftpd -这个是 pam 模组的名称,我们放置在 /etc/pam.d/vsftpd 即是这个东东! 以上大多数默认即可,具体按自己的需求来调整 虚拟FTP帐号首先编辑一个users.txt文本# vi users.txttom123jack123 (填加两个密码都为123的用户)将此文本转换为数据库文件# db_load -T -t hash -f users.txt /etc/vsftpd_login.db更改权限# chmod 600 /etc/vsftpd_login.db修改下面的配置# vi /etc/pam.d/ftp将默认的模块全部注释点,然后填加制定的配置auth requiredpam_userdb.so db=/etc/vsftpd_loginaccountrequiredpam_userdb.so db=/etc/vsftpd_login填加个虚拟帐号要映射的系统用户# useradd vuser编辑下面配置# vi /etc/vsftpd.conflocal_enable=YESguest_enable=YESguest_username=vuser因为是通过系统用户vuser访问的,所以要打开本地访问。并且禁止所有有关匿名用户的配置现在就可以通过tom和jack来访问FTP了,进入的是用户vuser的home目录实例useradd -G test –d /tmp/test –M usr1注:G:用户所在的组 d:表示创建用户的自己目录的位置给予指定M:不建立默认的自家目录,也就是说在/home下没有自己的目录(R)读-----下载(W)写----上传 (X)执行----如果不开FTP的目录都进不去不可修改/var/ftp这个目录的权限(系统为了安全禁止更改),否则匿名用户不能登陆,可以在它下面建一个专门的子目录来设置权限。匿名用户是不能在/var/ftp下上传文件的,只能上传到其子目录。如:mkdir /var/ftp/shangchuanchgrp ftp /var/ftp/shangchuanchmod g+w /var/ftp/shangchuan匿名登陆,可以用ftp或anonymous帐号若:chmod g-r /var/ftp/shangchuan 则匿名用户不能浏览到文件,也不可下载,保护作用 默认拒绝/etc/ftpusers下列出的用户登陆,但可以通过修改/etc/pam.d/ftp中的sense值为allow,就表示只允许登陆的用户。可以快速的把服务器关起来,然后设置允许登陆的用户。 允许匿名用户上传文件 在vsftpd.conf文件中修改或增加以下选项: write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES 然后创建供匿名用户上传文件的目录,并设定权限: # mkdir /var/ftp/incoming # chmod o+w /var/ftp/incoming 由于匿名用户(ftp)上传文件,需要对incoming目录进行操作,而incoming为root所有,匿名用户(ftp)对于incoming来说是其他用户,所以要加入其他用户(o)的写权限。允许匿名拥护下载文件 anon_umask=077 #确定上传的文件对匿名用户可写 限制用户在自家目录 在默认配置中,本地用户可以切换到自家目录以外的目录进行浏览,并在权限范围内进行上传和下载,这无疑是个不安全因素。 我们可以设置chroot,让本地用户登录后只能访问自家目录,无法访问其他目录。相关的选项有三个:chroot_local_userchroot_list_enablechroot_list_file限制用户在自家目录有两种做法: 1、限制所有的本地用户在自家目录 chroot_local_user=YES 这种做法,可能会带来一些安全性上的冲突。参见前面的chroot_local_user选项描述。 2、限制部分本地用户在自家目录 chroot_local_user=NO chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list 在/etc/vsftpd.chroot_list文件中加入要限制的本地用户名。注意一个用户名一行。 本地用户控制:限制指定的本地用户不能访问,而其他本地用户可访问 例如下面的设置: userlist_enable= YES userlist_deny=YES userlist_file= /etc/vsftpd.user_list 使文件/etc/vsftpd.user_list中 指定的本地用户不能访问FTP服务器,而其他本地用户可访问FTP服务器。 限制指定的本地用户可以访问,而其他本地用户不可访问 例如下面的设置: userlist_enable= YES userlist_deny= NO userlist_file= /etc/vsftpd.user_list 使文件/etc/vsftpd.user_list中 指定的本地用户可以访问FTP服务器,而其他本地用户不可以访问FTP服务器。
页:
[1]