iptables学习笔记_epsilon1的博客-程序员秘密

技术标签: linux  

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访问本机80端口


ftp主动模式(开放20端口) 客户端必须#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被动模式(开放'任意'端口)(默认)
    #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" #设置参数


常见端口
    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模块 #限制每一个客户端ip的并发连接数
        --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
       
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_20480611/article/details/47029869

智能推荐

技术文章个人收藏_ionluo的博客-程序员秘密

https://segmentfault.com/a/1190000016324962?utm_source=tag-neweststarof博客园animation入门详解::before和::after伪元素用法程序员必须知道的一些有用的外国网站Cookie、localStorage、sessionStorage本地化存储简单分析比较...

linux下使用自带mail发送邮件(超简单)_weixin_34417200的博客-程序员秘密

linux 发邮件最简单的办法最近想通过linux监控系统状况并自动报警,一般Linux发送报警邮件通过本地邮箱或外部邮箱服务器,这里用最简单的方法实现linux 使用外部邮箱即可实现发送邮件功能,你只需简单注册个国内的邮件服务商邮箱,如163,也可以使用公司邮箱,需要安装mailx工具,mailx是一个小型的邮件发送程序。 具体步骤如下:1、安装[[email protected] ~]# yum in...

OpenGL基础图形编程_jieniyimiao的博客-程序员秘密

一、OpenGL与3D图形世界1.1、OpenGL使人们进入三维图形世界  我们生活在一个充满三维物体的三维世界中,为了使计算机能精确地再现这些物体,我们必须能在三维空间描绘这些物体。我们又生活在一个充满信息的世界中,能否尽快地理解并运用这些信息将直接影响事业的成败,所以我们需要用一种最直接的形式来表示这些信息。  最近几年计算机图形学的发展使得三维表现技术得以形成,这些三维表现技

Servlet单例多线程分析_iteye_21202的博客-程序员秘密

Servlet的生命周期:1.Servlet在web服务器启动时被加载并实例化,容器运行其init方法初始化,请求到达时运行其service方法;2.service运行请求对应的doXXX(doGet,doPost)方法;3.服务器销毁实例,运行其destory方法;Servlet的生命周期由Servlet容器管理;(三个概念的理解:Servle...

linux离线安装docker,CentOS7离线安装docker问题解决_苏白衣的博客-程序员秘密

[[email protected] ~]# /usr/bin/dockerd/usr/bin/dockerd: error while loading shared libraries: libsystemd.so.0: cannot open shared object file: No such file or directory[[email protected] ~]# find / -name libsyst...

android面试遇到的一些经典题_伟雪无痕的博客-程序员秘密

一、java基础相关1、多态的实现机制2、Class.forname的作用3、String类型能否被继承,为什么?4、switch中可以有哪些数据类型5、synchorized同步对象后,其他线程能否进入该对象中的方法6、try ,finally,try中return后finally中的语句是否还会执行,在return前还是后面7、静态变量和实例变量的区别,静态变量主要

随便推点

一步一步理解Java NIO(上)_怎么理解nio是一步的_超超级钢铁侠的博客-程序员秘密

Java NIO简介Java NIO是从Java1.4版本开始引入的一个新的IO API,可以代替标准的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用方式完全不同,NIO是面向缓冲区的、基于通道的IO操作,NIO对文件的读写更加高效。通道和缓冲区Java NIO的核心在于通道(Channel)和缓冲区(Buffer)。通道表示IO设备(如文件、套接字等)的连接,Buffer用

YOLO-tensorflow代码解析二(yolo_net.py)_李嘉图123的博客-程序员秘密

import numpy as npimport tensorflow as tfimport yolo.config as cfgslim = tf.contrib.slimclass YOLONet(object): def __init__(self, is_training=True): self.classes = cfg.CLASSES #有哪...

msm8909内核音频日志抓取_高通msm8908w后台抓offline log_来自深渊的凝视的博客-程序员秘密

#!/bin/bashecho -n "file msm-compr-q6-v2.c +p" > /sys/kernel/debug/dynamic_debug/control echo -n "file msm-compress-

phpwind v9存在命令执行漏洞(登陆后台)_weixin_30546189的博客-程序员秘密

已知漏洞:https://www.seebug.org/vuldb/ssvid-94465phpwind v9最新版存在命令执行漏洞(登陆后台)Phpwind_v9.0.2(最新版),phpwind_v9.0.1命令执行高危(getshell)phpwind是一个基于PHP和MySQL的开源社区程序,是国内最受欢迎的通用型论坛程序之一。社区可提供丰富的应用,满足人们...

QML SequentialAnimation实现闪烁文字动画_qml字体动画_PRML_MAN的博客-程序员秘密

字体闪烁主要通过动画来实现,控制字体的透明度,达到闪烁的效果。1、SequentialAnimation 介绍SequentialAnimation和 ParallelAnimation 都是多动画的实现方式,SequentialAnimation是一种串行的动画,动画按顺序运行,而ParallelAnimation是并行动画,所有的动画同时运行。对于动画文字则是采用SequentialAnimation将多个透明度的变化动画串联实现。下面介绍SequentialAnimation的相关参数和使用方法.

第一次培训心得体会_BulbLHW的博客-程序员秘密

第七周的周末第一次在网站接受了大神soon的硬件及装机知识,也第一次与网络部的大家正式全部见面,感触很多,收获很多。        此次培训的主要内容是硬件知识,soon神现场为我们找来了电脑主机内部的各种零件并对其进行了较为详细的讲解,同时也在培训前为我们这些鲜肉展示了网站内部服务器的运行,访问数据的记录,网上报名的信息已经网站搭建程序的关键。在硬件讲解之后又传授了U盘装系统的方法和需要准备

推荐文章

热门文章

相关标签