+
80
-

linux防火墙firewall与iptables有啥区别?

linux防火墙firewall与iptables有啥区别?


网友回复

+
0
-

CentOS7 的防火墙配置跟以前版本有很大区别,CentOS7这个版本的防火墙默认使用的是firewall,与之前的版本Centos 6.x使用iptables不一样

什么是 iptables?

首先,我们需要知道什么是iptables。大多数高级 IT 专业人员都知道它,并且也曾经使用过它。Iptables 是一个应用程序/程序,允许用户配置 Linux 内核防火墙和链提供的安全或防火墙安全表,以便用户可以相应地向其添加/删除防火墙规则以满足他/她的安全要求。Iptables 使用不同的内核模块和不同的协议,以便用户可以充分利用它。例如,iptables 用于 IPv4(IP 版本 4/32 位),ip6tables 用于 IPv6(IP 版本 6/64 位),用于 tcp 和 udp。通常,iptables 规则由系统管理员或系统分析师或 IT 经理配置。

您必须具有 root 权限才能执行每个 iptables 规则。Linux 内核使用 Netfilter 框架,因此它可以提供各种与网络相关的操作,这些操作可以通过使用 iptables 来执行。

以前,出于相同的目的,ipchains 在大多数 Linux 发行版中使用。每个 iptables 规则都由 Linux 内核本身直接处理,这被称为内核职责。

无论您使用什么 GUI 工具或其他安全工具来配置服务器的防火墙安全性,最终都会将其转换为 iptables 规则并提供给内核以执行操作。

1、基本操作

查看防火墙状态

service iptables status

停止防火墙

service iptables stop

启动防火墙

service iptables start

重启防火墙

service iptables restart

永久关闭防火墙

chkconfig iptables off

永久关闭后重启

chkconfig iptables on

2、开启80端口

vim /etc/sysconfig/iptables

加入如下代码:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

保存退出后重启防火墙

service iptables restart

什么是Firewalld ?

Firewalld 提供动态管理的防火墙,支持定义网络连接或接口信任级别的网络/防火墙区域。它支持 IPv4、IPv6 防火墙设置、以太网桥和 IP 集。运行时和永久配置选项是分开的。它还为服务或应用程序提供了直接添加防火墙规则的接口。

以前带有 system-config-firewall/lokkit 的防火墙模型是静态的,每次更改都需要完全重启防火墙。这还包括卸载防火墙 netfilter 内核模块和加载新配置所需的模块。卸载模块会破坏状态防火墙并建立连接。另一方面,防火墙守护进程动态管理防火墙并应用更改,而无需重新启动整个防火墙。因此无需重新加载所有防火墙内核模块。但是使用防火墙守护进程要求所有防火墙修改都使用该守护进程完成,以确保守护进程中的状态和内核中的防火墙同步。防火墙守护进程无法解析由 iptables 和 ebtables 命令行工具添加的防火墙规则。 因此,firewalld 使用区域和服务而不是链和规则来执行操作,它可以动态管理规则,允许更新和修改,而不会破坏现有的会话和连接。 它具有以下特点。 D 总线 API。

定时防火墙规则。

特定防火墙规则的丰富语言。

IPv4 和 IPv6 NAT 支持。

防火墙区域。

IP 集支持。

拒绝数据包的简单日志。

直接接口。

锁定:将可能修改防火墙的应用程序列入白名单。

支持 iptables、ip6tables、ebtables 和 ipset 防火墙后端。

自动加载 Linux 内核模块。

与木偶集成。

1、查看firewall服务状态

systemctl status firewalld

出现Active: active (running)切高亮显示则表示是启动状态。 出现 Active: inactive (dead)灰色表示停止,看单词也行。 2、查看firewall的状态 firewall-cmd --state 3、开启、重启、关闭、firewalld.service服务

开启

service firewalld start

重启

service firewalld restart

关闭

service firewalld stop

4、查看防火墙规则

firewall-cmd --list-all

5、查询、开放、关闭端口

查询端口是否开放

firewall-cmd --query-port=8080/tcp

开放80端口

firewall-cmd --permanent --add-port=80/tcp

移除端口

firewall-cmd --permanent --remove-port=8080/tcp

#重启防火墙(修改配置后要重启防火墙)

firewall-cmd --reload 参数解释 1、firwall-cmd:是Linux提供的操作firewall的一个工具; 2、–permanent:表示设置为持久; 3、–add-port:标识添加的端口;

CentOS7 切换回iptables

CentOS7 默认使用firewalld防火墙,如果想换回iptables防火墙,可关闭firewalld并安装iptables。 1、关闭firewall:

停止firewall

systemctl stop firewalld.service

禁止firewall开机启动

systemctl disable firewalld.service 查看默认防火墙状态(关闭后显示notrunning,开启后显示running) firewall-cmd --state 2.安装iptables-services yum install iptables-services

3.修改防火墙配置文件

vi /etc/sysconfig/iptables

在修改之前使用telnet命令查看端口是否开放。

1.启动telnet。控制面板–>程序和功能–>打开或关闭windows功能–>勾选Telnet的两个选项。

2.打开cmd窗口,输入telnet,如果端口关闭或者无法连接,则显示不能打开到主机的链接,链接失败;端口打开的情况下,链接成功,则进入telnet页面(全黑的),证明端口可用。

(1)telnet IP 端口。

(2)telnet 域名 端口。

如果成功连接会进入的界面

连接失败

添加端口80、8080、3306、3690端口:

esc :wq! 退出保存修改。 注意:添加在端口22上面或者下面,不要放在最后,不然不起作用。

4.重启防火墙使配置生效

systemctl restart iptables.service 刚刚yum install iptables.service之后系统如果没有重启,iptables.service是找不到的,会报unit not fount。耽误时间的小坑!

设置防火墙开机启动:

systemctl enable iptables.service
我知道答案,我要回答