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

  • 相关阅读:
    rs
    stm32f767 usoc3
    stm32f767 RTT 日志
    stm32f767 标准库 工程模板
    stm32f767 HAL 工程模板
    docker tab 补全 linux tab 补全
    docker anconda 依赖 下载 不了
    docker run 常用 指令
    linux scp 命令
    Dockerfile 常用参数说明
  • 原文地址:https://www.cnblogs.com/reblue520/p/8732757.html
Copyright © 2011-2022 走看看