FREEBSD6.0 架设FTP 服务器
NoLoginList 的参数可以是使用者或是群组,如果是设定群组,请在群组名称前加上 @。当要设定多个使用者或群组时,请使用逗号 , 分开。 匿名使用者「ftp」及「anonumous」会被对映到真实的使用者「ftp」,如果您要设定的是匿名的使用者「ftp」及「anonymous」,请使用「ftp」这个使用者。
例如:
NoLoginList user1,@group1,user2
表示不允许使用者 user1, user2 及群组 group1 登入。
NoLoginList user1,user2,@group1,@group2 |
TimeOut 设定联机逾时秒数
当使用者超过这个时间没有任何动作时,则中断联机。单位为秒。
TimeOut 900 |
MaxTimeOut 设定最大联机逾时秒数
使用者可以自行设定 timeout 的时间,但我们可以在这里设定最长 timeout 的时间。预设是 2 小时。
MaxTimeOut 7200 |
15.7.3 FTP 目录权限控制
DefaultMode 预设的权限控制模式
SmbFTPD 有二种模式,一个是 SMB mode,另一个是 Normal mode。在 SMB 模式中,SmbFTPD 会使用类似 Samba 的共享数据夹权限设定,系统会读取 ShareConfPath 中的使用者目录权限控制来设定他对于数据夹的存取权限。而 Normal 模式中,SmbFTPD 就像一般 FTP Daemon 一样。
这个选项的值可以是 Normal 或 SMB,预设为 Normal。
DefaultMode Normal |
ExceptionList 设定不使用预设权限控制模式的使用者
您可以在 ExceptionList 中设定不要使用 DefaultMode 的使用者及群组。例如,您如果希望所有人都使用 SMB 模式,但群组 wheel 要使用一般模式,则请将 DefaultMode 设为 SMB,再在 ExceptionList 中设定 @wheel 即可。
ExceptionList 的参数可以是使用者或群组,如果是群组的话,请在群组名称前加上 @。例如:
ExceptionList user1,user2,@group1,@group2 |
ShareConfPath 设定数据夹权限设定文件位置
设定数据夹设定的 smbftpd_share.conf 所在路径。如果您设定 DefaultMode 为 SMB,或是 DefaultMode 为 Normal 但有 ExceptionList,则一定要指定 smbftpd_share.conf 的所在路径。
我们会检查 smbftpd_share.conf 中的下列关键词设定:
- path:数据夹的路径。
- rw:可以有写入权限的使用者或群组。
- ro:可以有只读权限的使用者或群组。
- browseable:资料夹是否要设为隐藏。若设为 no,则使用者在根目录 ls 时,将看不到该数据夹,但依然可以 cd 到该数据夹中。
- disable_download:设定不可以下载的使用者。若使用者可以读取该资料夹内容,您还可以设定让它无法执行下载的动作。
- disable_ls:设定在资料夹中执行 ls 时,不可以看到资料夹内容的使用者及群组。
- disable_modify:设定不可以修改该资料夹中的档案或目录的使用者及群组。如果该使用者具有读写的权限,但又在此列表中,则该使用者只能上传档案或是建立新的目录,而无法执行 rename、delete、rmdir、chmod 等指令。
范例一:
这个范例是有一个数据夹名为 public,其所在目录为 /home/public,在 samba 群组中的使用者可以有只读的权限,而 root 可以有写入的权限。
[public] path = /home/public rw = root ro = @samba
范例二:
数据夹名称为 private,只有 wheel 群组的人可以写入,而且这个数据夹是隐藏的,wheel 群组的人登入后使用 ls 看不到这个资料夹,但是可以 cd 进去资料夹中。
[private] path = /root/ftp rw = @wheel browseable = no
范例三:
数据夹名称为 upload, 使用者「ftp」及「anonymous」只能上传档案或建立新目录,但是无法看到该数据夹中的内容,也不可以下载或是修改现有的档案。但在使用者「wheel」群组中的使用者可以具有全部的读写权限。
[upload] path=/home/upload" rw=ftp,@wheel disable_ls=ftp disable_modify=ftp disable_download=ftp
请注意,匿名使用者「ftp」及「anonumous」会被对映到真实的使用者「ftp」,如果您要设定的是匿名的使用者「ftp」及「anonymous」,请使用「ftp」这个使用者。
如果您设定某个使用者对于某个数据夹有写入的权限,但该使用者却无法写入,因为除了 SmbFTPD 的权限控制外,您还必须对数据夹的 UNIX 权限做一些设定,让该数据夹的 UNIX 权限允许该使用者写入。
ShareConfPath /some/where/smbftpd_share.conf |
ChrootSet 设定使用 chroot 的使用者
在这个列表中的使用者或群组会被 chroot 到您所指定的路径中,也就是让它将您所设定的路径做为根目录,使用者无法到该路径以外的地方。如果有需要,您可以同时设定多条 ChrootSet 的规则。
这个参数的第一个字段是使用者名称或群组,如果在名称之前加上 @,表示是群组,所有在该群组中的使用者都会被套用到群组的设定中。而另一个特别的用法是只有一个 @ 符号,表示所有使用者都会被套用到这个设定中。
请注意,被设定为 chroot 的使用者就算 DefaultMode 被归类为 SMB mdoe 也一定会被强制使用 Normal mode。
这里有几个设定的范例:
范例一:
使用者 ftp 登入时,将它 chroot 到 /var/spool/ftp
ChrootSet ftp /var/spool/ftp
范例二:
所有群组为 ftpgroup 的使用者都使用他们的家目录 (home) 做为根目录。例如,使用者 alex 的家目录为 /home/alex,则其根目录为 /home/alex,而 jack 则是 /home/jack。我们以 ~ 符号表示家目录,系统会自动转换为真正的路径。
ChrootSet @ftpgroup ~
范例三:
所有 webusers 这个群组的人都以其家目录下的 public_html 为根目录。这对于您要开放 FTP 给某些使用者,但又不想让他们去存取系统中其它路径时十分有用。
ChrootSet @webusers ~/public_html
范例四:
所有使用者都必须以其家目录为根目录。
ChrootSet @ ~
ChrootSet @webusers ~/public_html ChrootSet @ ~ |
15.7.4 匿名使用者控制
AnonymousLogin 是否支持匿名使用者登入
是否允许匿名使用者登入。匿名的使用者账号为 ftp 或 anonymous。如果您要允许匿名使用者登入,您必须先新增一个 ftp 的系统使用者。
这个选项的值可以是 Yes 或 No,默认值为 No。
AnonymousLogin No |
AnonymousOnly 是否只允许匿名使用者登入
是否只允许匿名使用者登入。若设为 Yes,则一般使用者无法登入。
AnonymousOnly No |
15.7.5 档案传输控制
TransferLog 设定上下传记录文件位置
这个选项用来设定使用者上传及下载的档案记录。您可以设定当使用者下载或上传档案时,将它所上传或下载的档名、传输时间、大小等数据写在这个档案中。
TransferLog /var/run/smbftpd.log |
MaxDownloadRate 设定最大下传速度
您可以针对使用者及群组设定最大的下载频宽。频宽 rate 的单为是 KB/s。您也可以设定多条 MaxDownloadRate 规则。
这个选项的第一个参数可以是使用者或群组,如果是群组,则名称开头必须加上 @。而若只有一个 @ 符号,表示所有使用者都要套用到该规则。
MaxDownloadRate @group100 100 MaxDownloadRate ftp 20 MaxDownloadRate @friends 1000 |
MaxUploadRate 设定最大上传速度
您可以针对使用者及群组设定最大的上传频宽。频宽 rate 的单为是 KB/s。您也可以设定多条 MaxDownloadRate 规则。
这个选项的第一个参数可以是使用者或群组,如果是群组,则名称开头必须加上 @。而若只有一个 @ 符号,表示所有使用者都要套用到该规则。
MaxUploadRate @group100 100 MaxUploadRate ftp 20 MaxUploadRate @friends 1000 |
15.7.6 SSL/TLS 控制
SecurityPolicy 设定是否使用 SSL/TLS
这个选项可以让您设定是否要启用 SSL/TLS 加密。您可以 强制一定要使用加密联机,或是关闭加密功能,或是同时允许加密及非加密模式。各种模式的说明如下:
- secure:只允许加密联机。
- nosecure:只允许非加密联机。
- both:同时允许加密及非加密联机。
您可以将 SecurityPolicy 设为 secure、nosecure、或 both,默认值是同时允许加密及非加密联机。
SecurityPolicy both |
EncryptionType 设定加密类型
当您要使用加密联机时,您可以选择要支持哪一种加密模式。SmbFTPD 支持二种模式:SSL 及 TLS,您可以使用下列设定值以选择要使用另一种模式:
- TLS:只使用 RFC 2228 所定义的 FTP-TLS 模式。
- SSL:只支持 FTP-SSL 模式。
- Both:同时支持 SSL 及 TLS。
默认值是同时支持 SSL 及 TLS。
EncryptionType both |
NormalUserMustSecure 强制一般使用者使用加密联机
当 NormalUserMustSecure 设为「Yes」时,表示一般使用者登入时一定要使用加密的联机,否则无法登入。
我们在 FTP 服务中使用 SSL/TLS 的目的是为了避免使用者的机密数据在网络上以明码流传,为了强制所有使用者都使用比较安全的模式联机,您可以将这个选项设为「Yes」。
NormalUserMustSecure No |
AnonymDisableSecure 设定不允许匿名使用者使用加密联机
当 AnonymDisableSecure 设为「Yes」时,系统将不允许匿名的使用者使用加密的联机。
既然 SSL/TLS 的目的是避免使用者数据在网络上流传,而匿名使用者是任何人都可以使用,保护匿名使用者的数据似乎比较不需要。所以您可以将这个选项设为「No」,以避免匿名使用者也使用加密联机登入,徒然耗费 CPU 的资源。
AnonymDisableSecure No |
SSLCertFile 设定公开金钥位置
设定所要使用的凭证,这个凭证会被送到客户端做为加密用。如果您没有设定这个选项,预设会使用 /usr/local/etc/smbftpd/ssl.crt/server.crt。
您也可以和 Apache+SSL 共享凭证,Apache 的 SSL 凭证通常位于 /usr/local/etc/apache2/ssl.crt/server.crt。
SSLCertFile /usr/local/etc/smbftpd/ssl.crt/server.crt |
SSLKeyFile 设定私密金钥位置
这个选项是用来设定您上述设定的凭证所对映的 private key。这个 private key 和凭证是成对的,预设是在 /usr/local/etc/smbftpd/ssl.key/server.key。
如果您使用 Apache SSL 凭证,则这里也必须设定使用 Apache 的 key,通常位于 /usr/local/etc/apache2/ssl.key/server.key。
SSLKeyFile /usr/local/etc/smbftpd/ssl.key/server.key |
SSLDebugMode 是否启用 SSL 的除错模式
设定是否要启动 SSL 的除错模式,当设为「Yes」时,您还必须要设定记录文件位置 SSLDebugLog。
SSLDebugMode No |
SSLDebugLog 设定除错记录文件位置
设定 SSL 除错模式的记录文件要放在什么地方。
SSLDebugLog /var/log/smbftpd-ssl.log |
相关文章
- 这篇文章主要介绍了Unix,BSD,Linux系统三者的区别小结,需要的朋友可以参考下2023-05-03
一些朋友问小编FreeBSD如何添加硬盘?别担心,今天小编就为大家分享FreeBSD添加硬盘的方法,希望对大家会有帮助,有需要的朋友一起去看看吧2017-04-06- 今天小编为大家带来的是Freebsd PF 安装使用详解,希望对大家会有帮助,有需要的朋友一起去看看吧2017-04-06
FreeBSD下zfs: failed with error 6错误如何解决?
最近一些朋友问小编 FreeBSD下zfs: failed with error 6错误如何解决?今天小编要为大家带来的是 FreeBSD下zfs: failed with error 6错误的解决方法,有需要的朋友一起去看2017-04-06- 今天小编要为大家带来的是Unix文件系统和pwd命令实现详解,希望对大家会有帮助,有需要的朋友一起去看看吧2017-04-01
- 今天小编将为大家带来的是Unix中的dot命令详解!希望对大家会有帮助!有需要的朋友一起去看看吧2017-03-22
- 近日!一些朋友对于freebsd时间设置小节存在疑虑!下面小编将为大家带来的是freebsd时间设置小节详解!希望对大家会有帮助!有需要的朋友一起去看看吧2017-03-19
- 今天小编要为大家带来的是grub2引导freebsd详解!希望对大家会有帮助,有需要的朋友一起去看看吧2017-03-19
- 下面小编为大家带来的是FreeBSD10安装内核源代码方法讲解!希望能够帮助到大家!有需要的朋友一起去看看吧2017-03-19
FreeBSD下如何使GraphicsMagick支持中文字体?
最近一些朋友在问FreeBSD下如何使GraphicsMagick支持中文字体?今天小编为大家带来的是FreeBSD下使GraphicsMagick支持中文字体的方法!有需要的朋友一起去看看吧2017-03-15



最新评论