一、 防火墙
- 硬件: 整个企业入口
-
- 三层路由: H3C 华为 Cisco(思科) 、
- 防火墙: 深信服,奇安信,绿盟.....
- Juniper
- 软件: 开源软件 网站内部 封ip 封ip
-
- iptables 写入到Linux内核中 以后服务工作在 4层(大部 分)
- firewalld C7 底层也是iptables.
- nftalbes C8
- ufw (ubuntu firewall) Ubuntu
- 云防火墙(公有云)
-
- 阿里云:
-
-
- 安全组 (封ip,封端口)
- NAT网关(共享上网,端口映射....)
- waf应用防火墙 waf防火墙(应用防火墙,处理7层的攻击) SQL注入,等攻击.
-
-
- 书写规则(描述攻击过程,关键提示,关键操作.)
企业选型建议:
中小企业: 使用公有云,安全组,waf防火墙,态势感知.
访问量巨大: 使用硬件防火墙,waf防火墙,硬件服务器+云服务器
二、 iptables 执行过程
工作流程小结:
1. 防火墙是层层过滤的,实际是按照配置规则的顺序从上到下,从前到后 进行过滤的。
2. 如果 匹配成功规则,即明确表示是拒绝(DROP)还是接收(ACCEPT) ,数 据包就不再向下匹配新的规则。
3. 如果规则中没有明确表明是阻止还是通过的,也就是没有匹配规则,向 下进行匹配,直到 匹配默认规则得到明确的阻止还是通过。
4. 防火墙的 默认规则是 所有规则都匹配完才会匹配的。
三、 表与链※※※※※
(一) 2.4.1 简介
- 表(table)是对功能的分类, 防火墙功能(filter表), 共享上网,端口转发(nat 表)
- 链对数据流进行处理,需要使用不同的链(数据流入(INPUT),数据流出 (OUTPUT))
- iptables 是4表伍链
- 4表: filter 表 nat表 raw表 mangle表
- 伍链: INPUT OUTPUT FORWARD PREROUTING POSTROUTING
(二) 2.4.2 每个表说明
1. filter表
- 是iptables默认的表,filter表示过滤.
- 实现防火墙功能:(对数据包的filter过滤)屏蔽或准许,端口,ip.
filter**表 ** | 强调:主要和主机自身相关,真正负责主机防火墙功能的 (过滤流入流出主机的数据包) filter表示iptables默认 使用的表,这个表定义了三个链(chains) 企业工作场 景:主机防火墙 |
INPUT | 负责过滤所有目标地址是本机地址的数据包 通俗来说: 就是过滤进入主机的数据包 (能否让数据包进入服务器) |
FORWARD | 路过: 负责转发流经主机的数据包。起转发的作用,和 NAT关系很大,后面会详细介绍 LVS NAT模式, net.ipv4.ip_forward=0 |
OUTPUT | 处理所有源地址是本机地址的数据包 通俗的讲:就是处 理从主机发出去的数据包 |
2. nat表
- 实现nat功能
-
- 实现共享上网(内网服务器上外网)
- 端口映射和ip映射
nat | 负责网络地址转换的,即来源与目的IP地址和port 的转换。 应用:和主机本身无关,一般用于局域网共享上网 或者特殊的端口转换服务相关。 工作场景: 1. 用于企业路由(zebra)或网关(iptables),共 享上网(POSTROUTING) 2. 做内部外部IP地址一对一映射(dmz),硬件防 火墙映射IP到内部服务器,ftp服务 (PREROUTING) 3. WEB,单个端口的映射,直接映射80端口 (PREROUTING) 这个表定义了3个链,nat功能 相当于网络的acl控制。和网络交换机acl类似。 |
OUTPUT | 和主机放出去的数据包有关,改变主机发出数据包 的目的地址。 |
PREROUTING | 在数据包到达防火墙时,进行路由判断之前执行的 规则,作用是改变数据包的目的地址、目的端口等 就是收信时,根据规则重写收件人的地址。 例如:把公网IP:xxx.xxx.xxx.xxx映射到局域网的 xx.xx.xx.xx服务器上。 如果是web服务,可以报80转换为局域网的服务器 9000端口上 10.0.0.61 8080(目标端口) ----nat---à 10.0.0.7 22 |
POSTROUTING | 在数据包离开防火墙时进行路由判断之后执行的规 则,作用改变数据包的源地址,源端口等。 写好发件人的地址,要让家人回信时能够有地址可 回。 例如。默认笔记本和虚拟机都是局域网地址,在出 网的时候被路由器将源地址改为了公网地址。 生产应用:局域网共享上网。 |
老男孩教育-iptables4表5链流程-ip及端口映射| ProcessOn免费在线作图,在线流程图,在线思维导图
课外了解 官方超详细传送门
四、 环境准备及命令
iptables iptables启动或关闭的命令
m01 10.0.0.61 172.16.1.61
web01 10.0.0.7 172.16.1.7
yum install -y iptables-services
[root@qinluo-m01 ~]# uname -r 3.10.0-862.el7.x86_64
[root@qinluo-m01 ~]# yum install -y iptables-services
[root@m01 ~]# rpm -ql iptables-services
/etc/sysconfig/ip6tables
/etc/sysconfig/iptables #防火墙的配置文件
/usr/lib/systemd/system/ip6tables.service
/usr/lib/systemd/system/iptables.service #防火墙服务配置文件(命令) systemctl start iptables
[root@m01 ~]# rpm -ql iptables
/usr/sbin/iptables #iptables 命令 添加/删除/查看 规则(4表伍链)
/usr/sbin/iptables-save #iptables 命令 添加/删除/查
/usr/sbin/iptables-restore # 恢复
#防火墙相关模块 加载到内核中
#写入到开机自启动.
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state
#永久
chmod +x /etc/rc.d/rc.local
cat >>/etc/rc.local<<EOF
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state
EOF
#检查是否加载防火墙iptables 模块
[root@m01 ~]# lsmod |egrep 'filter|nat|ipt'
nf_nat_ftp 12770 0
nf_conntrack_ftp 18638 1 nf_nat_ftp
iptable_nat 12875 0
nf_nat_ipv4 14115 1 iptable_nat
nf_nat 26787 2 nf_nat_ftp,nf_nat_ipv4
nf_conntrack 133053 6
nf_nat_ftp,nf_nat,xt_state,nf_nat_ipv4,nf_conntrack_ftp,nf_conntrack_ipv4
iptable_filter 12810 0
ip_tables 27126 2
iptable_filter,iptable_nat
libcrc32c 12644 3
xfs,nf_nat,nf_conntrack
#关闭已有的firewalld防火墙
systemctl stop firewalld
systemctl disable firewalld
[root@m01 ~]# systemctl start iptables.service
[root@m01 ~]# systemctl enable iptables.service
[root@m01 ~]#systemctl enable iptables.service
Created symlink /etc/systemd/system/basic.target.wants/iptables.service → /usr/lib/systemd/system/iptables.service.
[root@m01 ~]#systemctl status iptables.service
● iptables.service - IPv4 firewall with iptables
Loaded: loaded (/usr/lib/systemd/system/iptables.service; enabled; vendor preset: disabled)
Active: active (exited) since Mon 2024-07-22 15:37:53 CST; 3h 58min ago
Main PID: 70690 (code=exited, status=0/SUCCESS)
Tasks: 0
Memory: 0B
CGroup: /system.slice/iptables.service
7月 22 15:37:53 m01 systemd[1]: Starting IPv4 firewall with iptables...
7月 22 15:37:53 m01 iptables.init[70690]: iptables: Applying firewall rules: [ OK ]
7月 22 15:37:53 m01 systemd[1]: Started IPv4 firewall with iptables.
#查看filter表中的规则 ,默认查看的是filter表
[root@m01 ~]#iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
#查看指定表中的规则
[root@m01 ~]#iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all -- 172.16.1.0/24 0.0.0.0/0 to:10.0.0.61
(一) iptables命令参数
- 指定表或链的指令
参数 | 含义 |
-L | 显示表中的所有规则 |
-n | 不要把端口或ip反向解析为名字 |
指定表 | |
-t | 指定表,不指定默认是filter表 |
指定连接(加入/追 加/删除) | |
-A | append 追加把规则写入到链的末尾.加入准许类 规则 使用-A |
-I | insert 把规则加在链的第1条 拒绝类规则放在所有 规则最上面 拒绝类 -I |
-D | delete 删除 -D INPUT 1 |
- 描述什么类型的数据
参数 | 含义 |
-p | 指定协议 protocal tcp/udp/icmp/all |
-- dport | 目标端口 dest destination ⚠ 指定端口的时候加上协议-p tcp |
-- sport | 源端口 source 源 |
-s | --source 源ip ⚠ 如果只屏蔽/准许ip,网段,不用加上协议. |
-d | --destination 目标ip |
-m | 指定模块 multiport |
-i | input 输入的时候 从哪个网卡进来 |
-o | ouput 输出的时候 从哪个网卡出去 |
- 指定是准许还是拒绝
参 数 | 含义 |
-j | jump 满足条件后的动作 : DROP(拒绝)/ACCEPT(准 许)/REJECT(拒绝) |
DROP REJECT拒绝 DROP 把数据丢掉 不会返回信息给用户 REJECT 拒绝 返回拒绝信息 | |
-F flush | 清除指定表中所有的规则,备份 |
-X | 删除用户自定义的链 |
-Z zero | 链的计数器清零(数据包计数器与数据包字节计数器) iptables |
-v | 显示数据包,数据量 |
iptables 命令及选 项 | 指定 表 | 指定 链 (插入/ 追加/ 删除) | ip | 具体要求 (端口,ip,协议) | 端口 | 动作 |
iptables | -t filter | -A INPUT | -s | -p tcp/udp/icmp | - dport 目标 端口 | -j DROP |
-I | -d | --sport 源端 口 | -j REJEC | |||
-D |
(二) 配置filter表规则
- 正式配置之前 先备份, 清空规则
iptables -F
iptables -X
iptables -Z
[root@m01 ~]#iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
1. 禁止访问22端口
#拒绝用户访问22端口
iptables -t filter -A INPUT -p tcp --dport 22 -j DROP
#查看规则并加上序号
iptables -t filter -nL --line-number
#删除规则
iptables -t filter -D INPUT 1 #根据序号删除
-t 用于指定表,不写默认就是filter表
删除 规则 -D
2. ⭐ 封ip,屏蔽某个ip
发出DOS攻击, 某个/几个IP 对网站发出请求(大量)
[root@m01 ~]#iptables -I INPUT -s 10.0.0.7 -j DROP
[root@m01 ~]#iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- 10.0.0.7 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
iptables -I INPUT -s 172.16.1.0/24 -j DROP
3. ⭐ 禁止网段连入(禁止10.0.0.0/24网段访 问 8888端口)
nc ncat netcat
nc -lk
telnet
iptables -I INPUT -s 10.0.0.0/24 -p tcp --dport 8888 -j DROP
[root@web01 ~]# ssh 172.16.1.81 hostname
root@172.16.1.81's password:
m01
4. 只允许指定网段连入(允许172.16.1.0网段)
实现阿里云白名单功能 :默认是拒绝 开放端口 网段
allow 10.0.0.0/24;
deny all;
#方法1: 利用 ! 进行排除
iptables -I INPUT ! -s 172.16.1.0/24 -j DROP
源ip不是172.16.1.0/24网段,则DROP.
#只准许 10.0.0.0/24 访问 言外之意 除了 10.0.0.0/24 都拒绝
iptables -I INPUT ! -s 10.0.0.0/24 -j DROP
#方法2: 修改链默认规则 修改为拒绝,添加准许
先配置好规则 准许规则
修改默认规则
iptables -t filter -I INPUT -s 10.0.0.1 -j ACCEPT
iptables -t filter -I INPUT -s 172.16.1.0/24 -j ACCEPT
iptables -t filter -P INPUT DROP
#修改默认规则
5. ⭐ 指定多个端口
iptables -I INPUT -p tcp --dport 8888 -j DROP
iptables -I INPUT -p tcp --dport 9999 -j DROP
#指定多个端口 -m multiport -p tcp --dport 80,443
多端口模块
iptables -A INPUT -m multiport -p tcp --dport 80,443 -j ACCEPT
iptables -nL
iptables -A INPUT -p tcp --dport 1:1024 -j ACCEPT
[root@m01 ~]#iptables -A INPUT -m multiport -p tcp --dport 80,443 -j ACCEPT
[root@m01 ~]#iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
#范围段儿
[root@m01 ~]#iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:1:1024
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
书写防火墙规则准许任何地址访问80和443端口.
iptables -A INPUT -p tcp -m multiport --dport 80,443 -j ACCEPT
书写防火墙规则只准许172.16.1.0/24访问3306和6379 (! -s)
iptables -I INPUT ! -s 172.16.1.0/24 -p tcp -m multiport --dport 3306,6379 -j DROP
公司的云服务器22端口只能在公司访问.(在防火墙设置只准许公司公网ip访问22端口)
iptables -I INPUT ! -s 221.218.215.241 -p tcp --dport 22 -j DROP
iptables -I INPUT ! -s 221.218.215.241 -p tcp --dport 22 -j ACCEPT
修改链的默认规则为DROP.
6. 匹配ICMP类型 ⭐ 禁止ping.
保护服务器不被发现.
方案01: 防火墙实现
方案02: linux内核参数
- ICMP(Internet Control Message Protocol)Internet控制报文协议 ping
- 整个网站核心
通过防火墙规则 控制是否可以ping
#iptables -I INPUT -p icmp --icmp-type 8 -j DROP
#修改默认规则为拒绝连接
#iptables -I INPUT -p icmp -j DROP
[root@m01 ~]#iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP icmp -- 0.0.0.0/0 0.0.0.0/0
DROP icmp -- 0.0.0.0/0 0.0.0.0/0 icmptype 8
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
iptables -I INPUT -p icmp --icmp-type 255 -j DROP
温馨提示: 更加精确的写法是
iptables -t filter -I INPUT -p icmp --icmp-type 8 -j DROP
简单写法
iptables -t filter -I INPUT -p icmp -j DROP
通过内核参数 控制 禁止被ping /etc/sysctl.conf
[root@m01 ~]# cat /etc/sysctl.conf
#/proc/sys/net/ipv4/icmp_echo_ignore_all
#net网络 ipv4协议 icmp协议忽略所有
net.ipv4.icmp_echo_ignore_all = 1
#生效
sysctl -p
7. 匹配网络状态(TCP/IP连接状态)
-m state --state 状态即可.
NEW:已经或将启动新的连接
ESTABLISHED:已建立的连接
RELATED:正在启动的新连接
INVALID:非法或无法识别的
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEP
8. 限制并发及速率
防火墙limit模块和ngx limit_req,limit_conn模块都可以进行访问,请求 频率的限制.
可以辅助预防DDOS攻击.
-m limit 限制模块
-m limit --limit 10/minute #每分钟只能有10个数据包 每6秒生成
-m limit --limit n/{second/minute/hour}:
解释:指定时间内的请求速率”n”为速率,后面为时间分别为:秒 分 时
-m limit --limit 10/minute --limit-burst 5 每6秒释放工牌 给别人使用
#10个数据包
前5个 1个1个工牌 从第6个开始 每6秒 才能释放1个工牌
--limit-burst [n]
解释:在同一时间内允许通过的请求”n”为数字,不指定默认为5
- 测试 演示
#ping icmp 协议,进行测试
iptables -F
iptables -I INPUT -p icmp -m limit --limit 10/minute --limit-burst 5 -j ACCEPT
iptables -A INPUT -p tcp --dport -j ACCEPT
iptables -P INPUT DROP
- web01 进行ping测试
ping 10.0.0.61
[root@m01 ~]#ping 10.0.0.61
PING 10.0.0.61 (10.0.0.61) 56(84) bytes of data.
64 bytes from 10.0.0.61: icmp_seq=14 ttl=64 time=0.034 ms
64 bytes from 10.0.0.61: icmp_seq=15 ttl=64 time=0.031 ms
64 bytes from 10.0.0.61: icmp_seq=16 ttl=64 time=0.095 ms
64 bytes from 10.0.0.61: icmp_seq=17 ttl=64 time=0.033 ms
9. 防火墙规则的保存与恢复 ⭐ ⭐ ⭐ ⭐
- iptables-save 进行备份,默认输出到屏幕
- iptables-restore 进行恢复,加上文件
- 写入到/etc/sysconfig/iptables
[root@qinluo-m01 ~]# iptables-save >/etc/sysconfig/iptables
[root@m01 ~]#cat /etc/sysconfig/iptables
# Generated by iptables-save v1.8.5 on Mon Jul 22 15:36:41 2024
*filter
:INPUT ACCEPT [603:70199]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [541:38551]
-A INPUT -s 10.0.0.0/24 -p tcp -m tcp --dport 8848 -j DROP
COMMIT
# Completed on Mon Jul 22 15:36:41 2024
*nat
:PREROUTING ACCEPT [559:51047]
:INPUT ACCEPT [60:6814]
:OUTPUT ACCEPT [6801:408868]
:POSTROUTING ACCEPT [6801:408868]
COMMIT
# Completed on Wed Feb 12 15:31:43 2020
#删除第一排
[root@qinluo-m01 ~]# iptables -D 1
iptables: Bad rule (does a matching rule exist in that
chain?).
[root@qinluo-m01 ~]#
[root@qinluo-m01 ~]# iptables -D INPUT 1
[root@qinluo-m01 ~]# iptables -nL
#@补充:
systemctl restart iptables
/etc/sysconfig/iptables内容
[root@m01 ~]# iptables-save > /etc/sysconfig/iptables
[root@m01 ~]# iptables -F
10. filter表小结
- 实现防火墙功能: 封ip 端口 网段 🌟🌟🌟🌟
- 禁止ping 🌟🌟
- 防火墙规则的备份(save)与恢复(restore) ⭐ ⭐ ⭐ ⭐ ⭐
- 补充
-
- iptables filter表 功能 可以在 云服务器使用
- 云服务器应用: 安全组(默认规则为DROP的filter表)
(三) 生产用法
- iptables配置方式
-
- 逛公园模式: 默认规则是 ACCEPT
- 看电影模式: 默认规则是 DROP 白名单模式
- 默认是拒绝 去电影院
1. ssh可以连接进来
iptables -F
iptables -X
iptables -Z
iptables -nL
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
2. 设置允许本机lo**通讯规则**
# 允许本机回环lo接口数据流量流出与流入
# -i 数据进入的时候
iptables -A INPUT -i lo -j ACCEPT
# -o 数据流出的时候
iptables -A OUTPUT -o lo -j ACCEPT
3. 配置默认规则及 放行 80 443端口
iptables -A INPUT -m multiport -p tcp --dport 443,80 -j ACCEPT
[root@m01 ~]# iptables -nL
#允许一个网段可访问
iptables -A INPUT -s 10.0.0.0/24 -j ACCEPT
[root@m01 ~]# iptables -A INPUT -s 172.16.1.0/24 -j ACCEPT
#此处还可以添加 vpn网段 比如说 10.7.1.0/24
- 修改默认的规则为拒绝INPUT
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
- 汇总
iptables-save
#它只是将当前的规则集导出到一个文件中,以便将来可以轻松地恢复这些规则或在不同系统之间共享。
(四) nat
- nat表用于实现nat功能. nat网络地址转换.
- 应用场景:共享上网(路由器功能) (内部服务器访问外面 )
- 应用场景:端口转发/端口映射,ip映射(外面的人员想访问内部的某个端 口) 类似于nginx,proxy_pass
1. 实现共享上网※※※※※
案例的应用场景: 局域网的服务器,没有公网ip地址,需要连接公网下载 软件包或进行升级.
172.16.1.81 内网服务器实现通过iptables实现共享上网原理详解
iptables -t nat -A POSTROUTING -s 172.16.1.81 -j SNAT --to-source 10.0.0.61
1. 指定nat表,配置POSTROUTING链
2. 源ip是172.16.1.81这台主机进行共享上网,如果是多台(-s 172.16.1.0/24)
3. 指定使用SNAT功能,源地址转换.
4. 通过SNAT功能把数据包中的源ip地址改为防火墙公网的ip地址.
(10.0.0.61)
温馨提示: 如果公网ip不固定, -j SNAT --to-source 10.0.0.61 可以 写为 -j MASQUERADE 伪装成公网ip
- 环境准备
- web01 172.16.1.7 (只保留这个网卡), eth0网卡关闭(ONBOOT=no)
- m01 配置共享上网的规则
共享上网流 程: | 详细步骤 |
客户端: | 关闭eth0网卡 ONBOOT=no 修改eth1网关为防火墙GATEWAY=172.16.1.61 配置 DNS1 |
防火墙: | 1.开启内核转发,内核配置文件 /etc/sysctl.conf 2.配置防火墙规则 |
一、 防火墙配置
在共享网络的那台服务器上执行
配置防火墙规则,改为默认是准许.
清空其他规则.
配置防火墙共享上网规则
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j SNAT --to-source 10.0.0.61
防火墙上开启ip_forward功能(内核转发功能)
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p
注意事项:
公网ip不固定:
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j
MASQUERADE
二、内核转发修改为1
[root@m01 ~]#sysctl -p
kernel.sysrq = 0
net.ipv4.ip_forward = 1 #改这里
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.tcp_syncookies = 1
kernel.dmesg_restrict = 1
net.ipv6.conf.all.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
三、 web配置
- 关闭ens33网卡.仅开启ens34网卡,配置网关指向m01(172.16.1.61)
[root@docker01 ~]#cat /etc/sysconfig/network-scripts/ifcfg-ens33
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=ens33
UUID=6aadc1c5-5d85-4899-b883-ecfbe8d13bf4
DEVICE=ens33
ONBOOT=no #改这里
IPADDR=10.0.0.81
PREFIX=24
GATEWAY=10.0.0.2
DNS1=223.5.5.5
DNS2=223.6.6.6
IPV6_PRIVACY=no
#注意修改和启动完34再关闭33网络
ifdown ens33
[root@docker01 ~]#cat /etc/sysconfig/network-scripts/ifcfg-ens34
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=ens34
UUID=b24bed45-8dfc-4f25-a608-adba3127fd77
DEVICE=ens34
ONBOOT=yes
IPADDR=172.16.1.81
GATEWAY=172.16.1.61 #改这里
DNS1=223.5.5.5 #改这里
PREFIX=24
IPV6_PRIVACY=no
#更新启动34网络
ifup ens34
- 测试
[root@m01 ~]#ssh 172.16.1.81
Authorized users only. All activities may be monitored and reported.
root@172.16.1.81's password:
Permission denied, please try again.
root@172.16.1.81's password:
Authorized users only. All activities may be monitored and reported.
Activate the web console with: systemctl enable --now cockpit.socket
最后一次失败的登录: 一 7月 22 21:41:35 CST 2024 从 10.0.0.61 ssh:notty 上
最后一次成功登录后有 1 次失败的登录尝试。
Last login: Mon Jul 22 17:22:36 2024 from 10.0.0.61
2. 实现端口转发※※※※※
- 应用场景: 端口映射为了解决用户进来的问题. 外部的用户访问内网的某 个服务器,端口..
- 解决方案: 防火墙实现,网络设备实现
[root@m01 ~]# iptables -t nat -A PREROUTING -d 10.0.0.61 -p tcp --dport 9000 -j DNAT --to-destination 172.16.1.7:22
iptables -nL -t nat
- 测试与检查
本地shell中
ssh root@10.0.0.61 9000
3. 实现ip映射
共享上网流 程: | 详细步骤 |
客户端: | 关闭eth0网卡 ONBOOT=no 修改eth1网关为防火墙GATEWAY=172.16.1.61 配置 DNS1 |
防火墙: | 1.开启内核转发,内核配置文件 /etc/sysctl.conf 2.配置防火墙规则 |
#ip a add 10.0.0.62/24 dev eth0 label eth0:0
iptables -t nat -A PREROUTING -d 10.0.0.81 -j DNAT --to-destination 172.16.1.61
iptables -nL -t nat