iptables使用示例

iptables规则

iptables使用示例

  • 1.系统的INPUT和OUTPUT默认策略为DROP;
    iptables -P INPUT  DROP
    iptables -P OUTPUT  DROP
  • 2.限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字段的页面不允许访问;web服务器仅允许响应报文离开本机;
    iptables -A INPUT -d x.x.x.x -p tcp --dport 80 -m time --weekdays Mon -j ACCEPT
    iptables -A INPUT -d x.x.x.x -p tcp --dport 80 -m limit --limit 100/second  -j ACCEPT
    iptables -A OUTPUT -s x.x.x.x -p tcp --sport 80 -m string -algo bm --string "admin" -j REJECT
    iptables -A OUTPUT -s x.x.x.x -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
  • 3.在工作时间,即周一到周五的8:30-18:00,开放本机的ftp服务给172.16.0.0网络中的主机访问;数据下载请求的次数每分钟不得超过5个;
    内核加载模块:modprobe nf_conn_ftp
    放行命令连接请求:iptables -A INPUT -s 172.16.0.0 -d x.x.x.x -p tcp --dport 21 -m time ! --weekdays Sat,Sun --timestart 08:30 --timestop 18:00 -m limit --limit 5/minute -j ACCEPT
    放行数据连接请求:iptables -A INPUT -s 172.16.0.0 -d x.x.x.x -p tcp -m time ! --weekdays Sat,Sun --timestart 08:30 --timestop 18:00 -m limit --limit 5/minute -m state --state ESTABLISED,RELATED -j ACCEPT
    放行响应数据:iptables -A OUTPUT -d 172.16.0.0 -s x.x.x.x -p tcp  -m state --state ESTABLISHED -j ACCEPT
  • 4.开放本机的ssh服务给172.16.20.1-172.16.20.100中的主机,新请求建立的速率一分钟不得超过2个;仅允许响应报文通过其服务端口离开本机;
    iptables -A INPUT -d x.x.x.x -p tcp --dport 22 -m iprange --src-range 172.16.20.1-172.16.20.100 -m limit --limit 2/minute -j ACCEPT
    iptables -A OUTPUT -s x.x.x.x -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
  • 5.拒绝TCP标志位全部为1及全部为0的报文访问本机;
    iptables -A INPUT -d x.x.x.x -p tcp  --tcp-flags ALL ALL -j REJECT
    iptables -A INPUT -d x.x.x.x -p tcp  --tcp-flags ALL ALL -j REJECT
  • 6.判断下述规则的意义
    • iptables -N clean_in
      自定义名为clean_in的新链
    • iptables -A clean_in -d 255.255.255.255 -p icmp -j DROP
      在自定义链上实现过滤,丢弃目标地址是与本机同网段的所有主机且协议类型为icmp的数据包
    • iptables -A clean_in -d 172.16.255.255 -p icmp -j DROP
      在自定义链上实现过滤,丢弃目标地址是172.16.0.0网段的所有主机且协议类型为icmp的数据包
    • iptables -A clean_in -p tcp ! –syn -m state –state NEW -j DROP
      在自定义链上实现过滤,丢弃tcp标志位syn为0而状态为NEW的数据包
    • iptables -A clean_in -p tcp –tcp-flags ALL ALL -j DROP
      在自定义链上实现过滤,丢弃tcp标志位全为1的数据包
    • iptables -A clean_in -p tcp –tcp-flags ALL NONE -j DROP
      在自定义链上实现过滤,丢弃tcp标志位全为0的数据包
    • iptables -A clean_in -p tcp -d 172.16.100.7 -j RETURN
      在自定义链上实现过滤,对于协议为tcp且目标主机为172.16.100.7的数据包返回主链进一步处理
    • iptables -A INPUT -d 172.16.100.7 -j clean_in
      在INPUT链上实现过滤,对于目标主机为172.16.100.7的数据包调用自定义链clean_in进一步处理
    • iptables -A INPUT -i lo -j ACCEPT
      在INPUT链上实现过滤,放行流入本地回环接口lo的数据包
    • iptables -A OUTPUT -o lo -j ACCEPT
      在OUTPUT链上实现过滤,放行流出本地回环接口lo的数据包
#KC0atgjSTips { position: absolute; left: 9999999999em; z-index:999999999;width:56px; height:24px} #KC0atgjSTips a { background: url(http://mat1.gtimg.com/www/sogou/sogou_tips_v1.png) no-repeat 0 0; display: block; width: auto; height: 24px; line-height: 24px; padding-left: 23px; color: #000; font-size: 12px; text-decoration: none; _position:relative; margin: -32px 0 0; } #KC0atgjSTips a:hover { color:#45a1ea; background-position: 0 -34px } 搜索

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/87806

(1)
N27_xiaoniN27_xiaoni
上一篇 2017-10-14 09:42
下一篇 2017-10-14 17:51

相关推荐

  • LinuxGrub修复方法

    Linux因Grub损坏的修复方法: 1)救援模式修复(备份了MBR) 2)救援模式修复(无备份MBR) 3)Grub下手动启动Linux系统 1、救援模式修复(备份了MBR)     MBR中存放了Bootloader信息(Grub),在磁盘的最开始512字节,当这512字节出现故障,系统将无法引导启动。 &nbsp…

    Linux干货 2016-06-22
  • M22 使用非对称密钥实现ssh自动登陆

    一 实验目的 一般在用户使用ssh客户端登陆ssh服务器时需要使用用户名和密码,本实验使用非对称加密的方式实现了无密码登陆ssh服务器。 二 实验流程  、 1 在客户端生成非对称密钥对 2 将非对称密钥中的公钥发送给ssh服务器端相应的帐号 3 当客户端通过ssh协议与服务器端发起连接时,客户端将私钥加密过的签名发送给服务器端,服务器端使用客户端…

    2017-04-13
  • n28 第二周作业

    n28 第二周作业

    Linux干货 2017-12-09
  • Linux 基础知识(六.一)

    一、模式及模式间的切换 (一)模式介绍 1、vim文本编辑器提供了三种基本模式,分别是编辑模式(命令模式)、输入模式以及末行模式(命令行模式) (二)模式间的切换 二、基础操作 (一)单文件的打开与关闭 1、单文件的打开:vim [options]… /path/to/somefile 2、单文件打开时的常用选项: (1)+#:表示当文件打开时,…

    Linux干货 2016-11-14
  • 14程序包的编译安装

    在有些源代码程序没有被编译成rpm的时候,或者其他人写了一个源代码程序,要把它安装在服务器上要怎么做呢? 那就需要对源代码进行编译安装了。 C代码编译安装三步骤: 1、./configure: (1)通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及makefile.in文件生成makefile (2) 检查依赖到的外部环境,如依赖的软件…

    Linux干货 2016-11-27
  • kickstart 的使用!

    简介 1.什么是kickstart KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,…

    Linux干货 2016-11-03