(我就是前段時間大家所說的“標題黨”)
   
        在秋香的幫助下,從開始認真的學習Linux已經三個多月了,期間一直在認真的看書,不過看書記的總沒忘的快,不過在我開始認真學Linux時就有一個最近的目標,就是自己動手能做一個路由器,因為單位的路由器是前任的網管做的,我連我們單位的public ip都不知道是什麼,機房的鑰匙到現在都沒有,呵呵,這樣的網管大家誰見過啊?這兩天管我那個人出國玩去了,走之前我就留個心眼,在我那領導快要走的時候,找個藉口去機房裡拿工具,然後不鎖門,到現在都一星期了,門沒鎖過。為了這次難得的機會,我把鳥哥關於NAT和iptables那章仔細的看了三遍,還跟秋香要了個NAT的指令碼,仔細的看了幾遍,在今天晚上參照兩個人的資料,跌跌撞撞的做出個路由器、NAT和簡單的iptables。我的第一次做路由器、NAT和簡單的iptables就這樣沒了。
      指令碼如下,寫的不好,請大家多指點。
[root@zxyws iptable]# vi iptables
#!/bin/bash
#iptables rule and NAT
PATH=/usr/ke/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
OUT=”eth1″
IN=”eth0″
LAN=”192.168.1.0/24″
export OUT IN LAN PATH
#load modprobe
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state
modprobe ip_conntrack_irc
#iptables tables
iptables -F
iptables -Z
iptables -x
#policy rule
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state –state RELATED -j ACCEPT
iptables -A INPUT -m state –state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -i $OUT –dport 22 -j ACCEPT     #SSH
iptables -A INPUT -p tcp -i $OUT –dport 80 -j ACCEPT     #WWW
iptables -A INPUT -p tcp -i $OUT –sport 53 -j ACCEPT     #DNS
iptables -A INPUT -p udp -i $OUT –sport 53 -j ACCEPT     #DNS
#iptables -A INPUT -p tcp -i $OUT –dport 25 -j ACCEPT     #SMTP
#iptables -A INPUT -p tcp -i $OUT –dport 110 -j ACCEPT    #POP3
#iptables -A INPUT -p tcp -i $OUT –dport 443 -j ACCEPT    #HTTPS
iptables -A INPUT -i $IN -s $LAN -j ACCEPT
#NAT table
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F -t nat
iptables -Z -t nat
iptables -X -t nat
iptables -t nat -P PREROUTING     ACCEPT
iptables -t nat -P POSTROUTING    ACCEPT
iptables -t nat -P OUTPUT         ACCEPT
iptables -t nat -A POSTROUTING -o $OUT -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp -i $OUT –dport 80 -j DNAT –to 192.168.1.2:80
這個指令碼現在可以用來上網,外網的人也能訪問到我們公司的網站,不過在開始的時候出現幾處錯誤。其中有些命令拼寫錯了,大小寫沒有分清,感謝秋香的幫助。還有一個致命的錯誤,執行指令碼的時候提示eth0不能建立,應該是iptables -t nat -A POSTROUTING -o $OUT -j MASQUERADE這句,我寫成iptables -t nat -A POSTROUTING -s $IN -o $OUT -j MASQUERADE多加了一個-s $IN引數,具體是為什麼也不知道,請高手說一下,謝謝!
還有下面的一些動作,我不知道我做的合不合理。
1、/etc/sysconfig/network中把GATEWAY去掉;
2、/etc/sysconfig/network-scripts/eth0 中的GATEWAY也去掉。
最後留下兩個問題:一是外網的人可以訪問我們公司的網站,而我在這個LAN裡卻訪問不了網站,不知道什麼原因?二是在執行上面的指令碼後,會提示:
iptables v1.3.5: no command specified
Try `iptables -h` or `iptables –help` for more information.
在網上搜搜也沒有具體的解釋,不知道是什麼原因。
請大家指點。謝謝。
 
具體應該用什麼方法測試這個路由器的方法我也不知道,不過我用PING的方法測試了一下,原來PING 百度 time時間在3-4之間,現在90%time都等於2,也PING了一下51cto的time在3-4之間,原來好像幾十吧,記不太清了,不知道有什麼好方法進行測試還要請教大家。
 
我做路由用的機子是2000年買的清華同方的,那時候叫什麼奔月,大概也就快奔III了吧。記憶體384M。
 
第一次自己動手做成功一樣東西的感覺真好!