最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用OpenBSD 3.8 release自帶的FTPD架設(shè)FTP服務(wù)器

  發(fā)布時間:2008-09-08 18:49:16   作者:佚名   我要評論
使用OpenBSD 3.8 release自帶的FTPD架設(shè)FTP服務(wù)器 Author: MichaelBibby Date: 2005/11/20 可以任意轉(zhuǎn)載,但請保留以上信息,謝謝。 注:本文參考OpenBSD 3.8的官方FAQ文檔和ftpd的man文檔寫成,更全面的信息請參看這兩個文件。

使用OpenBSD 3.8 release自帶的FTPD架設(shè)FTP服務(wù)器

Author: MichaelBibby
Date: 2005/11/20

可以任意轉(zhuǎn)載,但請保留以上信息,謝謝。

注:本文參考OpenBSD 3.8的官方FAQ文檔和ftpd的man文檔寫成,更全面的信息請參看這兩個文件。

官方FAQ:http://www.openbsd.org/faq/faq10.html#AnonFTP
ftpd的在線手冊頁:http://www.openbsd.org/cgi-bin/man.cgi?query=ftpd&apropos=0&sektion=0&manpath=OpenBSD+3.8&arch=i386&format=html

OpenBSD的ftpd程序沒有配置文件,就靠設(shè)置運行參數(shù)進行配置。所有參數(shù)的含義都可以在ftpd
的man文檔中獲得詳細信息:

$ man ftpd

ftpd程序的啟動有三種方法(inetd/"rc file"/command line):

1: inetd方式:

在"/etc/inetd.conf"文件中有這么一行:

ftp stream tcp nowait root /usr/libexec/ftpd ftpd -US

這里為"ftpd"傳遞了兩個參數(shù)"-US"。當(dāng)然你還可以組合自己想要的參數(shù)。(一些常用參數(shù)的含義
在下文給出)。
inetd方式還需要同時啟動inetd服務(wù),OpenBSD默認啟動了inetd(可以看看/etc/rc.conf中的
"inetd_flags"變量的值)。

2: "rc"方式;

所謂"rc"方式,指的就是通過配置"/etc/rc.conf"或者"/etc/rc.conf.local"來啟動系統(tǒng)服務(wù)。
為"/etc/rc.conf"中的"ftpd_flags"變量設(shè)置參數(shù),并確保該行沒有被注釋掉。
這種方法需要在重新啟動系統(tǒng)后才會生效;

3: 直接在命令行下執(zhí)行ftpd命令,這樣就不需要重啟系統(tǒng)了:

 

	# /usr/libexec/ftpd -4DllUS



ftpd程序的終止:

1: 如果不需要提供ftp服務(wù),則在/etc/rc.conf中將ftpd_flags變量注釋掉(在該行最開頭加一個"#"
符號);
2:使用ps查看ftpd的PID,然后"kill PID"。

以下是ftpd常用的一些參數(shù)(這里列出的只是常用的,并不是全部。更多的參數(shù)請查看ftpd的man文檔):

-4 如果指定了"-D"參數(shù),則強制ftpd只使用IPv4地址。
-6 和"-4"的解釋類似;如果指定了"-D"參數(shù),則強制ftpd只使用IPv6地址。
-A 只允許匿名登錄(除非指定了"-n"選項)。
-D 如果指定了該參數(shù),ftpd將做為daemon運行,****ftp端口并且fork子進程對連接進行
處理。在繁忙的服務(wù)器上,這樣可以減少系統(tǒng)負載,與使用inetd方式啟動ftpd比起來,
這種方式使用更少的系統(tǒng)資源。
-d 使用LOG_FTP將Debug信息寫入syslog。
-l 每個成功和失敗的ftp session都將由LOG_FTP工具通過syslog記錄下日志。如果這個選
項被指定兩次,所有g(shù)et/put/append/delete/make directory/remove directory/rename
操作以及所操作的文件都將被記錄進日志。
-U 每個并發(fā)的ftp session都被記錄到日志文件/var/run/utmp,記錄的格式就象who(1)命令
的輸出一樣。
-n 禁止匿名登錄。通常是允許的。
-S 如果設(shè)置了這個參數(shù),ftpd將會把所有匿名用戶的下載情況記錄在文件/var/log/ftpd中
(如果它存在的話)。
-T maxtimeout
連接超時的時間限制。默認是2小時。
-u mask
強制設(shè)置umask為指定的mask。而不是使用/etc/login.conf中的設(shè)置(login.conf中通常
設(shè)置為022),并且不允許chmod。

