zoukankan      html  css  js  c++  java
  • iptables开通某些端口

    #!/bin/bash
    #define all variance or parameter
    
    WAH_INT="eth0"
    WAH_INT_IP="222.222.101.1"
    
    LAN_INT="eth1"
    LAN_INT_IP="192.168.222.101"
    
    ALLOW_ACCEPT_CLIENT="192.168.222.1 192.168.222.5 192.168.222.7 192.168.222.20 192.168.222.80"
    
    WAH_WIN2003_SRW="222.222.101.2"
    
    PORT="20,21,25,53,80,110,143,554,1755,7070"
    
    IPT="/sbin/iptables"
    ##############################################################################################
    
    start(){
    echo ""
    echo -e " 33[1;032n Flush all chains.......                                   [ok] 33[n "
    
    # load modules if necessary
     modprobe ip_tables
     modprobe ip_conntrack
     modprobe ip_conntrack_ftp
     modprobe ip_conntrack_irc
    
    #flush all rules at first
     $IPT -t filter -F
     $IPT -t nat -F
     $IPT -t mangle -F
    
    #default policy is drop
     $IPT -t filter -P INPUT   DROP
     $IPT -t filter -P OUTPUT  DROP
     $IPT -t filter -P FORWARD DROP
    
    #open ssh service
     $IPT -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
     $IPT -t filetr -A OUTPUT -p tcp --dport 22 -j ACCEPT
    
    #SNAT 
     echo 1 > /proc/sys/net/ipv4/ip_forward
     $IPT -t nat -A POSTROUTING -s 192.168.222.0/24 -o $WAH_INT -j SNAT --to-source $WAH_INT_IP
    
    ################################# accept erp accept #########################################
    if [ "$ALLOW_ACCEPT_CLIENT" != "" ]; then
      for LAN in ${ALLOW_ACCEPT_CLIENT}
      do
      $IPT -t filter -A FORWARD -p tcp -m multiport -s ${LAN} -o$WAN_INT --dport $PORT -j ACCEPT
      $IPT -t filter -A FORWARD -p ucp -m multiport -s ${LAN} -o$WAN_INT --dport $PORT -j ACCEPT
      $IPT -t filter -A FORWARD -p tcp -m multiport -s $WAN_INT --sport $PORT -j ACCEPT
      $IPT -t filter -A FORWARD -p ucp -m multiport -s $WAN_INT --sport $PORT -j ACCEPT
      
      echo ""
      echo ${LAN} Access to Extermel............ACCEPT access win2003 server               [ok]
      done
    fi
    
    }
    
    #############################################################################################
    stop(){
    #######################  Flush everything
      $IPT -F
      $IPT -X
      $IPT -Z
      $IPT -F -t nat
      $IPT -X -t nat
      $IPT -Z -t nat
      $IPT -P OUTPUT ACCEPT
      $IPT -P FORWARD ACCEPT
    
    echo "######################################################################################"
    echo "#                                               #"
    echo "#            Stop firewall server Access rule Successfull !               #"
    echo "#                                               #"
    echo "######################################################################################"
    
    }
    
    ############################################################################################
    case "$1" in
      start)
        start
        ;;
      stop)
        stop
        ;;
      restart)
        stop
        start
        ;;
      *)
        echo $"Usage:$0 {start|stop|restart|}"
        exit 1
    esac
    exit $?
  • 相关阅读:
    算法题(2):两个数组的交集
    git 的一些小 tips
    linux 命令 -- chmod
    linux 命令 -- alias 和 grep
    docker 学习笔记(2)
    docker 学习笔记(1)
    redis 学习笔记(2)
    redis 学习笔记(1)
    对对象的list集合以excel表格导出
    字符串处理
  • 原文地址:https://www.cnblogs.com/linyouyi/p/11410017.html
Copyright © 2011-2022 走看看