Archive for the 'NCTUCS' Category

VIM: Hack Your Editor!!

在系計中的小分享,這次著重在開發環境和 Plugin,蠻多部份沒有在 Slides 點出來,而是用口頭講述的,也有很多東西來不及準備完所以就沒講了,不過這種東西還是實際去玩學得比較快,也比較容易了解原理。:P

The Tips of Setting Workstation Environment

這份投影片是之前在系計中內部分享的,整理了一下 share 出來,裡面有些嘴砲請自動略過 XD。有錯也請指正 :)

CS/BSD Installation Guide

Step 1. 基本系統安裝完畢後

Step 2. 設定 /etc/make.conf

CPUTYPE?= pentium4 # 隨機器而不同,參考 /usr/share/examples/etc/make.conf
SUP_UPDATE= YES
SUP= /usr/bin/csup
SUPFLAGS= -L 2 -Z
SUPHOST= cvsup.tw.freebsd.org
SUPFILE= /usr/share/examples/cvsup/stable-supfile
PORTSSUPFILE= /usr/share/examples/cvsup/ports-supfile

Step 3. 設定 /etc/rc.conf,加入 NIS/NFS & AMD 的設定

amd_enable="YES"
amd_flags="-a /amd -c 1800 -d cs.nctu.edu.tw -l /var/log/amd.log -x all /net auto.home"
nfs_client_enable="YES"
nfs_client_flags="-n 10"
nfs_reserved_port_only="YES"
nis_client_enable="YES"
nis_client_flags="-s -m -S +cs.nis,cshome,csmailgate,csduty"
nisdomainname="+cs.nis"
rpc_lockd_enable="YES"
rpc_statd_enable="YES"

Step 4. 修改 user & group

  • 用 vipw 來更改 /etc/master.passwd,修改 root 名稱為對應的 host name 並加入 nis 欄位,如:
    root:*:0:0:bsdX &:... # 可以讓 root 寄出的 mail 較好辨識
    ...
    +:::::::::
  • 修改 /etc/group,將 bsdTA 加入 wheel group 並加入 nis 欄位,如:
    +:*::
  • 在 amd64 的版本中,NIS 可能會有點怪問題,某些 group (security, wwwadm, …) 可能抓不到,可以手動強制加入:
    +security:*::
    +wwwadm:*::
    ...

Step 5. 做 src & ports tree 更新

Step 6. 安裝 subversion (/usr/ports/devel/subversion)

cd /usr/ports/devel/subversion; make install clean

Step 7. 將 csports checkout 下來

cd /usr/ports
svn checkout https://opensvn.csie.org/csports/trunk/cs

Step 8. 安裝 cs/metaport 將所需要的 csports 選起來安裝 (除了 cs/wwwConf)

cd /usr/ports/cs/metaport; make install clean
# 注意!有些套件可能需要有某些檔案存在才能正常 make,例如:cs/cdict5 要先把字典檔抓下來

Step 9. 修改 kernel configuration file,主要有幾個選項要設定:

options COMPAT_FREEBSD4
options COMPAT_FREEBSD5
options COMPAT_FREEBSD6 # FreeBSD 7.0 才需要
options COMPAT_43TTY # help 有用到 BSD 4.3 TTY format
options COMPAT_IA32 # amd64 版本才需要,相容 i386 binaries
options KTRACE
options AUTO_EOI_1 # FreeBSD 7.0 不需要
#options IPFIREWALL
#options IPFIREWALL_DEFAULT_TO_ACCEPT
#options IPFIREWALL_FORWARD
options INET
device bpf

Step 10. 若 kernel configuration file 沒有將網卡、device random、options SYSV* 等編進去,要在 /boot/loader.conf 將它們以 kernel module 的方式動態載入,並加入其他設定

agp_load="YES"
if_em_load="YES" # 網卡代號可能不同,這邊是以 em 網卡為例
random_load="YES"
sio_load="YES"
sysvmsg_load="YES"
sysvsem_load="YES"
sysvshm_load="YES"
kern.ipc.nmbclusters=65535

Step 11. make world & kernel

Step 12. 設定 /etc/inetd.conf,打開 rstatd & ruserd 以及 auth 並修改其啟動參數

  • /etc/inetd.conf
    rstatd/1-3      dgram rpc/udp wait root /usr/libexec/rpc.rstatd  rpc.rstatd
    rusersd/1-2     dgram rpc/udp wait root /usr/libexec/rpc.rusersd rpc.rusersd
    auth    stream  tcp     nowait  root    internal        auth -r -o UNKNOWN -t 30 # -f -n 要拿掉
  • /etc/rc.conf 加入
    inetd_enable=”YES”

Step 13. 在 /etc/mail/ 下 make,生出 bsd*.submit.mc,然後修改加入:

define(`ALIAS_FILE', `/etc/mail/aliases,nis:mail.aliases@+cs.nis')dnl
FEATURE(`msp', `csmailgate.cs.nctu.edu.tw')dnl
MASQUERADE_AS(cs.NCTU.edu.tw) MASQUERADE_DOMAIN(`bsd*.cs.NCTU.edu.tw')dnl # 依照 domain name 的不同做更改

Step 14. 接著在 /etc/mail/ 下 make all install,然後修改 /etc/rc.conf

sendmail_enable="NONE"

Step 15. 設定印表機,從別台機器取得 /etc/printcap(csports/lpd 會自動裝),修改 /etc/rc.conf

lpd_enable="YES"
lpd_flags="-l"
lpd_program="/usr/local/sbin/lpd"

Step 16. 修改 /etc/rc.conf 設定開機啟動 quota

quota_enable="YES"

Step 17. sshd 設定 (這個步驟可以提前做,然後就直接遠端連進去下指令了)

  • /etc/rc.conf
    sshd_enable="YES"
  • /etc/ssh/sshd_config
    VersionAddendum FreeBSD # 改掉,以防用 telnet 看 port 22 時被人得知 FreeBSD 的版本
    Protocol 2 # 強迫使用 SSH2

Step 18. FTP 設定

  • 安裝 /usr/ports/ftp/pure-ftpd
  • 設定 /usr/local/etc/pure-ftpd.conf,下面是主要的設定,其他請參考當時的設定
    DisplayDotFiles             yes
    AnonymousOnly               no
    NoAnonymous                 yes
    AnonymousCanCreateDirs      no
    PassivePortRange          64000 65000
    AnonymousCantUpload         yes
    AllowAnonymousFXP           no
    TLS                      2
    FileSystemCharset       big5
  • rc.conf 加入
    pureftpd_enable="YES"

Step 19. ganglia

  • 安裝 /usr/ports/sysutils/ganglia-monitor-core
  • link /usr/local/etc/gmond.conf
    ln -s /net/admin/etc/gmond.conf /usr/local/etc/gmond.conf
  • rc.conf 加入
    gmond_enable="YES"

Step 20. 重開機後到其它台把 /var/db/ports 下的東西 sync 過來後,將需要的 ports 灌好

Step 21. 其餘設定檔 (從其他台抓)

  • /etc/hosts.allow, /etc/hosts (從別台抓回來)
  • /etc/resolv.conf (記得設定好 domain/search,不然 amd 會抓不到,NFS 就起不來)
  • /etc/motd 特殊字體請用 figlet 生出來