看了這幾個選項,你應(yīng)該可以組合出合適的選項來滿足自己的功能需求了。

1:只允許使用系統(tǒng)帳號登錄FTP;

因為匿名用戶登錄需要使用到系統(tǒng)中的一個名為"ftp"的帳戶(更多關(guān)于該帳戶的討論,請看本文下
半部分),而OpenBSD系統(tǒng)中沒有該帳戶,需要手動建立并且設(shè)置正確的權(quán)限,所以如果只允許用戶
通過系統(tǒng)帳號登錄FTP服務(wù)器,則只需要在/etc/rc.conf中將ftpd_flags的值簡單地設(shè)置為"-D"即可
(雖然這時候的設(shè)置仍然允許匿名用戶登錄,但是因為系統(tǒng)中沒有"ftp"用戶,所以無法登錄)。當(dāng)
然你也可以多設(shè)置一些參數(shù)。比如:

 

	ftpd_flags="-4DllUSn"



參考上面幾個常用選項的說明,你就會明白這是什么意思了。

2:允許匿名用戶登錄訪問FTP資源;

因為匿名用戶登錄到FTP服務(wù)器后,實際上是一個"ftp"用戶的身份進行所有操作,所以出于安全考慮,
這個用戶的權(quán)限通常被設(shè)置得很低。比如:

1:不為該用戶提供一個可用的shell,使其無法登錄系統(tǒng);
2:沒有一個可用的密碼(即FAQ上說的"This account shouldn't have a usable password;");
3:登錄系統(tǒng)后被chroot;
......

接下來我們要做的就是按照上面列出的三個要求來添加和設(shè)置這個低權(quán)限、處處受限的"ftp"用戶。

2.1:添加"ftp"帳戶以提供匿名訪問;

2.1.1:在/etc/shells中添加一個無法實際使用的shell:

設(shè)置"ftp"使用這個shell的目的,是不允許它通過shell登錄到系統(tǒng)中。通常我們會有兩種選擇:

 

	/sbin/nologin

/usr/bin/false



為了在添加用戶時可以使用這兩個shell,我們可以這樣做:

 

	# echo '/sbin/nologin' >>/etc/shells

# echo '/usr/bin/false' >>/etc/shells



2.1.2:在未將它們加入到/etc/shells的情況下,使用adduser添加帳戶時加上"-shell"參數(shù):

 

	# adduser -shell /sbin/nologin

Enter username []: ftp
Enter full name []: anonymous ftpd user
Enter shell bash csh ksh nologin sh [/sbin/nologin]:


......

這里在詢問該用戶使用何種shell時就出現(xiàn)了/sbin/nologin。如果不帶這個參數(shù),將無法使用它:

 

	# adduser

Enter username []: ftp
Enter full name []: anonymous ftpd user
Enter shell bash csh ksh nologin sh [bash]: /sbin/nologin
/sbin/nologin: is not allowed!
Enter shell bash csh ksh nologin sh [bash]:



這里就提示了不允許使用/sbin/nologin做為shell使用。

2.2:示例;

這里使用"adduser -s shell /sbin/nologin"來添加一個這樣的"ftp"帳戶做為示例,并將該用戶的
$HOME目錄設(shè)置為"/var/ftp":

 

	# adduser -shell /sbin/nologin -home /var

Use option ``-silent'' if you don't want to see all warnings and questions.

Reading /etc/shells
Check /etc/master.passwd
Check /etc/group

