ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

个人笔记:firewalld防火墙

2020-12-15 16:01:13  阅读:183  来源: 互联网

标签:-- cmd firewalld 笔记 防火墙 firewall web01 root port


1.iptables的简单介绍
netfilter:在传输层及传输层以下的所有数据包都需要检测,四表五链
raw:
filter: 数据包过滤
nat: 地址转换
mangle: 标记 TTL
PREROUTING:
INPUT:
OUTPUIT:
FORWARD:
POSTROUTING:
iptables其实一个命令工具,用来修改和编辑多张表的操作. firewall-cmd也可以控制,只不过firewall没有表的概念. 区域的概念.

安全:
物理机:
物理层: 机柜上锁, 温度, 抗震,
网络层: 放行对应端口, 硬件 | 软件 22 80
系统层: 登录密码, 登录的方式 ( openvpn + jumpserver )
应用层: WAF ( Web Application Firewall ) web应用防火墙 ( sql注入 ) HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产

云机器:
	物理层:  不需要考虑,
	网络层:  安全组,端口策略限制,勾选80,443,22,默认拒绝 ( 硬件防火墙虚拟出来的软件防火墙 )
	系统层:  安骑士, 云安全中心,异地登录会有提示
	应用层:  Https  WAF(nginx+lua脚本

2.Firewalld:

区域: 事先预定好了几套模板, 根据不同的场景应用对应的模板就可以了
Linux区域:
drop区域: 黑名单: 默认拒绝所有
public区域: 公共的: 根据设定的规则
trusted区域 : 白名单: 默认允许所有

规则如何设定

	临时生效:   目前生效,重启失效
	永久生效:   目前不生效,重启后生效.
		
既不重启fireewll,又想永久生效,  先设定临时,然后在配置一个永久.
[root@web01 ~]# firewall-cmd --add-port=80/tcp
[root@web01 ~]# firewall-cmd --add-port=80/tcp --permanent
1.查看我目前默认使用的是什么区域:
[root@web01 ~]# firewall-cmd --get-default-zone 
public

2.查看目前使用的区域的规则有哪些:
[root@web01 ~]# firewall-cmd --list-all

1.针对80端口进行放行:   
[root@web01 ~]# firewall-cmd --add-port=80/tcp
[root@web01 ~]# firewall-cmd --remove-port=80/tcp
[root@web01 ~]# firewall-cmd --remove-port=80/tcp --permanent

3.针对服务进行服务:  服务对应的就是端口---> ( 永久--->  --permanent )
[root@web01 ~]# cp /usr/lib/firewalld/services/http.xml /usr/lib/firewalld/services/tomcat.xml
[root@web01 ~]# vim /usr/lib/firewalld/services/tomcat.xml
[root@web01 ~]# firewall-cmd --add-service=http
[root@web01 ~]# firewall-cmd --add-service={http,tomcat}


4.端口映射( 代理模式 ):
		user---> firewalld 6666 ---> web 22

firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>
	
	
比如: 10.0.0.7 6666   --->  172.16.1.51:3306
[root@web01 ~]# firewall-cmd --add-forward-port=port=6666:proto=tcp:toport=3306:toaddr=172.16.1.51
[root@web01 ~]# firewall-cmd --add-masquerade

比如: 10.0.0.7 5555   --->  172.16.1.51:22
[root@web01 ~]# firewall-cmd --add-forward-port=port=5555:proto=tcp:toport=22:toaddr=172.16.1.51
	

2)富规则

规则的格式
rule
    [source]
    [destination]
    service|port|protocol|icmp-block|masquerade|forward-port
    [log]
    [audit]
    [accept|reject|drop]

	rule [family="ipv4|ipv6"]
	source address="address[/mask]" [invert="True"]
	service name="service name"
	port port="port value" protocol="tcp|udp"
	forward-port port="port value" protocol="tcp|udp" to-port="port value" to-addr="address"
	accept | reject [type="reject type"] | drop

	
	
[root@web01 ~]# firewall-cmd --reload		#清空所有的规则,默认就是拒绝.
			
1.比如允许10.0.0.1主机能够访问http服务,允许172.16.1.0/24能访问8080端口
	[root@web01 ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address="10.0.0.1/32" port port="80" protocol="tcp" accept'
	[root@web01 ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address="172.16.1.0/24" port port="8080" protocol="tcp" accept


2.默认public区域对外开放所有人能通过ssh服务连接,但拒绝172.16.1.0/24网段通过ssh连接服务器

	# drop 		不会有任何响应
	# reject: 	会有提示
	
	[root@web01 ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address="172.16.1.0/24" service name="ssh" drop'



3.使用firewalld,允许所有人能访问http,https服务,但只有10.0.0.1主机可以访问ssh服务
	[root@web01 ~]# firewall-cmd --reload
	[root@web01 ~]# firewall-cmd --add-service={http,https}
	[root@web01 ~]# firewall-cmd --remove-service=ssh
	[root@web01 ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address="10.0.0.1/32" service name="ssh" accept'
		
4.使用firewalld,来源是10.0.0.1 的请求将本机的5678端口 映射到  172.16.1.51  22 端口
	[root@web01 ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address="10.0.0.1/32" forward-port port="5678" protocol="tcp" to-port="22" to-addr="172.16.1.51"'
	[root@web01 ~]# firewall-cmd --add-masquerade
		

3.如何利用firewalld共享上网

1.通过172.16.1.51登录目标服务器


2.执行关闭eth0网卡操作
[root@db01 ~]# ifdown eth0


3.修改eth1内网网卡配置,指向172,16,1,7:
[root@db01 ~]# cat  /etc/sysconfig/network-scripts/ifcfg-eth1 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=172.16.1.51
PREFIX=24
GATEWAY=172.16.1.7
DNS1=223.5.5.5
NAME=eth1
DEVICE=eth1
ONBOOT=yes


4.重启eth1网卡:
[root@db01 ~]# ifdown eth1 && ifup eth1

5.检查路由表规则:
[root@db01 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.1.7      0.0.0.0         UG    100    0        0 eth1
172.16.1.0      0.0.0.0         255.255.255.0   U     100    0        0 eth1

			
			
6.将172.16.1.7的firewalld的 forward开启
[root@web01 ~]# firewall-cmd --add-masquerade 
[root@web01 ~]# firewall-cmd --add-masquerade --permanent



7.测试内网主机是否能正常上网
[root@db01 ~]# ping www.baidu.com
PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data.
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=1 ttl=127 time=21.6 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=2 ttl=127 time=6.81 ms
		

标签:--,cmd,firewalld,笔记,防火墙,firewall,web01,root,port
来源: https://blog.csdn.net/xiaoleinb/article/details/109621716

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

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

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

ICode9版权所有