反思考 \ 逆思考

基本上?沒啥好多說,有很多事情,也難以解釋!

最近都在 Facebook 閒逛比較多,有興趣?怕被牽連的就別來了。

快速連結 >> 工作印象 專題

快速連結 >> 官僚文化 專題

快速連結 >> 貿易經濟 專題

快速連結 >> 職業探討 專題

快速連結 >> 阿榮福利味事件 真相


2010年12月1日 星期三

CD router 路由軟體(6)防火牆

打從 linux 存在以來?

似乎沒有內建過其他 firewall ,一直都是 iptables 當家?或以「firewall」為主修改條件!

反觀「Free BSD」就有「 ipfw、ipnat、ipfilter」有幾大類專屬指令,也讓 freebsd 在設置上,變得輕鬆?

不管,反正是以 iptables 為主,沒其他問題!

國內除了鳥哥之外?「Linux 講解的一個好站!」

有詳細說明「iptables 的指令參數」要好好看ㄉ
http://www.weithenn.org/cgi-bin/wiki.pl?IPTables-Linux_Firewall
鳥哥的防火牆
http://linux.vbird.org/linux_server/0250simple_firewall.php
藍天工作室,過程非常完整唷!
http://itzone.hk/article/index.php?tid=14


先說明一些網路上看到的實用用技巧!
http://metavige.blogspot.com/2008/06/firestarter-iptables.html 


先是[ -F -X -Z ]清除預設防火牆原則

iptables -F
iptables -X
iptables -Z



設置允許公用 -P 訊息 「三個生效原則」

iptables -P INPUT DROP                     「進入消除」
iptables -P OUTPUT ACCEPT           「送出允許」
iptables -P FORWARD ACCEPT      「轉發允許」


設置 Loopback 的進出允許

iptables -A INPUT -i lo -j ACCEPT

設置各網路卡「eth0 | wlan0 | vmnet1 | vmnet8」生效的方式,用「替代字元 $ifcards」這招很讚!直接解決問題。

ifcards="eth0 wlan0 vmnet1 vmnet8"
for ifcard in $ifcards
do

建立 $ifcard 網路卡的連線生效

iptables -A INPUT -i $ifcard -m state --state RELATED,ESTABLISHED -j ACCEPT
done



回想關於鳥哥的硬體設置方式

EXTIF="eth1"           # 這個是可以連上 公用 IP 的網路介面
INIF="eth0"               # 內部 LAN 的連接介面;若無請填 ""
INIF="eth1"               # 內部 LAN 的連接介面;若無請填 ""
INIF="eth2"               # 內部 LAN 的連接介面;若無請填 ""

INNET="192.168.1.0/24"       # 內部 LAN 的網域,若沒有內部 LAN 請設定為 ""
export EXTIF INIF INNET       # 執行生效


-------------------------------------------------
CD router - iptables 設置 注意事項
-------------------------------------------------


我們要在 CD router 設置自己的 iptables 防火牆,為此?要先有一點步驟!

A.檢查網路結構

建議順序是「網路卡、外網、內網、路由表」設置是否生效,若未生效?就重新設置。


B.問題的根源,你有幾個網路通道,要開啟?

iptables 情況下?每多增加一張網路卡,就必須要多設置一種條件嗎?
iptables 環境下?每一個訊息正常訊息,什麼是「目標對象、目標來源、目標結果」的執行。

C.其他詭異問題?當設備不存在時,啟動 iptables 就不在管理當中?

案例:啟動 iptables 完成,在進行 re-pppoe-start 連線 ADSL 是否會正常?
答案:ppp+ 會被 iptables 排除在外,因此要先啟動 ADSL 在啟動「iptables」很這是很多人架設「IP分享」失敗的關鍵。


D.關於echo 1 > /proc/sys/net/ipv4/ip_forward 的迷失 NAT 技巧?


設置外網裝置eth0 10.1.1.1 對內廣播
同時設置
dhcpd 10.1.1.1
gw 10.1.1.1