Ok, let's go.
Don't worry about mistakes. I will give you the chance later to correct any input.
Enter username []: ftp
Enter full name []: anonymous ftpd user
Enter shell bash csh ksh nologin sh [/sbin/nologin]:ENTER
Uid [1001]:ENTER
Login group ftp [ftp]:ENTER
Login group is ``ftp''. Invite ftp into other groups: guest no
[no]:ENTER
Login class daemon default staff [default]:ENTER
Enter password []:ENTER # 在此直接按ENTER鍵。這樣就可以設(shè)置一個不可用的密碼。
Set the password so that user cannot logon? (y/n) [n]: y

Name:        ftp
Password:    ****
Fullname:    anonymous ftpd user
Uid:         1001
Gid:         1001 (ftp)
Groups:      ftp
Login Class: default
HOME:        /var/ftp
Shell:
OK? (y/n) [y]: y
Added user ``ftp''
Copy files from /etc/skel to /var/ftp
Add another user? (y/n) [y]: n
Goodbye!
#



到這里,添加用戶的工作就完成了。還需要把從/etc/skel復(fù)制到$HOME目錄的一些"dot files"給刪除,
以免暴露信息。"dot files"的第一行通常會有一些系統(tǒng)的信息,比如"~/.cshrc"文件中就有這么一行:

# $OpenBSD: dot.cshrc,v 1.5 2005/02/16 06:56:57 matthieu Exp $

這至少就告訴了匿名登錄的用戶,這是個OpenBSD系統(tǒng)。所以把它們刪除:

# rm -f /var/ftp/.*

3:為/var/ftp目錄設(shè)置正確的權(quán)限以保證安全性;

3.1:"~ftp"目錄;

"~ftp"目錄表示"ftp"用戶的主目錄,在本例中就是"/var/ftp"目錄。
將它的owner設(shè)置為"root",權(quán)限設(shè)置為任何人都不可寫(555):

# chown -R root:wheel /var/ftp
# chmod -R 555 /var/ftp

3.2:"~ftp/bin"目錄;

這個目錄并不是必須的。如果希望匿名用戶登錄到FTP后能夠執(zhí)行一些command,就可以將command
復(fù)制到這個目錄下。所有的command的權(quán)限都應(yīng)該設(shè)置為只允許執(zhí)行(111)。

# mkdir /var/ftp/bin
# chown -R root:ftp /var/ftp/bin
#COPY YOUR PROGRAMS TO /var/ftp/bin,AND THEN:
# chmod -R 111 /var/ftp/bin/*

3.3:"~ftp/etc"目錄;

和"~ftp/bin"目錄一樣,這也是個可選的,并不推薦創(chuàng)建它。(更多關(guān)于該目錄設(shè)置的信息請查看"ftpd"
的man文檔)。

3.4:"~ftp/pub"目錄:

這個目錄用來存放你希望被匿名用戶訪問的文件。權(quán)限應(yīng)該設(shè)置為555。

 

	# chown -R root:ftp /var/ftp/pub

# chmod -R 555 /var/ftp/pub



這里雖然提到了創(chuàng)建三個目錄,但是實際上我們只需要創(chuàng)建"~ftp/pub"目錄并設(shè)置好權(quán)限就可以了。

4:chroot匿名登錄的用戶;

"ftpd"會將"/etc/ftpchroot"文件中列出的用戶都chroot。要使"ftp"用戶在登錄ftp后被chroot,只需要簡單
地把用戶名添加到這個文件中就可以了。這是一個示例文件:

# file : /etc/ftpchroot
#       $OpenBSD: ftpchroot,v 1.3 1996/07/18 12:12:47 deraadt Exp $
#
# list of users (one per line) given ftp access to a chrooted area.
# read by ftpd(8).
ftp
bibby

"ftpd"在啟動時會讀取這個文件,如果"ftp"和"bibby"這兩個用戶登錄ftp,將被分別chroot到自己的$HOME目錄下。

5:其他一些相關(guān)文件;

