简介

关于iptables的介绍网上有很多的资料,大家可以自己找一些关于iptables的工作原理,以及四表五链的简介,对于学习iptables将会事半功倍。本博文将会例举几个工作中常用的iptables应用组合。

系统环境

centos6.7

服务器IP:10.220.5.166/24

客户端IP:10.220.5.188/24

iptables的filter表的INPUT链的默认规则为DROP

案列详解

1.设置默认规则

[root@ken ~]# iptables -P INPUT DROP             #设置INPUT链默认规则设置为DROP,工作中一般默认4.是drop
[root@ken ~]# iptables -P INPUT ACCEPT #设置INPUT链默认规则设置为ACCEPT
[root@ken ~]# iptables -P OUTPUT DROP #设置OUTPUT链默认规则设置为DROP,如果OUTPUT链开启DROP,相应组合后可防范反弹式木马
[root@ken ~]# iptables -P OUTPUT ACCEPT #设置OUTPUT链默认规则设置为ACCEPT

2.清空规则链

[root@ken ~]# iptables -t filter -F            #清空filter表规则
[root@ken ~]# iptables -t nat -F #清空nat表规则
[root@ken ~]# iptables -t mangle -F #清空mangle表规则
[root@ken ~]# iptables -t raw -F #清空raw表规则

3.查看规则链

[root@ken ~]# iptables -L -n --line -v

4.允许10.220.5.0/24网段的客户端可以访问本机的80端口

[root@ken ~]# iptables -A INPUT -s 10.220./ --dport  -j ACCEPT

5.实现单向ping(即服务器可以ping通客户端,客户端ping不通服务器端)

[root@ken ~]# iptables -A INPUT -p icmp --icmp-type  -d 10.220.5.166 -j ACCEPT
[root@ken ~]# iptables -A OUTPUT -p icmp --icmp-type -s 10.220.5.166 -j ACCEPT

注:--icmp-type 0 表示应答包

--icmp-type 8 表示请求包

6.只允许10.220.5.188发送httpd请求

[root@ken ~]# iptables -A INPUT -s 10.220.5.188 -p tcp --dport  --tcp-flags syn,ack,fin syn -j ACCEPT

7.限制只有10.220.5.188可以连接ssh

[root@ken ~]# iptables -A INPUT -s 10.220.5.188 -p tcp --dport  -j ACCEPT

8.允许10.220.5.188访问本机22,80,3306,100到200的端口

[root@ken ~]# iptables -A INPUT -p tcp -m multiport --dport ,,,: -m state --state NEW,ESTABLISHED -j ACCEPT

9.只允许ip地址10.220.5.10至10.220.5.20之间的主机访问本机的web网站

[root@ken ~]# iptables -A INPUT -p tcp --dport 80 -m iprange --src-range 10.220.5.10-10.220.5.20 -j ACCEPT

10. 防暴力破解&DOS攻击,限制请求登录22端口的频率

[root@ken ~]# iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit /minute --limit-burst  -j ACCEPT
[root@ken ~]# iptables -A INPUT -p tcp --dport 22 -m state --state ESTABLISHED -j ACCEPT

11.限制只能从10.220.5.188登录后台界面(admin.php)

[root@ken ~]# iptables -A INPUT -s 10.220.5.188 -m string --algo bm --string "admin.php" -j ACCEPT

12.限制每个用户只能同时登录5个ssh

[root@ken ~]# iptables -A INPUT -p tcp --dport  -m connlimit ! --connlimit-above  -j ACCEPT

13.限制每个客户端只能与80端口并发连接10个链接

[root@ken ~]#  iptables -A INPUT -p tcp --dport  -m state --state NEW,ESTABLISHED -m connlimit !--connlimit-above  -j ACCEPT

14.指定在1h只登录达到5次之上的,该次链接请求会被丢弃

[root@ken ~]# iptables -A INPUT -p tcp --dport  -m state --state NEW -m recent --name loginSSH --update --seconds  --hitcount  -j DROP

15.保存iptables规则

[root@ken ~]# service iptables save

熟练掌握以上15个iptables配置,你也可以和Hacker斗智斗勇,一决高下了。

