iptables filter表案例,iptables nat表应用
2018-03-23 20:52
691 查看
iptables 用法复习
Iptables参数 -m state --state <状态>
执行脚本,查看规则已经生效,但为写入配置文件,service iptables restart恢复原规则
icmp 示例:禁掉ping本地,但可以ping通外网
iptables -I INPUT -p icmp --icmp -type 8 -j DROP
在系统a中添加网卡,默认选项,完成
添加lan区段,并选择添加的区段
给系统b也添加一个网卡,选择上一步添加的区段,同时取消连接b的第一个网卡
启动a系统
设置新添加网卡ip
启动b系统也设置网卡ip,要和a的网卡在一个网段
a系统ping b系统,成功联通。
a机器打开路由转发
运行 echo "1"> /proc/sys/net/ipv4/ip_forward
a机器添加规则
b机器设置网关
route -n 查看网关
route add default gw 192.168.99.1(a机器的ip)
ifdown ens33 关掉ens33网卡
b机器ping a机器ens33的网卡,成功
修改b机器dns
vi /etc/resolv.conf
ping通dns
echo "1" > /proc/sys/net/ipv4/ip_forward
a机器设置规则
iptables -t nat -A PREROUTING -d 192.168.244.128 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22 (将ip x.244.128:1122目的网络地址转换 x.192.168.100.100:22)
iptables -t nat -A POSTROUTING -s 192.168.99.99 -j SNAT --to 192.168.244.128
(源网络地址192.168.99.99转换成192.168.244.128)
b上设置网关192.168.99.1
nat dnat snat分别是什么?
http://ask.apelearn.com/question/7255
https://zhidao.baidu.com/question/335463920.html
iptables filter表案例
需求:把80端口,21端口放行,22端口指定ip段放行
#!/bin/bash ipt="/user/sbin/iptables" $ipt -F // 清空规则 $ipt -P INPUT DROP // $ipt -P OUTPUT ACCEPT // $ipt -P FORWARD ACCEPT // $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 //放行22端口 $ipt -A INPUT -p tcp --dport 80 -j ACCEPT // 放行80端口 $ipt -A INPUT -p tcp --dport 21 -j ACCEPT //
Iptables参数 -m state --state <状态>
Iptables参数 -m state --state <状态> 有数种状态,状态有: ▪ INVALID:无效的封包,例如数据破损的封包状态 ▪ ESTABLISHED:已经联机成功的联机状态; ▪ NEW:想要新建立联机的封包状态; ▪ RELATED:这个最常用!表示这个封包是与我们主机发送出去的封包有关, 可能是响应封包或者是联机成功之后的传送封包!这个状态很常被设定, 因为设定了他之后,只要未来由本机发送出去的封包, 即使我们没有设定封包的 INPUT 规则,该有关的封包还是可以进入我们主机, 可以简化相当多的设定规则。
执行脚本,查看规则已经生效,但为写入配置文件,service iptables restart恢复原规则
icmp 示例:禁掉ping本地,但可以ping通外网
iptables -I INPUT -p icmp --icmp -type 8 -j DROP
nat表应用案例
1:让b机器连接外网
先在虚拟机中克隆一个linux系统b在系统a中添加网卡,默认选项,完成
添加lan区段,并选择添加的区段
给系统b也添加一个网卡,选择上一步添加的区段,同时取消连接b的第一个网卡
启动a系统
设置新添加网卡ip
ifconfig ens37 192.168.99.1/24 // ip随意指定
启动b系统也设置网卡ip,要和a的网卡在一个网段
ifconfig ens37 192.168.99.99/24 // ip随意指定
a系统ping b系统,成功联通。
[root@glinux-01 ~]# ping 192.168.99.99 PING 192.168.99.99 (192.168.99.99) 56(84) bytes of data. 64 bytes from 192.168.99.99: icmp_seq=1 ttl=64 time=0.831 ms 64 bytes from 192.168.99.99: icmp_seq=2 ttl=64 time=0.424 ms 64 bytes from 192.168.99.99: icmp_seq=3 ttl=64 time=1.80 ms
a机器打开路由转发
运行 echo "1"> /proc/sys/net/ipv4/ip_forward
出于安全考虑,Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时, 其中一块收到数据包,根据数据包的目的ip地址将包发往本机另一网卡,该网卡根据路由表继续发送数据包。 这通常就是路由器所要实现的功能。 配置Linux系统的ip转发功能,首先保证硬件连通,然后打开系统的转发功能 less /proc/sys/net/ipv4/ip_forward,该文件内容为0,表示禁止数据包转发,1表示允许,将其修改为1。
a机器添加规则
iptables -t nat -A POSTROUTING -s 192.168.99.0/24 -o ens33 -j MASQUERADE 让192.168.99.0这个网段可以上网 MASQUERADE,地址伪装
b机器设置网关
route -n 查看网关
route add default gw 192.168.99.1(a机器的ip)
ifdown ens33 关掉ens33网卡
b机器ping a机器ens33的网卡,成功
修改b机器dns
vi /etc/resolv.conf
ping通dns
2 c机器只能和a通信,让c机器可以连通b机器22端口
a机器打开路由转发echo "1" > /proc/sys/net/ipv4/ip_forward
a机器设置规则
iptables -t nat -A PREROUTING -d 192.168.244.128 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22 (将ip x.244.128:1122目的网络地址转换 x.192.168.100.100:22)
iptables -t nat -A POSTROUTING -s 192.168.99.99 -j SNAT --to 192.168.244.128
(源网络地址192.168.99.99转换成192.168.244.128)
b上设置网关192.168.99.1
nat dnat snat分别是什么?
http://ask.apelearn.com/question/7255
https://zhidao.baidu.com/question/335463920.html
NAT(Network Address Translation,网络地址转换)是将IP 数据包头中的IP 地址转换为另一个IP 地址的过程。在实际应用中,NAT 主要用于实现私有网络访问公共网络的功能。这种通过使用少量的公有IP 地址代表较多的私有IP 地址的方式,将有助于减缓可用IP地址空间的枯竭 DNAT Destination Network Address Translation 目的网络地址转换, SNAT Source Network Address Translation 源网络地址转换,其作用是将ip数据包的源地址转换成另外一个地址,可能有人觉得奇怪,好好的为什么要进行ip地址转换啊,为了弄懂这个问题,我们要看一下局域网用户上公网的原理,假设内网主机A(192.168.2.8)要和外网主机B(61.132.62.131)通信,A向B发出IP数据包,如果没有SNAT对A主机进行源地址转换,A与B主机的通讯会不正常中断,因为当路由器将内网的数据包发到公网IP后,公网IP会给你的私网IP回数据包,这时,公网IP根本就无法知道你的私网IP应该如何走了。所以问它上一级路由器,当然这是肯定的,因为从公网上根本就无法看到私网IP,因此你无法给他通信。为了实现数据包的正确发送及返回,网关必须将A的址转换为一个合法的公网地址,同时为了以后B主机能将数据包发送给A,这个合法的公网地址必须是网关的外网地址,如果是其它公网地址的话,B会把数据包发送到其它网关,而不是A主机所在的网关,A将收不到B发过来的数据包,所以内网主机要上公网就必须要有合法的公网地址,而得到这个地址的方法就是让网关进行SNAT(源地址转换),将内网地址转换成公网址(一般是网关的外部地址),所以大家经常会看到为了让内网用户上公网,我们必须在routeros的firewall中设置snat,俗称IP地址欺骗或伪装(masquerade) 区分SNAT和DNAT 从定义来讲它们一个是源地址转换,一个是目标地址转换。都是地址转换的功能,将私有地址转换为公网地址。 要区分这两个功能可以简单的由连接发起者是谁来区分: 内部地址要访问公网上的服务时(如web访问),内部地址会主动发起连接,由路由器或者防火墙上的网关对内部地址做个地址转换,将内部地址的私有IP转换为公网的公有IP,网关的这个地址转换称为SNAT,主要用于内部共享IP访问外部。 当内部需要提供对外服务时(如对外发布web网站),外部地址发起主动连接,由路由器或者防火墙上的网关接收这个连接,然后将连接转换到内部,此过程是由带有公网IP的网关替代内部服务来接收外部的连接,然后在内部做地址转换,此转换称为DNAT,主要用于内部服务对外发布。 在配置防火墙或者路由acl策略时要注意这两个NAT一定不能混淆。
相关文章推荐
- iptables案例,NAT表应用
- 11.30 iptables filter表案例 iptables nat表应用
- 10.15 iptables filter表案例, iptables nat表应用
- iptables filter表案例、iptables nat表应用
- shell for循环案例:自动批量添加iptables应用端口规则 推荐
- iptables之mangle表应用实现策略路由+(案例)
- iptables之mangle表应用实现策略路由+(案例)
- 介绍一个Rusty Russell关于iptables快速应用案例
- 第五章:iptables应用案例分析(客户端上设置iptables)
- iptables及tcpdump实战应用案例
- 第五章:iptables应用案例分析(包过滤服务器上设置iptables)
- 第五章:iptables应用案例分析(代理服务器上设置iptables)
- 73.fileter表案例,NAT表的应用
- iptables的nat表应用(默认路由指向、端口映射)
- 企业中squid+iptables多模块的综合应用案例
- iptables nat表应用
- 防火墙iptables服务及应用案例
- 企业级办公室iptables防火墙应用案例
- iptables案例、iptables的nat表
- 企业中squid+iptables多模块的综合应用案例