第十七章·Firewalld防火墙实战
防火墙安全基本概述:
在CentOS7系统中集成了多款防火墙管理工具,默认启用的是firewalld(动态防火墙管理器)防火墙管理工具,Firewalld支持CLI(命令行)以及GUI(图形)的两种管理方式。
对于接触Linux较早的人员对Iptables比较熟悉,但由于Iptables的规则比较的麻烦,并且对网络有一定要求,所以学习成本较高。但firewalld的学习对网络并没有那么高的要求,相对iptables来说要简单不少,所以建议刚接触CentOS7系统的人员直接学习Firewalld。
需要注意的是:如果开启防火墙工具,并且没有配置任何允许的规则,那么从外部访问防火墙设备默认会被阻止,但是如果直接从防火墙内部往外部流出的流量默认会被允许。
firewalld只能做和IP/port相关的限制,web相关的限制无法实现
防火墙使用区域管理
那么相较于传统的Iptables防火墙,firewalld支持动态更新,并加入了区域zone的概念
简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据不同的场景选择不同的策略模板,从而实现防火墙策略之间的快速切换。
类似于下方window设置:
需要注意的是Firewalld中的区域与接口
一个网卡仅能绑定一个区域, eth0 -->A区域 A区域-->eth0 eth1 eth2 但一个区域可以绑定多个网卡。 还可以根据来源的地址设定不同的规则。比如:所有人能访问80端口,但只有公司的IP才允许访问22端口
区域选项 | 默认规则策略 |
---|---|
trusted | 允许所有的数据包流入流出 |
home | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、mdns、ipp-client、amba-client与dhcpv6-client服务相关,则允许流量 |
internal | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、mdns、ipp-client、amba-client与dhcpv6-client服务相关,则允许流量 |
work | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、、ipp-client、与dhcpv6-client服务相关,则允许流量 |
public | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh和dhcpv6-client服务相关,则允许流量 |
external | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssht服务相关,则允许流量 |
dmz | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssht服务相关,则允许流量 |
block | 拒绝流入的流量,除非与流出的流量相关 |
drop | 拒绝流入的流量,除非与流出的流量相关 |
重点记住3大区域:
- trusted:允许所有流量的入站规则
- public:公共区域,默认允许ssh和dhcpv6-client
- drop:拒绝所有流流量的入站规则
防火墙基本指令参数
参数 | 作用 |
---|---|
zone区域相关的指令 | |
--get-default-zone | 获取默认的区域名称 |
--set-default-zone=<区域名称> | 设置默认的区域,使其永久成效 |
--get-active-zones | 显示当前正在使用的区域与网卡名称 |
--get-zones | 显示总共可用的区域 |
--get-zone= | 新增区域 |
services服务相关命令 | |
--get-services | 列出服务列表中所有可管理的服务 |
--add-service= | 设置默认区域允许该添加服务的流量 |
--remove-service= | 设置默认区不允许该删除服务的流量 |
port端口相关指令 | |
--add-port=<端口号/协议> | 设置默认区域允许该添加端口的流量 |
--remove-port<端口号/协议> | 设置默认区域不允许该删除端口的流量 |
Interface网站相关指令 | |
--add-interface=<网卡名称> | 将源自该网卡的所有流量都导向某个指定区域 |
--change-interface=<网卡名称> | 将某个网卡与区域进行关联 |
其他相关指令 | |
--list-all | 显示当前区域的网卡配置参数、资源、端口以及服务等信息 |
--reload | 让"永久生效"的配置规则立即生效,并覆盖当前的默认规则 |
防火墙区域配置策略
1.为了能正常使用firewalld服务和相关工具去管理防火墙,必须启动firewalld服务,同时关闭以前旧的防火墙相关服务,需要注意firewalld的规则分为两种状态:
runtime运行时: 修改规则马上生效,但如果重启服务则马上失效,测试建议。
permanent持久配置: 修改规则后需要reload重载服务才会生效,生产建议。
#1. 禁用旧版防火墙服务或保证没启动
[root@web01 ~]# systemctl mask iptables
Created symlink from /etc/systemd/system/iptables.service to /dev/null.
[root@web01 ~]# systemctl mask ip6tables
Created symlink from /etc/systemd/system/ip6tables.service to /dev/null.
#2. 启动firewalld防火墙,并加入开机自启动服务
[root@m01 ~]# systemctl start firewalld
[root@m01 ~]# systemctl enable firewalld
2.firewalld启动后,我们需要知道使用的是什么区域,区域的规则明细又有哪些?
#1. 了解我们使用的是哪个区域
[root@m01 ~]# firewall-cmd --get-default-zone
public
#2. 使用--list-all 获取当前默认区域的规则
[root@m01 ~]# firewall-cmd --list-all
public (active)
target: default #目标:默认
icmp-block-inversion: no #ICMP-块:没有
interfaces: eth0 eth1 #绑定网卡
sources: #资料来源:
services: ssh dhcpv6-client #开放服务
ports: #端口
protocols: #协议
masquerade: no #ip伪装
forward-ports: #端口转发
source-ports: #来源端口
icmp-blocks:
rich rules: #更多规则
3.使用firewalld各个区域规则结合配置,调整默认public区域拒绝所有流量,但如果来源IP是10.0.0.0/24网段则允许
#1. 可以临时移除默认区域的规则策略
[root@m01 ~]# firewall-cmd --remove-service=ssh --remove-service=dhcpv6-client
success
#2. 添加10.0.0.0/24网段加到白名单
[root@m01 ~]# firewall-cmd --add-source=10.0.0.0/24 --zone=trusted
success
#必须根据来源的地址设定,给其添加至一个规则,这样才能做到多区域。
5.检查当前活动的区域
[root@m01 ~]# firewall-cmd --get-active-zone
public
interfaces: eth1 eth0 #任何来源网段都走public默认区域规则(除了10网段)
trusted
sources: 10.0.0.0/24 #来源是10网段则走trusted区域规则
4.查询public区域是否语序请求SSH HTTPS协议的流量
[root@m01 ~]# firewall-cmd --zone=public --query-service=ssh
yes
[root@m01 ~]# firewall-cmd --zone=public --query-service=https
no
#!/bin/bash
service_name=$1
res=`firewall-cmd --zone=public --queryservice=$service_name`
if [ $res == 'no' ];then
firewall-cmd --zone=public --add-service=$service_name
else
echo "$service_name 已经被放行,无需重复执行..."
fi
5. 清理临时的防火墙配置
[root@m01 ~]# firewall-cmd --reload
success
防火墙配置放行策略
注意: --permanent 如果添加则代表永久,否则都算临时
firewalld放行服务
[root@m01 ~]# yum install -y httpd
[root@m01 ~]# systemctl start httpd
#浏览器访问失败
[root@m01 ~]# firewall-cmd --add-service=http
success
#浏览器访问成功
[root@m01 ~]# firewall-cmd --remove-service=http
#浏览器访问失败
firewalld放行端口
[root@m01 ~]# firewall-cmd --add-port=80/tcp
浏览器访问成功
[root@m01 ~]# firewall-cmd --remove-port=80/tcp
浏览器访问失败
firewalld放行自定义服务
##1.复制ssh.xml
[root@m01 ~]# cp /usr/lib/firewalld/services/{ssh,keep}.xml
## 添加自定义服务的xml文件
[root@m01 ~]# vim /usr/lib/firewalld/services/keep.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>sersync</short>
<description>xxx .... sersync....</description>
<port protocol="tcp" port="874"/>
</service>
#2.重载firewalld
[root@m01 ~]# firewall-cmd --reload
success
#3.添加自定义后的服务名
[root@m01 ~]# firewall-cmd --add-service=sersync
success
防火墙端口转发策略
端口转发是指传统的目标地址映射,实现外网访问内网资源,流量转发命令格式为:firewalld-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>
如果需要将本地的10.0.0.61:5555端口转发至后端172.16.1.9:22端口
1.firewalld实现端口转发(端口映射)只能转发tcp相关的服务
## 端口转发公式
firewalld-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议
>:toport=<目标端口号>:toaddr=<目标IP地址>
#1.添加端口转发
[root@m01 ~]# firewall-cmd --add-forward-port=port=2222:proto=tcp:toport=22:toaddr=172.16.1.7
success
#2.开启伪装ip
[root@m01 ~]# firewall-cmd --add-masquerade
success
#3.查看区域配置
[root@m01 ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth1 eth0
sources:
services: ssh dhcpv6-client
ports:
protocols:
masquerade: yes
forward-ports: port=2222:proto=tcp:toport=22:toaddr=172.16.1.7
source-ports:
icmp-blocks:
rich rules:
#4.实现转发测试
防火墙富语言规则策略
firewalld中的富语言规则表示更细致,更详细的防火墙策略配置,他可以针对系统服务、端口号、原地址和目标地址等诸多信息进行更有针对性的策略配置,优先级在所有的防火墙策略中也是最高的,下面为firewalld富语言规则帮助手册
[root@m01 ~]# man firewall-cmd
[root@m01 ~]# man firewalld.richlanguage
rule
[source]
[destination]
service|port|protocol|icmp-block|icmp-type|masquerade|forward-port|source-port
[log]
[audit]
[accept|reject|drop|mark]
rule [family="ipv4|ipv6"]
source address="address[/mask]" [invert="True"]
service name="service name"
port port="port value" protocol="tcp|udp"
protocol value="protocol value"
forward-port port="port value" protocol="tcp|udp" to-port="port value" to-addr="address"
accept | reject [type="reject type"] | drop
#富语言规则相关命令
--add-rich-rule='<RULE>' #在指定的区域添加一条富语言规则
--remove-rich-rule='<RULE>' #在指定的区删除一条富语言规则
--query-rich-rule='<RULE>' #找到规则返回0,找不到返回1
--list-rich-rules #列出指定区里的所有富语言规则
1.比如允许10.0.0.1主机能够访问http服务,允许172.16.1.0/24能访问10050端口
[root@m01 ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address="10.0.0.1" service name=http accept'
[root@m01 ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address="172.16.1.0/24" port port="10050" protocol="tcp" accept'
2.默认public区域对外开放所有人能通过ssh服务连接,但拒绝172.16.1.0/24网段通过ssh连接服务器
[root@m01 ~]# 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@m01 ~]# firewall-cmd --remove-service=ssh
[root@m01 ~]# firewall-cmd --add-service={http,https}
[root@m01 ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=10.0.0.1/32 service name=ssh accept'
4 当用户来源IP地址是10.0.0.1主机,则将用户请求的5555端口转发至后端172.16.1.7的22端口
[root@m01 ~]# firewall-cmd --add-masquerade
[root@m01 ~]# firewall-cmd --add-rich-rule='rule family="ipv4" source address="10.0.0.1" forward-port port="5555" protocol="tcp" to-port="22" to-addr="172.16.1.7"'
5.查看设定的规则,如果没有添加--permanent参数则重启firewalld会失效。富规则按先后顺序匹配,按先匹配到的规则生效
[root@m01 ~]# firewall-cmd --list-rich-rules
rule family="ipv4" source address="10.0.0.1" service name="http" accept
rule family="ipv4" source address="172.16.1.0/24" service name="ssh" drop
rule family="ipv4" source address="10.0.0.1" service name="ssh" accept
rule family="ipv4" source address="10.0.0.1" forward-port port="5555" protocol="tcp" to-port="22" to-addr="172.16.1.9"
防火墙规则的备份
我们所有针对public区域编写的永久添加的规则都会写入备份文件(--permanent) /etc/firewalld/zones/public.xml
防火墙开启内部上网
在指定的带有公网IP的实例上启动Firewalld防火墙的NAT地址装换,以此达到内部主机上网
防火墙开启IP伪装
[root@Firewalld ~]# firewall-cmd --add-masquerade --permanent
[root@Firewalld ~]# firewall-cmd --reload
防火墙开启内核转发
#配置内核转发
[root@m01 ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
#在CentOS6中开启之后生效命令
[root@m01 ~]# sysctl -p
#查看内核转发是否开启
[root@m01 ~]# sysctl -a|grep net.ipv4.ip_forward
net.ipv4.ip_forward = 1
客户端内网地址配置网关
客户端将网关指向firewalld服务器,将所有网络请求交给firewalld
[root@web03 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
GATEWAY=172.16.1.61
客户端配置DNS服务器
[root@web03 ~]# cat /etc/resolv.conf
nameserver 223.5.5.5
重启网络,使其配置生效
[root@m01 ~]# ifdown eth1
Device 'eth1' successfully disconnected.
[root@m01 ~]# ifup eth1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
[root@web03 ~]# nmcli connection reload
[root@web03 ~]# nmcli connection down eth1 && nmcli connection up eth1
测试后端web的网络是否正常
[root@web03 ~]# ping baidu.com
PING baidu.com (123.125.115.110) 56(84) bytes of data.
64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=1 ttl=127 time=9.08 ms
防火墙iptables如何让没有公网的机器上网
###外网服务器上
#1.启动iptables:
[root@m01 ~]# /etc/init.d/iptables start
#2.开启内核转发
[root@m01 ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
#3.完成后,使其生效
[root@m01 ~]# sysctl -p
#4.开启流量转发
[root@m01 ~]# iptables -t nat -A POSTROUTING -s 172.16.1.0/255.255.255.0 -j SNAT --to 10.0.0.61
#5.开启IP伪装
[root@m01 ~]# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#6.保存防火墙规则
[root@m01 ~]# /etc/init.d/iptables save
###内网客户端服务器上
#1.编辑eth1网卡
[root@web03 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
GATEWAY=172.16.1.61
#2.配置DNS
[root@web03 ~]# cat /etc/resolv.conf
nameserver 223.5.5.5
#3.关闭eth0;重启eth1
[root@web03 ~]# ifdown eth0
[root@web03 ~]# ifdown eth1
[root@web03 ~]# ifup eth1
#4.查看网关
[root@web03 ~]# route -n
172.16.1.61
#5.检测网络
[root@web03 ~]# ping www.baidu.com
Comments | 2 条评论
博主 דירות דיסקרטיות בצפון
אם פעם כדי למצוא נערות ליווי במרכז היה צריך לצאת מהבית, להתאמץ ולחפש, כיום כאמור כל
התהליך מתבצע דרך האינטרנט, מה שאומר שהפרטיות שלכם נשמרת לאורך כל הדרך.
גם אם תזמינו עיסוי מפנק לבית המלון שבו אתם שוהים בבירה, האווירה תשתנה, האורות יתעממו ונרות ריחניים יהיו בכמה פינות החדר, אתם תשכבו רק
עם מגבת על גופכם שתרד אט, אט, ככל שהעיסוי יעבור לחלקים השונים בגוף.
נערות ליווי בקיסריה להזמנה לביתך או לבית המלון בהקדם האפשרי ותוך שמירה
על פרטיות ודיסקרטיות מלאה. לעתים,
ישנה הזדמנות שלא חוזרת על עצמה ונערת ליווי בקיסריה
שלא תפגשו אולי יותר. אך אם אתם מעוניינים בעיסוי מפנק בקרית אתא לצורכי הנאה ורגיעה או לרגל אירוע שמחה
מסוים, תוכלו לקרוא במאמר זה על שלושה סוגי עיסויים אשר מתאימים למטרה זו ויעניקו לכם יום בילוי מפנק ואיכותי במיוחד אשר סביר להניח
שתרצו לחזור עליו שוב כבר בשנה שאחרי.
כיצד מבצעים סוגי עיסוי שונים בעזרתם תוכלו גם להתפנק וגם לשחרר את הגוף.
להגיע אחרי שהתפנתם: אין דבר מעצבן יותר מטיפול עיסוי שנקטע בגלל שצריך ללכת לשירותים, דאגו לעשות זאת לפני.
אין כל חשיבות ללוקיישן בו תקבלו את העיסוי בכל הקשור לשאלון הבריאות.
博主 israelnightclub.com דירות דיסקרטיות בקריות
אנו שמחים להציג בפניכם מעסים שונים המבצעים עיסויים בראש העין שונים.
בישראל יש לנו באתר שלנו את הבחירה
הטובה ביותר של מעסים אמתיים הצפון,
כולל בערים חיפה וקריות, בנצרת, טבריה, עפולה,
ואחרות. מובן שכל אחד שבוחר שירות דירות דיסקרטיות בקריות, יש לו
סיפור משל עצמו, והוא מעוניין לחוות ריגוש מסתורי כדי לרענן את שגרת חייו.
דירות דיסקרטיות בדרום נותנות לכם את הסביבה
הנעימה והמפנקת לבילוי נערות ליווי בטבריה חושני תוך כדי שמירה על הפרטיות שלכם.
אתם מחליטים על קצב הטיפול,
על נקודות המגע ועל הסגנון. יצירת האווירה כוללת מתודות
מהפנג שווי לארגון וסידור סביבת הטיפול, הדלקת נרות ועמעום אורות לתחושת דמדומים, מוזיקה מרגיעה
המושמעת בזמן העיסוי מפנק בראש העין , הדלקת קטורות ושימוש בשמנים ריחניים להענקת תחושת רוגע, חימום החדר וכמובן מגע העיסוי מפנק.
כך לדוגמא, בעת שאתם מעוניינים לעבור עיסוי בראש העין המתמקד אך ורק בראש, או לחילופין בעיסוי המתמקד באזור הכתפיים.
עיסוי מפנק בראש העין משולב
הוא שם כולל למגוון עיסויים מפנקים העושים שימוש בשיטות העיסוי מפנק בראש
העין הידועות בתוספות טכניקות ייחודיות שפותחו בעידן המודרני.
התייעצות עם אנשי מקצוע: אם יש יצא לכם להסתייע בעבר
באנשי מקצוע מתחומים מקבילים באזור, כמו למשל רפלקסולוגים, מעסים רפואיים ומטפלים אלטרנטיביים בשיטות שונות, תוכלו בהחלט לשאול אותם לגבי עיסוי ארוטי בראש העין ואם הם אכן מכירים מקום
כזה, סביר להניח שזה יהיה מקום מקצועי שייתן לכם שירות טוב.