跳到主要內容

發表文章

目前顯示的是有「FreeBSD」標籤的文章

FreeBSD 12 mount 掛載 Windows 分享 SMBFS

要在FreeBSD 12 mount Windows 分享目錄,也就是 SMBFS,因為中文檔名發生問題,所以再寫一次這主題。   因為密碼只能用互動式,若要自動就得寫在 /etc/nsmb.conf 以前叫 /etc/nsmbrc.conf ,也可以寫在自己的 ~/.nsmbrc,這裡的伺服器名稱和使用者名稱請用大寫 格式 [伺服器名稱:使用者名稱] password=密碼  指令為 mount_smbfs -N -E UTF-8:UTF-8 //使用者名稱@伺服器名稱/分享名稱 /掛載點 若 伺服器名稱沒有對應,可以在這裡指定 mount_smbfs -N -I 伺服器IP -E UTF-8:UTF-8 //使用者名稱@伺服器名稱/分享名稱 /掛載點 要注意若沒有加上 -E UTF-8:UTF-8  ,中文會出不來 但我的目標是開機便自動掛載,所以寫在 /etc/fstab  //使用者名稱@伺服器名稱/分享名稱 /掛載點 smbfs rw,-EUTF-8:UTF-8,-N 0 0 這樣下次重新開機就自動掛載 Windows 分享

FreeBSD 動態擴增磁碟容量

由於現在都以虛擬化建立伺服器,已經幾乎沒有額外增加硬碟的必要,直接線上增加硬碟容量即可。早期FreeBSD無法線上調整容量,得加一顆硬碟再利用tar或其他指令備份還原,現在增加了gpart指令簡單許多。

FreeNAS vs NAS4Free

最近又在Survey FreeNAS 與 NAS4Free ,由於版本進步很快,以前看到的評論都不算數。 剛才看到  FreeNAS vs NAS4Free   ,由於是 FreeNAS 的,不能算很公正的評論,看看就好。

FreeBSD VLAN 與 ISC DHCP Server設定

由於公司即將要搬家,我正在規劃新大樓的網路,廠商在Switch幫我設定DHCP relay,但我要自己準備DHCP Server,連忙研究一下怎麼設定,當然還是希望沿用我偏好的FreeBSD架設。 目前Google搜尋台灣第一個就是 Weithenn的DHCP Server架設 ,我也是參考他的在改,但因為廠商有用到BOOTP,所以得加上BOOTP及我需要的domain-search選項。

How to install VMware ESXi 5 tools for FreeBSD 9

There are some problems while install FreeBSD 9 vmware tools on VMware ESXi 5 update 1, after searching a few hours, I got the solution.  You will make the new binary from source, thus no more COMPACT 6 in kernel configuration. 在VMware ESXi 5 update 1安裝vmware tools有不少問題,經過幾個小時的奮戰,終於找到答案。 首先要強調,不需要在Kernel設COMPACT 6,但是需要裝compact6x的package。以下用藍色標明需要key的指令: Install compact6x package # cd /usr/ports/misc/compat6x # make install clean Mount the cdrom image from vCenter/vSphere Client to guest vm. # mount -t cd9660 -o ro /dev/cd0 /mnt 若你已經試著裝過,cd0 可能會變成acd0,就改成 # mount  -t cd9660 -o ro /dev/acd0 /mnt Extract the source code. # cd /root && tar xzf /mnt/vmware-freebsd-tools.tar.gz  # cd vmware-tools-distriblib/modules/source # tar xf vmblock.tar && tar xf vmmemctl.tar && tar xf vmxnet.tar && tar xf vmxnet3.tar Compile the vmblock module. # cd vmblock-only # make && make install & cd .. Compile the vmmemctl module...

FreeBSD上在Roundcube使用Managesieve

久違的個人備忘錄又來了。 環境:FreeBSD 9.0-Release+Postfix+Dovecot 1.2 因為我把Webmail換成Roundcube後,就沒有郵件規則可設,之前都懶得去看怎麼設定sieve+ManageSieve,趁今天難得有空趕緊來改一下。 安裝: #cd /usr/ports/mail/postfix #make config #我選Dovecot而不是Dovecot2,懶得改設定檔了,差很多 #make install clean #cd /usr/ports/mail/dovecot #make config #記得要選 MANAGESIEVE #make install clean #cd /usr/ports/mail/dovecot-sieve #make install clean #cd /usr/ports/mail/dovecot-managesieve #make install clean #cd /usr/ports/mail/roundcube #make config #請選擇你要用的database #make install clean 首先看一下 Sieve Plugin怎麼設 ,還有 ManageSieve的設定 ,在 /usr/local/etc/dovecot.conf 修改為: protocol lda { ... mail_plugins = sieve #可以再加上其他的plugin } protocol managesieve { login_executable = /usr/local/libexec/dovecot/managesieve-login mail_executable = /usr/local/libexec/dovecot/managesieve managesieve_logout_format = bytes ( in=%i : out=%o ) } plugin { ... sieve = ~/.dovecot.sieve #一定要設這個名字,因為Roundcube的managesieve plugin預設用這個 sieve_dir = ~/sieve } 還有其他FreeBS...

在Xen FreeBSD guest安裝Xen tools

我在XenServer上安裝FreeBSD amd64的guest VM,先編譯HVM kernel再重開機。 ~/> su - # cd /usr/src /usr/src# make buildkernel KERNCONF=XENHVM /usr/src# make installkernel KERNCONF=XENHVM /usr/src# reboot 重開機後會發現網路卡變成xn0,別忘了到 /etc/rc.conf 設定網路,還有硬碟會由ada變成ad,所以請記得改 /etc/fstab 用 Label mount,參考 FreeBSD在fstab使用Label名稱mount磁碟 。

