前言
本次研習針對RedHat8.0
Psyche進行安裝操作說明,目的:
1.網路位址轉換(NAT)伺服器建立.
2.IPTABLES防火牆建立.
IP
tables & NAT運作介紹
封包


IP
Masquerade
What is IP Masquerading?
IP偽裝是一種網路位址轉換形式,已經被許多router所支援.
IP Masquerade,又稱為"IPMASQ"或是"MASQ".
可以讓您的虛擬ip位址透過一個有真實IP位址,且與internet連接的Linux機器作為GW(閘道器),而與internet連結.
這台Linux機器擁有一個真實的IP位址,並且處理內部網路與外部網路間封包的mapping.並且作出相對的回應.
透過這個功能,你可以讓許多的虛擬IP連上網路,而不用麻煩您的ISP進行特殊的網路設定.
MASQ可靠嗎?
IP Masquerade在很多年前就已經被實作了,到Linux
2.2.x的時候已接近成熟.
Kernel自從1.3.x後,就已經內建了這個功能.
雖然有部分的使用者回報了一些bug,及並不是每一件事透過IP
Masquerade都能夠順利執行.但是有更多的使用者(包含流量很大的使用者)對IP
Masquerade是很滿意的.
給IP
Masquerade一個機會,嘗試看看..?
基本的網路功能像是瀏覽網頁,telnet,
ssh, ping, traceroute,..透過IP
MASQ可以運作的很正常,其他網路應用像是ftp,
irc, and Real Audio之類的,再透過額外的IP
MASQ模組安裝後同樣的也是運作的很正常的.
note:Internet Relay Chat (IRC)
NAT伺服器實務應用
系統安裝:
a.採用Redhat
Linux 8.0(Psyche)光碟片安裝.
b.安裝時採用server安裝,不要安裝一些亂七八糟的有的沒的東西.
為了配合需求,我只用了2G的空間硬碟,其餘都不用.
以證明隨便一顆常見的硬碟應該都是ok的.

網路環境說明:
在中華電信ATUR之後,透過網路縣直接連結Switch/Hub,
在sw/hub又連接一個NAT伺服器,一些網路伺服器,及一些普通的pc.
PC要把資料傳輸出去時,透過SW/Hub連結Nat
server.
,並透過NAT伺服器,將封包轉換,並再次透過SW/Hub,及ATUR將資料傳輸到外界

基本上那些伺服器及PC都可以走真實的IP位址,舉凡只要是走真實IP位址,
GW設在ATUR即可對外連線.
若是走虛擬IP位址,則要將GW設在NAT
Server的對內點.
雖然我們採用同一張網卡來表示NAT的對內點及對外點,不過為了說明方便,
可以將其視為不同的兩張卡.相對來說,設定檔也就有2個.

系統設定
netstat
列出目前已經接通的服務項目與名稱.

顯示全部
netstat -a
顯示全部並且用port
number表示
netstat
-an
ntsysv關閉不必要的服務後,重新啟動伺服器.
gpm ->
滑鼠
isdn ->
網路
kudzu ->
硬體偵測
lpd ->
列印
netfs ->
網路檔案系統
nfslock -> NFS相關
pcmcia -> NB
xfs ->
字型
1.內部虛擬網段設定
Private Address Space
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255(最常用!!)
Client端設定:GW
IP設在NAT的對內點.也就是eth0:0
的IP位址.
IP設定:192.168.0.1~253
子網路遮罩:255.255.255.0
通訊閘:192.168.0.254
2.NAT伺服器網卡設定
路徑:/etc/sysconfig/network-scripts/
確認檔案:eth0
內容為:
DEVICE=eth0
BOOTPROTO=static
BROADCAST=163.19.163.255
IPADDR=163.19.163.20
NETMASK=255.255.255.0
NETWORK=163.19.163.0
ONBOOT=yes
因為採用一張網卡,所以在同一路徑新增另外一個檔案.
可以透過複製eth0方式修改
cp
ifcfg-eth0 ifcfg-eth0:0
檔案:eth0:0
內容為:
DEVICE=eth0:0
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.0.254
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
啟動IP
FORWRAD的功能.使伺服器有router的功能.
設定
/proc/sys/net/ipv4/ip_forward
為1
所謂IP
FORWARD就是當今天虛擬ip位址透過nat伺服器的真實ip位址
要把資料送出去時,因為不同網段,所以需要有一個"轉送"的功能.
假設今天pc的位址為
192.168.0.1
通訊閘設在
192.168.0.254 ,
且nat的真實ip為163.19.163.20,nat伺服器的通訊閘為163.19.163.254
若:沒有啟動forward的功能,
則192.168.0.1
只能連結到
192.168.0.254
及
163.19.163.20,
而無法連結163.19.163.254,也就是說,
若沒有啟動forward,內部虛擬的ip無法透過nat的真實ip轉送封包出去.
建立/usr/local/nat/資料夾.
cd /usr/local/
; mkdir nat ; cd nat
檔案擷取:檔案下載
http://ohaha.ks.edu.tw/~panda/nat.sh

下載完後,變更nat.sh的執行權限為700
chmod
700 nat.sh
啟動nat服務.
/usr/local/nat/nat.sh
修改
/etc/rc.local
內容讓
nat
服務於開機時自動啟動.
在這個檔案中新增一行.
/usr/local/nat/nat.sh
3.NAT
與
IPTABLES
5.IPTABLES
常用規則:
iptables
-A INPUT -p TCP -s 163.19.163.123 --dport 23 -j DROP
對於163.19.163.123流入TCP
23 port進行限制.
對於某領域進行限制
限制163.19.163.0/24進行telnet存取.
iptables
-A INPUT -p TCP -s 163.19.163.0/24 --dport 23 -j DROP
允許信任網域存取22
port.其餘拒絕
iptables
-A INPUT -p TCP -s 140.126.1.0/24 --dport 22 -j ACCEPT
iptables
-A INPUT -p TCP -s 140.126.10.0/24 --dport 22 -j ACCEPT
iptables
-A INPUT -p TCP -s 140.126.11.0/24 --dport 22 -j ACCEPT
iptables -A
INPUT -p TCP -i eth0 --dport 22 -j DROP
允許信任網域使用ICMP協定.其餘拒絕
iptables
-A INPUT -p ICMP -s 192.168.0.0/24 -j ACCEPT
iptables
-A INPUT -p ICMP -s 163.19.163.97 -j ACCEPT
iptables
-A INPUT -p ICMP -i eth0 -j DROP
允許使用常用port
iptables
-A INPUT -p TCP --dport 22 -j ACCEPT
iptables
-A INPUT -p TCP --dport 25 -j ACCEPT
iptables
-A INPUT -p TCP --dport 53 -j ACCEPT
iptables
-A INPUT -p UDP --dport 53 -j ACCEPT
iptables
-A INPUT -p TCP --dport 80 -j ACCEPT
iptables
-A INPUT -p TCP --dport 110 -j ACCEPT
允許已經建立的連線
iptables
-A INPUT -m state --state ESTABLISHED,RELATE -j ACCEPT
拒絕其他服務
iptables
-A INPUT -m state --state NEW,INVALID -j DROP
iptalbes規則為上到下,若符合則不繼續往下比對.
MASQ
Client&Server測試
Client: ping server ip
位址(gateway.)
Server: ping client ip , server private ip & server real ip & gateway
參考資料:
http://www.e-infomax.com/ipmasq/
http://www.e-infomax.com/ipmasq/howto/c-html/index.html
|