ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

IPtables实验

2022-04-04 12:33:02  阅读:230  来源: 互联网

标签:IPtables iptables ftp -- 0.2 防火墙 telnet 实验


IPtables实验指导书

依照原先的实验报告模板,本指导书结合镜像做出了一些调整,抛弃了一些不必要的过程,主要实现iptables这个防火墙的作用和策略配置体现。这个实验的前期准备可能复杂,希望同学们能耐心地看指导书,并结合计算机网络的知识去理解这个实验。这个实验不是为了简单的复现几个策略指令。

ps:借鉴了刘浩源学长的博客https://sculptor-liu.github.io/2021/04/26/Centos%E4%B8%ADiptables%E9%85%8D%E7%BD%AE/

1.准备工作

说明:虚拟机搭建时,同学们看到分配内存为40G担心电脑内存不够,其实没有必要,因为不是设置40G就一下占据40G,实际只占用很小一部分,因为40G是虚拟机最大占用内存。

同时,希望大家养成给虚拟机拍快照的习惯

image

它可以帮助你将虚拟机还原到拍下快照时刻的状态,减少你重新搭建虚拟机的麻烦

1.1 靶机准备

一台Centos7作为防火墙
一台win7作为内网机
一台win2008作为DMZ服务器 ftp telnet
一台win2003作为外网服务器 iis

注意:

  • 关闭所有虚拟机的防火墙,本实验中通过centos来构建防火墙

  • windows server 2008上需要搭建共享文件夹(或者搭建ftp服务器)和telnet,这项操作切记在修改网络之前完成,本次实验先完成此项,具体参考文末附上的常见问题总结

  • Centos7需要3个网络适配器,所有也得配置三个IP

  • 远程连接需要安装telnet客户端和服务端,同时在services.msc中需要找到telnet 自启动

在本次实验开始之前,建议大家试试给除了防护墙的几台机子外部配置相同的自定义网络,内部配置一个网段下的IP去互ping,保证不是虚拟网络的问题。

例如:

windows server 2008 配置 192.168.1.100 255.255.255.0 网络适配器:自定义网络 #vm2

windows server 2003 配置192.168.1.200 255.255.255.0 网络适配器:自定义网络 #vm2

win7参照上述自定

实验开始前的基本配置(这是非常重要部分,保障后面做的不是无用工)

因为本实验的要求是用win7和win2008去访问win2003,所以不需要几台上面全都搭建一遍,主要是在win2003上配置共享文件夹和telnet,另外两台开启ftp和Telnet服务接口

搭建ftp功能有两种实现方式,一是通过设置共享文件夹,二是通过搭建ftp服务器,个人推荐共享文件的方式,这种方式较为简单

  • 设置共享文件夹https://blog.csdn.net/qq_45089570/article/details/122398452

  • 如果出现解决共享文件夹无法启用网络发现的问题,此教程虽然是2008的但是操作方式是一样的:https://www.cnblogs.com/grisa/p/10026079.html

  • 搭建ftp站点https://blog.csdn.net/qq_28189423/article/details/82221018

    1.参照此教程时注意一点,切记切记IP地址不要绑定,保持IP地址未分配即可

image

2.密码的设置上,这里的密码设置存在简单性建议,需要出现大小写,字符,数字,这里给大家一个统一的密码设定

Jit123456*,方便大家使用

image

如果站点输入密码后不能访问,那么到对应的站点中设置属性(参照共享文件夹的设置)

image

  • windows server 2008配置telnet服务https://www.cnblogs.com/50614090/archive/2011/08/29/2158013.html

1.2 安装iptables-services

首先:Centos7先桥接模式下载iptables-services(注意:因为后面会配置自定义网络,无法联网,所以一定要先完成这项再进行后续操作)

#关闭防火墙
systemctl stop firewalld

#安装或更新服务
yum install iptables-services

#启动iptables
systemctl enable iptables

#打开iptables
systemctl start iptables

#规则策略保存
service iptables save

#重启iptables服务(强调)
service iptables restart

#执行完毕之后/etc/syscofig/iptables文件就有了

1.3 IP准备

具体IP地址的实际配置请大家参照,我的学号是11,所以在此处IP地址中包含11,实际情况以个人为准

image

Centos7:
enss33:          #vm0
192.168.11.200
255.255.255.0

enss37:         #vm1
10.11.0.200
255.255.255.0