即可經由 eth0 連線外網,但仍要說「這不安全」。
網路上已經有人說明過這種現象,因此?一般市面售出的「 IP 分享器」都有同樣的缺陷。
不論內建任何「簡易防火牆原則」,也都難以不被透析內部網路。

現象證明1;取自藍森林 自由軟件「http://www.lslnet.com/linux/f/docs1/i28/big5227931.htm」
-------------------------------------------------------------------------

用linux做NAT最後都要用上面一句話打開ip轉發。

昨天做了個實驗無意中發現,這個好像不是我想的那樣工作的。
1,本來是想做NAT的,但是忘了加iptables,只
 

echo 1 > /proc/sys/net/ipv4/ip_forward了
 

網關eth0 192.168.0.10  |  eth1 192.168.1.1
 

eth0連到公司網絡,相對來說是外網了(192.168.0.0/24),eth1連到我們這個部門,相對來說是內網了 (192.168.1.0/24)沒有加Iptables當然不能出去了,但是我發現,內網可以訪問外網的一台機器 192.168.0.31,ping,telnet,ftp都可以,其他外網機器不能訪問!!!,現在沒有做任何iptables啊,為了確信沒有 iptables,我iptables -t nat -F,清了一次,還是可以通,不能理解!!!
 

乾脆我到192.168.0.31上,試著ping 192.168.1.X內網的機器,居然是通的,各種服務都可以!!!這還有什麼安全性可言啊。檢查192.168.0.31的設置,發現它的 default gw 是192.168.0.10,我猜想是不是ip_forward,打開以後就分別轉發來自兩個端口的包?
 

2,加了iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE以後,NAT正常,外網機器都能訪問,只是只要外網以192.168.0.10做缺省路由,就可以自由訪問內網任何機器了,不需要什麼端口映射了。 

到這裡我覺得這樣是不是有些不安全,假如,通過這樣一個NAT放在公網上,只要別人與你的公網IP在一個網段,以你的NAT公網IP為缺省路由,不是內網全部暴露在它面前了?


-------------------------------------------------------------------------

-------------------------------------------------------------------------
現象證明2「http://lists.debian.org/debian-firewall/2000/01/msg00021.html


其中有一篇關於「ip_forward」內外網區隔的原文敘述,在原意上?

條件近似

dns192.168.1.1
mask 255.255.255.0
gw 192.168.1.254
dhcpd broadcast 192.168.1.255

會發生「 111.112.113.114 」的原理是什麼?重新計算路由又會改變條件,使人不得不思考,正確的配置是什麼?

通常很多人喜歡「預設配置」gw = dhcpd 的現象,來接通外部網路,在比照「大型網路、企業網路、網管技術」的實現上?這非常不安全。

因此?建立 proxy 伺服器,來避免這個不安全,轉移網路不安全的焦點。
不禁使人問「proxy = 網路代理伺服器」是安全的嗎?

曾在 2002、2004、2005、2007年,申請多組免費伺服器,架設多台「虛擬 proxy 」作為跳板,完成一些有趣的模式,可見得網路上的免費資源?非常好用,而且可匿名登記,只要E-mail檢查過關即可(免費 email 許多地方都能申請到),至於網路流量?就要自己「多方」設法解決。

但若真的要「偷懶」 dhcpd = gw 也無不可啦!

因此可以獲知「eth1」「dhcpd server router=192.168.1.1 廣播 192.168.1.255」
但設置「eth0\pppoe\ADSL」取得外網「gw 214.21.18.50」不合理。

因此?
#router  default gateway "eth0 ppp+ adsl+ isdn+" 一類的設備窗口

要有效管理「Router」作正確規劃?
因此 default gateway 仍是內部虛設的條件?
一切採取「網路卡實體」來區分,實體設置交換網路訊息................

http://eoffice.im.fju.edu.tw/phpbb/viewtopic.php?t=1550 「不解的新手請閱覽」

