设置方法
单网卡主机(workstation只能连接内网) 170.25.254.22 双网卡主机(rhel8一块连接内网,一块连接外网) 170.25.254.11 172.25.254.33 真机(foundation17) 172.25.254.17单网卡主机查看 双网卡主机查看
vim ifcfg-enp1s0双网卡主机中能与单网卡连接的ip vim ifcfg-enp6s0双网卡主机中设置网关为真机ip在rhel8中默认使用的是firewalld
【1】代码
firewalld----->iptables - dnf install iptables-services -y #搭建好yum仓库后,安装iptables - systemctl stop firewalld - systemctl disable firewalld - systemctl mask firewalld - systemctl enable --now iptables【2】过程 rhel7以上版本可以不用安装,此处是为了方便给大家展示,所以我dnf安装了一下
dnf install iptables-services.x86_64 -y 搭建好yum仓库后,安装iptables 关闭火墙 开启iptables【1】代码
iptales -------> fiewalld - systemctl stop iptables - systemctl disable iptables - systemctl mask iptables - systemctl enable --now firewalld【2】过程
关闭iptables 锁定iptables并且解锁火墙 开启火墙/etc/sysconfig/iptables 是 iptables 策略记录文件
命令作用iptales-save > /etc/sysconfig/iptables将策略存放在记录文件中service iptables save自动存放1)临时 iptables -F 刷掉策略(这是临时的,在刷新掉后restart会重新出现) 2)永久保存策略
【1】iptales-save > /etc/sysconfig/iptables保存当前策略
-F后保存策略 查看/etc/sysconfig/iptables中的内容 备份iptables文件到/mnt中,-F后重启服务发现不会恢复 将文件放回后再次重启,此时策略信息恢复了【2】service iptables save自动存放
filter 经过本机内核的数据(input output forward)
nat不经过内核的数据(postrouting,prerouting,input,output)
mangle 当filter和nat表不够用时使用(input output forward postrouting, prerouting,)
补充:
-j 动作 ACCEPT ##允许 DROP ##丢弃 REJECT ##拒绝 SNAT ##源地址转换 DNAT ##目的地地址转换练习:
指定表名称,不加 -t 则表示默认使用filter,此处可以结合理解3个表存在的链 添加策略 (对链进行操作)新建链+更改链名称+删除链 默认的链是不能删除的 -D删除INPUT中的第二条规则 -I 默认插入在最前面,但是也可以插入在指定行 -R更改规则 -P修改默认规则 注意:默认规则只能是ACCEPT或DROP,不能是REJECT最开始的访问状态是NEW,后续就是ESTABLISHED和RELATED了。此设定会优化我们的火墙数据包状态,使我们的数据包更易通过火墙。
命令作用RELATED建立过连接的ESTABLISHED正在连接的NEW新的【1】代码
[root@workstation ~]# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #这两种状态的直接让过 [root@workstation ~]# iptables -A INPUT -m state --state NEW -i lo -j ACCEPT [root@workstation ~]# iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT [root@workstation ~]# iptables -A INPUT -m state --state NEW -s 170.25.254.11 -p tcp --dport 22 -j ACCEPT #不加!表示只有这个ip的可以来访问,加上!表示只有此ip不可访问 [root@workstation ~]# iptables -A INPUT -j REJECT [root@workstation ~]# service iptables save #对我们的策略进行保存【2】验证
自己访问自己是可以成功的,因为走的是lo回环接口 使用170.25.254.11也是可以访问的,使用其他主机是不可以的【1】snat练习:内网访问外网,源地址转换(要在POSTROUTING) 实验预计目标:初始状态下单网卡主机不能访问外网,但是经过设定后,可以访问。 设定内容:将单网卡(170)可以通过双网卡转换为可上网的(172)
单网卡主机初始状态
在单网卡中添加网关(所添加部分就是双网卡中与其网段一致的ip) nmcli connection ~ route -n查看网关
rhel8中内核路由功能是开启的
此时iptables -t nat -A POSTROUTING -o enp6s0 -j SNAT --to-source 172.25.254.33添加规则,表示所有输出都是以172.25.254.33输出
此时单网卡主机能成功ping通外网与真机,单网卡170…通过双网卡的转换,能够连接真机172… 使用ssh命令完成单网卡连接真机
【2】dnat练习:目的地地址转换(要在PREROUTING)
iptables -t nat -A PREROUTING -i enp6s0 -j DNAT --to-dest 170.25.254.22将所有从enp6s0连接的都转到170.25.254.22 真机连接33,但是真正的连接位置是22。这就是做了目的地地址转换!