zoukankan      html  css  js  c++  java
  • 防火墙iptables的简单使用

    规则定义

    # service iptables start

    # chkconfig iptables on

    想让规则生效,则shell命令行下执行

    sh /bin/iptables.sh即可

    [root@node3 ~]# cat /bin/iptables.sh

    #!/bin/bash
    # 清理防火墙规则
    /sbin/iptables -F
    
    # 放行已经建立的连接
    /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    
    # for ssh
    /sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    
    # 放行 tcp 8555端口
    /sbin/iptables -A INPUT -p tcp --dport 8555 -j ACCEPT
    
    #for ping:
    /sbin/iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
    /sbin/iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
    /sbin/iptables -A INPUT -p icmp --icmp-type fragmentation-needed -j ACCEPT
    
    /sbin/iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
    /sbin/iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
    
    #for DNS:
    /sbin/iptables -A INPUT -p tcp --source-port 53 -j ACCEPT
    /sbin/iptables -A INPUT -p udp --source-port 53 -j ACCEPT
    #for ntp:
    /sbin/iptables -A INPUT -p udp --source-port 123 -j ACCEPT
    /sbin/iptables -A INPUT -p udp --destination-port 123 -j ACCEPT
    
    
    ### 拒绝input和forward所有
    /sbin/iptables -A INPUT -j DROP
    /sbin/iptables -A FORWARD -j DROP
    #!/bin/bash
    ### Required modules
    /sbin/modprobe ip_tables
    /sbin/modprobe ip_conntrack
    /sbin/modprobe iptable_mangle
    /sbin/modprobe iptable_nat
    /sbin/modprobe ipt_LOG
    /sbin/modprobe ipt_limit
    /sbin/modprobe ipt_state
    /sbin/modprobe ip_conntrack_ftp
    /sbin/modprobe ip_nat_ftp
    /sbin/modprobe ipt_owner
    /sbin/modprobe ipt_REJECT
    
    ### Clean Rules
    iptables -P INPUT ACCEPT
    iptables -P FORWARD ACCEPT
    iptables -P OUTPUT ACCEPT
    iptables -t nat -P PREROUTING ACCEPT
    iptables -t nat -P POSTROUTING ACCEPT
    iptables -t nat -P OUTPUT ACCEPT
    iptables -t mangle -P PREROUTING ACCEPT
    iptables -t mangle -P OUTPUT ACCEPT
    iptables -F
    iptables -t nat -F
    #iptables -t mangle -F
    iptables -X
    iptables -t nat -X
    #iptables -t mangle -X
    
    ### Drop all pocket,first
    iptables -P INPUT DROP
    #iptables -P OUTPUT DROP
    iptables -P FORWARD DROP
    
    ### Create New chains
    iptables -N bad_tcp_packets
    #iptables -N allowed
    iptables -N icmp_packets
    
    ### Bad_tcp_packets chain
    /sbin/iptables -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
    /sbin/iptables -A bad_tcp_packets -p tcp --tcp-flags ALL ALL        -j DROP
    /sbin/iptables -A bad_tcp_packets -p tcp --tcp-flags ALL NONE         -j DROP
    /sbin/iptables -A bad_tcp_packets -p tcp --tcp-flags SYN,FIN SYN,FIN  -j DROP
    /sbin/iptables -A bad_tcp_packets -p tcp --tcp-flags SYN,RST SYN,RST  -j DROP
    /sbin/iptables -A bad_tcp_packets -p tcp --tcp-flags FIN,RST FIN,RST  -j DROP
    /sbin/iptables -A bad_tcp_packets -p tcp --tcp-flags ACK,FIN FIN      -j DROP
    /sbin/iptables -A bad_tcp_packets -p tcp --tcp-flags ACK,PSH PSH      -j DROP
    /sbin/iptables -A bad_tcp_packets -p tcp --tcp-flags ACK,URG URG      -j DROP
    
    ### ICMP Rules
    iptables -A icmp_packets -p icmp --icmp-type 8 -j ACCEPT
    iptables -A icmp_packets -p icmp --icmp-type 11 -j ACCEPT
    #iptables -A icmp_packets -p icmp -j DROP
    
    ### LookBack and Private interface
    iptables -A INPUT -p ALL -i lo -j ACCEPT
    iptables -A INPUT -p ALL -i eth1 -j ACCEPT
    
    ##keepalived
    #iptables -A INPUT -i eth1 -p vrrp -s 192.168.254.122 -j ACCEPT
    
    ### INPUT chain
    iptables -A INPUT -p tcp -j bad_tcp_packets
    iptables -A INPUT -p icmp -j icmp_packets
    iptables -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
    
    #限制源IP的访问数量
    iptables -A INPUT -i eth0 -p tcp -m state --state NEW -m tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 100 --connlimit-mask 32 -j REJECT --reject-with icmp-port-unreachable
    iptables -A INPUT -i eth0 -p tcp -m state --state NEW -m tcp --dport 443 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 100 --connlimit-mask 32 -j REJECT --reject-with icmp-port-unreachable
    iptables -A INPUT -i eth0 -p tcp -m state --state NEW -m tcp --dport 8080 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 100 --connlimit-mask 32 -j REJECT --reject-with icmp-port-unreachable
    
    
    # Count Limit
    #iptables -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level INFO --log-prefix "IPT INPUT PACKET DIED:"
    
    iptables -I INPUT  -p udp --dport 1701 -j ACCEPT
    
    ### Open Ports
    Public_access="80"
    Server_access="873 1500"
    Company_access="22"
    
    ### Allow Ips
    
    Servers_ip="192.168.254.0/24 10.11.0.0/16"
    Company_ip="1.1.1.1"
    ### Public access Rules
    for port in $Public_access
    do
            iptables -A INPUT -p tcp --dport $port -i eth0 -j ACCEPT
    done
    
    ### Servers access Rules
    for port in $Server_access
    do
            for ip in $Servers_ip
            do
                    iptables -A INPUT -p tcp --dport $port -s $ip -i eth0 -j ACCEPT
            done
    done
    
    ### Company access Rules
    for port in $Company_access
    do
            for ip in $Company_ip
            do
                    iptables -A INPUT -p tcp --dport $port -s $ip -i eth0 -j ACCEPT
            done
    done

    # 邮箱服务器将25端口映射到2500端口上
    iptables -t nat -A PREROUTING -p tcp --dport 2500 -j REDIRECT --to-ports 25

     

    # 25端口转到2500端口
    iptables -t nat -A PREROUTING -p tcp --dport 25 -j REDIRECT --to-ports 2500

    #####指定访问ip的 2500 to 25 #####
    iptables -t nat -A PREROUTING -d 1.1.1.1 -p tcp -m tcp --dport 2500 -j REDIRECT --to-ports 25

    # 将访问指定ip的25号端口映射到2500上
    iptables -t nat -A PREROUTING -d 1.1.1.1 -p tcp -m tcp --dport 25 -j REDIRECT --to-ports 2500

  • 相关阅读:
    SBIT
    Linux 系统中进程5中常见状态
    centos yum command
    About DNS
    【从零开始学BPM,Day1】工作流管理平台架构学习
    打破陈规抓痛点,H3 BPM10.0挑战不可能
    H3 BPM让天下没有难用的流程之产品概述
    《中国BPM品牌竞争力指数》完整版
    H3 BPM的品牌制胜之道
    《中国BPM品牌竞争力指数》报告出炉,H3 BPM持续领跑
  • 原文地址:https://www.cnblogs.com/reblue520/p/8732757.html
Copyright © 2011-2022 走看看