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 $?
  • 相关阅读:
    API函数ShellExecute与ShellExecuteEx用法
    C#txt文本分割器
    Python异常处理
    python bs4解析网页时 bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to inst(转)
    gensim中TaggedDocument 怎么使用
    Python读取文件时出现UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position xx: 解决方案
    收集python2代码转python3遇到的问题
    互联网浪潮之下,聊聊 90 后所面临的困境
    互联网公司里都有哪些潜规则?
    大厂程序员的一天是如何度过的?
  • 原文地址:https://www.cnblogs.com/linyouyi/p/11410017.html
Copyright © 2011-2022 走看看