iptables filter表案例

iptables filter 表案例
创建一个iptables.sh脚本

[root@Ask-02 ~]# vim /usr/local/sbin/iptables.sh

写入脚本内容:

ipt="/usr/sbin/iptables"           //定义一个环境变量(下面$ipt就等同于/usr/sbin/iptables的绝对路径了)
$ipt -F                                      //清空之前规则(没有-t,默认是执行的filter)
$ipt -P INPUT DROP               //定义策略 (INPUT策略 DROP掉)
$ipt -P OUTPUT ACCEPT        //定义策略(OUTPUT策略 ACCEPT接受)
$ipt -P FORWARD ACCEPT    // 定义策略(FORWARD策略 ACCEPT接受)
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT           //增加规则(RELATED状态,ESTABLISHED状态放行)
$ipt -A INPUT -s 192.168.135.0/24 -p tcp --dport 22 -j ACCEPT              //增加规则(192.168.223网段访问22端口的数据包放行)
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT                                              //增加规则(80端口数据包方行)
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT                                              //增加规则(21端口数据包放行)

完成脚本后保存退出,接着运行这个脚本;

[root@Ask-02 ~]# sh /usr/local/sbin/iptables.sh

最后再来查看以下规则;

[root@Ask-02 ~]# iptables -nvL

恢复默认规则;

[root@Ask-02 ~]# service iptables restart

关于icmp的包比较常见的应用,执行以下命令;

[root@Ask-02 ~]# iptables -I INPUT -p icmp --icmp-type 8 -j DROP

这条命令会禁止别人ping不通本机,但是本机可以ping通外网
删除这条规则命令如下;

[root@Ask-02 ~]# iptables -D INPUT -p icmp --icmp-type 8 -j DROP

iptables nat表应用

在日常生活中接触到的路由器,它的功能就是分享上网,本来一根网线过来(其实只有一个公网IP),通过路由器后,路由器分配一个网段(私网IP),这样连接路由器的多台PC或者手机等设备都能连接上网了,而远端的设备认为你的IP就是那个连接路由器的公网IP。这个路由器的功能其实就是由linux的iptables实现的,而iptables又是通过nat表作用而实现的。
以下举个例子说明,假设你的两台机器,A机器有两块网卡ens33和ens33,其中ens33的IP为192.168.135.133,ens35的IP为192.168.100.1,ens33网卡连接了因特网,但ens35没有连接。现在B机器有个的ens37网卡和A机器的ens37是互通的,如何设置才能让连接ens35的A机器连接因特网,和192.168.135.133互通呢,操作如下;

