寫在前面

對 Markdown 很不熟,邊寫邊練
紀錄一下我在交大 NA 課堂上的作業


需要技能

  • DHCP
  • NAT
  • Firewall
  • Proxy

作業要求:

  • Server
    • OS 必須是 Unix-based
    • 當作是 DHCP 跟 NAT 的 Server
    • Gatway
  • Host A
    • 作業系統不拘
    • 可以藉由 DHCP 拿到一個 private IP
  • Host B
    • FTP Server

環境架設

三台虛擬機

Server 我選了最近剛出的 Ubuntu 14.04,下面的 HostA 為 CentOS6 桌面版,HostB 也同樣為 Ubuntu 14.04 server 版。原先 HostA 是想要用 CentOS 的,但是 SElinux 太難搞,就臨時決定換成 Ubuntu 了

Server - NA0

這台機器會被當成 DHCP 以及 NAT 的 Server,所以我們需要讓這台機器有兩張網卡可以使用。一張對內,一張對外。

Screen Shot 2014-05-02 at 上午5.01.41.png

Screen Shot 2014-05-02 at 上午5.01.51.png

安裝過程就省略掉,但是記得安裝時記得按 Enter 不要按太快,不然介面選成中文一進去會亂碼,還要調整,很不方便。
安裝完後,開機,登入,把自己變成 root 等等做事情會比較方便

Screen Shot 2014-05-02 at 上午4.59.45.png

然後安裝 isc-dhcp-server 這個套件

1
apt-get install isc-dhcp-server

安裝完畢之後去修改 /etc/dhcp/dhcp.conf 這個檔案

1
vim /etc/dhcp/dhcp.conf

這個檔案是 DHCP 的設定檔,你想要發的 IP 從哪裡到哪裡就是在這裡設定的,就照著說明文件寫就好了

Screen Shot 2014-05-02 at 上午5.16.50.png

修改完畢之後去 /etc/default/isc-dhcp-server 這個檔案修改你要做 DHCP 的網卡

1
vim  /etc/default/isc-dhcp-server 

Screen Shot 2014-05-02 at 上午5.19.15.png

像我是拿 en0 這張網卡當作要發 DHCP 的介面,如果有很多的話用空格分開就可以了
設定都完成之後,直接重啟 DHCP 這個服務就可以囉

1
service isc-dhcp-server restart 

這樣子他就會動啦,要看 log 的話可以去 /var/log/syslog 裡面去看
我接下來是弄 NAT,但是根據強者我閃光表示:「你應該先弄 NAT 比較再來弄 DHCP 比較好。」但是我做都做了,不過我覺得兩個誰先誰後應該都差不多(吧)

首先先去你的 /etc/network/interfaces 裡面修改你的網路介面設定

1
vim /etc/network/interfaces

Screen Shot 2014-05-02 at 上午5.33.04.png

我的 eth1 是對外的網卡,所以要有一個可以動的 public IP ,eth0 是做 DHCP 的網卡,拿你的 gateway 做你的 IP

作業裡面有一對關於規則的要求,什麼東西是 ping 不到連不進去之類的啊,所以就用了 iptables 實作 NAT Server 這件事情,沒有 iptables 的話先去裝個。然後因為規則很多,所以直接寫在 /etc/rc.local 裡面。

關於 NAT 最重要的是這幾行:

1
2
3
4
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

第一行讓你的 Server 具有 router 的能力,剩下的三行是進行封包偽裝。輸入完畢執行 /etc/rc.local 之後,你底下的兩台機器就也可以上網了哦 ._./

HostA - CentOS

虛擬機網卡設定要選擇「內部網路」,名稱要跟前面設定的 Server 內部網路一樣名稱

Screen Shot 2014-05-02 at 下午4.17.47.png

就純粹安裝 CentOS 上去,然後裝個 filezilla ,頂多 ifconfig 確認自己的 IP 是對的,確定自己可以上網

HostB - Ubuntu Server 14.04

虛擬機的網卡設定跟 HostA 相同,一樣是選擇內部網路
接下來安裝 VSFTP

1
sudo apt-get install vsftpd

修改 /etc/vsftpd.conf 檔案內容

1
vim /etc/vsftpd.conf

改完重開 service 就搞定,收工


寫在之後

Demo 前記得燒香拜拜,記得拜託 VMware 不要死掉
不過其實我沒 Demo 到就是了 (菸)

2014-04-27

⬆︎TOP