伺服器作為防火牆、NAT路由網關、DHCP、DNS最終配置

來源:互聯網
上載者:User

問題:如何通過伺服器上外網

伺服器上外網執行操作(操作順序可調):

(1)iNode串連

(2)執行StartMyNetwork.sh    終端運行命令後會自動關閉

問題:有哪些自己寫的指令檔,存在什麼路徑下,主要做了哪些操作

伺服器網路設定指令碼存放位置:

/bin/MyFireWall.sh    /bin/StartMyNetwork.sh /etc/rc.local   (開機修改MAC) /etc/network/interfaces配置eth0 、eth1 dhcp配置見第3點

或者到/home/administrator/MyNetwork修改ln /bin/StartMyNetwork.sh /home/administrator/MyNetwork

ln /bin/MyFireWall.sh /home/administrtor/MyNetwork

ln /bin/StartMyNetwork.sh /home/administrator/案頭

問題:如何綁定新的MAC

添加MAC: sudo MyFireWall.sh 00:00:00:00:00:00  Tomy’sMAC

註:描述Tomy'sMAC中間無空格的字串,也可不寫,MAC位元不對會出錯

或在案頭上addmac.txt檔案中添加

添加MAC後重啟iptables:sudo StartMyNetwork.sh 

或執行案頭上StartMyNetwork.sh指令碼

問題:如何重啟iptables

sudo StartMyNetwork.sh 

或執行案頭上的StartMyNetwork.sh指令碼

 

1、iNode認證用戶端安裝

首先在/etc/rc.local 中添加

ifconfig eth0 down

ifconfig eth0 hw ether ******

ifconfig eth0 up

(1)學校網站下載linux版本。

(2)修改install.sh許可權(755),執行install.sh。

(3)修改iNodeClient許可權(755),運行iNodeClient認證。

2、MyFireWall.sh防火牆設定

#!/bin/bash
#written by *** 2012/3/29 QQ***

#1.主要作用:只有經過該指令碼綁定的MAC才可通過本機訪問外網,其餘MAC一律拒絕訪問外網。
#2.該指令碼的$1和$2為新添加的MAC和描述,且重新導向到addmac.txt中。

#開啟IP轉寄功能,相當於讓核心做路由
echo "1" > /proc/sys/net/ipv4/ip_forward

###清除iptables規則
iptables -F
iptables -X
iptables -Z
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
###清除iptables規則

###設定預設規則
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP  #只有FORWARD鏈預設DROP
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
###設定預設規則

###啟動nat轉寄及FORWARD state允許轉寄外網對內網請求響應的包
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
###啟動nat轉寄及FORWARD state允許轉寄外網對內網請求響應的包

###本指令碼預設允許通過的MAC(其餘允許通過的MAC在~/案頭/addmac.txt中)
iptables -A FORWARD -m mac --mac-source *** -j ACCEPT
iptables -A FORWARD -m mac --mac-source *** -j ACCEPT
###本指令碼預設允許通過的MAC(其餘允許通過的MAC在~/案頭/addmac.txt中)

###重新導向指令碼的$1 $2 
#eg:sudo MyFireWall.sh 00:00:00:00:00:00 ZhangSan
#意思是將00:00:00:00:00:00 ZhangSan作為一行添加到addmac.txt中
if [ $1 ];then
        #if [ $2 ];then
        #echo \# $2 >> /bin/MyFireWall.sh    #反斜線\轉義注釋符號#
        #else
        #       :
        #fi
        #echo iptables -A FORWARD -m mac --mac-source $1 -j ACCEPT >> /bin/MyFireWall.sh
        echo $1 $2 >> /home/administrator/案頭/addmac.txt
else
        :               
fi
###重新導向指令碼的$1 $2 

 

###從addmac.txt讀取使用者添加的MAC,並允許其訪問外網
#管道|  即讀取cat 顯示的檔案的每一行,並將以行存在LINE變數中。

#read有讀取一行的作用。
cat /home/administrator/案頭/addmac.txt | while read LINE  
do
usermac=`echo $LINE | awk '{print $1}'`
#username=`echo $LINE | awk '{print $2}'`
#echo \# $username >> /bin/MyFireWall.sh
#if else 語句的作用是避免將讀到的空行作為MAC賦給iptables語句。
if [ $usermac ];then
        iptables -A FORWARD -m mac --mac-source $usermac -j ACCEPT
