iptables filter表小案例
iptables小案例
需求:把80端口、22端口和21端口放行,22端口指定一个IP段,只有这个IP段的IP访问时才能访问,其他一律不能访问。
实现(shell脚本)
![]()

ipt定义一个变量,在脚本中要写绝对路径;
首先清除之前的规则,然后定义下默认的策略,紧接着加一些规则;
把RELATED和ESTABLISHED状态放行,是为了通信更顺畅。
执行脚本,查看规则

icmp示例
iptables -I INPUT -p icmp --icmp-type 8 -j DROP可以让你ping通外面的机器,但不能ping通本机。


iptables -D INPUT -p icmp --icmp-type 8 -j DROP删除规则,然后重启iptables服务

查看规则

此时,就又能ping通本机。
iptables nat表应用
nat表应用
A机器两块网卡ens33(192.168.133.130)、ens37(192.168.100.1),ens33可以上外网,ens37仅仅是内部网络,B机器只有ens37(192.168.100.100),和A机器ens37可以通信互联
准备工作:
首先准备两台虚拟机(可以克隆一台),给第一台机器添加一个网卡,点添加,选择网络适配器,下一步

默认选择NAT模式,点完成

选择网络适配器2,选择LAN区段

可以添加自定义名字的LAN区段,点添加

点确定,就好了

接着第二台机器,也添加一块网卡,在添加之前,先取消启动时连接,点添加

默认NAT,点完成

然后和第一台机器一样选择同一个区段

然后启动两台机器,xshell远程连接第一台虚拟机,输入ifconfig,可以看到增加的网卡ens37

给网卡ens37设置IP,可以通过命令设置,也可以通过编辑网卡配置文件;这里通过命令设置,ifconfig ens37 192.168.100.1/24,重启之后,IP就会消失,想要永久更改,就要通过编辑网卡配置文件,需要拷贝ens33的配置文件,更改name、device等


第二台机器由于没法远程,只能在本机操作,先登录,输入ifconfig

先down掉ens33网卡

给ens37设置IP,ifconfig ens37 192.168.100.100/24

然后第一台机器xshell先ping 192.168.100.100,这样第二台机器就可以ping 192.168.100.1


然后Windows主机不能ping通192.168.100.100和192.168.100.1

检测第二台机器能否联网

需求1:可以让B机器连接外网
首先A机器打开端口转发

然后再A机器上增加一条规则iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eno16777736 -j MASQUERADE,查看规则
![]()

给B机器设置网关

然后ping 192.168.133.1

设置DNS
输入vim /etc/resolv.conf,添加nameserver 119.29.29.29
![]()
![]()
然后ping 119.29.29.29

这样我们就可以ping通外网

但是Windows主机依然ping不通192.168.100.100

需求2:C机器只能和A通信,让C机器可以直接连通B机器的22端口(端口映射)
首先A机器打开端口转发echo "1" > /proc/sys/net/ipv4/ip_forward(刚才做过了就不用做),删除规则

然后增加两条规则,第一条规则就是把进来的包的目标IP192.168.133.130,目标端口1122做端口转发到192.168.100.100的22端口;第二条规则是把回来的包目标IP192.168.100.100改成192.168.133.130

给B机器设置网关(刚才设置过了,现在不需要再设)

然后新建会话,点确定

直接点连接

选择接收并保存

输入用户名root,密码


远程连接成功

也可以连接外网

扩展
3. iptables限制syn速率1;iptables限制syn速率2
本文介绍如何使用iptables进行网络流量控制,包括端口放行、ICMP管理、NAT表应用等,并通过具体案例展示了跨网段通信及端口映射的方法。


649

被折叠的 条评论
为什么被折叠?