iptables实战案例详解-技术流ken的更多相关文章

  1. NTP时间服务器实战应用详解-技术流ken

    简介 在搭建集群服务中,要保证各节点时间一致,NTP时间服务器就成为了一个好帮手了. 系统环境 系统版本:centos6.7 服务器IP:10.220..5.166/24 客户端IP:10.220.5 ...

  2. samba企业级实战应用详解-技术流ken

    1.简介 Samba是一套使用SMB(Server Message Block)协议的应用程序, 通过支持这个协议, Samba允许Linux服务器与Windows系统之间进行通信,使跨平台的互访成为 ...

  3. MySQL系列详解三:MySQL中各类日志详解-技术流ken

    前言 日志文件记录了MySQL数据库的各种类型的活动,MySQL数据库中常见的日志文件有 查询日志,慢查询日志,错误日志,二进制日志,中继日志 .下面分别对他们进行介绍. 查询日志 1.查看查询日志变 ...

  4. 实战!基于lamp安装wordpress详解-技术流ken

    简介 LAMP 是Linux Apache MySQL PHP的简写,其实就是把Apache, MySQL以及PHP安装在Linux系统上,组成一个环境来运行动态的脚本文件.现在基于lamp搭建wor ...

  5. KVM虚拟化使用详解--技术流ken

    KVM介绍 Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中. KVM的虚拟化需要硬件支持 ...

  6. cobbler批量安装系统使用详解-技术流ken

    前言 cobbler是一个可以实现批量安装系统的Linux应用程序.它有别于pxe+kickstart,cobbler可以实现同个服务器批量安装不同操作系统版本. 系统环境准备及其下载cobbler ...

  7. linux四剑客-grep/find/sed/awk/详解-技术流ken

    四剑客简介 相信接触过linux的大家应该都学过或者听过四剑客,即sed,grep,find,awk,有人对其望而生畏,有人对其爱不释手.参数太多,变化形式太多,使用超级灵活,让一部分人难以适从继而望 ...

  8. pxe+kickstart自动化批量安装系统详解-技术流ken

    前言 pxe+kickstart是一款可以实现自动化批量安装系统的服务,比较经典,下面将详细介绍此服务的安装和使用. 系统环境准备 系统版本:CentOS release 6.7 (Final) 内网 ...

  9. MySQL系列详解五: xtrabackup实现完全备份及增量备份详解-技术流ken

    xtrabackup简介 xtrabackup是一个用来对mysql做备份的工具,它可以对innodb引擎的数据库做热备.xtrabackup备份和还原速度快,备份操作不会中断正在执行的事务,备份完成 ...

随机推荐

  1. 20145232韩文浩《网络对抗》逆向及BOF基础实践

    实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getShe ...

  2. OOP随笔

    父类为普通类: 内部可声明虚方法(virtual),并包含代码实现,子类中可以重写(override),也可以不重写直接用. 父类为(不可实例化的)抽象类: 可声明虚方法,同上. 也可以声明抽象方法( ...

  3. django 图书管理系统

    一.图书管理系统 单表的增删改查 1.创建项目 2.注释掉中间件 就可以提交post 请求 3.配置静态文件 并手动创建static 文件夹存放静态文件  二.具体的数据库配置 1.创建数据库  2. ...

  4. Linux 常用分区方式

    1 分两个区 主目录:/ 交换分区:swap 2 常用分区方式,以使用100G空间安装linux为例 引导分区: 挂载点/boot,分区格式ext4,500M以内即可 交换分区: 无挂载点,分区格式选 ...

  5. unity 的一些API-01

    public static float GetAxis(string axisName); 看下原话解释: Returns the value of the virtual axis identifi ...

  6. [转] AppArmor

    AppArmor https://help.ubuntu.com/14.04/serverguide/apparmor.html AppArmor 是一个实施了基于名称强制存取控制的Linux安全模组 ...

  7. MySQL结构

    MySQL属于关系型数据库管理系统(RDBMS),使用RDBMS时,最常见的系统结构就是客户端/服务器类型(C/S类型)这种结构. 服务器指的是用来接收其他程序发出的请求,并对该请求进行相应处理的程序 ...

  8. MQTT入门篇

    物联网(Internet of Things,IoT)最近曝光率越来越高.虽然HTTP是网页的事实标准,不过机器之间(Machine-to-Machine,M2M)的大规模沟通需要不同的模式:之前的请 ...

  9. MyBatis 一级缓存和二级缓存及ehcache整合

    一级缓存 什么是缓存?? 缓存是存储在内存(cache)中的数据,一般情况都存在内存,在内存数据存储满了,会存储到硬盘上(disk),或是在我们进行一些操作和配置也可以把缓存存储到磁盘中. 缓存的作用 ...

  10. pycharm中配置启动Django项目

    1.先打开mange.py,然后再运行,会提示一堆东西,表示没有配置参数.在pycharm中点击edit configurations 编辑配置参数. 2.点开之后弹出如下对话框,在scrip par ...