马哥教育网络班21期+第14周课程练习

系统的INPUT和OUTPUT默认策略为DROP;

1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的页面不允许访问;web服务器仅允许响应报文离开本机;

INPUT链

# iptables -I INPUT 1 -p tcp --dport 80 -m connlimit ! --connlimit-above 100 -m time ! --weekdays Mon -j ACCEPT

OUTPUT链

# iptables  -I OUTPUT 1 -p tcp --sport 80 -m string --string "admin" --algo kmp -j REJECT

#iptables -I OUTPUT 2 -m state --state ESTABLISHED,RELATED -j ACCEPT

2、在工作时间,即周一到周五的8:30-18:00,开放本机的ftp服务给172.16.0.0网络中的主机访问;数据下载请求的次数每分钟不得超过5个;

INPUT链

# iptables -I INPUT 1 -s 172.16.0.0/16 -p tcp --dport 21 -m connlimit ! --connlimit-above 5 -j ACCEPT

OUTPUT链

# iptables -I OUTPUT 1 -m state --state ESTABLISHED,RELATED -j ACCEPT

3、开放本机的ssh服务给172.16.x.1-172.16.x.100中的主机,x为你的座位号,新请求建立的速率一分钟不得超过2个;仅允许响应报文通过其服务器端口离开本机;

INPUT链

# iptables -I INPUT 1 -p tcp --dport 22 -m iprange --src-range 172.16.53.1-172.16.53.100 -mlimit --limit 2/minute -j ACCEPT

OUTPUT链

# iptables -I OUTPUT 1 -m state --state ESTABLISHED,RELATED -j ACCEPT

4、拒绝tcp标志位全部为1及全部为0的报文访问本机;

INPUT链

# iptables -I INPUT 1 -p tcp --tcp-flags ALL ALL -j DROP
# iptables -I INPUT 2 -p tcp --tcp-flags ALL -j DROP

5、允许本机ping别的主机;但不开放别的主机ping本机;

INPUT链

# iptables -I INPUT 1 -p icmp --icmp-type 0 -j ACCEPT

OUTPUT链

# iptables -I OUTPUT 1 -p icmp --icmp--type 8 -j ACCEPT

6、判断下列规则的意义:

# iptables -N clean_in
新建一条自定义链“clean_in”
# iptables -A clean_in -d 255.255.255.255 -p icmp -j DROP
# iptables -A clean_in -d 172.16.255.255 -p icmp -j DROP 
丢弃所有同一物理网段或子网及172.16网络的icmp

# iptables -A clean_in -p tcp ! --syn -m state --state NEW -j DROP 
丢弃tcp标记除syn以外所有连接状态为新建的数据包
# iptables -A clean_in -p tcp --tcp-flags ALL ALL -j DROP
# iptables -A clean_in -p tcp --tcp-flags ALL NONE -j DROP
防止tcp NULL扫描
# iptables -A clean_in -d 172.16.100.7 -j RETURN
停止执行当前链中目标地址为172.16.100.7的后续Rules,并返回到调用链中

原创文章,作者:Jeason,如若转载,请注明出处:http://www.178linux.com/58302

(0)
JeasonJeason
上一篇 2016-11-14 08:28
下一篇 2016-11-14 08:28

相关推荐

  • Linux文本处理及用户组管理命令练习

    一.文本处理基础命令 (1).  列出当前系统上所有已经登录的用户的用户名。           完成命令:who  |  cut  -d’ ‘  -f1  |  uniq  -u 示例: (2).取出最后登录到当前系统对的用户的相关信息。         完成命令:w  |  tail -1 示例: (3).取出当前系统上被用户当作…

    2018-03-11
  • N22-妙手-第七周课程练习

    1、创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; [root@localhost ~]# mke2fs -t ext4 -m 2 -L MY…

    Linux干货 2016-10-09
  • 第五周学习总结-rpm&yum

    我们都知道,计算机只能识别二进制程序,而程序员编写的源代码都是以纯文本形式存在,因此,要想让计算机识别并运行这些源代码程序,就必须通过中间的转换机制让源代码变为二进制程序文件,而这种转换过程就称为编译过程。Linux的各发行版本中由于各厂商的编译过程不尽相同,因此就诞生了各种不同的软件管理包组件。其中我们最熟知的就要数Redhat系列的rpm包了。 rpm包…

    2018-01-03
  • 如何安装CentOS 6.9

    1、打开VMware,点击“创建新的虚拟机”   2、刚开始用的话,一般就选择推荐的典型类型来安装,所以直接点击“下一步”   3、此处选择稍后安装操作系统,这里我们先进行配置,点击“下一步”   4、因为我需要用里面的linux系统,所以选择客户机操作系统为Linux,选择版本为CentOS 64位,单击“下一步”。 &nbs…

    2017-07-11
  • 图解Man

    个人浅见 欢迎指正

    Linux干货 2016-10-18
  • jenkins+gitlab构建安卓自动编译环境

        因工作关系接触到接触到安卓自动编译环境,网上的资料都推荐了jenkins,因为第一次接触安卓和jenkins,踩了不少的坑,有总结才有进步。    gitlab环境之前已经安装完成可用,具体步骤另外详解吧。本例目标是在gitlab可用前提下,通过jenkins将git仓库的代码自行编译打包,生成可用的apk安装…

    Linux干货 2016-07-16

评论列表(1条)

  • 马哥教育
    马哥教育 2016-11-16 15:48

    写的很好, 期待你以后的佳作