10.15 iptables filter表案例
  
  10.16/10.17/10.18 iptables nat表应用
  
  10.15 iptables filter表案例:
  
  ~1. 写一个具体的iptables小案例,需求是把80端口、22端口、21 端口放行。但是,22端口我要指定一个IP段,只有这个IP段的IP能访问到。其他段的一概拒绝。需要通过一个脚本来指定(脚本可理解为一个批量执行的命令)、
  
  vim /usr/local/sbin/iptables.sh 加入以下内容
  
  #! /bin/bash 通过脚本来实现
  
  ipt=“/usr/sbin/iptables” 首先定义ipt这个变量,下面频繁用到,不至于那么繁琐(写脚本时尽量用绝对路径)
  
  $ipt -F 清空之前的规则 (我们没有-t指定一个表。所以为filter表)
  
  $ipt -P INPUT DROP 指定INPUT的默认规则为DORP(也是为什么要用脚本的原因,不至于不能远程连接)
  
  $ipt -P OUTPUT ACCEPT 指定OUTPUT的默认规则为ACCETP(也就是默认规则)
  
  $ipt -P FORWARD ACCEPT 指定FORWARD的默认规则为ACCETP(也就是默认规则)
  
  然后下面加一些规则出来
  
  $ipt -A INPUT -m state --state RELATED(可理解为链接的其他链接),ESTABLISHED(即为保持链接) -j ACCEPT
  
  必须要写的
  
  制定了一些状态,把他们放行。这些不太常用,但是要写进来。因为我们要满足上面的需要,这些需要总有一个相互链接的过程,为的是让他们更顺利的链接
  
  $ipt -A INPUT -s 192.168.30.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 以上需求,21端口的数据包放行
  
  保存退出后,要链接他。sh /usr/local/iptables.sh
  
  iptables -nvL可查看
  
  ~2. icmp示例
  
  iptables -I INPUT -p icmp --icmp-type 8 -j DROP
  
  ping外面的机器可以ping通,ping本机就不ping(外面的也ping不通本机)
  
  实例:
  
  1.
  
  [root@axinlinux-01 ~]# vim /usr/local/sbin/iptables.sh
  
  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.164.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
  
  [root@axinlinux-01 ~]# sh /usr/local/sbin/iptables.sh
  
  [root@axinlinux-01 ~]# iptables -nvL
  
  Chain INPUT (policy DROP 0 packets, 0 bytes)
  
  pkts bytes target prot opt in out source destination
  
  7 796 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
  
  0 0 ACCEPT tcp -- * * 192.168.164.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 9 packets, 1104 bytes)
  
  pkts bytes target prot opt in out source destination
  
  ----------------------------------------------------------------------------------------------------------------------------------------------------
  
  Lazy Instantiation
  
  复制代码
  
  public class SingletonDemo {
  
  private static SingletonDemo instance = null;
  
  private SingletonDemo() { }
  
  public static SingletonDemo getInstance() {
  
  if (instance == null) {
  
  instance = new SingletonDemo ();
  
  }
  
  return instance;
  
  }
  
  }
  
  复制代码
  
  4.jdk中使用了哪些设计模式?
  
  Structural(结构模式)
  
  Adapter:
  
  把一个接口或是类变成另外一种。
  
  java.util.Arrays#asList(www.xcdeyiju.com)
  
  javax.swing.JTable(www.jujinyule.com TableModel)
  
  java.io.InputStreamReader(InputStream)
  
  java.io.OutputStreamWriter(www.jintianxuesha.com OutputStream)
  
  javax.xml.bind.annotation.adapters.XmlAdapter#marshal()
  
  javax.xml.bind.annotation.adapters.XmlAdapter#unmarshal()
  
  Bridge:
  
  把抽象和实现解藕,于是接口和实现可在完全独立开来。
  
  AWT (提供了抽象层映射于实际的操作系统)
  
  JDBC
  
  Composite:
  
  让使用者把单独的对象和组合对象混用。
  
  javax.swing.JComponent#add(Component)
  
  java.awt.Container#add(www.hnawesm.com Component)
  
  java.util.Map#putAll(Map)
  
  java.util.List#addAll(Collection)
  
  java.util.Set#addAll(Collection)
  
  Decorator:
  
  为一个对象动态的加上一系列的动作,而不需要因为这些动作的不同而产生大量的继承类。这个模式在JDK中几乎无处不在,所以,下面的列表只是一些典型的。
  
  java.io.BufferedInputStream(InputStream)
  
  java.io.DataInputStream(InputStream)
  
  java.io.BufferedOutputStream(OutputStream)
  
  java.util.zip.ZipOutputStream(OutputStream)
  
  java.util.Collections#checked[List|Map|Set|SortedSet|SortedMap]()
  
  ~1. nat表应用
  
  ~2. A机器两块网卡ens33(192.168.30.134)、ens37(192.168.164.1),ens33可以上外网,ens37仅仅是内部网络,B机器只有ens37(192.168.164.100),和A机器ens37可以通信互联
  
  ~3. 需求1:可以让B机器连接外网
  
  说白了就是做个小路由器(A机器),小路由器可以上网,那么电脑就可以上网
  
  首先,我们需要两台机器。给01添加网卡 实例~3.
  
  ~4. A机器上打开路由器转发 echo "1">/proc/sys/net/ipv4/ip_forward
  
  默认这个路径文件为0,即代表没有开启内核转发。因为要使用nat的应用,必须要打开nat的端口转发
  
  ~5. A上执行iptables -t nat -A POSTROUTING -s 192.168.164.0/24 -o ens33 -j MASQUERADE
  
  这条规则,就是想让100.0这个网段可以上网
  
  添加这条规则,就可以上网了
  
  ~6. B上设置网关为192.168..164.
  
  设置网关的目的:试想一下,你的数据包过去,从A到B,从B到A,我怎么到A呢?肯定的需要一个网关啊,默认网关给他设置好。写法为:
  
  route add default gw 192.168.100.1
  
  执行完这个就可以与公网通信了(也就是01的IP)。我们在设置一下dns(vi etc/resolv.conf),就可以与外网通信了。
  
  vi之后加上 nameserver 119.29.29.29 这个是dns的公共dns.详见实例,~5.
  
  其实到这,就会发现,A机器(01)就是个路由器。B机器(02)通过A机器(01)上网
  
  ~7. 需求2:C机器只能和A通信,让C机器可以直接连通B机器的22端口
  
  意思是,远程连接B机器。因为A机器可以远程,通过A机器跳转到B机器,达到远程连接B的目的。而这个就叫做“端口映射”
  
  把B机器的22端口映射出来。A机器的端口已经了吧,是可以远程的。我们把他映射成其他的。也就是说,我们访问这个其他的端口,实际上就是访问的B机器的22端口。从而达到远程B机器的目的。如图:
  
  ~8. A上打开路由器转发echo "1">/proc/sys/net/ipv4/ip_forward
  
  同样的打开端口转发
  
  ~9. A上执行 iptables -t nat -A PREROUTING -d 192.168.30.134 -p tcp --dport 1122 -j DNAT --to 192.168.164.100:22
  
  这个是进来的,我的是30.134,给他转发到164.100的22端口
  
  ~9. A上执行 iptables -t nat -A POSTROUTING -s 192.168.164.100 -j SNAT --to 192.168.30.134
  
  这是回来的包,回来的包也要做一个操作
  
  就从100.100回来的包,经过这个A机器,给他在做一个SNAT操作,把目标地址改成30.134
  
  ~10. B上设置网关为192.168.164.1
  
  要给B加上网关,一样的操作
  
  route add default gw 192.168.164.1
  
  实例:
  
  ~3.
  
  首先准备01 的需求
  
  6.选择网络适配器2,点lan区段(相当于连到内网的交换机上,这个交换机windows机器是连不上的。我们这两台机器01和02我们连上同一个交换机就可以通信了)
  
  11.我们02也相同的连上同样的lan区段(也就是连上同样的交换机)
  
  以上准备工作已完成,启动机器(注意,此时我们远程不上02,是因为改成了lan区段)
  
  12.此时01上,ifconfig会出现新的网卡ens37,我们要修改他的配置IP、网段,可以手动命令行来设置
  
  ifconfig ens37 192.168.164.1/24 (当然只是在内存中更改的,重启就没有了,想要永久生效,就要编辑配置文件。需要cp ens33的,去修改好几个地方)
  
  [root@axinlinux-01 ~]# ifconfig ens37 192.168.164.1/24
  
  这样两块网卡就设置好了。外网(ens33)内网(ens37)
  
  13.那再来设置02机器的需求
  
  因任务需要,保险起见。我们可以先ifdown掉ens33.这样02只跟01通信
  
  14.同样的我们根据需求,可以用手动命令行来设置02的IP
  
  小案例:阿鑫在具体修改ens37的时候,并没有ens37这个网卡。重新添加了新的网卡,并且连接了同样01的lan区段,才有的ens37这个网卡
  
  ifconfig ens37 192.168.100.100/24
  
  小案例:阿铭视频中,ping 01是ping不通的,是因为01 ens37的IP莫名没有了,有ifconfig设置了一下,就好了
  
  以上,准备工作已全部完成(~2.的准备工作完成)
  
  ~4.
  
  [root@axinlinux-01 ~]# cat /proc/sys/net/ipv4/ip_forward
  
  0 默认0,没有开启内核转发
  
  [root@axinlinux-01 ~]# echo "1">/proc/sys/net/ipv4/ip_forward 修改参数
  
  [root@axinlinux-01 ~]# cat /proc/sys/net/ipv4/ip_forward
  
  1 已打开
  
  ~5.
  
  route -n查看网关,显示没有网关。 route add default gw 192.168.100.1设置默认为这个网关
  
  ~6.
  
  vi etc/resolv.conf
  
  这个时候就可以ping通这个公共dns了。当然也可以ping通外网了。但是外网ping不同这个。

