赞
踩
目录
1、与iptables不同
2、配置防火墙
3、firewalld区域概念
4、filewalld 配置生效
5、firewalld服务
firewalld 端口映射
富规则 rich-rule
- firewalld采用区域和服务管理,而不是链式规则
- 动态管理规则,允许更新规则而不破坏原有会话与连接
- firewall-cmd 命令行模式 推荐使用
- firewall-config(如果没装图形化界面就不行)
- vi /etc/firewalld/firewalld.conf
# (查看状态) # firewall-cmd --state #(更新配置) # firewall-cmd --reload
- 1
- 2
- 3
- 4
- 5
zone
- trusted 信任区域 默认允许所有流量传入
- public 公共区域 (默认区域)默认允许ssh 服务 dhcp
- external 外部区域 默认允许ssh其余均拒绝
- home 家庭区域 有ssh, 预定于服务等
- internal 内部区域 默认允许ssh 服务 dhcp服务等
- work 工作区域 默认ssh
- dmz 隔离区
- block 限制区域 默认拒绝所有流量传入
- drop 丢弃区域 默认丢弃所有流量传入
工作原理 :
管理数据包时:
1、先根据数据包的源IP进行相应区域的防火墙规则匹配; 如果源地址关联到特定的区域,则按特定区域的规则执行;
如果未关联到特定的区域,则按默认区域的规则执行。2、根据传入的网络接口,进行相应区域的防火墙规则匹配; 如果源地址关联到特定的区域,则按特定区域的规则执行;
如果未关联到特定的区域,则按默认区域的规则执行。绑定源地址的区域规则 > 网卡绑定的区域规则> 默认区域规则
运行时配置:
- 不中断现有连接
- 不能修改服务配置
永久配置
- 不立即生效,除非重启或者重新加载配置
- 不中断现有连接
- 可以修改服务配置
- 注意: 添加–permanent选项,表示永久配置 ,但是 需要重启firewalld 或者 重新加载–reload
,如果 不带这个选项,则表示用于设置运行时配置,这些规则在系统重启,firewalld重启,或者重新加载后失
效,需要将运行时配置永久生效,则需要将运行时配置规则写入配置文件中,执行firewall-cmd – runtime-to-permanent。
# systemctl status firewalld # systemctl start firewalld # systemctl enable firewalld # 显示所有可用区域 # firewall-cmd --get-zones # 显示当前默认区域 # firewall-cmd --get-default-zone # 设置默认区域 # firewall-cmd --set-default-zone=public # 显示当前使用的区域和对应网卡 # firewall-cmd --get-active-zones # 显示指定接口绑定的区域 # firewall-cmd --get-zone-of-interface=ens33 # 为指定接口绑定区域 # firewall-cmd --zone=dmz --add-interface=ens37 # 为指定的区域更改绑定的网络接口 # firewall-cmd --zone=dmz --change-interface=ens33 # 为指定的区域删除绑定的网络接口 # firewall-cmd --zone=dmz --remove-interface=ens37 # 查看默认区域设置 # firewall-cmd --list-all # 查看指定的区域设置 # firewall-cmd --zone=dmz --list-all # 显示指定区域可以访问的服务 # firewall-cmd --zone=public --list-services # 显示系统预定义的服务名 # firewall-cmd --get-service # 为指定区域添加允许访问的服务 # firewall-cmd --zone=public --add-service=http # 为指定区域删除允许访问的服务 # firewall-cmd --zone=public --remove-service=http # 添加多个服务 # firewall-cmd --zone=public --add-services={http,https,redis,ssh} # 永久生效,运行时配置结束后统一执行 # firewall-cmd --runtime-to-permanent # 永久生效,需要在设置时加--permanent选项,但是并不是运行时生效,需要重启启动firewalld或者重 新reload # firewall-cmd --permanent --zone=public --add-services=http # firewall-cmd --reload 或者 systemctl restart firewalld # 显示指定域中允许访问的端口 # firewall-cmd --zone=public --list-port # 位指定域中添加允许访问的端口 # firewall-cmd --zone=public --add-port=22/tcp --add-port=80-100/tcp #位指定域中删除允许访问的端口 # firewall-cmd --zone=public --remove-port=22/tcp --remove-
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
port=80-100/tcp
如果执行命令显示success但是效果没有出现,使用firewall-cmd --reload
# 设置禁止来源IP为192.168.100.134的ip地址访问 # firewall-cmd --add-source=192.168.100.134/24 --zone=drop
- 1
- 2
–类似于iptables中
DROP
# firewall-cmd --add-source=192.168.100.134/24 --zone=block
–类似于iptables中
REJECT# 设置允许来源IP为192.168.100.134的ip地址访问 # firewall-cmd --add-source=192.168.100.134/24 --zone=trusted # 地址转发端口映射 # firewall-cmd --zone=public --add-forward-
- 1
- 2
- 3
- 4
- 5
port=port=80:proto=tcp:toport=8080
# firewall-cmd --zone=public --remove-forward-
- 1
port=port=80:proto=tcp:toport=80:toaddr=192.168.100.134
(在访问添加了这个规则的ip的数据包会转发到192.168.100.134的80端口)
当你修改了http配置文件(改端口为8080,并且重启了httpd),也添加了转发端口映射,查看服务也有http服务,为什么curl还是不通?
因为没对外没有提供相应的8080端口;
虽然系统起的是8080端口,但是对外来说我们的端口是80端口,必须通过80端口连进来,在、才能经过映射访问到8080端口;
所以没添加8080端口,却访问了8080端口是不行的;![](https://img-
blog.csdnimg.cn/a53d11be76b848d4b127c84538afab7c.png)![](https://img-
blog.csdnimg.cn/d523923e241a4bcea0031876a036af21.png)
如果添加了8080端口,直接用8080端口进行httpd访问,而不是通过连接80端口再经端口映射转发从8080端口进行访问;
只用firewalld的服务以及端口进行配置的时候限制比较多;为了解决这一问题,所以用富规则;
# 查看帮助手册 # man 5 firewalld.richlanguage # 列出富规则 # firewall-cmd --list-rich-rule # 添加富规则 # firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.100.134" accept' (添加富规则,允许192.168.100.134访问) # firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.100.134" port port=22 protocol=tcp reject' (拒绝来自这个ip的22端口的访问) # 删除富规则 # firewall-cmd --zone=public --remove-rich-rule 'rule family="ipv4"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
source
address=“192.168.100.134” forward-port port=80 protocol=tcp to-port=8080
’
请求连接时被拒绝;
接下来我将给各位同学划分一张学习计划表!
那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:
接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。
综合薪资区间6k~15k
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?
综合薪资区间15k~30k
7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。
零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;
Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完
用Python编写漏洞的exp,然后写一个简单的网络爬虫
PHP基本语法学习并书写一个简单的博客系统
熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)
了解Bootstrap的布局或者CSS。
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。