[root@Ask-02 ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
[root@Ask-02 ~]# iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE

在此之前如果使用的是虚拟机演戏的话,需要预备几步工作;
先对A机器进行操作设置,添加网卡

编辑虚拟机设置——选中:网络适配器——添加:网络适配器——点击:下一步——保持默认:NAT模式——点击: 完成—— 选中:网络适配器 2——选择:LAN 区段——添加:自定义名称——确定——选中刚刚添加的新LAN段 ——确定





这里A机器就设置好了,B机器和A机器设置操作一样,只是需要先把原本B机器上可以连接的网卡断掉禁用掉,已方便操作,禁掉操作如下;

这里记住A、B机器选择的LAN区段一定要一致。

接下来ifconfig查看下各个机器的网卡现象

给A、B机器新网卡同时设置临时IP;

[root@Ask-02 ~]# ifconfig ens37 192.168.135.1/24
[root@Ask-01 ~]# ifconfig ens37 192.168.135.100/24

B机器为了更好的演示操作,可以ifdown掉ens33网卡

[root@Ask-01 ~]# ifdown ens33

这样准备工作就做好了,可以用ping命令检测以下A、B机器是否能相互ping通内网和外网,如果以上操作正确的话,得到的结果是A机器能ping通外网和内网,而B机器只能ping通内网。

接下来就是让A机器的ens37设置的能够连接外网

[root@Ask-02 ~]# echo "1" > /proc/sys/net/ipv4/ip_forward //打开端口转发
[root@Ask-02 ~]# iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE //增加规则

我们可以执行以下命令查看设置结果

[root@Ask-02 ~]# cat /proc/sys/net/ipv4/ip_forward //默认是0端口关闭,1则是打开
1
[root@Ask-02 ~]# iptables -t nat -nvL

再来给B机器设置网关以及修改DNS;

[root@Ask-01 ~]# route add default gw 192.168.100.1
[root@Ask-01 ~]# vi /etc/resolv.conf

写入公共DNS:119.29.29.29保存并退出
这样B机器技能ping通A机器也能ping通外网了,比如你ping一个A机器可以连接外网IP的地址或则ping百度或者腾讯的地址

远程访问B机器
删掉A机器之前设定的nat表的规则;

[root@Ask-02 ~]# iptables -t nat -D POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE

重新设定一个nat表的规则(针对进去的数据包)

[root@Ask-02 ~]# iptables -t nat -A PREROUTING -d 192.168.135.133 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22

在设定一个nat表的规则(针对回来的数据包)

[root@Ask-02 ~]# iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.135.133
给B机器设置网关;
[root@Ask-02 ~]# route add default gw 192.168.100.1

最后在Xshell设置一个远程登录到IP地址为192.168.135.133端口为1122的服务器即可。

转载于:https://blog.51cto.com/13529231/2065634

iptables filter表案例/iptables nat表应用相关推荐

  1. iptables小案例,nat表应用

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

  2. oracle建表案例,oracle创建表语句

    以下是两个简单的创建案例: create table "pc_pp_product" ( "phone_id" VARCHAR2(32 BYTE) NOT NU ...

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

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

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

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

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

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

  6. 10.15 iptables filter表案例

    2019独角兽企业重金招聘Python工程师标准>>> iptables常用知识回顾点 iptables -I/-A/-D 后紧跟 链 ,可以是INPUT,OUTPUT,FORWAR ...

  7. 【CentOS 7笔记43】,防火墙和iptables filter表#

    2019独角兽企业重金招聘Python工程师标准>>> shallow丿ove firewalld和netfilter setenforce 0 #临时关闭selinux /etc/ ...

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

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

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

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

最新文章

  1. 安装Oracle 10g sys,system 密码忘记设置解决办法
  2. 动态改变eachers图表高_让你的Excel图表动起来
  3. MySQL Cookbook 学习笔记-03
  4. 未来计算机控制器趋势,未来DCS控制系统技术发展4大趋势
  5. android 字体空格,android – 在textview中设置字母之间的空格
  6. 资源位图android4.2中为什么要高效的处理位图资源
  7. ios 倒数器_如何使用倒数计时器来停止游戏 – iOS [SWIFT] –
  8. 张凯院 矩阵论学习_有限群表示论(0): 前言
  9. 【Eclipse】Spring Tool Suite插件
  10. Mybatis-plus的两种分页插件的配置方式
  11. Windows下安装最新的Apache+PHP+MySQL方法--记录方便自己参考
  12. java bean jsp_jsp+java bean+servlet开发的mvc简易鞋城在线商城系统
  13. 利用DroidCamX将手机摄像头打造成电脑高清摄像头
  14. 《Netty实战》总结
  15. php数据库用户名验证失败,PHP与MySQL 8.0+错误:服务器请求的身份验证方法未知...
  16. java 文件下载示例_文件下载示例代码(JAVA)
  17. RK3128-Android7.1-IR-深度剖析
  18. Hyper-V 2012 R2 故障转移群集
  19. s7填表指令att_这些PLC指令你会用吗?plc编程入门
  20. 51nod1298 圆与三角形

热门文章

  1. linux 添加编程环境变量配置
  2. 利用Frame Animation实现动画效果,代码正确,就是达不到变换效果
  3. 2012年7月份第4周51Aspx源码发布详情
  4. 算法导论-用于不相交集合的数据结构
  5. weblogic修改banner_WeblogicScanV1.3
  6. python 读取mysql大量数据处理_python使用多线程快速把大量mysql数据导入elasticsearch...
  7. 360浏览器 ajax取缓存,web开发遇到的坑之360浏览器缓存问题
  8. php 返回数组元素函数_php array_values 返回数组的所有值详解及实例
  9. android 线程 界面,android开发教程之子线程中更新界面
  10. Shell 企业29道面试题 [转]