else
        :
fi
done
###從addmac.txt讀取使用者添加的MAC,並允許其訪問外網

3、DHCP伺服器

(1)

安裝dhcp3-server:apt-get install dhcp3-server

(2)

a、gedit /etc/default/dhcp3-server

INTERFACES="eth1"

b、gedit /etc/dhcp3/dhcpd.conf

subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.2 192.168.0.254;
option domain-name-servers 218.30.19.40,202.117.112.3;
option subnet-mask 255.255.255.0;
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
default-lease-time 86400;
max-lease-time 172800;
}

host WorkStation{
        hardware ethernet 2c:41:38:94:51:90;
        fixed-address 192.168.0.30;
}

註:主機名稱任意,若用戶端手動設定,以用戶端配置為準。

(3)

/etc/init.d/dhcp3-server start

 4、StartMyNetwork.s放在案頭上由使用者執行的操作

執行需要輸入密碼

sudo /sbin/ifconfig eth0 hw ether **:**:**:**:**:**

sudo /home/administrator/MyNetwork/MyFireWall.sh

sudo /sbin/dhclient eth0

5、/etc/network/interfaces配置eth0 、eth1

auto eth0
iface eth0 inet dhcp
pre-up ifconfig eth0 hw ether **:**:**:**:**:** #修改網卡為外網認證網卡

auto eth1
iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0

6、/etc/rc.local設定開機啟動項

開機修改網卡為外網認證網卡,開機啟動iNode服務

/sbin/ifconfig eth0 down

/sbin/ifconfig eth0 hw ether **:**:**:**:**:**

/sbin/ifconfig eth0 up

/etc/init.d/iNodeAuthService start

exit 0

6、修改ubuntu10.10和windows XP雙系統啟動順序

在windows xp作業系統下右擊--我的電腦--屬性--進階--啟動和故障恢複--設定--預設作業系統下拉框選擇預設啟動作業系統和類表顯示時間等。

7、伺服器啟用ssh

伺服器安裝openssh-server:sudo apt-get install openssh-server

8、卸載NetworkManager

9、伺服器定時關機

gedit /etc/crontab

30 23 * * * root /sbin/shutdown -h now

每天23:30關機。

10、指令碼StartMyNetwork.sh MyFireWall.sh作為命令執行

將StartMyNetwork.sh MyFireWall.sh拷貝到PATH標明的路徑下(/bin)。

如:將這兩個指令碼拷貝到/bin檔案夾下,則在終端的任意路徑下都可執行這兩個指令碼。

補充:

PATH含義:在目前的目錄下找不到命令或指令碼,則到PATH標明的路徑下尋找。

PATH環境變數查看:echo $PATH  或   export   (查看所有環境變數)

PATH修改:export PATH=**:**:**  

11、Xmanager切換中英文IME(需要先在喜好設定--鍵盤IME啟用):shift

在喜好設定--鍵盤IME裡設定

12、查看DHCP的IP曆史分配情況

cat /var/lib/dhcp3/dhcpd.leases 

註:無法查看固定分配的IP(用戶端指定和服務端指定都無法查看)

推薦用管道查看日誌

cat /var/log/messages | grep DHCPACK 

註:/var/log/messages存放的是一天的messages

     /var/log/messages.1存放的是?多長時間

13、查看正在使用的IP,即查看當前有哪些用戶端串連到伺服器

(1)arp             #所有介面

(2)arp –i eth1  #查看連到eth1介面的IP及對應MAC

註:如果/etc/dhcp3/dhcpd.conf中給特定MAC分配指定的IP,則ARP可以解析 該IP與對應MAC。(用戶端指定可解析出)用ARP命令時是解析的當前在活動的包,所以有時用戶端雖然連伺服器,但解析不出用戶端。

14、/var/lib/dhcp3/dhcpd.leases欄位含義

{starts 6 2010/12/25 21:20:08; ends 6 2010/12/25 23:20:08; cltt 6 2010/12/25 21:20:08; binding state active; next binding state free;} {starts 0 2010/12/19 15:56:00; ends 0 2010/12/19 17:56:00; tstp 0 2010/12/19 17:56:00; cltt 0 2010/12/19 15:56:00; binding state free;}

