550 likes | 728 Views
Lesson 1: 主機基本設定 (2004/06/10). 講員介紹. 本名:孫仲岳 (Saturn Sun.) 生日: 1980 年 11 月 4 日天蠍座 現任: 中原大學校園網路策進會 會長 中原檔案伺服器網管 http://ftp.cycu.edu.tw 中原熊蓋站站長 http://best .cycu.com.tw 中文化軟體聯盟網管 http://cpatch.org AX 工作室負責人 http://www. ax.com.tw. 如何取得上課投影片. http://best.cycu.edu.tw 進入「校園網路策進會」版. 前言.
E N D
Lesson 1: 主機基本設定 (2004/06/10)
講員介紹 • 本名:孫仲岳 (Saturn Sun.) • 生日:1980年11月4日天蠍座 • 現任: • 中原大學校園網路策進會 會長 • 中原檔案伺服器網管 http://ftp.cycu.edu.tw • 中原熊蓋站站長 http://best.cycu.com.tw • 中文化軟體聯盟網管 http://cpatch.org • AX工作室負責人 http://www.ax.com.tw
如何取得上課投影片 • http://best.cycu.edu.tw • 進入「校園網路策進會」版
前言 • 安裝全新 FreeBSD • 編譯核心 • 系統相關設定 • 防火牆與NAT設定
硬體與軟體 • 電腦主機一部 • 兩張網路卡 • FreeBSD 4.x 作業系統 • 編譯核心與相關設定 • 對外網路 • DHCP、固定IP、PPPoE
FreeBSD 全新安裝 • 新增使用者 • 開設您喜歡的帳號 • 加入wheel管理者群組 • 可以選用sudo / 保全 root 密碼 • 完成對外網路連線 • 改採用SSH方式連線,設定主機
遠端登入系統 • 透過SSH連線 • 使用Putty • 查看主機端的IP位址 • ifconfig • 解決長期的問題 • 除非您是固定IP,建議申請DDNS服務
遠端登入系統 • 使用一般帳號連線 • 變身為root • 使用su指令 / 輸入root密碼 • 使用sudo -s / 尚未安裝,後面在教 • 申請DDNS服務(ADSLDNS) • 編寫Script,自動更新IP
執行port tree更新 • 安裝最新版本的軟體 • 利用 CVSUP 更新 port-tree • cd /usr/ports/net/cvsup-without-gui • 切換到CVSUP的目錄 • make install • 執行安裝
執行port tree更新 • 如果安裝軟體很慢 • 調整 /etc/make.conf 的proxy與站台設定 • 複製預設的make.conf • cp /etc/defaults/make.conf /etc/ • 修改 make.conf • vi /etc/make.conf
make.conf 關鍵設定(1) • 設定PROXY以便快速取檔 • FETCH_ENV=FTP_PROXY=http://proxy.seed.net.tw:8080 • FETCH_ENV=HTTP_PROXY=http://proxy.seed.net.tw:8080 • 用國內站台來抓取檔案 • 如下頁所做的修改
make.conf 關鍵設定(2) MASTER_SITE_BACKUP?= \ ftp://ftp.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\ ftp://ftp5.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\ ftp://ftp10.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\ ftp://ftp2.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\ ftp://ftp3.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\ ftp://ftp4.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\ ftp://ftp7.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\ ftp://ftp8.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\ ftp://ftp9.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\ ftp://ftp11.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\ ftp://ftp12.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\ ftp://ftp.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/
執行port tree更新 • 切換到 /etc 目錄 • cd /etc • 抓取 cvsup 設定參考範例 • fetch ftp://freebsd.csie.nctu.edu.tw/pub/CVSup/cvsupfile-ports • fetch ftp://freebsd.csie.nctu.edu.tw/pub/CVSup/cvsupfile-stable • fetch ftp://freebsd.csie.nctu.edu.tw/pub/CVSup/run_cvsup • 將run_cvsup 安裝到 /usr/local/bin • install -c -m 755 run_cvsup /usr/local/bin
執行port tree更新 • 可修改檔案內容,將壓縮註解掉 • # *default compress • 網路速度大於 1.5M 以上 • 可以這樣加速下載
執行port tree更新 • 執行一下更新,第一次會比較久 • /usr/local/bin/run_cvsup • 將系統更新加入排程(編輯排程) • crontab –e • 加入以下的內容(每三小時更新) • 30 */3 * * * /usr/local/bin/run_cvsup > /dev/null
DDNS (動態DNS服務) • 可能會遇到的問題 • 若尚未安裝 lynx,請自行安裝 • 請用ports 安裝 • cd /usr/ports • make search key=“lynx” • cd /usr/ports/www/lynx/ • make install
DDNS (動態DNS服務) • 資料來源 • www.adsldns.org上的FreeBSD client • vi /usr/local/etc/rc.d/ddns.sh • 貼上後面範例檔的內容 • 修改有顏色的部份 • 存檔( :x! ) • 加上可執行的權限 • chmod +x /usr/local/etc/rc.d/ddns.sh
DDNS.sh • #!/bin/sh • echo ‘passwd=PASSWORD&email=XXX@msa.hinet.net&hostname=XXX.adsldns.org&debug=1'|/usr/local/bin/lynx http://www.adsldns.org:8080/clientupdate.php -post_data
DDNS (動態DNS服務) • 執行程式(或是重開機也會生效) • /usr/local/etc/rc.d/ddns.sh • 加入系統排程(3分鐘更新) • crontab -e • */3 * * * * /usr/local/etc/rc.d/ddns.sh
編譯核心 • cd /usr/src/sys/i386/conf/ • 切到核心檔案的目錄 • cp GENERIC SATURN • 複製一份設定檔(自行取名) • mv SATURN /etc • 搬到 /etc 底下
編譯核心 • ln -s /etc/SATURN ./ • 將 /etc 裡面的設定檔連結回來 • vi SATURN • 打開檔案編輯 • 將下頁的設定加在最後面 • 然後儲存離開
編譯核心 • options IPDIVERT • options IPFIREWALL • options IPFIREWALL_DEFAULT_TO_ACCEPT • options IPFIREWALL_FORWARD • options IPFIREWALL_VERBOSE • options IPFIREWALL_VERBOSE_LIMIT=10 • options DUMMYNET
編譯核心 • config SATURN • 建立系統設定檔 • 會出現提示如下 • Kernel build directory is ../../compile/SATURN • cd ../../compile/SATURN • 切換目錄 • make depend all install • 編譯並且安裝
編譯核心 • 慢慢等~ • 可以休息一下,放著跑 • 跑完查看是否有錯誤訊息 • reboot • 重新開機,如果順利開起來,就恭喜^^ • 繼續進行後續設定
編譯核心 • 可能會遇到的問題 • 根本沒 /usr/src/ 的目錄 • 解決方式 • 請用 /stand/sysinstall • 將系統的 kernel source 的部份裝上
設定NAT • 查看目前的網卡 • ifconfig -a • 常見的網卡 • Intel -> fxp0 • D-Link -> vr0 • 螃蟹卡 -> rl0
設定NAT • 修改 rc.conf 來進行設定 • 認清楚哪張卡對外、哪張卡對內 • 對外的卡(螃蟹卡) -> rl0 -> DHCP • 對內的卡(D-Link) -> vr0 -> 私有IP • 對內網卡設定 • 網卡IP: 192.168.0.1
設定NAT • 修改 rc.conf 加入以下設定 • ifconfig_rl0="DHCP"#對外 • ifconfig_vr0="inet 192.168.0.1 netmask 255.255.255.0" #對內 • gateway_enable="YES" • natd_interface="rl0" • natd_enable="YES" # Enable natd (if firewall_enable == YES). • firewall_enable="YES" # Set to YES to enable firewall functionality • firewall_type="simple" # Firewall type (see /etc/rc.firewall) • firewall_quiet="YES" • tcp_extensions="YES"
設定NAT • 備份 /etc/rc.firewall (改名) • mv /etc/rc.firewall /etc/rc.firewall-back • 新增 /etc/rc.firewall • vi /etc/rc.firewall • 貼上以下的內容 • 看下頁
設定NAT • #!/bin/sh • /sbin/ipfw -f flush • /sbin/ipfw add pass all from 127.0.0.1 to 127.0.0.1 • /sbin/ipfw add divert natd all from any to any via rl0 • /sbin/ipfw add deny all from 192.168.0.1/24 to any • /sbin/ipfw add pass all from any to any
設定防火牆 • 除了完成NAT,還想要更多 • 限制連線來源 • 限制連接埠 • 使用透明代理伺服器加速存取
設定防火牆 • 限制連線來源 • /sbin/ipfw add deny all from 192.168.0.1/24 to me • 限制連接埠 • /sbin/ipfw add deny all from 192.168.0.1/24 to me 1234 • 使用透明代理伺服器加速存取 • /sbin/ipfw add fwd 139.175.55.210,8080 tcp from 192.168.0.1/24 to any 80
設定防火牆 • 詳細設定可參考 • 交大資科系計中 陳君漢先生 • IPFireWall on FreeBSD • http://www.cis.nctu.edu.tw/chinese/doc/research/report/PPT/IPFW_on_FreeBSD.ppt
設定流量限制 • 修改 /etc/rc.firewall 檔案 • vi /etc/rc.firewall • 將流量限制規則擺在最後 • 初學者容易弄混順序 • 透過管線(pipe)來限制流量
設定流量限制 • /sbin/ipfw add pipe 1 ip from me to 192.168.0.1/24 out • /sbin/ipfw add pipe 2 ip from 192.168.0.1/24 to me in • /sbin/ipfw pipe 1 config bw 2500Kbit/s • /sbin/ipfw pipe 2 config bw 200Kbit/s
設定流量限制 • add pipe 1 • 新增一個限制用的管線 • ip / tcp / udp • 限制的類型 • from X to X • 設定限制的範圍 • config bw 2500Kbit/s • 限制頻寬(bw, bandwidth) 每秒 2500kbits
設定流量限制 • 詳細設定可參考 • 交大資科系計中 陳君漢先生 • IPFireWall on FreeBSD • http://www.cis.nctu.edu.tw/chinese/doc/research/report/PPT/IPFW_on_FreeBSD.ppt
IPFW 的小結 • 可以做更多的應用 • 主機對應(將外部IP對應到內部主機之IP) • 連接埠對應(將外部連接埠轉至內部) • 常用的檢查指令 • /sbin/ipfw show • 用來查看目前的防火牆規則
立即生效 ipfw 規則 • 幫 /etc/rc.firewall 加上權限 • chmod +x /etc/rc.firewall • 執行 rc.firewall • /etc/rc.firewall • 拿掉權限 • chmod -x /etc/rc.firewall
建立DHCP服務 • 安裝 DHCP Server • cd /usr/ports/ • make search key=“dhcp” • cd /usr/ports/net/isc-dhcp3-server/ • make install
建立DHCP服務 • 新建設定檔 • vi /usr/local/etc/dhcpd.conf • 後面將詳細介紹相關設定 • 基本設定 • 配置的IP範圍 • 固定IP的配發
default-lease-time 600; • max-lease-time 7200; • option subnet-mask 255.255.255.0; • option domain-name-servers 168.95.1.1; • option domain-name "nat.ax.com.tw"; • option interface-mtu 1500; • ddns-update-style none; • subnet 192.168.0.0 netmask 255.255.255.0 • { • option routers 192.168.0.1; • option broadcast-address 192.168.0.255; • range 192.168.0.150 192.168.0.200; • } • host saturnnb • { • hardware ethernet 00:20:a6:4f:f8:8e; • fixed-address 192.168.0.90; • }
建立DHCP服務 • default-lease-time 600; • max-lease-time 7200; • option subnet-mask 255.255.255.0; • option domain-name-servers 168.95.1.1; • option domain-name “abc.org"; • option interface-mtu 1500; • ddns-update-style none;
建立DHCP服務 • subnet 192.168.0.0 netmask 255.255.255.0 • { • option routers 192.168.0.1; • option broadcast-address 192.168.0.255; • range 192.168.0.150192.168.0.200; • }
建立DHCP服務 • host saturnnb • { • hardware ethernet 00:20:a6:4f:f8:8e; • fixed-address 192.168.0.90; • }
建立DHCP服務 • touch /var/db/dhcpd.leases • 建立 dhcpd.leases (DHCP 記錄檔) • vi /etc/hosts • 編輯 /etc/hosts 檔案 • 255.255.255.255 For-DHCP • 加上上述的內容(單獨放一行)
建立DHCP服務 • 修改 RoutingTable • route add -host For-DHCP -interface vr0 • 先備份 isc-dhcpd.sh • mv /usr/local/etc/rc.d/isc-dhcpd.sh /usr/local/etc/rc.d/isc-dhcpd.sh.bak • 建立 isc-dhcpd.sh 檔案 • vi /usr/local/etc/rc.d/isc-dhcpd.sh
建立DHCP服務 • 貼上一行內容 • /usr/local/sbin/dhcpd -cf /usr/local/etc/dhcpd.confvr0 • 附加上可執行的權限 • chmod +x /usr/local/etc/rc.d/isc-dhcpd.sh • 重新啟動電腦 • reboot
建立DHCP服務 • 恭喜!到這裡為止,重新開機一次! • 測試相關設定的作用是否有起來 • 沒有的話再回頭檢查問題
補完 DHCP client • 內建的 DHCP client 有問題 • 安裝 ports 裡面的版本 • 安裝相關指令操作 • cd /usr/ports/ • make search key=“isc-dhcp-client” • cd /usr/ports/net/isc-dhcp3-client • make install