iptables

          Posted on 2013-09-06 21:51 H2O 閱讀(167) 評論(0)  編輯  收藏
          http://www.vpser.net/security/linux-iptables.html
          http://bbs.csdn.net/topics/350076518

          http://serverfault.com/questions/480564/iptables-is-blocking-nginx-from-being-a-reverse-proxy-for-node-js

          打開文件 /etc/sysconfig/iptables 編輯如下內容

          # Firewall configuration written by system-config-securitylevel
          # Manual customization of this file is not recommended.
          *filter
          :INPUT ACCEPT [0:0]
          :FORWARD ACCEPT [0:0]
          :OUTPUT ACCEPT [0:0]
          :RH-Firewall-1-INPUT - [0:0]
          -A INPUT -j RH-Firewall-1-INPUT
          -A FORWARD -j RH-Firewall-1-INPUT
          -A RH-Firewall-1-INPUT -i lo -j ACCEPT
          -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
          -A RH-Firewall-1-INPUT -p 50 -j ACCEPT
          -A RH-Firewall-1-INPUT -p 51 -j ACCEPT
          -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
          -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
          -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
          -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
          -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
          -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
          -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 9000 -j ACCEPT
          -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 9001 -j ACCEPT
          -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9222 -j ACCEPT
          -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9200 -j ACCEPT
          -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5222 -j ACCEPT
          -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5269 -j ACCEPT
          -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

          這個文件為Linux啟動時iptables自動加載的規則文件,不用再啟動后自己手工輸入一條條規則了,而且也便于維護。

          如果這個時候系統正在運行,修改了這個文件想要重新加載,輸入如下命令
          iptables-restore /etc/sysconfig/iptables
          重新加載規則

          輸入iptables --list 查看規則 是不是和自己想要的一樣了~

          純粹mark,linux的命令用一次忘一次。

          http://www.cnblogs.com/bangerlee/archive/2013/02/27/2935422.html


          ===============================================

          分類: LINUX

           

          iptables -F   #清除所有規則
          iptables -X  #清除所有自定義規則
          iptables -Z   #各項計數歸零
          iptables -P INPUT DROP  #將input鏈默認規則設置為丟棄
          iptables -P OUTPUT DROP  #將output鏈默認規則設置為丟棄
          iptables -A INPUT -i lo -j ACCEPT
          iptables -A OUTPUT -o lo -j ACCEPT #對運行在本機回環地址上的所有服務放行
          iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT  #把這條語句插在input鏈的最前面(第一條),并且對狀態為ESTABLISHED,RELATED的連接放行。
          iptables -A OUTPUT -p tcp –dport 80 -j ACCEPT  #允許本機訪問其他80服務
          iptables -A OUTPUT -p udp –dport 53 -j ACCEPT #允許本機發送域名請求
          iptables -A OUTPUT -p icmp -j ACCEPT  #對本機出去的所有icmp協議放行,其實如果僅僅只是允許本機ping別的機器,更為嚴謹的做法是將此語句修改為:
          iptables -A OUTPUT -p icmp  –icmp-type  echo-request -j ACCEPT

          對狀態為ESTABLISHED和RELATED的包放行,簡單的說,就是說對允許出去的包被對方主機收到后,對方主機回應進來的封包放行。這條語句很重要,可以省去寫很多iptables語句,尤其是在有ftp服務器的場合。你理解了這個意思,就應該知道,有了這條語句,第6條語句其實是可以省略的。

          封網站:
          iptables -F
          iptables -X
          iptables -Z
          iptables -P OUTPUT DROP
          iptables -A INPUT -i lo -j ACCEPT
          iptables -A OUTPUT -o lo -j ACCEPT
          iptables -A OUTPUT -p udp –dport 53 -j ACCEPT
          iptables -A OUTPUT -p tcp -s 192.168.1.10 -d www.qq.com -j DROP(禁止網站)
          iptables -A FORWARD -p tcp -s 192.168.1.11/24 -d www.qq.com -o eth0 -j DROP(禁止網段)
          iptables -A FORWARD -p tcp -s 192.168.1.12 -d 192.168.1.13  -o eth0 -j DROP(禁止IP)
          iptables -A OUTPUT -p tcp –dport 80 -j ACCEPT (這條寫在禁止網站的下面)

          #安全規則類似windows防火墻
          iptables -A INPUT -p tcp –dport 1:1024 -j DROP
          iptables -A INPUT -p udp –dport 1:1024 -j DROP   這兩條可以防止nmap探測
          iptables -A INPUT -p tcp –dport ** -j ACCEPT  (要開放的端口)
          #允許的端口,相對協議改一下就可以了,                         (端口過慮)
          ============================================

          iptables架設安全的vsftp服務器

          在實際工作中,可用以下腳本架設一臺很的內部FTP;當然也可以配合Wireshark理解 vsftpd的被動與主動的區別,以本機192.168.0.10為例,腳本如下:

          #!/bin/bash
          -F
          iptables -X
          iptables -Z
          iptables -t nat -F
          iptables -t nat -X
          iptables -t nat -Z
          #開啟ip轉發功能
          echo “1″ > /proc/sys/net/ipv4/ip_forward
          #加載ftp需要的一些模塊功能
          modprobe ip_conntrack_ftp
          modprobe ip_conntrack-tftp
          modprobe ip_nat_ftp
          modprobe ip_nat_tftp
          #為了更安全,將OUTPUT默認策略定義為DROP
          iptables -P INPUT DROP
          iptables -P OUTPUT DROP
          iptables -P FORWARD ACCEPT
          #開放本機的lo環回口,建議開放,不開放的會出現些莫名其妙的問題
          iptables -A INPUT -i lo -j ACCEPT
          iptables -A OUTPUT -o lo -j ACCEPT
          #下面的腳本是架設安全的vsftpd關健,后二句腳本是放行服務器向客戶端作回應的和已建立連接的數據包,因被動FTP比較復雜,六次握手,所以這里采用狀態來做
          iptables -A INPUT -s 192.168.0.0/24 -p tcp –dport 21 -j ACCEPT
          iptables -A OUTPUT -d 192.168.0.0/24 -p tcp –sport 21 -j ACCEPT
          iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
          iptables -A OUTPUT -m state –state RELATED,ESTABLISHED -j ACCEPT

          =====================================
          內網web服務器 適用于中小型公司有內網服務器發布的IPT
          =====================================

          防止攻擊掃描
          防止同步包洪水(Sync Flood)
          # iptables -A FORWARD -p tcp –syn -m limit –limit 1/s -j ACCEPT
          也有人寫作
          #iptables -A INPUT -p tcp –syn -m limit –limit 1/s -j ACCEPT
          –limit 1/s 限制syn并發數每秒1次,可以根據自己的需要修改
          防止各種端口掃描
          # iptables -A FORWARD -p tcp –tcp-flags SYN,ACK,FIN,RST RST -m limit –limit 1/s -j ACCEPT
          Ping洪水攻擊(Ping of Death)
          # iptables -A FORWARD -p icmp –icmp-type echo-request -m limit –limit 1/s -j ACCEPT
          # Null Scan(possibly)XiKc.om
          iptables -A INPUT -i eth0 -p tcp –tcp-flags ALL NONE -j DROP

          #ubuntu保存與開機加載
          iptables-save > iptables.up.rules
          cp iptables.up.rules /etc/
          vi /etc/network/interfaces

          iptables-save > iptables.up.rules cp iptables.up.rules /etc/ vi /etc/network/interfaces

          #在interfaces末尾加入
          pre-up iptables-restore < /etc/iptables.up.rules
          pre-up iptables-restore < /etc/iptables.up.rules

          #也可以設置網卡斷開的rules。
          post-down iptables-restore < /etc/iptables.down.rules
          post-down iptables-restore < /etc/iptables.down.rules

          #保存
          service iptables save
          強制所有的客戶機訪問192.168.1.100這個網站
          iptables -t nat -I PREROUTING -i eth0 -p tcp –dport 80 -j DNAT –to-destination 192.168.1.100 (PREROUTING和DNAT一起使用,POSTROUTING和SNAT一起使用)
          發布內網的web服務器192.168.1.10
          iptables -t nat -I PREROUTING -p tcp –dport 80 -j DNAT –to-destination 192.168.1.10
          端口映射到內網的3389
          iptables -t nat -I PREROUTING -p tcp –dport 3389 -j DNAT –to-destination 192.168.1.10:3389



          ===============================================

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          posts - 0, comments - 21, trackbacks - 0, articles - 101

          Copyright © H2O

          主站蜘蛛池模板: 芮城县| 城市| 淮南市| 枞阳县| 驻马店市| 稻城县| 建始县| 旺苍县| 伊春市| 保靖县| 葫芦岛市| 准格尔旗| 石台县| 南通市| 永和县| 游戏| 疏附县| 仪征市| 固安县| 云林县| 灌南县| 宝坻区| 张北县| 达孜县| 嵩明县| 安阳县| 怀宁县| 千阳县| 凤凰县| 清涧县| 抚顺县| 淮滨县| 凉城县| 宜城市| 邢台县| 巴彦淖尔市| 安顺市| 修文县| 基隆市| 寻乌县| 西平县|