73.fileter表案例,NAT表的应用

fileter表案例

要求如下:
只针对filter表,预设策略INPUT链DROP,其他两个链ACCEPT,然后针对192.168.204.0/24开通22端口,对所有网段开放80端口,对所有网段开放21端口。
这个需求不算复杂,但是因为有多条规则,所以最好写成脚本的形式。脚本内容如下
[email protected] ~]# cat /usr/local/sbin//iptables.sh
cat: /usr/local/sbin//iptables.sh: 没有那个文件或目录
[[email protected] /]# vim !$
vim /usr/local/sbin//iptables.sh
编辑上面的文件,把下面的内容添加进去
#! /bin/bash
ipt="/sbin/iptables"
$ipt -F //清空规则
$ipt -P INPUT DROP //指定INPUT链默认动作DROP
$ipt -P OUTPUT ACCEPT //指定OUTPUT链默认动作ACCEPT
$ipt -P FORWARD ACCEPT //指定OUTPUT链默认动作ACCEPT
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT //指定状态放行
$ipt -A INPUT -s 192.168.204.0/24 -p tcp --dport 22 -j ACCEPT //针对ip段开通22端口
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT //对所有网段开通80端口
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT //对所有网段开通21端口

[[email protected] /]# cat /usr/local/sbin/iptables.sh #查看文件内容
#! /bin/bash

ipt="/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.204.0/24 -p tcp --dport 22 -j ACCEPT
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT
[[email protected] /]#

[[email protected] /]# sh /usr/local/sbin/iptables.sh #执行文件

[email protected] /]# iptables -nvL #查看规则
Chain INPUT (policy DROP 133 packets, 10525 bytes)
pkts bytes target prot opt in out source destination
271 20528 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT tcp -- 192.168.204.0/24 0.0.0.0/0 tcp dpt:22
0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 155 packets, 18392 bytes)
pkts bytes target prot opt in out source destination

Chain VL (0 references)
pkts bytes target prot opt in out source destination
[[email protected] /]#

注:关于icmp的包有一个比较常见的应用:
[[email protected] ~]# iptables -I INPUT -p icmp --icmp-type 8 -j DROP
--icmp-type 这个选项是要跟-p icmp 一起使用的,后面指定类型编号。这个8指的是能在本机ping通其他机器,而其他机器不能ping通本机。这个有必要记一下。


NAT表应用

llinux的iptables功能是十分强大的,只有想不到没有做不到!也就是说只要你能够想到的关于网络的应用,linux都能帮你实现。在日常生活中相信你接触过路由器吧,它的功能就是分享上网。本来一根网线过来(其实只有一个公网IP),通过路由器后,路由器分配了一个网段(私网IP),这样连接路由器的多台pc都能连接intnet而远端的设备认为你的IP就是那个连接路由器的公网IP。这个路由器的功能其实就是由linux的iptables实现的,而iptables又是通过nat表作用而实现的这个功能。那么直接来举例说明:
现有条件:
A机器两块网卡ens33(192.168.204.128)、ens37(192.168.100.1),ens33可以上外网,ens37仅仅是内部网络,B机器只有ens37(192.168.100.100),和A机器ens37可以通信互联。
为达到实验条件,先准备两台虚拟机:
1、在VMware克隆一下现有的虚拟机(A机器),并把克隆的虚拟机命名为zhulinux2(B机器);
2、对A机器的网卡进行增加,并且设置成LAN区段为“自定义区段”,表示内部网络地址;


3、对B机器的网卡设置成ens37,IP地址192.168.100.100/24,并把网络适配器改成LAN区段,与A机器一样,如下图所示:

4、设置A机器ens37IP![]

5、设置B机器的ens37网址,先关闭ens33网卡,因为可以访问外网:

需求:
1、可以让B机器连接外网:
A机器操作:
[[email protected] ~]# echo "1">/proc/sys/net/ipv4/ip_forward //打开路由转发功能
[[email protected] ~]# iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
B机器操作,设置默认网关,设置好之后就可以连接外网了:

这个ping百度,是因为设置了dns。
2、C机器只能和A通信,让C机器可以直接连通B机器的22端口:
A机器操作:
[[email protected] ~]# iptables -t nat -A PREROUTING -d 192.168.204.128 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22
[[email protected] ~]# iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.204.128
[[email protected] ~]# iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT tcp -- 0.0.0.0/0 192.168.204.128 tcp dpt:1122 to:192.168.100.100:22

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
3 213 MASQUERADE all -- ens33 192.168.100.0/24 0.0.0.0/0
0 0 SNAT all --
* 192.168.100.100 0.0.0.0/0 to:192.168.204.128


至此,连接成功。