start和end時間使用starts和ends語句記錄。Tstp語句指定在使用失敗恢複協議時,伴侶認為租約到期的時間,tsfp語句也用在失敗恢複協議使用時,指定伴侶確認的租約到期時間。 binding state語句聲明租約的綁定狀態,當DHCP伺服器沒有配置使用失敗恢複協議時,租約的綁定狀態會是啟用(active)和自由(free),失敗恢複協議添加了一些新的傳送狀態 cltt 我找了下dhcp的英文介紹 這麼解釋的The time of the last transaction with the client on this lease. 大概就是用戶端最後一次續約時。

FAQ

問題一:iNode一直認證失敗(connect failed)

解決:使用者權限問題?(將administrator UID設為0後會出現failed問題)

將UID改回1000,或者是該iNode的執行許可權原因,改變其執行許可權,或改變所有者,所屬組?斷開再連。或者重啟iNode再連。

問題二:iNode連線逾時(overtime)。

解決:斷開再連。(或者重啟再連。)

問題三:iNode串連時顯示MAC不對。

解決:ifconfig eth0 hw ether **:**:**:**:**:**  (改為可連外網MAC)

問題四:iNode顯示認證通過,但是無法ping通 www.baidu.com

解決:dhclient eth0 (未擷取IP)

問題五:DHCP伺服器不可用

解決:內網網卡eth1的IP配置為192.168.0.1

問題六:使用NetworkManager後eth0的MAC改變

解決:ifconfig eth0 hw ether **:**:**:**:**:**  (改為可連外網MAC)

或者直接執行MyFireWall.sh

 

 

DNS配置

1、DNS設定檔
/etc/hosts   這個是最早的 hostname 對應 IP 的檔案;

/etc/resolv.conf :這個重要!就是 ISP 的 DNS 伺服器 IP 記錄處;

/etc/nsswitch.conf:這個檔案則是在『決定』先要使用 /etc/hosts 還是
/etc/resolv.conf 的設定!

 

一般而言, Linux 的預設主機名稱與 IP 的對應搜尋都以 /etc/hosts 為優先,

2、DNS相關命令

root@ubuntu:~# dig +trace www.baidu.com

DNS 的正、反解查詢指令: host, nslookup, dig

root@ubuntu:~# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 119.75.218.77
www.a.shifen.com has address 119.75.217.56
Host www.a.shifen.com not found: 3(NXDOMAIN)
root@ubuntu:~#

 

root@ubuntu:~# nslookup www.baidu.com
Server:        192.168.77.2
Address:    192.168.77.2#53

Non-authoritative answer:
www.baidu.com    canonical name = www.a.shifen.com.
Name:    www.a.shifen.com
Address: 119.75.218.77
Name:    www.a.shifen.com
Address: 119.75.217.56

root@ubuntu:~#

3、配置執行個體

參考:http://www.xkedu.cn/blog/read.php?478

1. 配置環境:
一台server和若干client組成的簡單區域網路,在一個網段上。一台Server做為DNS server,注意DNS server Ip地址不能用DHCP,要用靜態ip。Server的ip:192.168.0.1,Client的ip範圍為:192.168.0.2——192.168.0.254,相互能ping通。

2. 檢查是否安裝bind
使用命令dpkg -l bind*查看相關軟體是否安裝
如果沒有安裝就進行下一步
3. Installing BIND9 (安裝 BIND9)
命令: sudo apt-get install bind9

我們將配置DNS為主伺服器類型

DNS 設定檔在/etc/bind 目錄中。安裝bind9後會產生如下三個設定檔:
named.conf;named.conf.options;named.conf.local

其中 named.conf是主設定檔,裡麵包含了named.conf.options和named.conf.local,我們在架設本地dns時,只需改動named.conf.local即可。

設定執行個體

⑴環境:
Server的ip:192.168.0.1

Client的ip範圍為:192.168.0.2——192.168.0.254,相互能ping通

現在將主機架設成主dns伺服器,要求能解析
kxsrv.304.com 192.168.0.1

www.304.com 192.168.0.1

mail.304.com   192.168.0.30

