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

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值