iptables综合实验

实验目的:

  1. 使用iptables作为公司内网的网关,使内网用户可以正常访问外网。
  2. 内网有一台web服务器需要对外提供
  3. 内网有两台服务器部署了samba,ftp和dns服务,给内网用户使用
  4. 对192.168.1.10-192.168.1.50的用户限速

GW

192.168.1.200(连接外网)  192.168.2.1(连接内网)

 

WEB Server

192.168.2.202

 

Other Servers

192.168.2.101

192.168.2.102

一、配置WEB Server的防火墙规则:

目的:

  1. 只开放本机的tcp80端口
  2. 只允许192.168.2.100-192.168.2.120使用ssh登录
  3. WEB服务器可以ping其他主机

添加规则:

192.168.2.202 上操作

iptables -t raw -A PREROUTING-d 192.168.2.202 -p tcp --dport 80 -j NOTRACK
 
iptables -t raw -A OUTPUT -s192.168.2.202 -p tcp --sport 80 -j NOTRACK

//上面两条规则对匹配到的流量关闭连接追踪状态

 

iptables -A INPUT -d192.168.2.202 -p tcp --dport 80 -j ACCEPT
 
iptables -A INPUT -d192.168.2.202 -p tcp -m iprange --src-range 192.168.2.100-192.168.2.120 --dport22 -j ACCEPT
 
iptables -A OUTPUT -s192.168.2.202 -p tcp -m multiport --sports 22,80 -j ACCEPT
 
iptables -A INPUT -p icmp -d192.168.2.202 --icmp-type 0 -j ACCEPT
 
iptables -A OUTPUT -p icmp -s192.168.2.202 --icmp-type 8 -j ACCEPT
 
iptables -P INPUT DROP
iptables -P OUTPUT DROP

 

 

二、配置Other Servers的防火墙规则:

目的:

  1. 开放samba,ftp和dns服务
  2. dns服务器之间可以实现主从复制
  3. 只允许192.168.2.100-192.168.2.120使用ssh登录
  4. 服务器可以ping其他主机

 

添加规则:

在192.168.2.101和192.168.2.102上操作

vim/etc/sysconfig/iptables-config

service iptables restart   //加载模块

iptables -F          //清空默认规则

 

添加规则:

在192.168.2.101上操作

 

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED-j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -jACCEPT
 
iptables -A INPUT -d 192.168.2.101 -p tcp -m multiport--dports 21,53,139,145 -m state --state NEW -j ACCEPT
 
iptables -A INPUT -d 192.168.2.101 -p udp -m multiport--dports 53,137:138 -m state --state NEW -j ACCEPT
 
iptables -A INPUT -d 192.168.2.101 -p tcp -m iprange--src-range 192.168.2.100-192.168.2.120 --dport 22 -m state --state NEW -jACCEPT
 
iptables -A INPUT -d 192.168.2.101 -p icmp --icmp-type 0-m state --state NEW -j ACCEPT
 
iptables -A OUTPUT -p udp --dport 53 -m state --state NEW-j ACCEPT
 
iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW-j ACCEPT
 
iptables -A OUTPUT -s 192.168.2.101 -p icmp --icmp-type 8-m state --state NEW -j ACCEPT
 
iptables -A INPUT -s 127.0.0.1-p tcp --dport 953 -m state --state NEW -j ACCEPT
 
iptables -A OUTPUT -p tcp -d 127.0.0.1 --dport 953 -jACCEPT
 
iptables -P INPUT DROP
iptables -P OUTPUT DROP

 

 

在192.168.2.102上操作

 

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED-j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -jACCEPT
 
iptables -A INPUT -d 192.168.2.102 -p tcp -m multiport--dports 21,53,139,145 -m state --state NEW -j ACCEPT
 
iptables -A INPUT -d 192.168.2.102 -p udp -m multiport--dports 53,137:138 -m state --state NEW -j ACCEPT
 
iptables -A INPUT -d 192.168.2.102 -p tcp -m iprange--src-range 192.168.2.100-192.168.2.120 --dport 22 -m state --state NEW -jACCEPT
 
iptables -A INPUT -d 192.168.2.102 -p icmp --icmp-type 0-m state --state NEW -j ACCEPT
 
iptables -A OUTPUT -p udp --dport 53 -m state --state NEW-j ACCEPT
 
iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW-j ACCEPT
 
iptables -A OUTPUT -s 192.168.2.102 -p icmp --icmp-type 8-m state --state NEW -j ACCEPT
 
iptables -A INPUT -s 127.0.0.1-p tcp --dport 953 -m state --state NEW -j ACCEPT
 
iptables -A OUTPUT -p tcp -d 127.0.0.1 --dport 953 -jACCEPT
 
iptables -P INPUT DROP
iptables -P OUTPUT DROP

 

 

三、配置GW:

确保已打开ip转发

vim/etc/sysctl.d/99-sysctl.conf     //使ip转发永久生效

 

sysctl -p       //立即生效

 

iptables -t nat -A POSTROUTING -s 192.168.2.0/24 ! -d192.168.2.0/24 -j SNAT --to-source 192.168.1.200
 
iptables -t nat -A PREROUTING -d 192.168.1.200 -p tcp--dport 80 -j DNAT --to-destination 192.168.2.202
 
