作者:so直接离我远点儿 | 来源:互联网 | 2023-09-11 16:21
介绍netfilteriptables : IP信息包过滤系统,它实际上由两个组件netfilter和iptables组成。netfilteriptables关系:netfilte
介绍
iptables概述:
netfilter/iptables : IP信息包过滤系统,它实际上由两个组件netfilter 和 iptables 组成。
netfilter/iptables 关系:
netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。
iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。
IP地址规划
主机名 |
eth0 |
eth1 |
作用 |
firewalld |
10.0.0.81 |
172.16.1.81 |
防火墙 |
m01 |
10.0.0.61 |
172.16.1.61 (ifdown) |
批量管理 |
m01通过内网网关(访问firewalld内网IP地址)进行地址转换,从而访问外网。
流程图:
防火墙服务安装部署
[root@firewalld ~]# yum install -y iptables-services
[root@firewalld ~]# systemctl start iptables
修改m01网卡配置
因为是内网访问所以我们无需使用eth0,直接down就可以
[root@m01 ~]# ifdown eth0
[root@m01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth1
UUID=ae935876-ade9-4a88-b7d7-45fb1fc6d690
DEVICE=eth1
ONBOOT=yes
IPADDR=172.16.1.61
PREFIX=24
GATEWAY=172.16.1.81 #网关是firewalld的内网IP地址
DNS1=223.5.5.5 #要有DNS解析,否则无妨上网
修改完需要我们重启eth1网卡:
[root@m01 ~]# ifdown eth1 && ifup eth1
Device ‘eth1‘ successfully disconnected.
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/9)
修改firewalld的网卡配置
forward 表 负责转发流经主机的数据包,起转发的作用,和NAT关系很大
LVS NAT 模式,net.ipv4.ip_forward=0
[root@firewalld ~]# echo "1"> /proc/sys/net/ipv4/ip_forward #修改当前系统内存中ip_forward的值,这是开启ip转发
[root@firewalld ~]# cat /proc/sys/net/ipv4/ip_forward 1
[root@firewalld ~]# sysctl -p
或者:
[root@firewalld ~]# vim /etc/sysctl.conf
#最后一行加上
net.ipv4.ip_forward = 1
[root@firewalld ~]# sysctl -p
firewalld防火墙配置
POSTROUTING: 表示数据包在从一个接口要流出, 做一个地址映射
PREROUTING: 表示数据包在从一个接口要流入, 做一个地址转换
OUTPUT: 表示将防火墙自身产生的数据流量做地址或者端口转换
[root@firewalld ~]# iptables -t nat -A POSTROUTING -s 172.16.1.61 -o eth0 -j SNAT --to-source 10.0.0.81
#将172.16.1.61IP地址转换为10.0.0.81
[root@firewalld ~]# service iptables save #保存设置,将上面的设置写入文件内
[root@m01 ~]# iptables-save #查看内容
# Generated by iptables-save v1.4.21 on Thu Dec 12 11:57:05 2019
*nat
:PREROUTING ACCEPT [97:8398]
:INPUT ACCEPT [29:3621]
:OUTPUT ACCEPT [241:17235]
:POSTROUTING ACCEPT [241:17235]
-A POSTROUTING -s 172.16.1.61/32 -o eth0 -j SNAT --to-source 10.0.0.81
COMMIT
# Completed on Thu Dec 12 11:57:05 2019
# Generated by iptables-save v1.4.21 on Thu Dec 12 11:57:05 2019
*filter
:INPUT ACCEPT [3671:291941]
:FORWARD ACCEPT [369:29004]
:OUTPUT ACCEPT [2777:276150]
COMMIT
# Completed on Thu Dec 12 11:57:05 2019
m01 进行测试:
[root@m01 ~]# ping baidu.com
PING baidu.com (220.181.38.148) 56(84) bytes of data.
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=128 time=430 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=128 time=245 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=3 ttl=128 time=457 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=4 ttl=128 time=255 ms
实验完成,最核心的是iptables的配置,需要用用到nat表中的POSTROUTING