马哥教育网络第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
下一篇 2016-12-26

相关推荐

  • 脚本作业–函数练习

    1、编写服务脚本/root/bin/testsrv.sh,完成如下要求(1) 脚本可接受参数:start, stop, restart, status(2) 如果参数非此四者之一,提示使用格式后报错退出(3) 如是start:则创建/var/lock/subsys/SCRIPT_NAME, 并显示“启动成功”考虑:如果事先已经启动过一次,该如何处理?(4) …

    Linux干货 2016-08-24
  • Shell编程之select循环&函数详解

    一、select循环        功能:主要用于创建菜单,菜单按数字顺序排列。并将PS3变量的值用作用户输入提示。用户的选择被保存在内置变量REPLY中。也可以和case语句结合,在select循环中对用户的输入作出判断并处理。      &nbs…

    Linux干货 2016-08-21
  • grep &&正则表达式&&通配,元字,转义符

    grep 基于正则表达式的查询 1正则表达式: 正则表达式是通过使用特殊的字符所编写的模式,一些字符不表示字符的表面意思,具有控制和通配的功能. 使用正则表达式进行匹配具有两种方法:一是通过使用特殊的元字符进行字符匹配;二是使用次数匹配。 一, 正则表达式的特殊字符(元字符) :  #建议再温习一下之前所学的统通配符,对比一下,防止混淆。 (1)元…

    Linux干货 2016-08-05
  • redis主从复制(2)— replication buffer与replication backlog

    1、redis主从复制过程先不解释replication buffer和replication backlog,而先看看redis主从复制的过程。 redis的主从复制分为两个阶段: 1)同步(sync rdb snapshot):slave复制master的某时间点(t)的全量数据,t为master接收到slave的sync命令后执行rdb bgsave的…

    Linux干货 2016-04-05
  • 运维工程师技能需求排行

    这是我今天在拉勾网搜索运维,翻完了4四页也招聘信息之后得到的,我的目的是想要看看之后的学习,哪个更应该成为重点,有些在我意料之中,有些还真的没想到,算是努力了一个小时的收获吧,分享给大家。
    注意:其中的看法仅代表个人观点,很多都是依靠我自己的学习经验和工作经验累积的

    Linux干货 2017-12-12
  • 实现基于MYSQL验证的vsftpd虚拟用户

    马哥教育面授21期 运维 vsftpd MySQL 说明:本实验在两台CentOS主机上实现,一台做为FTP服务器,一台做数据库服务器 一、安装所需要包和包组: 在数据库服务器上安装包: yum –y install mariadb-server mariadb-devel systemctl start mariad…

    Linux干货 2016-12-21

评论列表(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