⑵分析:根據上面的主機名稱和ip對應可以看出:
①需要添加正向地區“304.com”反向地區“0.168.192.in-addr.arpa”,
②在“304.com”地區中添加A記錄kxsrv對應192.168.0.1, CNAME記錄www對應kxsrv
在“0.168.192.in-addr.arpa”地區中添加各個ip地址對應的主機名稱

⑶編輯設定檔 記得路徑 /etc/bind/

①編輯named.conf.local
先要添加寫入權限:sudo chmod 646 named.conf.local
編輯用:sudo nano /etc/bind/named.conf.local

添加下列語句
//正向地區
zone "304.com" {
type master;
file "/etc/bind/db.304.com";
};
//反向地區
zone "0.168.192.in-addr.arpa" {
type master;
notify no;
file "/etc/bind/db.30.140.192";
};
然後儲存

②建立named.conf.local中指定的地區檔案
在/etc/bind下建立正向地區檔案 (複製了一份)
命令:sudo cp /etc/bind/db.local /etc/bind/db.304.com
在/etc/bind下建立反向地區檔案 (複製了一份)
命令:sudo cp /etc/bind/db.127 /etc/bind/db.0.168.192

③編輯正向地區檔案
命令:sudo nano /etc/bind/db.304.com
將原文參照下文修改
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA ns.304.com. root.304.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.304.com.
@ IN A 127.0.0.1
@ IN AAAA ::1
ns IN A 192.168.0.1

kxsrv IN A 192.168.0.1

mail   IN A 192.168.0.30

www IN CNAME kxsrv

注意修改的地方,在原文的localhost處更改,再添加各個主機記錄 注意用Tab鍵分開對齊
另外使用別名時:www IN cname 192.168.0.1 會出錯,
要使用www IN cname kxsrv

④編輯反向地區檔案
命令:sudo nano /etc/bind/db.0.168.192

將原文參照下文修改
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA ns.304.com. root.304.com. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.
9 IN PTR ns.304.com.
9 IN PTR kxsrv.304.com.
9 IN PTR www.304.com.

9 IN PTR mail.304.com

注意修改的地方,在原文的localhost處更改,再添加各個主機記錄 注意用Tab鍵分開對齊

(4)重新啟動DNS服務
sudo /etc/init.d/bind9 restart
到此位置dns就配置完成了,你可以在XP下的cmd環境下用nslookup去試試看
注意:改動設定檔後都要重新啟動bind9。

(5)

Linux 修改DNS,請修改/etc/resolv.conf檔案。
例如:
編輯sudo nano /etc/resolv.conf
更改為
nameserver 192.168.0.1

nameserver 202.117.112.3

DNS用戶端的配置
此時DNS伺服器已經開始工作了,要使用該DNS伺服器,以XP為例,到"控制台"–"網路連接",找到上網的網卡,右鍵選擇"屬性",改變DNS地址為192.168.0.1

驗證:在用戶端

ping kxsrv.304.com

ping www.304.com

ping mail.304.com

總結:/etc/bind下檔案之間的關係,

1、主要有三個設定檔:named.conf;named.conf.options;named.conf.local。(還有named.conf.default-zones等預設檔案,不用管它)

2、其中named.conf是主設定檔,裡麵包含named.conf.options和named.conf.local,我們在架設本地dns時,只需改動named.conf.local即可。

3、先在named.conf.local中配置正向和反向地區,

正向地區的具體配置在/etc/bind/db.304.com檔案中;(以本次實驗為例)

正向地區的具體配置在/etc/bind/db.0.168.192檔案中;(以本次實驗為例)

然後到正向和反向的具體設定檔中配置。

再總結:只需改動在named.conf.local添加正向和反向地區;再到正向設定檔(在named.conf.local中指明了該檔案的路徑和名稱)和反向設定檔(在named.conf.local中指明了該檔案的路徑和名稱)中配置。

即以後要該網域名稱直接替換上述三個檔案的304字串為要修改後的字串即可。

要添加其他需要解析的網域名稱(仍是304.com域,仍在192.168.0段內,非192.168.0.1地址),如添加ftp.304.com對應地址192.168.0.20,只需在/etc/bind/db.304.com和/etc/bind/db.0.168.192中添加相應網域名稱和地址即可.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.