【Redhat系列linux防火墙工具】firewalld与iptables防火墙工具的激烈碰撞 (2)

​ 虽然RHEL7中将默认的防火墙管理工具从iptables换成了firewalld,但在RHEL7中仍然可以使用iptables的,只需要通过yum命令进行安装启用iptables服务即可。换句话说,红帽将这个选择权交给了用户。

下面给出RHEL7的防火墙堆栈

1、firewalld命令行模式 1.1、区域选择

当前操作系统安装完成后,防火墙会设置一个默认区域,将接口加入到默认区域中。用户配置防火墙的第一步是获取默认区域并修改,关于操作如下:

查看当前系统中所有区域

firewall-cmd --get-zones

查看当前默认的区域

firewall-cmd --get-default-zone

查看当前已激活的区域

firewall-cmd --get-active-zones

获取接口ens33所属区域

firewall-cmd --get-zone-of-interface=ens33

修改接口所属区域

firewall-cmd --permanent --zone=internal --change-interface=ens33 1.2、firewalld服务重载、重启、停止

重新加载防火墙配置

firewall-cmd --reload

重启防火墙(redhat系列)

systemctl restart firewalld.service

临时关闭防火墙

systemctl stop firewalld.service

开机启用防火墙

systemctl enable firewalld.service

开机禁止防火墙

systemctl disable firewalld.service

查看firewalld的运行状态

firewall-cmd --state 1.3、firewalld开放端口(public)

公共区域设置开放21端口永久生效并写入配置文件(参数:--permanent)

#参数:--permanent,设置即立刻生效并且写入配置文件 firewall-cmd --zone=public --add-port=21/tcp --permanent

查询防火墙端口21是否开放

firewall-cmd --zone=public --query-port=21/tcp

移除开放的端口21

firewall-cmd --zone=public --remove-port=21/tcp --permanent 1.4、区域规则修改

查询防火墙规则列表

firewall-cmd --zone=public --list-all

新增一条区域规则httpd服务

firewall-cmd --permanent --zone=internal --add-service=http

验证规则

firewall-cmd --zone=internal --list-all 2、firewalld图形化界面

上面的简介也介绍到了firewalld提供了两种管理模式:其一是firewall-cmd命令管理工具,其二是firewall-config图形化管理工具。在之前版本中的iptables将规则保存在文件/etc/sysconfig/iptables中,现在firewalld将配置文件保存在/usr/lib/firewalld和/etc/firewalld目录的xml文件中。

图形化界面中修改接口区域可以使用NetworkManager,也可以使用firewall-config工具。NetworkManager使用方法:打开终端执行命令nm-connection-editor,如下图弹出对话框:

2.1、图形化界面NetworkManager

终端执行:nm-connection-editor

2.2、图形化界面firewall-config

终端执行:firewall-config

三、iptables防火墙工具 1、安装iptables

假如是centos6,默认是安装了iptables。
如果是centos7或者Redhat7系列,默认没有安装iptables。你需要关闭默认启动的firewalld,二选一即可。

临时关闭firewalld

systemctl stop firewalld

开机禁用firewalld

systemctl disable firewalld

开机启用firewalld

systemctl enable firewalld

通过yum在线安装iptables,检查是否安装了iptables

systemctl status iptables.service service iptables status

安装iptables

yum -y install iptables

升级iptables

yum update iptables

安装iptables-services

yum -y install iptables-services.x86_64

设置iptables为开机自启

systemctl enable iptables.service

iptables规则组成

ACCEPT(接收,允许通过)

DROP(丢弃数据包不做任何反馈)

REJECT(丢弃数据包,客户端有对应消息返回)

查询已经设置的规则:-L命令

#一般配合-n命令使用 iptables -L #不显示主机地址 iptables -nL

清除原来设置的规则:-F命令

iptables -F

删除某一条已经设置的规则:-D命令

iptables -D INPUT -p tcp --dport 80 -j ACCEPT 2、场景一放通端口

插入一些规则:-I命令,放通80、22、10~21(一段)这些端口

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

设置某一个固定的IP访问80端口:-s 192.168.xxx.xxx

iptables -I INPUT -p tcp -s (你的IP地址) --dport 80 -j ACCEPT

ssh远程连接本地服务器或者云服务器需要默认启用的端口

iptables -I INPUT -p tcp --dport 22 -j ACCEPT

设置10~21端口开放访问

iptables -I INPUT -p tcp --dport 10:21 -j ACCEPT

设置icmp规则允许访问

iptables -I INPUT -p icmp -j ACCEPT

注意:允许本机可以访问本机,本机访问外网
解决本机可以访问本机(telnet 127.0.0.1 22),添加-i lo(网卡)规则。

设置规则

iptables -I INPUT -i lo -p tcp -j ACCEPT

本机测试访问外网

curl https://www.baidu.com

设置规则

iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

在设置的最后追加一条规则:-A命令
拒绝xx规则

iptables -A INPUT -j REJECT 3、场景二

ftp主动模式下iptables的规则配置(不建议)
ftp被动模式下iptables的规则配置(实际应用,推荐)

4、场景三

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zggzpw.html