【求助】iptables 二問



贊助商連結


aeolus0829
2003-06-03, 10:49 PM
我想用 linux 取代公司那台 ip 分享器(因要做頻寬管制及對外連線的效能監控,預算一直下不來),那台 ip

分享器的功能裡有二項一直搞不定,想請大家幫個忙:
一、依機器的 MAC 位址,控制能否上網
$BLK_MAC="00-00-00-00-00-00"
iptables -t nat -A PREROUTING -m mac --mac-source $BLK_MAC -j DROP
以上經實驗後確實可做到,我的問題是我想把 MAC 位址放到檔案中,然後在 SCRIPT 執行時會去讀檔案內容(簡

化程式碼和管理),阻止不該上網的人,但翻過一些介紹 SCRIPT 的文章,似乎沒提到 SCRIPT 去讀檔案內容的

事(還是有更簡單的方法?)

二、指定某一個 PORT 的服務(如 80 給 192.168.0.1 的 IIS 負責)由特定的機器提供服務
忘了說明,我是固接的線路 internet->ip share->web server
iptables -A PREROUTING -t nat -p tcp --dport 80 -j DNAT --to 192.168.0.1:80
這是參考小州兄的文章做出來的,但是一直無法成功
不知道我的理解有沒有錯,我如果打
http://linux/

在經過 iptables 轉換之後,是不是會秀出在 192.168.0.1 的 web server 的網頁?
一直找不到解決的方法,如果有人能提供的話,我會十分感激!!

贊助商連結


anson lin
2003-06-05, 11:19 PM
第二個試試看
iptables -A POSTROUTING -t nat -p tcp -d (Server_ip) --dprot 80 -j DNAT --to 192.168.0.1:80
看看

gerrybbs
2003-06-06, 11:30 PM
第一題解答,將拒絕連線的 mac address 存成 mac.list ,並依下列儲存,內容如
== mac.list ==
11-22-33-44-55-66
22-33-44-55-66-77
33-44-55-66-77-88

ps.若不想使用 mac 限制,更名 mac.list 即可

主要執行檔如下:


INET_IFACE="$EXTIF"
LAN_IFACE="$INIF"
MASQ_LAN="$INNET"
MAC_DENY_FILE="/mypath/mac.list"

if [ -f $MAC_DENY_FILE ] ; then
MAC_DENY=`cat $MAC_DENY_FILE | paste -d' ' -s `
for address in ${MAC_DENY} ; do
/sbin/iptables -t nat -A PREROUTING -m mac --mac-source ${address} -
j DROP
echo "${address}:Deny this Mac Address "
done
fi

aeolus0829
2003-06-07, 02:06 PM
最初由 gerrybbs 發表
第一題解答,將拒絕連線的 mac address 存成 mac.list ,並依下列儲存,內容如
== mac.list ==
11-22-33-44-55-66
22-33-44-55-66-77
33-44-55-66-77-88

ps.若不想使用 mac 限制,更名 mac.list 即可

主要執行檔如下:


INET_IFACE="$EXTIF"
LAN_IFACE="$INIF"
MASQ_LAN="$INNET"
MAC_DENY_FILE="/mypath/mac.list"

if [ -f $MAC_DENY_FILE ] ; then
MAC_DENY=`cat $MAC_DENY_FILE | paste -d' ' -s `
for address in ${MAC_DENY} ; do
/sbin/iptables -t nat -A PREROUTING -m mac --mac-source ${address} -
j DROP
echo "${address}:Deny this Mac Address "
done
fi


喔喔喔喔喔喔喔喔喔喔喔~~~~~~~~~~~~~~
想不到 script 還可以這樣用
真是太感謝你了