設定書き出し

  • fileshowSettings.zip
      0
      1
      2
      3
      4
      5
      6
      7
      8
      9
    
    #!/bin/bash
     
    FILE=settings.`date +"%Y-%m-%d"`.txt
     
    rm -rf ${FILE}
    echo "* filter" >> ${FILE}
    iptables -L --line-numbers -t filter >> ${FILE}
    echo >> ${FILE}
    echo "* nat" >> ${FILE}
    iptables -L --line-numbers -t nat >> ${FILE}

ポート転送

  • ポート転送を有効にする。
    /etc/sysctl.conf
    net.ipv4.ip_forward = 1
  • ポート転送ルール追加スクリプト fileaddForwarding.zip
      0
      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
     36
     37
     38
     39
     40
     41
     42
     43
     44
     45
    
    #!/bin/bash
     
    scriptname="${0##*/}"
     
    if [ $# -lt 3 ]; then
      cat << EOL
    説明: iptables にポート転送設定を追加する。
    使用法: ${scriptname} <ForwardingPort> <TargetAddress> <TargetPort>
    EOL
      exit 1
    fi
     
    host=`ifconfig | grep "inet addr" | head -n 1`
    if [[ "${host}" =~ addr:([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+) ]]; then
      host=${BASH_REMATCH[1]}
    else
      echo "ホストのIPアドレスが取得できませんでした。"
      exit 1
    fi
     
    fport="$1"
    taddr="$2"
    tport="$3"
     
    # 転送ルール追加
    iptables -t nat -A PREROUTING -m tcp -p tcp --dst ${host} --dport ${fport} -j DNAT --to-destination ${taddr}:${tport}
    iptables -t nat -A POSTROUTING -m tcp -p tcp --dst ${taddr} --dport ${tport} -j SNAT --to-source ${host}
    iptables -A FORWARD -m tcp -p tcp --dst ${taddr} --dport ${tport} -j ACCEPT
     
    # 戻りパケットを許可(1回追加してあれば、更に追加する必要なし)
    #iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
     
    # MTU が異なるサブネット間で転送する場合用
    #iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
     
    # FORWARD/REJECT をルールの最後に移動
    reject=`iptables -L FORWARD --line-numbers -t filter | grep "REJECT" | head -n 1`
    if [[ "${reject}" =~ ^([0-9]+).*reject-with(.*) ]]; then
      line=${BASH_REMATCH[1]}
      option=${BASH_REMATCH[2]}
      iptables -A FORWARD -j REJECT --reject-with ${option}
      iptables -D FORWARD ${line}
    else
      echo "FORWARD の REJECT を移動できませんでした。"
      exit 1
    fi

ポート開放

  • INPU チェインの指定位置に接続許可ルールを挿入する。
    # iptables -I INPUT <ルール番号> -m state --state NEW -p tcp --dport <ポート番号> -j ACCEPT

添付ファイル: fileaddForwarding.zip 165件 [詳細] fileshowSettings.zip 164件 [詳細]

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Fri, 01 May 2015 10:31:29 JST (1089d)