iptables小案例 vi /usr/local/sbin/iptables.sh //加入如下内容 #! /bin/bash ipt="/usr/sbin/iptables" = 定义一个变量 $ipt -F = 清空之前的默认规则 $ipt -P INPUT DROP = 把进入的数据包拒绝掉 INPUT=进入的数据包 $ipt -P OUTPUT ACCEPT =把转发出去的数据包放行 OUTPUT=本机出去的数据包 $ipt -P FORWARD ACCEPT =默认放行FORWARD $ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT =指定放行的状态 $ipt -A INPUT -s 192.168.133.0/24 -p tcp --dport 22 -j ACCEPT = 指定放行的端口 $ipt -A INPUT -p tcp --dport 80 -j ACCEPT = 放行80端口 $ipt -A INPUT -p tcp --dport 21 -j ACCEPT = 放行21端口 icmp示例 iptables -I INPUT -p icmp --icmp-type 8 -j DROP
写完脚本后并且执行脚本,然后查看脚本的规则。
iptables -I INPUT -p icmp --icmp-type 8 -j DROP (可以ping外网,但是禁止别人ping本机)
3.然后默认的是NAT模式,然后点击完成
4.在选择添加的网卡,并在右侧,选择LAN区段
选择LAN区段,就相当于我们给网卡连接到了内网的一个交换机上,这个交换机,用windows机器是无法连接的,这样这台机器和那台机器连上同一个内网的交换机,它们两者之间通信即可。
5.然后选择LAN区段中,刚设置的名称为“内网”
6.最后点击确定
7.选择克隆的虚拟机hf-02,并添加网卡——>在这台虚拟机上本身有一块网卡,因为已经编辑过IP,所以我们可以直接禁掉这个网卡
8.然后hf-02添加一块网卡,和hf添加网卡步骤一样相同,并选择LAN区段,中的“内网”,并确认
9.重启两台虚拟机
10.打开hf虚拟机,输入ifconfig命令,会看到添加了一个网卡eno33554984
11.这里会看到eno33554984网卡,并没有IP,并设置IP(新建那个当私网IP,你可以跟跟视频中的一样,也可以自己设置)
设定IP有两种方法:
12.执行命令行ifconfig ens36 192.168.100.1/24,然后运行ifconfig命令,会看到eno33554984网卡有了IP
手动命令行ifconfig ens36 192.168.100.1/24,设置IP
13.但是eno33554984网卡的IP,在虚拟机一重启,那么IP就会没了——>若想永久生效,就去编辑配置文件,但默认配置文件是不存在的,需要拷贝eno16777736网卡的配置文件,然后更改其中的内容
14.因为hf-02虚拟机无法远程,所以只能在虚拟机上操作
15.用ifconfig命令查看hf-02虚拟机的网卡,会发现也没有IP地址
16.这里若想完全禁掉eno16777736网卡,可执行ifdown eno16777736命令(这一步可省略,若一直失败的话,只要在设置好IP,两个私网IP互通即可)
但有时会提示MAC地址不对,这时候进网卡配置文件中
17.给eno33554984网卡设置IP地址,命令行ifconfig ens36 192.168.100.100/24
18.然后用ifconfig命令,查看新建的网卡IP地址
19.这里会看到hf-02虚拟机中的eno16777736网卡,但是是无法ping通的——>若为了保险这里可以执行命令ifdown eno16777736
20.这里会看到hf-02虚拟机中的eno16777736网卡,但是是无法ping通的——>若为了保险这里可以执行命令ifdown eno16777736
21.这时候,两台虚拟机中新建网卡的IP互相尝试互相ping通
22.这时hf机器上需要打开路由转发 ——>想使用nat表,使用网络的转发,必须修改内核参数
23.将文件/proc/sys/net/ipv4/ip_forward默认改为1,打开端口转发
24.在hf虚拟机上增加一条规则iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
25.实现100.0网段可以上网,做一个欺骗
26.给hf-02设置网关(数据包过去,从hf到hf-02,从hf-02到hf,设置好默认网关)
27.然后hf-02尝试是否能ping通192.168.202.130,这就意味着可以和外网通信了
28.设置DNS,在/etc/resolv.conf中设置,添加nameserver 119.29.29.29
29.这时候就可以ping通外网了——>但物理机还是无法ping通hf-02的虚拟机IP地址
30.需求2:C机器只能和A通信,让C机器可以直接连通B机器的22端口