<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    分享java帶來的快樂

    我喜歡java新東西

    iptables(精華)

    netfilter/iptables這個玩意兒似乎很復雜一直沒太搞懂它的原理,所以從給公司配置服務器開始就從未使用過它,讓同事們共享上網時才用了一下它的偽裝,當時也只是從網上看到了那行iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE,仍然不知道它究竟都干了些什么。最近覺得QQ這個東西的確有些影響同事們工作,所以下決心摸索一下iptables,看看能不能提供一下生產力。

    我的網絡情況:linux服務器既是上網的撥號服務器,同時也是公司的web server、mail server、ftp server等,域名動態解析,同時它與公司其它windows客戶端構成了一個局域網,內網IP為192.168.0.1(eth1接口),外網網卡(eth0接口),撥號接口為ppp0,網內其它計算機的IP也都是192.168.0網段。192.168.0.2到192.168.0.16為公司工作人員(公司比較小,只有10來個人),192.168.0.240到192.168.0.243這幾個IP是我和其它兩個同事在用,需要實現的目標是外網只能訪問服務器的www、mail、ftp、tomcat這幾個服務、內網192.168.0.2到192.168.0.16這個IP段的同事們上班時間只能上外網的www、mail、ftp、tomcat并禁止使用QQ、192.168.0.240到192.168.0.243這個IP段的同事們可以無限制上網。下面是我的腳本內容。

    work_firewall.sh:
    # Display start message
    echo "Starting iptables rules..."
    # 設置變量
    IPT=/sbin/iptables
    INTERNET_SERVER=192.168.0.1
    IP_ME="127.0.0.1"
    IP_SPEC_RANGE="192.168.0.240/30"
    IP_WORK_RANGE="192.168.0.2/28"
    IP_ALL="192.168.0.0/24"
    # 清除所有規則
    $IPT -F
    $IPT -t nat -F
    # 重置所有鏈默認設置
    $IPT -P INPUT DROP
    $IPT -P OUTPUT ACCEPT
    $IPT -P FORWARD ACCEPT
    $IPT -t nat -P PREROUTING ACCEPT
    $IPT -t nat -P POSTROUTING ACCEPT
    # 1. 限制internet對web服務器的訪問
    # (1) 允許自己無限制訪問自己
    $IPT -A INPUT -s $IP_ME -j ACCEPT
    # (2) 允許訪問www服務
    $IPT -A INPUT -p tcp --dport 80 -j ACCEPT
    # (3) 允許訪問ftp服務
    $IPT -A INPUT -p tcp --dport 20 -j ACCEPT
    $IPT -A INPUT -p tcp --dport 21 -j ACCEPT
    # (4) 允許訪問mail服務
    $IPT -A INPUT -p tcp --dport 110 -j ACCEPT
    $IPT -A INPUT -p tcp --dport 143 -j ACCEPT
    $IPT -A INPUT -p tcp --dport 25 -j ACCEPT
    # (5) 允許訪問tomcat服務
    $IPT -A INPUT -p tcp --dport 8080 -j ACCEPT
    # 2. 允許工作人員通過局域網訪問服務器
    $IPT -A INPUT -s $IP_SPEC_RANGE -j ACCEPT
    $IPT -A INPUT -s $IP_WORK_RANGE -j ACCEPT
    # 3. 允許特殊IP無限制上網
    $IPT -t nat -A PREROUTING -s $IP_SPEC_RANGE -j ACCEPT
    # 4. 對工作范圍內IP限制部分上網功能
    # (1) 允許訪問DNS和ECHO
    $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p udp --dport 53 -j ACCEPT
    $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p udp --dport 42 -j ACCEPT
    $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p udp --dport 7 -j ACCEPT
    # (2) 禁止QQ的TCP登錄
    $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 219.133.38.5 -p tcp -j DROP
    $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 218.18.95.165 -p tcp -j DROP
    $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 218.17.209.23 -p tcp -j DROP
    $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 218.18.95.153 -p tcp -j DROP
    # (3) 禁止MSN登錄
    $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 207.46.104.20 -j DROP
    # (4) 允許訪問www
    $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 80 -j ACCEPT
    # (5) 允許訪問ftp
    $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 20 -j ACCEPT
    $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 21 -j ACCEPT
    # (6) 允許訪問mail
    $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 110 -j ACCEPT
    $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 143 -j ACCEPT
    $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 25 -j ACCEPT
    # (7) 允許訪問tomcat
    $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 8080 -j ACCEPT
    # (8) 禁止訪問其它服務
    $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d ! $IP_ALL -j DROP
    # 5. 共享上網
    $IPT -t nat -A POSTROUTING -o ppp+ -j MASQUERADE
    # 顯示結束信息
    echo "Completed iptables rules."

     

    網上講解iptables命令如何使用的文章已經數不勝數了,但真正要理解它的工作原理還是不太容易,也許是自己太笨周六那天竟然午飯都沒吃苦苦思索了整整一天才慢慢有所領悟。netfilter/iptables共有三組規則表:filter、nat和mangle。filter表用于一般的信息包過濾,如我的網絡中192.168.0.1服務器自己訪問internet資源時或者外網訪問服務器本身時使用filter表規則;nat表用于轉發的信息包過濾,如我的局域網內客戶端需要通過服務器訪問外網時就需要用到nat表規則;mangle表用于高級路由,我此次沒有用到,因此也沒有深究,有空了再看看^_^。filter表包括INPUT鏈、OUTPUT鏈和FORWARD鏈;nat表包括PREROUTING鏈、POSTROUTING鏈和OUTPUT鏈;mangle表包括PREROUTING鏈和OUTPUT鏈。filter表為默認規則表。

    表名

    功能

    filter 用于一般的信息包過濾,包括INPUT鏈、OUTPUT鏈和FORWARD鏈,如我的網絡中192.168.0.1服務器自己訪問internet資源時或者外網訪問服務器本身時使用filter表規則
    nat 用于轉發的信息包過濾,包括PREROUTING鏈、POSTROUTING鏈和OUTPUT鏈,如我的局域網內客戶端需要通過服務器訪問外網時就需要用到nat表規則
    mangle 用于高級路由,包括PREROUTING鏈和OUTPUT鏈

    上面的腳本先清除了所有鏈的所有規則并重置了默認設置,其中INPUT鏈默認不接受外來訪問服務器的任何數據包,接著第1步開放了服務器的80、20、21、110、143、25和8080端口,第2步允許局域網內的192.168.0.2到192.168.0.16及192.168.0.240到192.168.0.243的客戶端訪問服務器,第3步允許192.168.0.240及192.168.0.243無限制訪問外網,第4步允許192.168.0.2到192.168.0.16訪問外網的80、20、21、110、143、25、8080及DNS和echo,第5步局域網內客戶端共享上網。


    posted on 2007-08-03 11:39 強強 閱讀(338) 評論(0)  編輯  收藏 所屬分類: linux 操作系統配置

    主站蜘蛛池模板: 国产区图片区小说区亚洲区| 亚洲av永久无码精品天堂久久| 亚洲JIZZJIZZ妇女| 成人免费一区二区无码视频| 国产精品亚洲专区在线观看| 999国内精品永久免费视频| 久久精品国产亚洲AV忘忧草18| 国产人在线成免费视频| 亚洲综合成人婷婷五月网址| 午夜小视频免费观看| 国产成人亚洲精品电影| 亚洲午夜精品第一区二区8050| 两个人日本免费完整版在线观看1| 国产亚洲精品国看不卡| 国产精品99久久免费观看| 亚洲字幕在线观看| 老司机永久免费网站在线观看| 国产AV无码专区亚洲AV琪琪| 亚洲一区二区三区在线播放| 久久青草免费91线频观看站街| 亚洲视频一区在线观看| 成人毛片免费播放| 无套内谢孕妇毛片免费看看 | 亚洲国产精品成人久久| 一级毛片在线免费看| 中文字幕 亚洲 有码 在线 | 国产成人va亚洲电影| 亚洲尤码不卡AV麻豆| 国产人成免费视频网站| 久久精品国产亚洲av品善| 国产亚洲自拍一区| 国产一卡二卡3卡四卡免费| 日本激情猛烈在线看免费观看| 亚洲av无码片在线播放| 手机在线免费视频| 国产精品无码永久免费888| 亚洲性无码av在线| 狠狠亚洲狠狠欧洲2019| 国产卡二卡三卡四卡免费网址 | 亚洲AV无码乱码在线观看性色扶| 大地影院MV在线观看视频免费|