马哥教育网络班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
下一篇 2016-11-14

相关推荐

  • 玩转linux之启动篇

        想要玩转linux,首先明白其启动流程,这里简单说明一下: CentOS 6启动流程:    POST –> Boot Sequence(BIOS) –> Boot Loader –> Kernel(ramdisk) –> roo…

    Linux干货 2016-09-26
  • mysql-proxy 读写分离

    1. 简介     mysql-proxy 是官方为此的一个测试,项目, 可以完成读写分离。但是项目目前还不是很成熟,这里仅作测试。  2. mysql-proxy安装部署 # wget http://downloads.mysql.com/archives/get/file/mysql-…

    Linux干货 2015-12-21
  • bash中的算术运算及条件测试

    bash的算术运算 +, -, *, /, %取模(取余), **(乘方) 实现算术运算: (1) let var=算术表达式 (2) var=$[算术表达式] (3) var=$((算术表达式)) (4) var=$(expr arg1 arg2 arg3 …) (5) declare –i var = 数值 (6) echo ‘算术表达式’ …

    Linux干货 2017-04-17
  • Linux用户和组的相关命令(二、组的相关命令)

    用户和组之间息息相关。创建用户时 ,Linux系统会默认生成一个与用户名相同的组,这个组是用户的私有组,也是用户的主组。对用户来说,主组有且只有一个,但是可以有零个或多个附加组。可以在组内设置组管理员来管理组内的用户列表,组管理员可以删除用户列表内的组员。组管理员不唯一,可以有零个或多个。 关于组及其属性和组密码及其属性的有关信息保存在/etc/group和…

    2017-07-22
  • linux终端变量设置,文件系统,man使用说明,文件类型

    一、定义终端提示符的变量 export PS1=’\e[32m[\e[33m\u\e[31m@\e[35m\h\e[36m\t\e[34m\#\e[31m\s\e[37m\W\e[32m]\$ ‘  `]# export 是个命令      PS1指终端提示符变量    &n…

    Linux干货 2013-06-16
  • nginx学习笔记

    深入理解Nginx 一、Nginx是什么? 二、为什么选择Linux ? 三、Nginx生成的文件有哪些? 四、Nginx的配置详解? 五、模块功能详解 六、虚拟主机配置详解?                 一、Nginx是什么? Nginx(engine X)是一个高性能的H…

    Linux干货 2017-03-15

评论列表(1条)

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

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