转载于:https://www.cnblogs.com/qwangxiao/p/11346170.html

32.filter表案例 nat表应用 (iptables)相关推荐

  1. 31次课(iptables filter表案例、iptables nat表应用)

    10.15 iptables filter表案例 iptables小案例,需求需要把80端口22端口还有21端口放行.但是22端口我需要指定一个ip段,只有这个ip段的ip访问的时候才可以访问,其他段 ...

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

    2019独角兽企业重金招聘Python工程师标准>>> 10.15 iptables filter表小案例 iptables 命令.语法总结 iptables-nvL //查看ipt ...

  3. iptables nat表含义_十(4)iptables语法、iptables filter表小案例、iptables nat表应用

    iptables语法 filter表: INPUT链:作用于进入本机的包 OUTPUT链:作用于送出本机的包 FORWARD链:作用于和本机无关的包 nat表: PREROUTING链:作用是包在刚刚 ...

  4. iptables filter表案例/iptables nat表应用

    iptables filter表案例 iptables filter 表案例 创建一个iptables.sh脚本 [root@Ask-02 ~]# vim /usr/local/sbin/iptabl ...

  5. iptables小案例,nat表应用

    2019独角兽企业重金招聘Python工程师标准>>> iptables小案例: 需求1: 只针对filter表,预设INPUT链DROP,其他两个链ACCEPT,然后针对192.1 ...

  6. Linux防火墙-netfilter filter表案列与nat表应用

    iptables filter表案例 脚本代码和注释 [root@localhost ~]# vim /usr/local/sbin/iptables.sh ## 文档内容 #!/bin/bash # ...

  7. iptables之nat表的学习和实验

    本次实验接着上一篇博客<iptables之filter表的学习和实验>进行(https://blog.csdn.net/weixin_40042248/article/details/11 ...

  8. Linux centos7 Linux网络相关、firewalld和netfilter、netfilter5表5链介绍、iptables语法

    一. Linux网络相关 yum install net-tools ifconfig查看网卡ip ifup ens33开启网卡 ifdown ens33关闭网卡 设定虚拟网卡ens33:0 mii- ...

  9. 机器学习之Pandas:Pandas介绍、基本数据操作、DataFrame运算、Pandas画图、文件读取与处、缺失值处理、数据离散化、合并、交叉表和透视表、分组与聚合、案例(超长篇,建议收藏慢慢看)

    文章目录 Pandas 学习目标 1Pandas介绍 学习目标 1 Pandas介绍 2 为什么使用Pandas 3 案例: 问题:如何让数据更有意义的显示?处理刚才的股票数据 给股票涨跌幅数据增加行 ...

  10. 6、iptables之RAW表和MANGLE表

    文章目录 1.说明 2.raw表 3.Mangle表 1.说明 RAW表 和 MANGLE 表 实事求是的说 在⼯工作中 ⼀一般⽤用到的确实⽐比较少,⽬前更更多的 还是处在⼀一个 探索和实验的阶段 后 ...

最新文章

  1. Vue单文件组件环境配置
  2. CIO职能向流程演进
  3. 《MonoTouch开发实践指南》一1.2 创建MonoTouch应用程序
  4. 不同范数下的余弦定理_第06题 | 从源头追溯「余弦定理」amp; 文理科知识点的异同...
  5. PyCharm Python迁移项目
  6. 高速信号传输约翰逊 pdf_智芯文库 | 高速数字电路的设计与仿真
  7. 2021-2025年中国电动足部检查椅行业市场供需与战略研究报告
  8. python是干什么的-python干嘛用
  9. 双色球机器学习线性回归蓝球预测案例
  10. 12款热门Java小游戏项目的源码和教程
  11. 自学单片机编程(三) 流水灯代码
  12. NVIDIA控制面板闪退
  13. hdfs命令,hadoop基本常用命令
  14. 我的前端“先行”之路
  15. vue无法加载ps1
  16. jupyter改字体主题美化
  17. 【离散数学】数理逻辑 第一章 命题逻辑(5) 对偶式、对偶原理
  18. 这些微信头像,你敢换吗?
  19. 自动代理老是自动打开上不了网的解决办法
  20. zblog php换域名,zblog 怎么更换域名

热门文章

  1. css单线边框_css中的border-collapse属性如何设置表格边框线?(代码示例)
  2. AutoPatch java_《Oracle Applications DBA 基础》5- AD 工具 and patching
  3. ssh远程安全访问路由器
  4. 杜立特尔分解法 MATLAB,杜立特分解法.doc
  5. 【波形发生器(附源码)】基于DAC+DMA+UART的幅值、频率可调的正弦波、方波、三角波发生器
  6. 漂亮的网络验证php源码,好用的冰心php网络验证和源码例子
  7. 16年9月第二周---deadline
  8. 学生HTML个人网页作业作品~蛋糕甜品店铺共11个页面(HTML+CSS+JavaScript)
  9. UML之教学管理系统——4、Rational Rose画活动图
  10. 【jQuery】jQuery对象与prevObject