你的 FreeBSD 安好後就建 FTP ,只是不它而已, 有人得 FreeBSD 建的 ftpd 太春,另外用的 ftpd 取代, 常的替代方案有:proftpd , pureftp ......等,不要注意更新,因 FTP 程式常常被找到有安全漏洞。
一般,你安好 FreeBSD ,FTP 的服程式 /usr/libexec/ftpd 就有了
只要修改一下 /etc/inetd.conf , FTP 服就已可以提供有本的人使用
FreeBSD 系的 ftpd 提供 daemon 模式(stand alone)和由 inetd ftpd 方式
方式比起,daemon 的方式合同一使用多,大的主
如果只是要上服只要行:
/usr/libexec/ftpd -D -l -l
明:
ftpd 有很多的,可以 man ftpd 查看。
如果只用前面的方法 ftpd daemon,下次系重新後就了,了它能自,我可以把指令放入 /etc/rc.local 中或是仿 /usr/local/etc/rc.d 的案,自己 ftpd.sh 。
例一:
ee /etc/rc.local
在面放一行:
/usr/libexec/ftpd -D -l -l
例二:
仿 /usr/local/etc/rc.d 中的案,新增一叫 ftpd.sh 的 script :
ee /usr/local/etc/rc.d/ftpd.sh
面放入下面的容:
|
存好後再更改一下案的限,它可以行:
chmod 554 /usr/local/etc/rc.d/ftpd.sh
, FreeBSD 就自 ftpd ,也可以利用 /usr/local/etc/rc.d/ftpd stop 停止服,行要加什就修改 ftpd_flag 那行。
方式,想然,就是要修改 /etc/inetd.conf :
ee /etc/inetd.conf
先查一下 /etc/inetd.conf 中有有下面行:
#ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l |
如果像上面那行一,是井字,表示在 FTP 服是被的。井字表示解,不使用,只要把井字去掉改成下面的子:
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l |
存後行下面的指令:
kill -HUP `cat /var/run/inetd.pid`
inetd 重新抓取 /etc/inetd.conf 定就好了
注意:上面的 ` 是 Esc 下面那毛毛的按哦,可打成引
如果要停止 FTP 服,看之前是以 daemon 模式是 inetd 模式而有所不同。
daemon 模式可以行下列指令止 ftpd 的程序:
killall ftpd
如果之前是 ftpd 放在 /etc/rc.local 中由系在自,可以用下面的方法停止自提供 FTP 服。
先打 /etc/rc.local ,行:
ee /etc/rc.local
案中,行 ftpd 那行的最前面加井字,存好即可。
初是以 inetd 模式提供服的,要修改 inetd 的定 /etc/inetd.conf , inetd 重新取定。
先打 /etc/inetd.conf ,行:
ee /etc/inetd.conf
定中,有 ftpd 那行的前面加上井字後,存定。
inetd 重定,行下面指令:
kill -HUP `cat /var/run/inetd.pid`
如果要 FTP 服是否已停止了,可以行:
netstat -na
看看下面行是不是已消失了:
tcp4 0 0 *.21 *.* LISTEN
如果有特殊定,使用者用自己的 FTP 到主後,可以自由的切任意目的,如果不想它跑要做以下定。
FreeBSD 的 ftpd 以 /etc/ftpchroot 控制哪些人或群要如何 chroot ,所以我/新增定。
ee /etc/ftpchroot
在案面放入我要管制的人或群:
gsyan foo @staff |
上面的定使得 gsyan, foo 及於 staff 群的人都只能在自己目活。
明:
小老鼠的表示後面接的名群。
有方法可以只放一不 chroot 其它全部 chroot ?
最近 FreeBSD 建的 ftpd 在 /etc/ftpchroot 又多了可定的, 如果 man ftpchroot 可以看到明,就表示可以使用下面的的定到只放部份不定在人目的目的。
首先 /etc/ftpchroot :
ee /etc/ftpchroot
假 admin 是管理的, admin 可以在系中到游走,就面放入下面三行:
admin / ftp . @ www |
存好就可以用 ftp 看看, 上面的定有底下的效果:
第三行用在 server 有 apache 提供使用者放, 而 apache 定 UserDir=www ,以後只要告使用者: 『做好的直接用自己的 ftp 到主即可』, 以前都要解半天,他 ftp 後把放到 www 料, 不,得先使用者的 www 目先建立好,不然可是登入都法登入哦!!
在 FreeBSD 4.8R 以後的 /etc/ftpchroot 又新增了功能,的定可以 man ftpchroot (不,之前的版本 man )。
方法是利用使用者料 (系密 /etc/master.passwd) 中 login class 的位,定使用者於的 class ,然後在 /etc/login.conf 中定各 class 在 FTP chroot 的作何,在 /etc/ftpchroot 不方便定,用於要理很多人的。
/etc/login.conf 修改,行:
ee /etc/login.conf
然後找到下面 default: 的哪行,似下面的容:
default:/ :copyright=/etc/COPYRIGHT:/ :welcome=/etc/motd:/ ...................略 |
加下面一行:
:ftp-chroot:/
成:
default:/ :ftp-chroot:/ :copyright=/etc/COPYRIGHT:/ :welcome=/etc/motd:/ ...................略 |
然後行下列行指令,把 login.conf 成料格式
cap_mkdb /etc/login.conf
,所有的都做 chroot,活的就限定在自己的目中。
想全部管制,但又想放系管理用的不做 chroot 呢?
前面的方法,我定的是 default login class 要做 FTP 的 chroot,也就是所有人共同的定,想系管理可以到游走,就定一系管的 class ,且 ftp-chroot 的性去掉即可到部份放的目的。
/etc/login.conf 新增系管的 login class 叫 admin,加入 ftp-chroot 否的定:
ee /etc/login.conf
新增下面行(注意色的部份), 注意:除了前面 defaults: 下的 ftp-chroot 部份,我在下面另外新增一 login class 叫 admin:
...................略 |
然後行下列行指令,把 login.conf 成料格式:
cap_mkdb /etc/login.conf
注意:上面在 admin class 中用的是:
:ftp-chroot@:/
ftp-chroot 多了小老鼠哦!它代表值要相反的意思,也就不做 ftp-chroot。
再,我要告系,於 admin login class ,直接修改料,行
vipw
修改管理 (不做 chroot) 的 login class admin
例如:
假系管理 gsyan 原的料是:
gsyan:*:1000:1000::0:0:大雄:/home/gsyan:/bin/tcsh
要它的 login class 修改 admin ,就改下面的子:
gsyan:*:1000:1000:admin:0:0:大雄:/home/gsyan:/bin/tcsh
都修改完了就存案,利用 FTP 以不同身份登入看看。
明:
FreeBSD 中 /etc/master.passwd 密位依序:
名:密:UID:GID:class:制密的:有效:料:家目:shell
所以要改的 login class 是第五位。
於密的格式可以 man 5 passwd 查看
不同身份的使用者分 login class,利用 /etc/login.conf 定各身份能使用的系源是不的管制工具,非常值得好好的研究,的容可以 man login.conf 。
在系中有客可以下 FTP 站中的案,叫匿名的 FTP 服 (Anonymous FTP),要提供服必有一叫 ftp 的建立好相的目及案,部份如果不清楚,利用 /stand/sysinstall 做是最不的。底下是定的步:
1.呼叫 /stand/sysinstall ,行:
/stand/sysinstall
2.出安『/stand/sysinstall Main Menu』, 按方向移到『Configure』,然後按空白
![]()
3.入到『FreeBSD Configuration Menu』後,按方向移到『Networking』,然後按空白
![]()
4.入到『Network Services Menu』後,按方向移到『Anon FTP』,後按空白
![]()
5.入到『Anonymous FTP Configuration』後,入下面的料:
![]()
6.入完後就按 OK 。
7.接著入FTP的 GID (使用值,直接按 Enter 就可以)。
![]()
8.接著,是否要生站迎 (welcome message),直接按 Enter 就可以。
9.入站的迎:
10.完好後按 Esc ,再按 Enter 次即可存。
11.接著都最上面的 Exit 即可。
/stand/sysinstall 你做了什事?!
- 新增 FTP 用的 (一般都叫 ftp)
- 新增 FTP 用的群
- 新增 FTP 用的目
- 新增案到 ~ftp/etc/ (group,passwd,ftpmotd)
- 定各目的限:
目名 | 有者 | 限 |
~ftp | root | a-w |
~ftp/etc | root | 555 (目限) 444 (pwd.db group ftpmod 三案) |
~ftp/pub | root | a-w |
一定要注意各目的限,目只要有 Write 的限,客就可以任意上/修改/除案,如果 FTP 主被有心人士可以任意上案,呵~路流量可能直爆增。
相案:
其它的定、自行 man ftpd 。
ftpd 的有 -l 可以系的 syslogd FTP 情形下,不我必先定 /etc/syslog.conf ,且 syslogd 重新取定,才能生作用。
下面是定的步:
1.生空的 /var/log/ftpd ,行下面的指令:
touch /var/log/ftpd
2. 修改 syslod 的定
/etc/syslog.conf :
ee /etc/syslog.conf
找到含有 mail.info 的那一行
mail.info /var/log/maillog
在前述那行的下面新增一行:
ftp.* /var/log/ftpd
加完以後,按 Esc ,再按次 Enter ,定存好。
3. syslogd 重新取 /etc/syslog.conf
行下面的指令通知 syslogd 重新取定:
kill -HUP `cat /var/run/syslogd.pid`
※ 注意:` 是按上毛毛那按哦!
雄曰:
在都直接用 FreeBSD 建的 ftpd ,下面的部份已好久用!都是料啦,希望不。
wu-ftp (Washington University FTP) 由於功能大,去在 Unix Like 的主上被用,或是用的人多,也成大家研究的焦, 常被有安全漏洞,所以安後一定要常注意相息,更新。
方法一:用 packages
pkg_add -v ftp://ftp.tku.edu.tw/OS/FreeBSD/packages/packages-stable/Latest/wu-ftpd.tgz
方法二:用 ports
wu-ftpd 需要用到 autoconf213 ,得要先安好工具, ports tree 中有 /usr/ports/devel/autoconf213 才不出。
如果有可以行下面指令安 autoconf213 及抓取 ports 相案:
pkg_add -v ftp://ftp.tku.edu.tw/OS/FreeBSD/packages/packages-stable/Latest/autoconf213.tgz
cd /usr/ports/devel
ncftpget -R ftp://freebsd.csie.nctu.edu.tw/pub/ports/ports/devel/autoconf213
cd /usr/ports/ftp
ncftpget -R ftp://freebsd.csie.nctu.edu.tw/pub/ports/ports/ftp/wu-ftpd好後即可行及安:
cd /usr/ports/ftp/wu-ftpd
make
make install
wu-ftpd 用到的定如下:
安完後,在 /usr/local/etc 就有一些 ftp*.sample 的例,我一份修改:
cd /usr/local/etc
cp ftpaccess.sample ftpaccess
cp ftpconversions.sample ftpconversions
cp ftpusers.sample ftpusers
cp ftpgroups.sample ftpgroups
cp ftphosts.sample ftphosts
只要稍加修改就可以用!
ftpaccess 中常用的定:
功能 | 法 |
定(class) | class 名 成(real,guest,anonyous) 址 class TP real,guest,anonymous *.tp.edu.tw |
限制上人及段 | limit class名 人 息(路) limit TP 50 any /usr/local/etc/ftp.msg.Full TP class 同最多 50 ,了就示 ftp.msg.Full中的容 |
log commands class名 log transfers class名 inbound,outbound | |
控制可行的指令 | delete yes 或 no overwrite yes 或 no rename yes 或 no chmod yes 或 no umask yes 或 no |
只示主名,不示版本... | greeting brief |
做 chroot | restricted-uid 使用者 restricted-uid * (所有使用者 chroot) |
不做 choot | unrestricted-uid 使用者 unrestricted-uid gsyan (gsyan不做 chroot) |
wu-ftp 可以做的事在太多了,其它的定 man ftpaccess 包您可以而。
我打算 wuftpd 以 inetd 的模式提供服,所以要先修改 /etc/inetd.conf ,然後 inetd 重新取定。
/etc/inetd.conf 修改:
ee /etc/inetd.conf
含有 ftp 的那行改下面的容:
ftp stream tcp nowait root /usr/local/libexec/ftpd ftpd -a
然後 inetd 重新取定,行下面的指令:
kill -HUP `cat /var/run/inetd.pid`
最後利用 netstat -na 察服是否,或是以 FTP 。
得注意安全警示,有要上更新程式,以免被!
新闻热点
疑难解答