作者 主題: 請問如何通過自設火牆?  (閱讀 8271 次)

0 會員 與 1 訪客 正在閱讀本文。

al

  • 憂鬱的高中生
  • ***
  • 文章數: 136
    • 檢視個人資料
請問如何通過自設火牆?
« 於: 2004-04-11 00:31 »
一. 現狀: 主機在機房不小心設了防火牆把自己擋住,一時找不到管理鑰匙者
二. 按照本站教學學作防火牆規則如下(目標:發現 Lan 裡面有人玩 port scan)
PATH=/sbin:/usr/sbin:/bin:/usr/bin
INT_IF=eth0
TRUSTED_TCP_PORT="20 21 22 25 53 80 110 113 143 220 465 993 995 8080"
TRUSTED_UDP_PORT="53"
ALLOWED_ICMP="0 3 3/4 4 11 12 14 16 18"
# ------------- flushing ----------
iptables -F -t filter
iptables -X -t filter
iptables -Z -t filter
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
# ------------- policies -------------
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
# ------------- ICMP -------------
iptables -N icmpfilter
for TYPE in $ALLOWED_ICMP; do
    iptables -A icmpfilter -i $EXT_IF -p icmp \
        --icmp-type $TYPE -j ACCEPT
done
# ------------- services ------------
iptables -N services
for PORT in $TRUSTED_TCP_PORT; do
    iptables -A services -i $EXT_IF -p tcp --dport $PORT -j ACCEPT
done
for PORT in $TRUSTED_UDP_PORT; do
    iptables -A services -i $EXT_IF -p udp --dport $PORT -j ACCEPT
done
# ------------- block -------------
echo "Creating block chain..."
iptables -N block
iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A block -m state --state NEW -i ! $EXT_IF -j ACCEPT
iptables -A block -j DROP
# ------------- filter -------------
echo "Filtering packets..."
iptables -A INPUT -j icmpfilter
iptables -A INPUT -j services
iptables -A INPUT -j block
iptables -A FORWARD -j icmpfilter
iptables -A FORWARD -j block

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17465
    • 檢視個人資料
    • http://www.study-area.org
請問如何通過自設火牆?
« 回覆 #1 於: 2004-04-11 00:42 »
嗯.... 這是遠端維護 firewall 常見的狀況之一。
除非你本來有開一條 back door 規則,否則只能跑到機器面前去改了。

al

  • 憂鬱的高中生
  • ***
  • 文章數: 136
    • 檢視個人資料
請問如何通過自設火牆?
« 回覆 #2 於: 2004-04-11 00:55 »
請問在這可以問如何開一條 back door 規則嗎?
或這是電腦犯罪的行為?

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17465
    • 檢視個人資料
    • http://www.study-area.org
請問如何通過自設火牆?
« 回覆 #3 於: 2004-04-11 00:57 »
也就是開一個後門給另一個 IP ...
若你當前的 IP 不小心被擋了,那你換一個 IP 就可以進得來...

al

  • 憂鬱的高中生
  • ***
  • 文章數: 136
    • 檢視個人資料
請問如何通過自設火牆?
« 回覆 #4 於: 2004-04-11 01:19 »
目前 DHCP 指定兩個網段 192.168.1.0 與 192.168.2.0
是否指派某個 IP 給某張網卡?
或是其他轉換 IP 的方法?
對不起一直要答案 下週才 能找到管理鑰匙者

al

  • 憂鬱的高中生
  • ***
  • 文章數: 136
    • 檢視個人資料
請問如何通過自設火牆?
« 回覆 #5 於: 2004-04-11 01:52 »
忘了告知 NAT 與目標主機是分開的
NAT 沒備擋

al

  • 憂鬱的高中生
  • ***
  • 文章數: 136
    • 檢視個人資料
請問如何通過自設火牆?
« 回覆 #6 於: 2004-04-11 01:54 »
是 NAT 沒被擋

jarrycho

  • 鑽研的研究生
  • *****
  • 文章數: 518
  • 性別: 男
    • 檢視個人資料