enss38:         #vm2
20.11.0.200
255.255.255.0
win7:           #vm0
192.168.11.2
255.255.255.0
192.168.11.200
win2008:        #vm1
10.11.0.2
255.255.255.0
10.11.0.200
win2003:        #vm2
20.11.0.2
255.255.255.0
20.11.0.200

注意:centos无网关,其他几台虚拟机的网关都是以centos下的网络适配器为网关

1.4 centos IP地址配置

centos以外的几个系统配置IP地址并不麻烦,此处不做赘述,重点针对centos系统的IP地址配用进行介绍

首先需要增加网络适配器

image

centos内部的配置,emmm,我课上讲清楚吧,全写清楚不太现实

2. 实验

2.1 NAT转换

2.1.1 目的

实验目的:使用iptables命令配置防火墙,将内部IP地址映射到外部服务器,实现局域网主机通过内部IP地址(192.168.11.200)来访问外网服务器(20.11.0.2)。

实验原理:通过配置nat表的PREROUTING和POSTROUTING链实现地址映射

2.1.2 规则配置

//管理员登录
su
//注:密码是以密文形式出现的,看不到,所以只要输完了enter一下就行
//清空防火墙nat表
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z

//查看nat表已经清空
iptables -t nat -L --line-numbers

//开启数据包转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward

//查看转发功能
cat /proc/sys/net/ipv4/ip_forward

//必须保证/etc/sysctl.conf文件中net.ipv4.ip_forward的值为1
//当linux主机有多个网卡时一个网卡收到的信息是否能够传递给其他的网卡 如果设置成1 的话 可以进行数据包转发 可以实现VxLAN 等功能.
vim /etc/sysctl.conf  

//源地址192.168.11.200:80映射到目的地址20.11.0.2:80
iptables -t nat -A PREROUTING -d 192.168.11.200 -p tcp --dport 80 -j DNAT --to-destination 20.11.0.2:80

//
iptables -t nat -A POSTROUTING -s 20.11.0.2 -p tcp --sport 80 -j SNAT --to-source 192.168.11.200

iptables -t nat -L -n --line-numbers

#保存,重启
service iptables save
service iptables restart

完成这些配置后不进行任何操作,首先对内外网虚拟机进行连通性检测,使用ping指令或者tracert,如果连不上则是存在问题的

防火墙的本质是一个路由器,可以实现数据包转发的功能,在未进行任何策略配置的情况下,默认是可以实现内外网互相通信的,如果不行,证明centos防火墙存在问题

2.2 iptables实现按网段访问网络资源

2.2.1 目的

实验目的:通过配置iptables防火墙来实现按网段访问ftp服务和telnet服务(ftp服务器和telnet服务器地址:10.37.0.2),具体要求是:

内网不可以访问DMZ区域ftp服务,但是可以访问telnet服务;

外网可访问DMZ区域ftp服务,但是不可以访问telnet服务。

(1) 192.168.11.0/24网段不可以访问ftp服务,20.11.0.2/24网段可以访问ftp服务。

(2) 192.168.11.0/24网段可以访问telnet服务,20.11.0.2/24网段不可以访问telnet服务。

实验原理:配置filter表中的FORWARD链

2.2.2 初始状态

按网段访问ftp服务器的实验步骤:

(1) 打开Windows 7的cmd,输入ftp 10.11.0.2,输入用户名administrator,密码@admin123,登录成功。

(2) 打开Windows server 2003的cmd,输入ftp 10.11.0.2,输入用户名ftp,密码@admin123,登录成功。

对于win7:

image

按网段访问telnet服务器的实验步骤:

对于win2003:

image

对于win7:

image

对于win2003:

image

2.2.3 规则配置

#管理员登录
su

//初始化
iptables -F
iptables -X
iptables -Z
iptables -L -n --line-numbers

#ftp配置
iptables -t filter -A FORWARD -s 192.168.11.0/24 -p tcp --dport 21 -j DROP
iptables -t filter -A FORWARD -s 20.11.0.0/24 -p tcp --dport 21 -j ACCEPT

#telnet配置
iptables -t filter -A FORWARD -s 192.168.11.0/24 -p tcp --dport 23 -j ACCEPT
iptables -t filter -A FORWARD -s 20.11.0.0/24 -p tcp --dport 23 -j DROP

#保存,重启
service iptables save
service iptables restart

2.2.4 实验结果

对于win7

