Day: December 28, 2018

centos7上通过firewalld配置网关服务器

使用场景:有多台内网服务器,其中只有一台能够访问外网,但其他内网服务器也希望访问外网 假设内网网段为:192.168.1.0/24 可访问外网的内网服务器的内网IP为:192.168.1.1 可访问外网的内网服务器的内网网络接口为:enoXXXXXXX 在可以访问外网的服务器上做如下配置: 1) 开启ip_forward转发 # 在/etc/sysctl.conf中添加 net.ipv4.ip_forward=1 # 然后让其生效 sysctl -p 2) 转发内网段的流量 执行如下firewalld命令: firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o enoXXXXXXX -j MASQUERADE -s 192.168.1.0/24 firewall-cmd --reload 1 2 之后,在需要访问外网的内网服务器上添加到192.168.1.1的网关即可访问外网了: route add default gw 192.168.1.1 dev enoXXXXXXX 1 如果希望永久有效,可将网关加到网络的配置文件里。 --------------------- 作者:felix_yujing 来源:CSDN 原文:https://blog.csdn.net/felix_yujing/article/details/72834915 版权声明:本文为博主原创文章,转载请附上博文链接!

centos7 利用firewalld自建NAT网关

在传统的网络结构中,每个子网都有一个网关,子网内的主机通过这个网关进行上网,网关进行地址转换,修改IP报文的源地址等,具体的原理有兴趣的百度一下就知道了。 在传统机房内几乎都是有路由器的,而路由器也自带网关的功能,基本用不到自建NAT,但是在如今横行的公有云中,却是有着很大的需求,例如阿里云,阿里云内网中没有公网IP的电脑如何通过有公网IP的电脑进行上网,这就需要NAT网关。其他公有云也类似,这里以阿里云进行举例: 在阿里云的传统网络中,是不支持自建NAT网关,配置SNAT的。只有在专有网络VPC中,才可以。而其实在专有网络中,内网的主机的网络设置,比如网关也是无法修改的,路由表也没法添加修改。根本没办法将内网主机的网关设为专有网络内带有公网IP的主机。 只能通过专有网络中的虚拟路由器,在路由器中添加路由,通过将所有目标请求都指定下一跳到有公网IP的ecs上,这样才可以将内网中的ecs请求都发到有公网ip的ecs上。 实现步骤如下: ## 进入阿里云控制台,专有网络,路由器,创建路由表: centos7 <wbr>利用firewalld自建NAT网关 目标网段设为所有:0.0.0.0/0 下一跳指定ecs实例为专有网络内有公网IP的ecs实例。 ## 在指定的带有公网IP的实例上操作,启动NAT网关的SNAT源地址转换功能。 ## 开启firewalld防火墙,默认是关闭的。 $ systemctl enable firewalld $ systemctl start firewalld ## 网卡默认是在public的zones内,也是默认zones。永久添加源地址转换功能 $ firewall-cmd --add-masquerade --permanent $ firewall-cmd --reload ## 添加网卡的ip转发功能,添加如下配置 $ vim /etc/sysctl.conf ---------------------------------------------------------------------------------------------------------- net.ipv4.ip_forward=1 ---------------------------------------------------------------------------------------------------------- ## 重载网络配置生效 $ sysctl -p OK,到此,自建NAT网关成功,实现了内网主机通过这台机进行上网,而反向的DNAT端口转发也是可以通过firewalld的端口转发功能来实现。 这样就不需要买阿里云的收费NAT网关了。 另:如果不是公有云主机,而是本机机房的话,那就更简单了: ##直接类似的开启可以访问网络的主机的firewalld防火墙源地址转化功能,和网卡的ip_forward转发功能。 ## 内网电脑只需修改网关,指定网关为配置了snat功能的电脑,则可以通过改电脑访问网络。 $ vim /etc/sysconfig/network-scripts/ifcfg-exxxxx ---------------------------------------------------------------------------------------------------------- […]

FirewallD防火墙常用经验——开放端口——拒绝某个IP访问

firewall-cmd --zone=public --add-interface=eth0 --permanent 添加网卡eth0到public区域,永久生效 firewall-cmd --zone=public --remove-interface=eth0 --permanent 删除网卡eth0到public区域,永久生效 firewall-cmd --get-active-zone 查看系统所有网卡所在的zone firewall-cmd --zone=public --remove-port=80/tcp --permanent 永久关闭public区域的80端口,其他区域其他端口可以类推,--permanent这个参数是永久生效 firewall-cmd --zone=public --add-port=80/tcp --permanent 永久开放public区域的80端口,其他区域其他端口可以类推,--permanent这个参数是永久生效 firewall-cmd --reload 重新载入防火墙设置不破坏现有连接。 firewall-cmd --list-services 查看开放了哪些服务 firewall-cmd --zone=public --list-ports 查看public区域开放了哪些端口,其他区域类推改名就行 查看版本: firewall-cmd --version 查看帮助: firewall-cmd --help 显示状态: firewall-cmd --state 查看所有打开的端口: firewall-cmd --zone=public --list-ports 更新防火墙规则: firewall-cmd --reload 查看区域信息: firewall-cmd --get-active-zones 查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0 拒绝所有包:firewall-cmd […]