-------------------------------------------------------------------------


請參考

Red Hat Enterprise Linux 4 的線上教程,去進行施作,並確保上面描述的過程,各位就能夠體會 iptables 操作技巧了。

紅帽企業版 Linux 4 第七章 「防火牆」

請詳盡的看完第七章節全部
http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-sg-zh_tw-4/ch-fw.html
若沒有問題?就去挑戰「鳥哥」的防火牆設置模式。
-------------------------------------------------------------------------


鳥哥的防火牆設置
http://linux.vbird.org/download/ 有鳥哥防火牆 firewall 文件,可以下載來參考!


#!/bin/bash

# 請先輸入您的相關參數,不要輸入錯誤了!
  EXTIF="eth1"              # 這個是可以連上 Public IP 的網路介面
  INIF="eth0"               # 內部 LAN 的連接介面;若無請填 ""
  INNET="192.168.1.0/24"    # 內部 LAN 的網域,若沒有內部 LAN 請設定為 ""
  export EXTIF INIF INNET

# 第一部份,針對本機的防火牆設定!###########################
# 1. 先設定好核心的網路功能:
  echo "1" > /proc/sys/net/ipv4/tcp_syncookies
  echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
  for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
        echo "1" > $i
  done
  for i in /proc/sys/net/ipv4/conf/*/log_martians; do
        echo "1" > $i
  done
  for i in /proc/sys/net/ipv4/conf/*/accept_source_route; do
        echo "0" > $i
  done
  for i in /proc/sys/net/ipv4/conf/*/accept_redirects; do
        echo "0" > $i
  done
  for i in /proc/sys/net/ipv4/conf/*/send_redirects; do
        echo "0" > $i
  done

# 2. 清除規則、設定預設政策及開放 lo 與相關的設定值
  PATH=/sbin:/usr/sbin:/bin:/usr/bin; export PATH
  iptables -F
  iptables -X
  iptables -Z
  iptables -P INPUT   DROP
  iptables -P OUTPUT  ACCEPT
  iptables -P FORWARD ACCEPT
  iptables -A INPUT -i lo -j ACCEPT
  iptables -A INPUT -m state --state RELATED -j ACCEPT

# 3. 啟動額外的防火牆 script 模組 
# 3. iptables.deny | iptables.allow 檔案請到 http://linux.vbird.org/download/ 下載  
 
if [ -f /usr/local/virus/iptables/iptables.deny ]; then
        sh /usr/local/virus/iptables/iptables.deny
  fi
  if [ -f /usr/local/virus/iptables/iptables.allow ]; then
        sh /usr/local/virus/iptables/iptables.allow
  fi
  if [ -f /usr/local/virus/httpd-err/iptables.http ]; then
        sh /usr/local/virus/httpd-err/iptables.http
  fi
  iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

# 4. 允許某些類型的 ICMP 封包進入
 
AICMP="0 3 3/4 4 11 12 14 16 18"
  for tyicmp in $AICMP
  do
     iptables -A INPUT -i $EXTIF -p icmp --icmp-type $tyicmp -j ACCEPT
  done

# 5. 允許某些服務的進入,請依照您自己的環境開啟
# iptables -A INPUT -p TCP -i $EXTIF --dport  22  -j ACCEPT   # SSH
# iptables -A INPUT -p TCP -i $EXTIF --dport  25  -j ACCEPT   # SMTP
# iptables -A INPUT -p UDP -i $EXTIF --sport  53  -j ACCEPT   # DNS
# iptables -A INPUT -p TCP -i $EXTIF --sport  53  -j ACCEPT   # DNS
# iptables -A INPUT -p TCP -i $EXTIF --dport  80  -j ACCEPT   # WWW
# iptables -A INPUT -p TCP -i $EXTIF --dport 110  -j ACCEPT   # POP3
# iptables -A INPUT -p TCP -i $EXTIF --dport 443  -j ACCEPT   # HTTPS