/etc/ftpusers -- 列出了所有不受歡迎的用戶。列在該文件中的用戶都無法登錄ftp。
/etc/ftpwelcome -- 歡迎信息。登錄上ftp的用戶都將在登錄時看到這一信息。
/etc/motd -- 如果"/etc/ftpwelcome"文件不存在,則使用"/etc/motd"文件的內(nèi)容做為歡迎信息。
".message" -- 這個文件可以被放置在"~ftp"目錄下的任何一個子目錄中。用戶進入該目錄時就會顯示這個
文件中的內(nèi)容。
 

相關(guān)文章

  • Unix,BSD,Linux系統(tǒng)三者的區(qū)別小結(jié)

    這篇文章主要介紹了Unix,BSD,Linux系統(tǒng)三者的區(qū)別小結(jié),需要的朋友可以參考下
    2023-05-03
  • FreeBSD如何添加硬盤?FreeBSD添加硬盤的方法

    一些朋友問小編FreeBSD如何添加硬盤?別擔(dān)心,今天小編就為大家分享FreeBSD添加硬盤的方法,希望對大家會有幫助,有需要的朋友一起去看看吧
    2017-04-06
  • Freebsd PF 安裝使用詳解

    今天小編為大家?guī)淼氖荈reebsd PF 安裝使用詳解,希望對大家會有幫助,有需要的朋友一起去看看吧
    2017-04-06
  • FreeBSD下zfs: failed with error 6錯誤如何解決?

    最近一些朋友問小編 FreeBSD下zfs: failed with error 6錯誤如何解決?今天小編要為大家?guī)淼氖?FreeBSD下zfs: failed with error 6錯誤的解決方法,有需要的朋友一起去看
    2017-04-06
  • Unix文件系統(tǒng)和pwd命令實現(xiàn)詳解

    今天小編要為大家?guī)淼氖荱nix文件系統(tǒng)和pwd命令實現(xiàn)詳解,希望對大家會有幫助,有需要的朋友一起去看看吧
    2017-04-01
  • Unix中的dot命令詳解

    今天小編將為大家?guī)淼氖荱nix中的dot命令詳解!希望對大家會有幫助!有需要的朋友一起去看看吧
    2017-03-22
  • freebsd時間設(shè)置小節(jié)詳解

    近日!一些朋友對于freebsd時間設(shè)置小節(jié)存在疑慮!下面小編將為大家?guī)淼氖莊reebsd時間設(shè)置小節(jié)詳解!希望對大家會有幫助!有需要的朋友一起去看看吧
    2017-03-19
  • grub2引導(dǎo)freebsd詳解

    今天小編要為大家?guī)淼氖莋rub2引導(dǎo)freebsd詳解!希望對大家會有幫助,有需要的朋友一起去看看吧
    2017-03-19
  • FreeBSD10安裝內(nèi)核源代碼方法講解

    下面小編為大家?guī)淼氖荈reeBSD10安裝內(nèi)核源代碼方法講解!希望能夠幫助到大家!有需要的朋友一起去看看吧
    2017-03-19
  • FreeBSD下如何使GraphicsMagick支持中文字體?

    最近一些朋友在問FreeBSD下如何使GraphicsMagick支持中文字體?今天小編為大家?guī)淼氖荈reeBSD下使GraphicsMagick支持中文字體的方法!有需要的朋友一起去看看吧
    2017-03-15

最新評論

阜康市| 岐山县| 潮安县| 金秀| 甘肃省| 开封县| 湖南省| 绥阳县| 安岳县| 长沙县| 贵南县| 游戏| 临桂县| 秦安县| 高邮市| 两当县| 仙游县| 濉溪县| 石柱| 德化县| 英吉沙县| 奎屯市| 内江市| 恩平市| 盐亭县| 呼伦贝尔市| 西乌珠穆沁旗| 五大连池市| 合水县| 施秉县| 尼木县| 德州市| 永清县| 曲松县| 丹寨县| 鱼台县| 德阳市| 突泉县| 织金县| 百色市| 什邡市|