一把辛酸泪----菜鸟学DOS和防火墙策略

Posted 敲代码的xiaolang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一把辛酸泪----菜鸟学DOS和防火墙策略相关的知识,希望对你有一定的参考价值。

除了linux系统之外,windows系统也是我们应该学习的,大家或多或少都觉得windows系统简单很多,确实,但是windows系统也有许多我们值得深入的知识,今天我们就来学习一下。笔者才疏学浅,希望大佬们能不吝赐教,关于文中涉及的windows环境搭建其实也只是最基础的涉及,关于搭建时的高级配置暂未涉及到,后期笔者会继续深入。
博文的目的是记录日常的学习记录,笔者才疏学浅,希望大家能指出改进方向!

DOS命令(Windows)

了解DOS : DOS ( Disk Operating System)是一个使用得十分广泛的磁盘操作系统,DOS就是人给机器下达命令的集合,是存储在操作系统中的命令集,我们可以更容易地给机器下命令,从而达到不必去死记硬背那些枯燥二进制数字的机器命令,只需通过一些接近于英语的DOS命令(我英语不好~),就可以达到解决问题的目的。

一句话了解CMD:cmd.exe是windows系统的命令解释程序,类似于微软的DOS操作系统,cmd.exe是一个32位的命令行程序

常见的DOS命令:

  1. ipconfig

查询本机的IP地址
例如:
ipconfig /release 释放本机现有IP
ipconfig /renew 向DHCP服务器重新获取IP
ipconfig /all 显示完整的IP信息

  1. net user

查看本机账号情况相关命令∶
net user 账号名密码 /add 添加一个新用户
net user 账号名 /del 删除用户
net user 账号名 查看指定用户的详细情况

  1. net localgroup

查看本地用户组
命令: net localgroup administrators 用户 /add

  1. ping

检查网络是否通畅或者网络连接速度,你ping通了,代表网络可以访问,你ping不通,也无法代表无法访问,因为对方服务器可能开启了禁ping模式。
命令: ping [-t l n] 目标IP
参数: -t∶不间断向目标IP发送数据包
-n : 定义向目标主机发送数据包的次数
-l∶定义发送数据包的大小

  1. netstat

查看网络状态命令∶
netstat -a 查看我们本地机器开放的端口
netstat -r 列出当前的路由的信息
netstat -n 不对名字进行解析

  1. dir

显示指定路径上所有文件或目录信息,和我们linux上的 ls 命令一样
命令: dir [盘: ][路径]

  1. mkdir ( md )

建立目录
命令:mkdir [盘][路径]目录名

  1. rmdir ( rd )

删除目录
命令: rmdir [盘][路径]目录名

  1. cd

进入指定目录命令:
cd \\
返回到根目录
cd . .
回到上一层目录
copy
拷贝文件
命令:copy 源目录或文件 / 目的目录或文件

  1. del

删除文件
命令:del [盘][路径][参数]文件名

  1. ren(rename)

改名
命令: ren 原名 现名

  1. type

查看文本文件
命令 : type 文件名

linux命令总结,参考链接(菜鸟教程):https://www.runoob.com/linux/linux-command-manual.html
windows的dos命令太多了,笔者全列出来意义也不是很大,就举了几个使用次数多一些的,文末笔者会附上完整dos命令的下载链接,资源来自于笔者自己在网上所找,仅用来自己学习查阅,版权归该下载资源的合法拥有者所有

windows相关环境搭建(简写)

安装IIS服务器
IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。IIS通过使用超文本传输协议(HTTP)传输信息

IIS提供了html网页和动态页面,例如asp.net应用程序,当访问者访问静态页面时,IIS就会把和html有关的图像发送给用户浏览,当我们访问动态页面的时候,IIS运行应用程序,并且处理页面中所有脚本,然后将其数据发送给用户浏览。

这里以windows2008为例,大家在虚拟机提前安好。

然后在服务器管理器中,选择"角色”,然后选择“添加角色"。
在安装界面,选择"服务器角色"为 : Web服务器(IIS)。
"角色服务"勾选︰应用程序开发,然后点击下一步,等待安装完成即可。




安装完成后检查80端口是否开放,并访问IP地址

安装完后,我们在“开始”,然后找到“管理工具”,然后会发现“Internet信息服务(IIS)管理器”,我们进入发现下图所示:


