iptables filter表小案例

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

iptables filter表小案例

iptables小案例

需求:把80端口、22端口和21端口放行,22端口指定一个IP段,只有这个IP段的IP访问时才能访问,其他一律不能访问。

实现(shell脚本)

003728_hh1T_3708406.png

003621_tiLV_3708406.png

ipt定义一个变量,在脚本中要写绝对路径;

首先清除之前的规则,然后定义下默认的策略,紧接着加一些规则;

把RELATED和ESTABLISHED状态放行,是为了通信更顺畅。

执行脚本,查看规则

005004_edgt_3708406.png

icmp示例

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

010202_F4kK_3708406.png

010423_Ydpu_3708406.png

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

010622_jHnk_3708406.png

查看规则

010745_8jPw_3708406.png

此时,就又能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可以通信互联

准备工作:

首先准备两台虚拟机(可以克隆一台),给第一台机器添加一个网卡,点添加,选择网络适配器,下一步

062603_nmsk_3708406.png

默认选择NAT模式,点完成

062736_r8km_3708406.png

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

062843_Enlj_3708406.png

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

062921_J2eW_3708406.png

点确定,就好了

063222_ywMx_3708406.png

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

063414_rzd9_3708406.png

默认NAT,点完成

063648_b6h1_3708406.png

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

063606_MMrx_3708406.png

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

064049_9wbi_3708406.png

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

064334_vvJc_3708406.png

064404_SGP0_3708406.png

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

064921_2uoH_3708406.png

先down掉ens33网卡

065010_2Khy_3708406.png

给ens37设置IP,ifconfig ens37 192.168.100.100/24

065129_WmFa_3708406.png

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

065817_UN8Y_3708406.png

065937_uQkG_3708406.png

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

070218_s4Iy_3708406.png

检测第二台机器能否联网

070531_jWup_3708406.png

需求1:可以让B机器连接外网

首先A机器打开端口转发

070750_S9dh_3708406.png

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

071125_lRql_3708406.png

071143_jIcJ_3708406.png

给B机器设置网关

071343_OW40_3708406.png

然后ping 192.168.133.1

072530_LWIu_3708406.png

设置DNS

输入vim /etc/resolv.conf,添加nameserver 119.29.29.29

073026_csk3_3708406.png

073045_zS9b_3708406.png

然后ping 119.29.29.29

073121_nZBX_3708406.png

这样我们就可以ping通外网

073156_lvIj_3708406.png

但是Windows主机依然ping不通192.168.100.100

073308_bbuE_3708406.png

需求2:C机器只能和A通信,让C机器可以直接连通B机器的22端口(端口映射)

首先A机器打开端口转发echo "1" > /proc/sys/net/ipv4/ip_forward(刚才做过了就不用做),删除规则

082919_TTz5_3708406.png

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

083104_ISaC_3708406.png

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

085217_3IES_3708406.png

然后新建会话,点确定

085402_wRdh_3708406.png

直接点连接

085451_CS8V_3708406.png

选择接收并保存

085558_ktkr_3708406.png

输入用户名root,密码

085702_CdPb_3708406.png

085756_T2JG_3708406.png

远程连接成功

085853_kC2E_3708406.png

也可以连接外网

085933_BUON_3708406.png

扩展

1. iptables应用在一个网段

2. sant,dnat,masquerade

3. iptables限制syn速率1iptables限制syn速率2

转载于:https://my.oschina.net/u/3708406/blog/1583230

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值