无法访问ftp

image

可以telnet

image

对于win2003

可以ftp,但不能telnet

image

2.3 配置iptables禁止网络服务

2.3.1 目的

实验目的:通过配置iptables防火墙来禁止某些网络服务

实现按网段访问ftp服务和telnet服务(ftp服务器和telnet服务器地址:10.37.0.2),具体要求是:

(1) 禁止任何主机ping 10.37.0.2,但允许主机10.37.0.2 ping其它主机

(2) 禁止任何主机访问ftp服务(ftp服务器地址:10.37.0.2)

实验原理:配置filter表中的FORWARD链

2.3.2初始

win2003可以ping 10.11.0.2

image

win7可以ping 10.11.0.2

image

win server 2008 (10.11.0.2)可以ping通一切

image

2.3.3 规则配置

1.在防火墙CentOS7的终端输入如下命令,清空防火墙规则。

#初始化
iptables -F
iptables -X
iptables -Z
iptables -L -n --line-numbers

2.配置防火墙,禁止访问icmp服务。在终端输入如下命令,在进入转发的数据包中,禁止源地址不是10.11.0.2的ping请求。

#ping配置
iptables -A FORWARD -p icmp --icmp-type 8 ! -s 10.11.0.2 -j DROP

#ftp配置
iptables -t filter -A FORWARD -s 192.168.11.0/24 -p tcp --dport 21 -j DROP
iptables -t filter -A FORWARD -s 20.11.0.0/24 -p tcp --dport 21 -j DROP

3.保存,重启

service iptables save
service iptables restart

2.3.4 实验结果

1.在Windows 7的cmd上,输入ping 10.11.0.2,已经不能ftp和ping通10.11.0.2主机。

image

image

2.在Windows server 2003上,输入ping 10.11.0.2,也不能ftp和ping通10.11.0.2主机。

image

image

3.在10.11.0.2主机上输入ping 20.11.0.2和192.168.11.2,可以ping通。

image

2.4 使用脚本配置防火墙

在防火墙CentOS 7桌面新建firewall.sh,在终端输入命令vi firewall.sh

编辑脚本firewall.sh:

#Remove any existing rules
iptables -F
iptables -X
iptables -Z

#setting for loopback interface
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT

#setting default firewall policy
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -P INPUT DROP

#setting access rules
iptables -t filter -A INPUT -s 192.168.10.0/24 -p all -j ACCEPT

#http
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT

#icmp
iptables -t filter -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT

#others RELATED
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT1
//具体指令
su root
vi firewall.sh
chmod 777 firewall.sh
./firewall.sh

image

1.完成输入后,在终端输入“ESC”“:wq”,退出编辑。(vi编辑器的使用可自学)
2.此时在终端输入命令./ firewall.sh执行脚本时提示权限不够,输入命令chmod +x firewall.sh为其添加权限。再执行脚本,则可执行成功。
3.在终端输入命令iptables -L -n --line-numbers查看防火墙规则,可以看到防火墙规则添加成功。
4.但此时添加的防火墙规则只存在于内存中,并没有写入iptables配置文件中。一旦重启就会消失。将添加的防火墙规则永久保存在配置文件中,在终端输入命令service iptables save。
5.在终端输入命令cat /etc/sysconfig/iptables,查看iptables配置文件。
6.可以看到此时的防火墙与“手动执行iptables命令配置防火墙”实验中配置防火墙一样。相比于手动配置防火墙,使用脚本配置防火墙更加方便和快捷,不用一条一条手动地添加规则。

一些个人的感悟和后话

首先在此感谢柳老师和刘浩源学长的指点和教导,愿意给出时间帮助我解决问题,同时我也学到了很多。

这个实验本身不复杂,难在准备一个可以实现实验的环境,我也磕磕绊绊地走了很多弯路,忙几天做了很多无用工,这也让我意识到自己的不足,还有很多东西需要学习。这个实验前期准备的过程虽然繁琐,但是也能帮助大家更好地认识防火墙的实际运用效果和作用。个人觉得这个实验很贴近实际,在准备的过程中本人也学到了很多,希望这个实验可以帮助大家形成一个完整的虚拟机实验复现思路,更好地认识防火墙,也能帮助大家更好地运用虚拟机

标签:IPtables,iptables,ftp,--,0.2,防火墙,telnet,实验
来源: https://www.cnblogs.com/willing-sir/p/16098823.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有