分享

Building Linux NAT with MRTG network monitoring

 农夫子oice 2007-04-27

Building Linux NAT with MRTG network monitoring
linux_inside.png
只要一台電腦、兩張網卡和簡單的幾個步驟, 就能用 Linux 自製 IP 分享器! 若是功力夠, 還能架起一部媲美高價 IP 分享器的 Linux NAT!
本篇是以 Fedora Core 3 來架設 Linux NAT 的範例, 完成示意圖請點選這裡.
環境說明:
  • ADSL 寬頻網路,  1 個固定 IP
  • 裝有兩張網路卡的 PC 乙台
  • 作業系統: Fedora Core 3 (取消防火牆設定)
以下設定步驟係依上述環境進行處理, 通用設定過程請連結參考資料.
Step 1: 確認需求套件, 關閉不需要的服務與埠口
  • iptables (防火牆、NAT 設置)
  • openssh-server (SSH daemon)
  • setup (TCPWrapper)
  • net-snmp (SNMP daemon)
  • mrtg (網路流量監視報表)
  • httpd (Web Server)
Linux NAT 機器建議只開放 ssh (TCP Port: 22), 並於 /etc/hosts.deny 設定:
sshd: ALL EXCEPT 192.168.1.
或使用 iptables 設定:
#iptables -A INPUT -d your_public_ip -p tcp --dport 22 -j DROP
只接受 192.168.1 內部網段使用者登入 sshd, 以策安全.
Step 2: Linux 網路設定 (以 eth0 接 LAN, eth1 接 WAN 為例)
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.254
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
ONBOOT=yes
TYPE=Ethernet
/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
IPADDR=your_public_ip
NETMASK=your_netmask
ONBOOT=yes
TYPE=Ethernet
/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=your_hostname
GATEWAY=
your_gateway (外部 IP 的 GATEWAY)
Step 3: 設定 NAT (SNAT)  / DNAT (DMZ、Virtual Server)
設定 NAT
#modprobe ip_nat_ftp
#echo "1" > /proc/sys/net/ipv4/ip_forward
#iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 -j MASQUERADE
設立 Virtual Server (轉 port)
#iptables -t nat -A PREROUTING -p tcp -d your_public_ip --dport 80 -j DNAT --to-destination 192.168.1.100:80
設立 DMZ 端
#iptables -t nat -A PREROUTING -d your_public_ip -j DNAT --to-destination 192.168.1.100
以上可寫入 /etc/rc.d/rc.local 於每次開機時自動執行
Step 4: 設定 Client (以固定 IP 為例)
IP: 192.168.1.1
Netmask: 255.255.255.0
Gateway: 192.168.1.254
DNS: 168.95.1.1
該 Client PC 即可透過 Linux NAT 上網.
如不啟用 MRTG 網路流量監視報表, 可不繼續往下閱讀.
Step 5: 設定 / 啟用 snmpd
#vi /etc/snmp/snmpd.conf
將預設內容修改如下:
com2sec local localhost public
com2sec mynetwork 192.168.1.0/24 public
group MyRWGroup v1 local
group MyROGroup v1 mynetwork
view all included .1.3.6.1.2.1.1 80
access MyROGroup "" any noauth 0 all none none
access MyRWGroup "" any noauth 0 all all all
syslocation Fedora Core 3
syscontact someone <someone@mail.com.tw>
#chkconfig snmpd on
#service snmpd start
Step 6: 設定 / 啟用 mrtg
#mkdir /var/www/html/mymrtg
#cfgmaker --global ‘WorkDir: /var/www/html/mymrtg‘ \
>--global ‘Options[_]: bits,growright‘ \
>--global ‘Language: big5‘ \
>--output /etc/mrtg/mrtg.cfg \
>--ifref=ip \
>192.168.1.254
如果 cfgmaker 出現錯誤訊息, 通常是 /etc/snmp/snmpd.conf 設定不正確所致, 建議回到上一步驟仔細檢查 snmpd.conf 的設定內容.
#indexmaker --output /var/www/html/mymrtg/index.html /etc/mrtg/mrtg.cfg
#mrtg /etc/mrtg/mrtg.cfg (重覆執行 3 次)
使用瀏覽器查看 MRTG 網頁: http://192.168.1.254/mymrtg/ (需先啟動 httpd)
請確定 /etc/cron.d/mrtg 或 /etc/crontab 是否有設置每五分鐘自動執行 mrtg, mrtg 報表才會自動更新

參考資料:

--- 2007.04.14 補充:
Posted by Jamyy at 2005年03月29日 16:13
Trackback Pings
TrackBack URL for this entry:
http://cha./cgi-bin/mt/mt-tb.cgi/64
Comments
我想問如果有一斷真 ip ,
應該怎樣設定呢 ?
因為我找了許多書都找不到答案 .
eth0 : 203.193.23.82 - 203.193.23.94
network 203.193.23.80
gateway = 203.193.23.81
broadcast = 203.193.233.95
eth1: 192.168.222.4
LAN 192.168.222.5 - 192.168.222.254
Server
e.g.
192.168.222.1 Web server port 80 ,443
( want top map to 203.193.233.92 )
192.168.222.2
192.168.222.3
192.168.222.4
多謝指點
Posted by: at 2005年06月23日 23:51
很抱歉, 關於您的問題, 其實我也沒試過
我會找個時間實驗看看
不曉得虛擬網卡 (eth0:0, eth0:1, eth0:2...)
是否能解決這個問題
您可以先試試看
Posted by: Jamyy at 2005年06月24日 11:08
我期待你的好消息.
其實我已在 /etc/sysconfig/network-scripts/
做了
ifcfg-eth0:01
ifcfg0eth0:02
等東西.
但暫時未用到 其他的真 ip
Posted by: 輝 at 2005年06月24日 11:51
呵呵, 實驗成功囉~
這樣的確是可行的 ^^
Posted by: Jamyy at 2005年06月24日 13:00
請問一張網卡可以嗎?
我第一次接觸本系統...
可以完整的教學一張網卡的設定嗎?
Posted by: 初學者 at 2006年10月22日 19:47
一張網卡也是可行的, 以下是一張網卡的應用實例:
(因為設定方式和本篇大同小異, 恕不詳加說明)
小烏龜、Linux NAT以及其他內部 PC 都接到 Switch Hub
由單張網卡的 Linux PPPoE ADSL 上網, 網卡為: eth0 (內部 IP), ppp0 (外部 IP) → ppp0 於 ppp 撥號上網後產生
設定 Linux NAT (與本篇的差異處):
1. 沒有 eth1 (因為只有一張網卡)
2. 不用設定 /etc/sysconfig/network 裡的 GATEWAY
3. -o eth1 改為 -o ppp0
4. -d your_public_ip 改為 -i ppp0
ps. -o 表示從某張網卡出去的封包; -i 表示從某張網卡進入的封包
至於 Linux 的 PPPoE 撥號方法, 請參考鳥哥的網頁: http://linux./linux_server/redhat6.1/linux_21internet.php
Posted by: Jamyy at 2006年10月23日 15:58
感謝囉!!
小弟我去試看看了~~
Posted by: 初學者 at 2006年10月30日 19:24
小弟我試了...可是我覺得我好像白痴喔!!
都看不太懂ㄝ~~
想說手邊有台淘汰的電腦拿來架設Linux當做IP分享器
可是好像很難ㄝ~~~
希望有高手可以教我完整的教學"一張網卡的設定來架設Linux當做IP分享器"
系統是Fedora Core 3 的
Posted by: 初學者(小雨) at 2006年10月31日 22:43

from:  http://cha./blog/archives/2005/03/building_linux.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多