請問如何通過自設火牆?
« 回覆 #7 於: 2004-04-14 15:28 »
NAT 沒被擋也無法進入啊!看見你的TRUST PORT 有22,試試看SSH
可不可以連的進去,如果SERVER 有啟動SSH 的話那就還可一線希望,
祝好運!不然就叫鎖匠來好了~

dark

  • 俺是博士!
  • *****
  • 文章數: 1581
    • 檢視個人資料
請問如何通過自設火牆?
« 回覆 #8 於: 2004-04-14 16:17 »
好像無解了... 要找鎖匠囉...

您好像是變數錯了..
原本 INT_IF=eth0 , 但用了$EXT_IF ....... 以致每一條規則都不成立

但偏偏最後一條 "iptables -A block -j DROP" 卻成功了... =.=
... 這麼一來 , 您連找漏洞打的機會都沒有了

jarrycho

  • 鑽研的研究生
  • *****
  • 文章數: 518
  • 性別: 男
    • 檢視個人資料
請問如何通過自設火牆?
« 回覆 #9 於: 2004-04-14 16:25 »
:o ~我的天啊!您該不會是remote 端在試firewall 吧!這太冒險啦!真
的~因為我也犯過一次這樣的錯誤,都已經下班了,firewall 的書看一看後
心血來潮ssh 到公司試試,結果一樣「全鎖無解」,結果還晚上九點多跑到
公司解~

dark

  • 俺是博士!
  • *****
  • 文章數: 1581
    • 檢視個人資料
請問如何通過自設火牆?
« 回覆 #10 於: 2004-04-14 22:17 »
小弟平常要遠端維護時 (公司外縣市 server)
小弟總會習慣性的做一件事 , 當作後門:
1. 先在公司近端的 ftp server , 自己帳號家目錄下建立一個檔案 "i_am_here"
2. 執行測試前執行
#xyz(){
>tmp_str=$(ncftpls -u dark -p *** ftp://公司 ftp)
>test "$(echo $tmp_str | grep 'i_am_here')" = "" && {
>reboot
>}
>sleep 60
>}
#while true;do xyz ;done &
然後才測試...
這時如果有什麼不測 , 那你就上自己的 ftp 把 i_am_here 砍掉 , 那台就會重開機了

另外 , 小弟放在公司的 linux , 因為有漏洞都拿那台測試 , 所以系統千瘡百孔...
尤其 sshd service 兩三天就會掛掉(有趣的是 nat , apache 還活著...)
... 但那台沒給他螢幕 , 鍵盤 , 滑鼠 ... 所以通常就 reset ... 久了嫌麻煩...
若針對 sshd 設計 ... 又這麼一台沒螢幕...沒...

在 /etc/rc.d/rc.local 最後加上
sh /home/pc_is_live/pc_is_live.sh
代碼: [選擇]
#!/bin/sh
cd /home/pc_is_live
times="3"
while true ;do
rm -f /home/pc_is_live/i_am_here
/home/pc_is_live/expect.talk
test -f /home/pc_is_live/i_am_here && {
        times="3"
} || {
        times=$(echo "$times - 1" | bc)
}
test $times -lt 0 && {
reboot
exit
}
sleep "$times"00
echo $times
done

另外編輯一個檔案 /home/pc_is_live/expect.talk (要給執行權)
代碼: [選擇]
#!/usr/bin/expect
spawn /usr/bin/ssh pc_is_live@127.0.0.1 "touch i_am_here"
expect "pc_is_live@127.0.0.1's password:"
send "1234\r"
interact

jarrycho

  • 鑽研的研究生
  • *****
  • 文章數: 518
  • 性別: 男
    • 檢視個人資料
請問如何通過自設火牆?
« 回覆 #11 於: 2004-04-15 08:28 »
:o ~還有這招喔!嘿嘿~受教了!又偷學了一招!非常謝謝您抽空po 上
來指導與分享 :lol:  :D