FreeBSD 8.2 i386 hangs on Xen

在XenServer安裝FreeBSD 8.2 release i386沒有問題,但是安裝客制化的Xen kernel重開機後整個VM卡住,用Xen Center或下指令都無法reboot或shutdown。 發現國外也有相同的問題,在 這裏 有新的patch,Amd64版本則無此問題。 根據 FreeBSD/Xen ,i386是半虛擬(para-virtualized,PV),amd64只能全虛擬(hardware virtualized,HVM)但可用 PV drivers;在FreeBSD 9.0後對Amazon EC2的相容性比較好,因為EC2即是使用Xen,相信在FreeBSD 9.0之後對Xen的相容性會更佳。

製作FreeBSD可開機USB

雖然用 UNetbootin  在各種平台都可利用開機iso/Disk image做出可開機USB,但因為它獨特的boot loader,FreeBSD或某些Linux Distribution會有問題。 以往FreeBSD的安裝媒體只有出ISO image,現在已經有memstick.img可選擇,例如: FreeBSD-8.2-RELEASE-i386-memstick.img 。以前的方法( thinker )真的太麻煩了 :(

FreeBSD在fstab使用標籤 Label 名稱 mount 磁碟

因為敝公司的Mail Server是從FreeBSD 4.x一路升級至今,昨天我在聽HITCON 2011時居然主機故障,因為一直被call,聽完連忙趕回公司,非常地不爽。 Update: 更新到FreeBSD 9.0之後,新的安裝程式設定Label是用 GPT分割 (GUID Partition Table)的Label,所以設定好後,會出現 /dev/gpt/root 之類的Label,同樣可以用 glabel status查看。若已改用GPT分割,無法使用 /dev/ufs 或傳統BSD Label的方式, 只能用 GPTLlabel。

FreeBSD上libtool的錯誤

今天要把 clamav升級到0.94.2時出現 libtool: unknown library version type `freebsd-' 的錯誤訊息。 查了一下, 這 裏說把/usr/bin/objformat移掉就可以。 發現系統上的/usr/bin/objformat日期果然是幾年前,再去 /usr/src/usr.bin/objformat看,原來objformat.sh的註解說 /usr/bin/objformat has been obsolete and deprecated for years. (略) FreeBSD-5.x and higher only support elf. 所以就直接 rm /usr/bin/objformat 可是真不懂,為什麼會在我升級kernel到 FreeBSD 7.0-RELEASE-p6 才出問題,之前升到7.0也用了一年多怎麼都沒事?

pfSense架設頻寬管理器的問題

最近除了試用舊硬公司的頻寬管理器外,也一直在校調 pfSense 的效能。 事實上, pfSense 1.2版的功能仍然不太夠,建議安裝1.2.1 Prerelease Snapshots版本,不但有 QoS 的Wizard(Traffic Shaper Wizard),還有更多的套件(Packages)可安裝。鳥毅就裝了bandwidthd、darkstat、snort等。 據說以前還有人寫 HAVP 的套件,不過後來沒維護了。 HAVP 的架設可以參考 免費的企業防毒牆 ,可以在 pfSense 上自行安裝 HAVP ,但是transparent proxy那行指令就不能寫在pf.conf,而要自己寫成 pfSense 的rule,因為難度太高,我就沒去試,歡迎有成功的朋友告訴小弟一聲。 pfSense 1.3版主要增加了多IP的設定,可以在一張網卡設定不同subnet的IP,雖然同樣透過virtual ip,但介面上可以選擇。另一個特點是Dashboard的畫面對各種流量一目了然,頗有專業 Firewall 的樣子。可惜1.3版還有相當多問題,有些功能根本無法使用,所以不建議安裝。 鳥毅沒有在VPN採用 pfSense 最主要的原因,就是我不知道怎樣把企業VPN兩端設成transparent,又能使用 NAT 達成 QoS ,這點舊硬公司的代理商工程師確實很熟,稍微想一下就設定出來。(敝公司尚未正式採購,若有哪位仁兄能提供 pfSense 的設定方法,小弟自掏腰包請吃簡餐)

將過大的mailbox移到收件匣

最近由於某些新進同仁都使用WebMail,但又不砍信,造成Mail Server繁忙,只好請他們自行砍信/移信。有些 皮比較癢 公務繁忙的同仁沒空處理,只好抽空寫支小程式處理。 由於Openwebmail的限制,不能用maildir,只能維持使用mailbox,這是系統loading高的主因。由於許多原因以及沒有功能更齊全的webmail前提下,只能暫時如此處理。本來要用比較熟悉的Java寫,但是搜尋之下並沒有功能完整的library,而Python內建就支援mailbox處理,在缺乏其他支援/資源的情況下也只能硬著頭皮寫。因為我比較懶,裏頭有用到一個 date parser ,使用前請先安裝。 這裏的環境針對FreeBSD + Postfix+Openwebmail,sendmail/qmail應該也適用,我在Ubuntu開發,所以在Linux"應該"也能正常執行。 完整程式如下: #!/usr/bin/env python # coding: utf-8 import datetime import mailbox import email.Errors import os from stat import ST_SIZE #由於python沒有內建的Date Parser,所以找了一個dateutil parser, http://labix.org/python-dateutil #FreeBSD ports裏在 /usr/ports/devel/py-dateutil from dateutil.parser import parse def mailbox_apart(inputfile, outputfile, splitdate): inbox = mailbox.mbox(inputfile); mboxNew = mailbox.mbox(outputfile); for key, message in inbox.iteritems(): timex = parse(message['date']); timex = datetime.date(timex.year, timex.month, timex.day); if cmp(tim...