火墙策略(下) & firewalld
来源:互联网 发布:assertequals php 编辑:程序博客网 时间:2024/06/02 10:52
firewalld概念:
RHEL7是一个集合多款防火墙管理工具并存的系统,Firewalld动态防火墙管理器服务(Dynamic Firewall Manager of Linux systems)是目前默认的防火墙管理工具,同时拥有命令行终端和图形化界面的配置工具,即使是对Linux命令不熟悉也能快速入门。
相比于传统的防火墙管理工具还支持了动态更新技术并加入了“zone区域”的概念,简单来说就是为用户预先准备了几套防火墙策略集合(策略模板),然后可以根据生产场景的不同而选择合适的策略集合,实现了防火墙策略之间的快速切换。
例如有一台笔记本电脑每天都要在办公室、咖啡厅和家里使用,按常理推断最安全的应该是家里的内网,其次是公司办公室,最后是咖啡厅,如果需要在办公室内允许文件共享服务的请求流量、回到家中需要允许所有的服务,而在咖啡店则是除了上网外不允许任何其他请求,这样的需求应该是很常见的,在以前只能频繁的进行手动设置,而现在只需要预设好zone区域集合,然后轻轻点击一下就可以切换过去了上百条策略了,极大的提高了防火墙策略的应用效率
常见的zone区域名称及应用可见下表(默认为public):
- 这里,如果确定要拒绝,就要用block,不然drop,对方会一直问,就会更多占用你的系统资源
- 一般ping上面用的是drop
两种火墙策略的比较 :
firewalld和iptables service
firewalld和iptables之间最本质的不同是:
iptables service 在 /etc/sysconfig/iptables 中储存配置
firewalld将配置存储在 /use/lib/firewalld/ 和 /etc/firewalld/ 中的各种XML文件里
还是先了解firewalld策略的参数
--get-default-zone ##查询默认的区域名称。--set-default-zone=<区域名称> ##设置默认的区域,永久生效。--get-zones ##显示可用的区域。--get-services ##显示预先定义的服务。--get-active-zones ##显示当前正在使用的区域与网卡名称。--add-source= ##将来源于此IP或子网的流量导向指定的区域。--remove-source= ##不再将此IP或子网的流量导向某个指定区域。--add-interface=<网卡名称> ##将来自于该网卡的所有流量都导向某个指定区域。--change-interface=<网卡名称> ##将某个网卡与区域做关联。--list-all ##显示当前区域的网卡配置参数,资源,端口以及服务等信息。--list-all-zones ##显示所有区域的网卡配置参数,资源,端口以及服务等信息。--add-service=<服务名> ##设置默认区域允许该服务的流量。--add-port=<端口号/协议> ##允许默认区域允许该端口的流量。--remove-service=<服务名> ##设置默认区域不再允许该服务的流量。--remove-port=<端口号/协议> ##允许默认区域不再允许该端口的流量。--reload ##让“永久生效”的配置规则立即生效,覆盖当前的。
firewalld策略的配置
首先是搭建环境
systemctl stop iptables systemctl disable iptables systemctl mask iptables //将ipyables关闭冻结 systemctl unmask firewalld systemctl start firewalld systemctl enable firewalld //解冻并打开firewalld,设定开机自启
firewall-cmd –get-zones 获取可以选择的域
firewall-cmd –list-all 查看默认的public表 :
- 其中,域的更改不需要reload或者重启服务,是即改即生效,并且是永久的
客户端访问server端的ftp服务:
//现在不能访问
将默认的域设定为trusted
//再次访问,就可以成功了
rpm -qa firewalld //查看下载的文件firewalld-0.3.9-7.el7.noarchrpm -ql firewalld-0.3.9-7.el7.noarch //查看安装的文件
- 发现在/usr/lib/firewalld/services 显示了所有firewalld策略可以添加的服务,都是以xml格式存放的
cd /usr/lib/firewalld/servicesvim ftp.xml <module name="nf_conntrack_ftp"/>
被动模式允许随机的大于1024的端口
lsmod | grep nf
查看ftp开启的这个进程nf_conntrack_ftp
18638 0 ,有这个才能运行vsftpd服务
modprobe -r nf_conntrack_ftp
##删除
重新读取火墙策略就又有了:
也可以直接更改文件来添加策略
各个域的配置文件 /etc/firewalld/zones
[root@iscsi-server zones]# lspublic.xml public.xml.old ROL.xml //因为只写了这些,old放的是之前的打开public.xml,里面对应的行 添加<service name="ftp"/>那么刚刚的进程 nf_conntrack_ftp 18638 0 (文件一旦更改就会产生,但是需要火墙策略读到,不然也没用,在5之前需要手动添加)//会直接运行,但是火墙还没有读到,需要firewalld-cmd --reload就好了对172.25.254.9实现访问信任模式[root@iscsi-server zones]# firewall-cmd --permanent --add-source=172.25.254.9 --zone=trusted [root@iscsi-server zones]# firewall-cmd --permanent --add-source=172.25.254.0/24 --zone=trusted //对172.25.254.0/24网段的添加到信任域删除[root@iscsi-server zones]# firewall-cmd --permanent --remove-source=172.25.254.9 --zone=trusted success[root@iscsi-server zones]# firewall-cmd --permanent --remove-source=172.25.254.0/24 --zone=trusted success
实现网卡的分流
首先设定server端的IP :
eth0 : 172.25.254.109
eth1 : 172.25.9.109
firewall-cmd --permanent --remove-interface=eth1 --zone=public firewall-cmd --permanent --add-interface=eth1 --zone=trusted //注意 : 接口类的更改,需要重启服务,reload不行 !!systemctl restart firewalld.service
以httpd服务为例 :
reload 不会中断当前的链接,是中断以后的链接
–complete-reload 直接全部中断
- 开始使所有网卡都允许apache
- 将eth0转移到不被信任的一方,那么172.25.254.109就无法访问apache了 :
拒绝172.25.254.9 的22端口即ssh访问
在客户端尝试登陆server :
//ssh 端口已经拒绝了
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 ! -s 172.25.254.9 -p tcp --dport 22 -j ACCEPT//除了30,那么30走的是默认//! 表示除了,只是不包含//所以这一条想拒绝172.25.254.9,需要将默认的ssh取消掉,就在默认中拒绝了
重新将eth1网卡转移回到允许ssh的public域中 :
删除需要重启服务生效,然后就又可以访问了
添加火墙伪装策略
firewalld也是从上到下逐条匹配,所有的火墙都是短路规则
通过“ rich language“ 语法,可以用比直接接口方式更易理解的方法建立复杂防火墙策略。此外,还能永久保留设置。这种语言使用关键词值,是iptables工具的抽象表示。这种语言可以用来配合i分区,也仍然支持现行的配置方式
[root@iscsi-server ~]# firewall-cmd --permanent --add-masquerade //让外部的172.25.254.9的22端口即ssh连接时直接将端口指向172.25.9.209,即连接的是client[root@iscsi-server ~]# firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=172.25.254.9 forward-port port=22 protocol=tcp to-port=22 to-addr=172.25.9.209"//可以让172.25.9.209伪装成172.25.254.109[root@iscsi-server ~]# firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=172.25.254.109 masquerade"
重新读取策略生效:
现在,客户端登陆server端,在登陆后显示的IP是172.25.9.209 实际上就是连接的只有私网的主机:
selinux对端口的安全限制
打开httpd服务的主配置文件:/etc/httpd/conf/httpd.conf
将监听的端口设置为 5555
- 此时重启httpd会失败,这是因为selinux允许的端口中没有当前设置的
semanage port -l //查看selinux允许的端口可以选择setenforce 0 //临时变为警告模式,但是此时会不安全
所以我们可以添加selinux允许的端口semanage port -a -t http_port_t -p tcp 5555 //添加端口
//添加上之后再次重启,就成功了
- 火墙策略(下) & firewalld
- Linux火墙策略firewalld
- 火墙(三)【firewalld】
- firewalld火墙设置
- 火墙策略
- firewall火墙策略
- 火墙策略(上) & iptables
- Linux火墙策略iptables
- 火墙——firewalld and iptables
- 火墙
- Fail2ban 删除策略 使用firewalld
- Linux之Redhat中火墙的高级配置------firewalld和iptables
- CentOS7下firewalld使用
- CentOS 7 下使用 Firewalld
- FirewallD
- Firewalld
- firewalld
- firewalld
- 物体碰撞,模拟游戏子弹射中人
- Unity快捷键
- 编号转换
- poj1287 Networking【最小生成树】
- Java四种线程池的使用
- 火墙策略(下) & firewalld
- 【matlab】基本操作
- sklearn----最最终篇------保存于提取
- 达内课程-布局控件之TableLayout和FrameLayout
- js 数组大小排序
- canvas day1
- Java动态代理的两种实现方法
- 各种排序算法的分析及java实现
- Zabbix监控发报警信息到邮件mail