原文地址:http://blog.51cto.com/sdwaqw/2068777

时间: 2024-10-29 17:51:11

73.fileter表案例,NAT表的应用的相关文章

linux笔记-032-日常运维-filter表实例,nat表实例

filter表实例 需求:把80端口,22端口,21端口放行,22端口指定只有某IP段可以访问,其他IP段的均拒绝,在这里,利用SHELL脚本完成这个需求 [[email protected]01:~#] vim /usr/local/sbin/iptables.sh #! /bin/bash # 以下操作没用-t指定表,所以对默认的filter表生效 # 定义一个变量ipt,命令用绝对路径能不受环境变量影响 ipt="/usr/sbin/iptables" # 清空之前定义的规则 $

七周四次课 iptables filter表案例以及iptables nat表应用

iptables小案例将80端口,22端口和21端口放行,22端口需要指定IP段,只有指定IP段访问才可以.其他段一概拒绝.我们可以用一个脚本来实现. #!/bin/bashipt="/usr/sbin/iptables"ipt是定义了一个变量,如果要执行命令,要写全局绝对路径,这样在脚本当中才不会因为环境变量问题导致命令无法执行.所以以后路写shell脚本时一定要写全局绝对路径.我们来定义一个变量,目的就是后面有许多的地方要加载它,如果写很长一段命令会很繁琐.所以我们要定义一个变量,

Linux centos7iptables filter表案例、iptables nat表应用

一.iptables filter表案例 vim /usr/local/sbin/iptables.sh 加入如下内容 #! /bin/bash ipt="/usr/sbin/iptables" $ipt -F $ipt -P INPUT DROP $ipt -P OUTPUT ACCEPT $ipt -P FORWARD ACCEPT $ipt -A INPUT -m state --state ERLATED,ESTABLISHED -j ACCEPT $!ipt -A INPUT

41_iptables防火墙 filter表控制 扩展匹配 nat表典型应用

1.iptables基本管理关闭firewalld,开启iptables服务查看防火墙规则追加.插入防火墙规则删除.清空防火墙规则 1.1 关闭firewalld,启动iptables服务1)关闭firewalld服务器]# systemctl stop firewalld.service ]# systemctl disable firewalld.service2)安装iptables-services并启动服务]# yum -y install iptables-services]# sy

10.15 iptables filter表案例 10.16/10.17/10.18 iptables nat表应用

10.15 iptables filter表案例 10.16/10.17/10.18 iptables nat表应用 扩展 iptables应用在一个网段 http://www.aminglinux.com/bbs/thread-177-1-1.html sant,dnat,masquerade http://www.aminglinux.com/bbs/thread-7255-1-1.html iptables限制syn速率 http://www.aminglinux.com/bbs/thre

10.15-10.18 iptables filter表案例 iptables nat表应用

七周四次课(3月22日) 10.15 iptables filter表案例 10.16/10.17/10.18 iptables nat表应用 扩展1. iptables应用在一个网段  http://www.aminglinux.com/bbs/thread-177-1-1.html2. sant,dnat,masquerade   http://www.aminglinux.com/bbs/thread-7255-1-1.html3. iptables限制syn速率  http://www.

iptables filter表案例及iptables nat应用

iptables filter表案例 iptables小案例需求 只针对filter表,预设策略INPUT链DROP,其他两个链ACCEPT,然后针对192.168.1.0/24开通22端口,对所有网段开放80端口,对所有网段开放21端口. 由于这个需求有多条规则,所以最好写成脚本的形式,操作示例如下: # vi /usr/local/sbin/iptables.sh              加入如下内容,保存退出. 脚本内容: ipt="/usr/sbin/iptables" $i

十(4)iptables语法、iptables filter表小案例、iptables nat表应用

                                    iptables语法 filter表: INPUT链:作用于进入本机的包 OUTPUT链:作用于送出本机的包 FORWARD链:作用于和本机无关的包 nat表: PREROUTING链:作用是包在刚刚到达防火墙时改变包的目标地址 OUTPUT链:改变本地产生的包的目标地址 POSTROUTING链:作用是在包将离开防火墙时改变包源地址 1.查看iptables规则 iptables -nvL  (此时默认查看filter表,

Linux学习笔记(三十二)iptables filter表案例、 iptables nat表应用

一.iptables filter表案例 需求:将80.20.21端口放行,对22端口指定特定的ip才放行 以下为操作方法: vim  /usr/local/sbin/iptables.sh    //加入如下内容 #! /bin/bashipt="/usr/sbin/iptables"   //定义一个变量,写iptables的绝对路径 $ipt -F                //清空规则 $ipt -P INPUT DROP        //添加默认的INPUT规则 $ip