linux学习第三十篇:iptables filter表小案例,iptables nat表应用

iptables filter表小案例

案列:只针对filter表,预设策略INPUT链DROP,其他两个链ACCEPT,然后针对192.168.188.0/24开通22端口,对所有网段开放80端口,对所有网段开放21端口。

脚本内容:

#! /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 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
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT  

icmp示例,这里–icmp-type选项要跟-p icmp一起使用,后面指定类型编号。这个8指的是能在本机ping通其他机器,而其他机器不能ping通本机 iptables -I INPUT -p icmp –icmp-type 8 -j DROP

iptables nat表应用

nat表应用 A机器两块网卡ens37(192.168.202.129)、ens33(192.168.100.1),ens37可以上外网,ens33仅仅是内部网络,B机器只有ens33(192.168.100.100),和A机器ens33可以通信互联。 需求1:可以让B机器连接外网

  1. 给两台虚拟机添加一块新的网卡
  2. A和B给新的网卡设置为LAN区段

添加自定义名字

A和B都选择LAN区段

  1. A机器命令行添加ip(重启后会失效,如果想永久生效就配置文件)
  1. 给另一台B机器的内网网卡添加ip(ifconfig ens33 192.168.100.100/24)
  1. 两台机器的内网网卡可以互相ping通,此时A和B可以互相通信,但是A可以上网,B不可以上网。
  1. A机器上打开路由转发 echo “1”>/proc/sys/net/ipv4/ip_forward。这个文件的内容默认是0,要想使用nat表,网络的转发,就必须修改内核参数,所以需要把该文件内容改为1。
  2. A上执行添加规则iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens37 -j MASQUERADE,这条规则就是让192.168.100.0这个网段可以上网
  3. B机器上设置网关为192.168.100.1。命令:route add default gw 192.168.100.1。设置完后B机器可以ping通A机器的公网IP即ens37网卡的IP地址
  4. 给B机器设置DNS。编辑DNS配置文件/etc/resolv.conf。在配置文件中添加一行nameserver 119.29.29.29。保存退出后就可以上网了,如果不行,可以用命令:systemctl stop iptables关闭防火墙,因为防火墙会干扰。

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

  1. A上打开路由转发echo “1”>/ proc/sys/net/ipv4/ip_forward,因为上面已经做过,所以可以不做。
  2. A机器上执行iptables -t nat -A PREROUTING -d 192.168.202.129 -p tcp –dport 1122 -j DNAT –to 192.168.100.100:22,规则的意思就是比如windows本机IP是192.168.202.1,它的目标IP是192.168.202.129,目标端口是1122,然后端口转发,把它转发到IP为192.168.100.100的22端口,这是进去的包。 执行之前先把之前的规则清除,以免影响,iptables -t nat -D POSTROUTING -s 192.168.100.0/24 -o ens37 -j MASQUERADE,用D参数删除。
  3. A机器上执行iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT –to 192.168.202.129,从192.168.100.100回来的包经过A机器再做一个SNAT操作,把目标地址改成192.168.202.129,这个目标地址是在我们A机器上往外发出去的源IP,回到window机器上时才能识别,知道是哪个机器的过来的。
  4. 给B机器加上网关。命令:route add default gw 192.168.100.1。上面已经做过,所以可以省略。弄完之后原本不可以远程连接的B机器,现在可以通过远程连接A机器的公网IP:192.168.202.129的1122端口来连接B机器。

扩展 1. iptables应用在一个网段 http://www.aminglinux.com/bbs/thread-177-1-1.html 2. sant,dnat,masquerade http://www.aminglinux.com/bbs/thread-7255-1-1.html 3. iptables限制syn速率 http://www.aminglinux.com/bbs/thread-985-1-1.html http://jamyy.us.to/blog/2006/03/206.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何在Ubuntu 14.04上使用Iptables实现基本防火墙模板

实施防火墙是保护服务器的重要一步。其中很大一部分是在于对您的网络实施流量限制有决定性作用的个别规则和政策。防火墙iptables也允许您对应用规则的结构框架有发...

1210
来自专栏云上大文件传输

Windows TCP: TCP接收窗口自动调谐(Auto-Tuning)原理介绍

TCP连接上的吞吐量可以通过发送和接收应用程序、TCP的发送和接收实现以及TCP对等体之间的传输路径来限制。在本文我将介绍TCP接收窗口及其对TCP吞吐量的影响...

7186
来自专栏黑白安全

Nmap的使用

精细扫描,可以查看更详细的信息,如包含服务版本,操作系统类型,甚至还有traceroute..

1703
来自专栏云计算教程系列

如何在Debian 8上设置本地OSSEC安装

OSSEC是一个开源的,基于主机的入侵检测系统(HIDS),可执行日志分析,完整性检查,Windows注册表监控,rootkit检测,基于时间的警报和主动响应。...

780
来自专栏岑玉海

RChain节点通信机制

在介绍RChain的通信机制之前,先简单介绍一些以太坊的通信机制,RChain是借鉴的以太坊的通信机制,它包括以下几个方面,如下详细了解以太坊的通信机制,可以查...

4016
来自专栏MYSQL轻松学

Mysql Group Replication介绍

一、Mysql Group Replication简介 Mysql Group Replication(MGR)是一个全新的高可用和高扩展的MySQL集群服务...

6344
来自专栏北京马哥教育

Linux防火墙iptables简明教程

一:前言 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种。无论是在哪个网络中,防火墙工作的地方一定是在网络的边...

5019
来自专栏轻扬小栈

pogoplug 命令行百度云神器

1052
来自专栏前端说吧

BootStrap的一个标准框架的内容解释——来源于bootstrap官网

3415
来自专栏张戈的专栏

Nginx发布1.9.0版本,新增支持TCP代理和负载均衡的stream模块

昨天在公司微信群,CTO 分享了这个消息,对运维来说以后基于 TCP 协议的后端业务的高可用又多了一个新的选择,实在是棒极了! 一直以来,Nginx 并不支持 ...

3045

扫码关注云+社区

领取腾讯云代金券