马哥教育网络第21期-第十四周课程练习

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

iptables -P INPUT DROP
iptables -P OUTPUT DROP

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

[root@node3 ~]# iptables -A INPUT -d 192.168.1.116 -p tcp --dport 80 -m time --weekdays Mon -m limit --limit 100/second
 -m string --algo kmp --string 'admin' -j DROP
[root@node3 ~]# iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT
[root@node3 ~]# iptables -L -v
Chain INPUT (policy ACCEPT 56 packets, 3716 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       tcp  --  any    any     anywhere             node3               tcp dpt:http TIME on Mon limit: avg 100/sec burst 5 STRING match "admin" ALGO name kmp TO 65535 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   31  2728 ACCEPT     all  --  any    any     anywhere             anywhere            state ESTABLISHED 
[root@node3 ~]# 

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

[root@node3 ~]# iptables -A INPUT -d 172.16.0.0 -p tcp -m multiport --dports 20,21 -m time --weekdays 1,2,3,4,5 --timestart 
8:30 --timestop 18:30 -m limit --limit 5/minute -j ACCEPT
[root@node3 ~]# iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
[root@node3 ~]# iptables -L -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       tcp  --  any    any     anywhere             node3               tcp dpt:http TIME on Mon limit: avg 100/sec burst 5 STRING match "admin" ALGO name kmp TO 65535 
    0     0 ACCEPT     tcp  --  any    any     anywhere             172.16.0.0          multiport dports ftp-data,ftp TIME from 08:30:00 to 18:30:00 on Mon,Tue,Wed,Thu,Fri limit: avg 5/min burst 5 
   18  1260 ACCEPT     all  --  any    any     anywhere             anywhere            state ESTABLISHED 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  721 75904 ACCEPT     all  --  any    any     anywhere             anywhere            state ESTABLISHED 
[root@node3 ~]# 

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

[root@node3 ~]# iptables -A INPUT -p tcp --dport 22 -m iprange --src-range 172.16.1.1-172.16.1.100 -m limit --limit
 2/minute -j ACCEPT
[root@node3 ~]# iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT

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

[root@node3 ~]# iptables -A INPUT -d 192.168.1.116 -p tcp --tcp-flags ALL ALL -j DROP
[root@node3 ~]# iptables -A INPUT -d 192.168.1.116 -p tcp --tcp-flags ALL NONE -j DROP

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

[root@node3 ~]# iptables -A INPUT -d 192.168.1.116 -p icmp --icmp-type 0 -j ACCEPT
[root@node3 ~]# iptables -A INPUT -s 192.168.1.116 -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.255.255的包
  # iptables -A clean_in -p tcp ! --syn -m state --state NEW -j DROP
  添加新规则,丢弃新的规则链上syn标志位为1的包
  # 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 -d 172.16.100.7 -j RETURN 
  添加新规则,将来自172.16.100.7的包返回到主链

  # iptables -A INPUT -d 172.16.100.7 -j clean_in
  添加新规则,将172.16.100.7的包交给clean_in处理
    
  # iptables -A INPUT  -i lo -j ACCEPT
  添加新规则,指定流入报文接口为lo
  # iptables -A OUTPUT -o lo -j ACCEPT
  添加新规则,指定流出报文接口为lo


  # iptables -A INPUT  -i eth0 -m multiport -p tcp --dports 53,113,135,137,139,445 -j DROP
  丢弃流入报文接口为eth0,协议为tcp,端口号为53,113,135,137,139,445的包
  # iptables -A INPUT  -i eth0 -m multiport -p udp --dports 53,113,135,137,139,445 -j DROP
  丢弃流入报文接口为eth0,协议为udp,端口号为53,113,135,137,139,445的包
  # iptables -A INPUT  -i eth0 -p udp --dport 1026 -j DROP
  丢弃流入报文接口为eht0,协议为udp,端口号为1026的包
  # iptables -A INPUT  -i eth0 -m multiport -p tcp --dports 1433,4899 -j DROP
    丢弃流入报文接口为eth0,协议为tcp,端口号为1433,4899的包
  # iptables -A INPUT  -p icmp -m limit --limit 10/second -j ACCEPT
  允许ping命令速率为每秒10次
7、通过tcp_wrapper控制vsftpd仅允许172.16.0.0/255.255.0.0网络中的主机访问,但172.16.100.3除外;对所被被拒绝的访问尝试都记录在/va
r/log/tcp_wrapper.log日志文件中;

vim /etc/hosts.allow
vsftpd:172.16.0.0/255.255.0.0 EXCEPT 172.16.100.3
vim /etc/hosts.deny
vsftpd:ALL :spawn /bin/echo `date` login attempt from %c to %s, %d >> /var/log/tcp_wrapper.log

以上

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

(0)
N21_619463772N21_619463772
上一篇 2016-12-26 10:32
下一篇 2016-12-26 10:32

相关推荐

  • 菜鸟教你如何磁盘分区与创建文件系统以及挂载(1)

    何为磁盘分区,为什么要分区?    计算机中存放信息的主要的存储设备就是硬盘,但是硬盘不能直接使用,必须对硬盘进行分割,分割成的一块一块的硬盘区域就是磁盘分区。在传统的磁盘管理中,将一个硬盘分为两大类分区:主分区和扩展分区。主分区是能够安装操作系统,能够进行计算机启动的分区,这样的分区可以直接格式化,然后安装系统,直接存放文件。 MBR分…

    Linux干货 2016-08-27
  • N24-vt.lee-学习宣言

    学习宣言:  好好学习 天天向上!!!  2016-10-26

    Linux干货 2016-10-26
  • Bash shell 脚本编程全攻略(上篇)

    Bash shell 脚本编程全攻略(上篇)   什么是shell脚本呢? 当命令不在命令行上执行,而是通过一个文件执行时,该文件就称为shell脚本,脚本以非交互的方式运行。Shell脚本把命令通过一些语法组织起来,便能实现特定的功能。   Shell脚本主要运用在系统运维中,主要功能有: 自动化常用命令; 执行系统管理和故障排除; 创…

    Linux干货 2016-08-29
  • 马哥教育N22期第五周作业

    1、显示当前系统上root、fedora或user1用户的默认shell; [root@localhost ~]# egrep "^root|fedora|user1" /etc/passwd root:x:0:0:root:/root:/bin/bash fedora:x:1002:1002::/…

    Linux干货 2016-09-15
  • bash脚本作业

    1、每隔3秒钟到系统上获取已经登录的用户的信息;如果发现用户hacker登录,则将登录时间和主机记录于日志/var/log/login.log中,并提示该用户退出系统。 2、随机生成10以内的数字,实现猜字游戏,提示比较大或小,相等则退出。 1、求100以内所有正整数之和 2、通过ping命令探测172.16.250.1-254范围内的所有主机的在线状态,…

    Linux干货 2016-08-19
  • KVM虚拟化平台部署及管理

    前言 KVM即Kernel Virtual Machine,最初是由以色列公司Qumranet开发。2007年2月被导入Linux 2.6.20核心中,成为内核源代码的一部分。2008年9月4日,Redhat收购了Qumranet,至此Redhat拥有了自己的虚拟化解决方案,之后便舍弃Xen开始全面扶持KVM,从RHEL6开始KVM便被默认内置于内核中。本文…

    Linux干货 2015-07-19

评论列表(1条)

  • Nelda
    Nelda 2017-04-24 03:57

    My Mandarin is limited to about 10 wohdr/psrases. I have a personal assistant and that spoils me! It’s a fascinating place, full of lots of places to see… the winter was AWFUL and almost did me in, but the sun came out a few days ago and the flowers are blooming and life is semi back to normal