zoukankan      html  css  js  c++  java
  • iptables学习笔记

    1. 压力測试
        ab
        host1 ab -n 100000 -c 40 http://192.168.1.112/
        host2 netstat -an|grep 80|grep 192.168.1.114 |grep EST -c
              w

    2. netfilter
        linux核心层内部的一个数据包处理模块

    3. hook point(INPUT OUTPUT FORWARD PREROUTING POSTROUTING)
        数据包在netfilter的挂载点

    4. iptables
        四张表(filter nat mangle raw)+五条链(hook point)+规则

        规则
            数据包訪问控制 ACCEPT DROP REJECT
            数据包改写 SNAT DNAT
            信息记录 LOG

        table     command    chain        params         target
       -t filter    -A        INPUT        -p tcp        -j ACCEPT        
          nat        -D        FORWARD        -s               DROP
                    -L        OUTPUT        -d               REJECT
                    -F        PREROUTING    -m  tcp           DNAT
                    -P        POSTROUTING        state       SNAT
                    -I                        multiport
                    -R
                    -n

    5. iptables配置
        iptables -L #列出规则
            -F 清除已有规则
            -n 不显示主机名
        
        iptables -I INPUT -p tcp --dport 22:80 -j ACCEPT #同意訪问22到80端口
        iptables -I INPUT -p icmp -j ACCEPT #同意ICMP
        iptables -A INPUT -j REJECT #屏蔽其他訪问

        iptables -D INPUT -p tcp --dport 80 -j ACCEPT #先删除
        iptables -I INPUT -p tcp --dport 80 -j REJECT #后拒绝
        iptables -nL #不显示主机名列出规则

        iptables -I INPUT -i lo -j ACCEPT #本机能够訪问自己
        iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
        #本机能够訪问其他主机

        iptables -D INPUT -p tcp --dport 80 -j ACCEPT #先删除
        iptables -I INPUT -p tcp -s 192.168.1.112 --dport 80 -j ACCEPT
        #仅仅同意指定ip訪问本机80port


    ftp主动模式(开放20port) client必须#iptables -F
        #vim /etc/vsftpd/vsftpd.conf #配置文件
        port_enable=yes
        connect_from_port_20=YES
        #iptables -I INPUT -p tcp --dport 21 -j ACCEPT #同意訪问21端口  

    ftp被动模式(开放'随意'port)(默认)
        #vim /etc/vsftpd/vsftpd.conf
        port_enable=NO
        pasv_min_port=50000
        pasv_max_port=60000
        #iptables -I INPUT -p tcp --dport 21 -j ACCEPT #打开21号端口
        #iptables -I INPUT -p tcp --dport 50000:60000 -j ACCEPT

        #modprobe nf_conntrack_ftp #暂时建立ftp被动
        #modprobe -l #查看内核模块
        #vim /etc/sysconfig/iptables-config #永久建立ftp被动
        IPTABLES_MODULES="nf_conntrack_ftp" #设置參数


    常见port
        http 80/tcp
        https 443/tcp

        smtp 25/tcp
        smtps 465/tcp
        pop3 110/tcp

        nfs 123/udp
        samba 137,138,139/tcp 445/tcp
        ftp 20/tcp,21/tcp

        ssh 22/tcp
        mysql 3306/tcp
        oracle 1521/tcp

    规则设置
        iptables -F
        iptables -I INPUT -i lo -j ACCEPT
        iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
        iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT #指定网段
        iptables -A INPUT -p tcp --dport 80 -j ACCEPT
        iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
        iptables -I INPUT -p icmp -j ACCEPT
        iptables -A INPUT -j REJECT

        /etc/sysconfig/iptables #配置文件
        /etc/init.d/iptables save #运行以保存iptables设置

    nat表规则配置
        SNAT 源地址转换   出口POSTROUTING
        DNAT 目标地址转换 进口PREROUTING
        
        iptables -t nat -F
        iptables -t nat -A PREROUTING -d 192.168.1.112 -p tcp --dport 80 -j DNAT
        --to 192.168.2.112:80
        iptables -t nat -L

    6. 利用iptables防CC攻击
        connlimit模块 #限制每个clientip的并发连接数
            --connlimit-above n #限制并发个数

            iptables -I INPUT -p tcp --syn --dport 80 -m connlimit
            --connlimit-above 100 -j REJECT

            iptables -I INPUT -p tcp --dport 80 -s 192.168.1.112 -m connlimit
            --connmlimit-above 10 -j REJECT

        Limit模快 #限速,控制流量
            iptables -A INPUT -m limit --limit 3/hour  #--limit-burst默认值为5

        
            iptables -A INPUT -p icmp -m limit --limit 1/m --limit-burst 10 -j ACCEPT
            iptables -A INPUT -p icmp -j DROP

    7. 实例脚本
        详见 ./iptables.sh
           
  • 相关阅读:
    centos7.6 使用yum安装mysql5.7
    解决hadoop本地库问题
    docker-compose 启动警告
    docker 安装zabbix5.0 界面乱码问题解决
    docker 部署zabbix问题
    zookeeper 超时问题
    hbase regionserver异常宕机
    (转载)hadoop 滚动升级
    hadoop Requested data length 86483783 is longer than maximum configured RPC length
    zkfc 异常退出问题,报错Received stat error from Zookeeper. code:CONNECTIONLOSS
  • 原文地址:https://www.cnblogs.com/llguanli/p/7121717.html
Copyright © 2011-2022 走看看