# 第二部份,針對後端主機的防火牆設定!##############################
# 1. 先載入一些有用的模組
  modules="ip_tables iptable_nat ip_nat_ftp ip_nat_irc ip_conntrack 
ip_conntrack_ftp ip_conntrack_irc"
  for mod in $modules
  do
        testmod=`lsmod | grep "${mod} "`
        if [ "$testmod" == "" ]; then
                modprobe $mod
        fi
  done

# 2. 清除 NAT table 的規則吧!
  iptables -F -t nat
  iptables -X -t nat
  iptables -Z -t nat
  iptables -t nat -P PREROUTING  ACCEPT
  iptables -t nat -P POSTROUTING ACCEPT
  iptables -t nat -P OUTPUT      ACCEPT

# 3. 開放成為路由器,且為 IP 分享器!
  if [ "$INIF" != "" ]; then
    iptables -A INPUT -i $INIF -j ACCEPT
    echo "1" > /proc/sys/net/ipv4/ip_forward
    if [ "$INNET" != "" ]; then
      for innet in $INNET
      do
        iptables -t nat -A POSTROUTING -s $innet -o $EXTIF -j MASQUERADE
      done
    fi
  fi
  # 如果你的 MSN 一直無法連線,或者是某些網站 OK 某些網站不 OK,
  # 可能是 MTU 的問題,那你可以將底下這一行給他取消註解來啟動 MTU 限制範圍
  # iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss \
  #          --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu

# 4. 內部伺服器的設定:
# iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 80  \
#          -j DNAT --to 192.168.1.210:80
 
 
 
後面開始?就是其他「軟路由軟體」 的實務架設。

沒有留言:

張貼留言

※※ 這樣內容,上手會困難嗎?※※ 我想到什麼?就寫什麼!※※

※對於資訊!我想到什麼?就寫什麼!

如果困難的話?
歡迎來信討論或發表意見,我會儘快回覆。

也歡迎來 YAHOO 知識家,集思廣益!

我的YAHOO 知識家 首頁:
http://tw.knowledge.yahoo.com/my/my?show=AB05975376

有需要技術文件 DarkMan 蒐集了不少!
存在FTP共享。想下載?請洽DarkMan信箱取得下載帳號。※

(-.-)

我承認.....從西元2000年後,就沒有在「Grey Hat」過了?

況且,我們沒去玩弄中華電信的小烏龜.....我是安分守己的宅男
當然?駭客技術,是一種私下傳授的「奧義」,並不適合廣為人們學習!
畢竟,這樣多學習資訊的人?都被隔離~又隔離~切割~又切割~之後?
沒幾個能夠將「資訊整體」一窺全豹,自然沒有人,在資訊能力上,具有健全的行為。
至此,不少人都只懂得一部分?甚至更慘,活在一般資訊下,難以突破!

請散播更多Dark Man 的訊息!
DarkMan專用信箱darkman@ishr.twbbs.org
Mail 伺服器?遷移中!施工期間!有諸多不便!近請見諒!
"人資系統的黑暗人" http://hr-no.blogspot.com "
微軟免費「免費防毒軟體」
微軟免費「間諜攻擊防護」

Dark Man 對於擁有「技術、技能、軟體、硬體、平台」並不自大,而是更加的重視「自我約束、安全管理」,曾幾何時?那些對「職能素養」相當重視的人,都一一退出職場;留下的只是「自我膨脹、爭名奪利」的人。

重視職能達成的人?會否越來越不容易工作;除了要應付工作之餘?

還要去面對「自我膨脹、爭名奪利」之輩.......這是「極其惡意」的事情,為何?仍要這樣去組織「職場環境」,就因為「權大通天、利大遮事」嗎?

這裡講述到的「軟體平台」,沒有花一定的時間去熟悉,是不可能深入,也不可能順利操作,有興趣的人,要多花時間投入,才能夠掌握網路運用。