栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

CentOS下载iptables-services代替firewalld使用,更改虚拟机的网关(从NAT模式变为仅主机模式), 使用iptables配置防火墙(白名单和黑名单)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CentOS下载iptables-services代替firewalld使用,更改虚拟机的网关(从NAT模式变为仅主机模式), 使用iptables配置防火墙(白名单和黑名单)

目录

关闭firewalld,下载iptables并使用。

更改虚拟机的网关(从NAT模式变为仅主机模式)

 使用iptables配置防火墙

配置白名单

 配置黑名单


注意:在这里我使用MobaXterm(一个ssh客户端)对虚拟机进行远程操作。

下载网址:MobaXterm free Xserver and tabbed SSH client for Windowshttps://mobaxterm.mobatek.net/

同个主机同个模式的虚拟机一开始可以直接ping通。因为我这里只有一台主机,我通过改变虚拟机的模式来使虚拟机一开始无法ping通。

由于CentOS 7没有iptables这个服务,只有firewalld。我们需要关闭firewalld,下载iptables并使用。

关闭firewalld,下载iptables并使用。

1、关闭firewalld,systemctl stop firewalld

 2、禁止firewalld开机自启动,systemctl disable firewalld

 3、下载安装iptables服务(yum install iptables-services),图中显示已经安装

更改虚拟机的网关(从NAT模式变为仅主机模式)

ping不通网关的原因有3点:(1)网关配置不对(没有与主机的VMnet1的IPv4地址一致)(2)NetManager没有关闭(使用systemctl stop NetworkManager关闭)(3)主机的防火墙没有关闭,影响了虚拟机的数据包传递(在网络与Internet设置中关闭windows防火墙)。

1、在虚拟机的设置中将网络适配器改为VMnet1(仅主机模式)

 2、查看主机VMnet1的网关和子网掩码

(1)进入网络和Internet设置,点击更改适配器选项,双击VMnet1,查看详细信息

 

(2)图中IPv4地址即虚拟机网关为169.254.62.138(本地IP【DHCP没办法分配到ip】,原因是没有有效的ip配置),子网掩码为255.255.0.0

 

(3)重启虚拟机,编辑/etc/sysconfig/network-scripts中的ifcfg-ens33文件,如图

 (4)关闭NetworkManager,重启网络服务

 (5)ping网关169.254.62.138和目的虚拟机192.168.146.141

 在此,你会发现ping不通192.168.146.141,本质原因是两台虚拟机不在同个网段中。可以通过防火墙解决。

 使用iptables配置防火墙

注意:白名单是所有的主机不能访问,唯独我们配置的主机可以访问,因此要修改默认的INPUT为DROP状态,使用iptables -t filter -P INPUT DROP。

黑名单是所有的主机能访问,唯独我们配置的主机不可以访问,因此要修改默认的INPUT为ACCEPT状态,使用iptables -t filter -P INPUT ACCEPT。

现有三台虚拟机:192.168.146.141-143,进行操作前需要关闭NetworkManager服务。

配置白名单

我们要实现192.168.146.141ping通192.168.146.142。(ping用得协议是ICMP,ICMP没有端口)

在192.168.146.141的iptables中编辑。

1、使用cd /etc/sysconfig进入sysconfig文件夹,ls查看所有文件列表

2、输入iptables -t filter -P INPUT DROP,修改默认的INPUT为DROP状态,并采用iptables -L -v -n查看此时INPUT的policy为DROP。

3、service iptables save保存刚刚的更改

4、使用vi iptables在文件中加入白名单主机(192.168.146.142)

(1)vi iptables

(2)将-A INPUT -p icmp -j ACCEPT改为-A INPUT -s 192.168.146.142 -p icmp -j ACCEPT。

-s 192.168.146.142表示ip 192.168.146.142。-s 192.168.146.142/24表示的是192.168.146.XXX的所有主机。

(3)输入wq!保存文件

 5、输入service iptables restart重启iptables服务

 6、(1)用192.168.146.141和192.168.146.142互ping,发现两边都可以ping通

 (2)用192.168.146.141可以ping通192.168.146.143,但192.168.146.143无法ping通192.168.146.141。原因:192.168.146.141只限制了INPUT,没有限制OUTPUT,而且141的iptables文件中-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT允许接受回包,因此141可以ping通143,143不能ping通141。

注意:如果要使141不可以ping通143,可以删除回包语句,但这会影响业务的运行。

 配置黑名单

我们要实现192.168.146.142ping通192.168.146.141。

1、使用cd /etc/sysconfig进入sysconfig文件夹,ls查看所有文件列表

2、输入iptables -t filter -P INPUT ACCEPT,修改默认的INPUT为ACCEPT状态,并采用iptables -L -v -n查看此时INPUT的policy为ACCEPT。

3、service iptables save保存刚刚的更改

4、使用vi iptables在文件中加入黑名单主机(192.168.146.142)

(1)vi iptables

(2)在-A INPUT -p icmp -j ACCEPT语句后加入-A INPUT -s 192.168.146.142 -p icmp -j DROP限制192.168.146.142连接141。(如果删除-A INPUT -p icmp -j ACCEPT这条语句,143ping141的包会因为只能匹配到最后一条语句而被拒绝)。

注意:-A INPUT -p icmp -j ACCEPT必须在-A INPUT -s 192.168.146.142 -p icmp -j DROP语句之前。

-s 192.168.146.142表示ip 192.168.146.142。-s 192.168.146.142/24表示的是192.168.146.XXX的所有主机。

(3)输入wq!保存文件

 5、输入service iptables restart重启iptables服务

 6、(1)用192.168.146.141和192.168.146.143互ping,发现两边都可以ping通

 (2)用192.168.146.141可以ping通192.168.146.142,但192.168.146.142无法ping通192.168.146.141。原因:192.168.146.141只限制了INPUT,没有限制OUTPUT,而且141的iptables文件中-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT允许接受回包,因此141可以ping通142,142不能ping通141。

注意:如果要使141不可以ping通143,可以删除回包语句,但这会影响业务的运行。

参考文献:

iptables详解 - 简书iptables简介 netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的...https://www.jianshu.com/p/8b0642cf8d34?utm_campaign=hugo

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/320309.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号