我们在IIS的默认目录里写一个txt文件,输入任何内容,然后在我们本地访问

我们运行一个asp的网站,源码笔者文末附上链接
我们刚开始会遇到右键无法创建文件夹的情况,这时候我们对于小白而言,先不考虑你的搭建环境的安全性,我们先搭出来,后期再加功能,所以我们右键wwwroot,点击 “属性” ,然后点击 “ 安全 ”,然后会发现它属于很多组和用户,但是我们的IIS运行的话,是一个IIS的账号,类似于linux系统下的阿帕奇账号,我们点击 “编辑” ,然后点击 “ 添加 ”,然后点击 “高级 ”,然后 “立即查找” ,我们点击 “ everyone ”(很不提倡此做法,很不安全,但是前期小白自己学习时,先降低安全性考虑,后期笔者再完善更多功能),然后给他一个完全控制权限,然后就类似于我们前期学习linux时,给others一个完整的权限一样。

我们把下载好的源码(文末附链接)解压,然后粘贴到wwwroot的目录里,你也可以自己添加网站,然后新建一个物理路径,然后在这个目录里放你自己的网站,这里笔者就放到wwwroot里了,实际上为了安全考虑,我们一般不会放到默认路径里,这里针对小白而言,笔者简化了操作。

下面我们搭一个主页,我们找到默认文档

我们发现有下面这些类型,当我们直接输入一个IP访问一个网站时,服务器不知道我们访问网站的那个目录,所以他就默认我们访问的是默认的文档,他就会进行一条一条的匹配,从第一个往下进行匹配,直到匹配到一样的。

我们启用ASP,在Default Web Site里面,找到ASP,我们双击点进去,找到父路径,改成true

然后找到应用程序池,选中,左键点击进去,右键选中高级设置,我们的asp网站使用的是mdb类型的数据库,是微软的一个比较小型的数据库。