iptables -A FORWARD -m iprange--src-range 192.168.1.10-192.168.1.50 -m connlimit --connlimit-above 10 -j DROP

//限制内网用户发往外网的连接并发数(需要进一步验证)

 

iptables -A FORWARD -m iprange--dst-range 192.168.1.10-192.168.1.50 -m limit --limit 300/minute -j ACCEPT

//限制内网用户的下载速度(需要进一步验证)

时间: 2024-08-05 17:05:35

iptables综合实验的相关文章

【Linux程序设计】之环境系统函数综合实验

这个系列的博客贴的都是我大二的时候学习Linux系统高级编程时的一些实验程序,都挺简单的.贴出来纯粹是聊胜于无. 实验题目:Linux环境下系统函数综合实验 实验目的:熟悉并掌握Linux环境下数学函数.字符函数.系统时间与日期函数.环境控制函数.内存分配函数以及数据结构中常用函数的使用方法. 一.Linux环境下数学函数的使用 设计程序,满足如下要求: 1.使用rand函数产生10个介于1到10之间的随机数值.要求在程序中对每行代码添加注释. 1 #include<stdio.h> 2 #i

eigrp综合实验

上配置,供参考 INTERNET: Current configuration : 1192 bytes ! version 12.4 service timestamps debug datetime msec service timestamps log datetime msec no service password-encryption ! hostname INTERNET ! boot-start-marker boot-end-marker ! ! no aaa new-mode

Keepalived+Haproxy双主高可用负载均衡web和mysql综合实验

日期及版本:2014.5.4v1.0 架构图 实验目的: 1.Haproxy+Keepalived双主双机高可用模型,keepalived为Haproxy主从提供高可用保证haproxy-master若挂掉haproxy-backup能无缝接管,haproxy为后端Web提供负载均衡,缓解并发压力,实现WEB站点负载均衡+高可用性: 2. Haproxy反代web做动静分离: 3. Haproxy反代mysql 算法leastconn和roundrobin的不同效果: 系统环境: OS:cent

CCNP第四天 OSPF综合实验(1)

ospf综合实验(1) 本实验主要考察ospf中的接口上的多种工作方式 实验如图所示: 所用拓扑为CCNP标准版,如图: ------------------------------------------------------------------------------------------------------------------------------------- 1. 全网可达 由于CCNP中帧中继是默认全部开启,而且是全连通的,所以在物理接口和多点子接口上建议关闭逆向a

综合实验一

一.实验背景: 1.××学院要建立校园网,使得南.北两个校区能够相互通信 2.北校区的行政楼和1号楼业务往来密切.需要时刻保持畅通,网络间断时间不能超过1分钟,网络平均无故障时间10000小时以上 3.行政楼和1号楼均能满足多种用户需求.能够自动隔离广播风暴 要求:请你设计一个网络模型来满足该需求 二.实验拓扑:    三.需求分析: 1.建立路由协议来满足南北校区的相互通信(默认路由.RIP.OSPF.静态路由) 2.可以考虑网络冗余.使得线路时刻保持畅通:设备冗余,满足用户需求:购买高质量网

如何利用PC机搭建综合实验环境之Vmware workstation篇

无论学习windows还是linux,还是学习这些系统上的应用,我们都需要一台甚至多台服务器.但一台服务器动辄上万元,做为正在学习的学生或个人根本无力购买.况且一些实验不止需要一台,还需要多台服务器.再加上供电等因素,个人买服务器来做实验真的是不可能的事情.但不通过实验的话又很难将知识串联起来,实践是检验真理的唯一标准.因此,今天我们来讲如何通过一台PC模拟多台服务器.PC,并且模拟交换机.路由器.防火墙.AAA服务器,最后将交换机,路由器.防火墙.服务器连接起来,搭建成一个综合的实验环境,完成

centos7+docker综合实验

dockerfile,registry,使用nginx反向代理搭建私有仓库 防伪码:你好阳光 一.实验拓扑: 二.实验要求: 实验机器(两台centos7.2) 1.registry_server和docker宿主机均需安装docker软件包并启动docker服务. 2.搭建私有仓库服务器,为docker主机提供镜像仓库,实现镜像下载与上传功能 3.在docker宿主机上将下载下来的基础镜像生成提供http和ssh服务的新镜像,可以使用docker commit或docker build命令生成

Linux运维实战之DNS综合实验

本次博文主要是对Linux系统中DNS知识的总结. DNS的基础知识(参见http://sweetpotato.blog.51cto.com/533893/1596973) DNS的基础配置(参见http://sweetpotato.blog.51cto.com/533893/1598225) DNS的高级配置(参见http://sweetpotato.blog.51cto.com/533893/1607383) [本次博文的主要内容] 1.以一个综合案例总结Linux系统中DNS的配置 2.B

小小综合实验

小小综合实验 1.实验要求及拓扑如图 2. PC1用路由器模拟,先关闭路由功能,再进接口开启DHCP自动获取IP地址 3. PC2也用路由器模拟,先关闭路由功能,再进接口开启DHCP自动获取IP地址 4. 在SW1上创建VLAN10,VLAN20,并验证创建成功 5. 在SW1上分别将f1/1和f1/2加入到VLAN10和VLAN20中,并验证配置 6.在SW1上配置f1/0接口为Trunk,采用802.1q封装,并验证配置 7.在R1上进入接口f0/0,开启,配置子接口f0/0.1采用802.