然后我们访问一下,就会发现已经有界面了。(源码是网上下载的,笔者不是在打广告

然后我们访问一下登陆后台的界面:

一个很简单的环境就搭建好了,但是实际我们应该学习的是在不知道密码和用户名的情况下,如何进入后台系统,这也是web安全后期要掌握的能力,前期我们要学会自己搭建环境,因为你入侵不能入侵别人的服务器,一般都是自己搭建服务器,自己入侵自己的,所以搭建环境也是要学习的。

DNS和DHCP的搭建方法笔者在之后的计网学习中再深入,这里写了意义也不是很大,重点在于原理的学习,搭建的问题百度也可以自行解决。

防火墙策略(操作系统所带的防火墙)

防火墙安全策略

安全策略是按一定规则检查数据流是否可以通过防火墙的基本安全控制机制。
规则的本质是∶包过滤


简单而言,就是根据定义的规则对经过防火墙的流量进行筛选,并根据关键字确定筛选出的流量如何进行下一步操作。然后我们在虚拟机理=里搭建好了环境,如果我们想在物理机去访问,我们先查看一下我们的地址,使用命令ipconfig:


我们在物理机访问一下:

我们防火墙核心有两个规则,一个是入站规则,另一个是出站规则。入站规则就是说你外界的流量进入到你的主机时,要先经过一个入站规则的筛选,而我们的出站规则是指我们主机发出的流量在离开我们的防火墙时,需要进行的规则筛选。

我们可以看见每一个策略匹配的规则,规则启用的话,就允许访问对应的端口,进行对应的操作。

我们自己学着定义一下规则,先把系统默认的规则禁用

然后自己定义规则carry






然后我们访问一下,发现可以正常访问

然后我们禁用我们刚才定义的new block rule规则,再次查看,发现无法访问了


我们再定义一个出站规则




发现火狐无法访问网络了,心疼火狐1秒~

我们禁用刚才的规则,就能又访问网络了

我们上述的操作是在图像化界面使用的,但是实际上,我们的防火墙也可以在终端进行操作:

命令行配置防火墙—netsh advfirewall
相比较图像化界面,我们使用终端的好处在于:配置更快速,掌握了如何使用netsh advfirewall,就可以快速的配置防火墙可以编写脚本,使用这个工具你可以对一些常用的功能编写脚本,而且在图形化界面不可用时依然可以配置防火墙。

firewall命令
Add 增加入站和出站规则
Delete 删除一条规则
Set 为现有规则的属性设置新值
Show 显示—个指定的防火墙规则

比如笔者举个例子,如下图,制定一个入站规则:

centos7系统防火墙基本配置
刚入门,学习重点在于语法学习,这里以firewalld的语法和iptables的语法学习为主。
在CentOS 7里有几种防火墙共存:firewalld、iptables、ebtables。默认是使用firewalld来管理netfilter子系统,底层调用的命令仍然是iptables等。

firewalldiptables
特点基于区域基于接口
配置文件/usr/lib/firewalld/ 、 /etc/firewalld//etc/sysconfig/iptables
对规则的修改不需要刷新全部规则,不丢失现有连接需要刷新全部规则,丢失现有连接
防火墙类型动态防火墙静态防火墙


firewalld——区域管理
firewalld 将网卡对应到不同的区域(zone), zone默认有9个。

配置文件分别为: block.xml、dmz.xml、drop.xml、external.xml、home.xml、internal.xml、publicxml.trusted.xml、work.xml
存放路径: /usr/lib/firewalld/zones/目录下

Firewalld的默认区域是public

阻塞区域(block)
任何传入的网络数据包都将被阻止
工作区域(work)
可以基本信任网络内的其它计算机不会危害你的计算机,仅接收经过选择的连接
家庭区域(home)
用于家庭网络,可以基本信任网络内的其它计算机不会危害你的计算机
仅接收经过选择的连接
公共区域( public )
不相信网络上的任何计算机,只有选择接受传入的网络连接
隔离区域(DMZ)
隔离区域也称为非军事区域,内外网络之间增加的一层网络,起到缓冲作用
对于隔离区域,只有选择接受传入的网络连接
信任区域(trusted )
所有的网络连接都可以接受
丢弃区域( drop )
任何传入的网络连接都被拒绝
内部区域(internal )
用于内部网络,可以基本信任网络内的其它计算机不会危害你的计算机,仅接收经过选择的连接
外部区域( external )
不能信任来自网络的其它计算,不能信任其他计算机不会对你的计算机造成危害,只能接收经过选择的连接

区域

区域就像进入主机之前的安全,每个区域都具有不同程度的限制规则可以同时使用多个区域,但是每个区域都必须关联ip和接口,默认情况下,public区域是默认区域,包含所有网卡。

firewalled配置方法
1.firewall-config :图形化工具
我们先启动web服务



然后我们访问一下,生效。

2.firewall-cmd:命令行工具

firewall-cmd --atate
查看防火墙的状态
- -get-active-zones
显示正在使用的区域与网卡名称
- -get -default-zone
查询默认的区域名称
- -get zones
显示可用的区域
- -get-services
显示预先定义的服务
- -list-all-zones
显示当前区域的网卡配置参数,资源,端口以及服务等信息
- -set-default-zone={区域名称}
更改默认的区域使其永久生效
- -add-source=
将源自此IP或子网的流量导向某个指定的区域
- -remove-source=
不再将源自此IP或子网的流量导向某个指定的区域
- -add-service={服务名}
设置默认区域允许该服务的流量
- -add-port={端口号/协议}
设置默认区域允许该端口的流量
- -remove-service={服务名}
设置默认区域不再允许该服务的流量
- -remove-port={端口号/协议}
设置默认区域不再允许该端口的流量
- -reload
重新加载,并覆盖当前配置原则
- -panic-on
开启应急状况模式
- -panic-off
关闭应急状况模式
- -permanent
永久设置

iptables配置方法
iptables我们可以将它理解成一个客户端代理,通过这个代理,我们将安全的设定执行到对应的“安全框架”中,这个“安全框架”才是真正的防火墙,即netfilter,也就是说,iptables不是一个真正的防火墙。iptables是按照规则来处理数据包,如:通过 ( accept )、丢弃( drop )等。

iptables四表五链及规则组成
笔者只是主要学习了filter表内容,详细的讲解可以去看这篇博文:https://blog.csdn.net/wfs1994/article/details/89047230

规则表:

raw表
用来流量跟踪
涉及到的链有:PREROUTING、OUTPUT
mangle表
用来流量整形
涉及到的表链有:PREROUTING、INPUT、FOWRWARD、OUTPUT、POSTROUTING
nat表
用来网络地址转换
涉及到的表链有:PREROUTING、POSTROUTING .OUTPUT
filter表
用来过滤表规则,ipables的默认表
涉及到的表链有:INPUT 、FOWRWARD 、OUTPUT

表的作用∶容纳各种规则链
规则表之间的顺序: raw -> mangle -> nat -> filter

规则链:
笔者主要学习的是input和output

input -> 入站数据过滤
output -> 出站数据过滤
forward -> 转发数据过滤
prerouting -> 路由前过滤
postrouting -> 路由后过滤

链的作用:容纳各种防火墙规则
链的分类依据:处理数据包的不同时机

规则链之间的顺序:

入站 : prerouting、input
出站:output、 postrouting
转发 : prerouting、forward、postrouting

规则链内的匹配顺序:

按顺序依次检查,匹配即停止
若找不到相匹配的规则,则按该链的默认策略处理

linux防火墙过滤框架

上图的简单理解就是,当外部主机发送数据包给防火墙的时候,数据将会经过PREROUTING链与INPIIT链,如果是防火墙发送数据包到外部主机,数据就会经过OUTPUT链与POSTROUTING链,如果防火墙作为路由转发数据,则数据将经过PREROUTING链、FORWARD链以及POSTROUTING链。就比如,你的浏览器发送数据,是不是走OUTPUT链,然后走POSTROUTING链。再比如FORWARD链,就好像把你的主机当成一个中转站,我不进来,我不会走你的INPIIT链和OUTPUT链,也就是说,你要想定义中转的规则,那么你就不能把你的规则放到INPIIT链和OUTPUT链之间,因为它不会走。

iptables语法构成
iptables [ -t 表名 ] 选项 [ 链名 ] [ 条件 ] [ -j 控制类型 ]

-j∶数据包的常见类型
ACCEPT : 允许通过
REJECT : 拒绝通过,一定条件下会给出提示
DROP : 直接丢弃,不给出任何回应
LOG : 记录日志信息,然后传给下一条规则继续匹配
-p∶指定协议类型 : tcp、udp、icmp
-m : 表示启用扩展功能,一般和 -p 配合使用

我们写一条规则,不允许外部80端口访问


这里有个地方我们要注意一下,就是我刚才说关闭firewalld,就是打开了iptables,原因在于,我们的iptables是默认情况下,所有的规则都是打开的,是允许的,我们需要自己指定那些地方不可以,但是我们的firewalld是默认都是关闭的,我们想要什么功能,需要自己去打开,所以这可以看作是两者的区别。

Iptables添加新的规则
-A : 在链的末尾追加一条规则
-I∶在链的开头,或指定序号,插入一条规则
-d : 指定IP地址
- -dport : 知道目的端口
Iptables规则查看
-L : 列出所有的规则条目
-n∶以数字形式显示地址、端口等信息
-Ⅰ: 以更详细的方式显示规则信息
- -line-numbers : 查看规则时,吸纳是规则的序号

我们再来瞅瞅上面制定的那个规则哈,下图有笔者自己的理解

删除、清空规则
-D∶删除链内指定序号(或内容)的一条规则
-F:清空所有的规则

总体上这篇博文写的还是很基础的,比较简单,笔者也发现最近的学习往深里的话,需要涉及计算机网络的知识,所以下一篇博文就开始计网的学习了,因为难度大了一些,所以下篇博文的生产日期未知~~,但不会太晚。

文中涉及的资源连接
DOS命令大全(PDF版)
链接:https://pan.baidu.com/s/1Mscy7hhVas6w489Gyn6rPg
提取码:78pm

企业网站管理系统:(放到虚拟机里,物理机defender可能会误杀)
链接:https://pan.baidu.com/s/1kaas5L9Qud5yhKl4KAOnCQ
提取码:yiof

资源来自于笔者自己在网上所找,仅用来学习查阅使用,禁止用来商用版权归该资源的合法拥有者所有

中国奥运加油!

以上是关于一把辛酸泪----菜鸟学DOS和防火墙策略的主要内容,如果未能解决你的问题,请参考以下文章

满纸荒唐言,一把辛酸泪--红楼一梦

打工人的一把辛酸泪,网站提现为啥多于800要扣20%的税?我想这些东西你需要明白

iptables

致我的第一篇博文

《Linux就该这么学》第十课

25岁转行测试之路:破局35岁魔咒,一把鼻涕一把泪,如今终于熬出了头