热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOS7中iptables过滤表实例与NAT表应用详解

在CentOS7系统中,iptables的过滤表和NAT表具有重要的应用价值。本文通过具体实例详细介绍了如何配置iptables的过滤表,包括编写脚本文件`/usr/local/sbin/iptables.sh`,并使用`iptables-F`清空现有规则。此外,还深入探讨了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 -s 192.168.1.101/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示例

iptables -I INPUT -p icmp --icmp-type 8 -j DROP

 二、iptables nat表应用

nat表应用 A机器两块网卡ens33(192.168.1.101)、ens37(192.168.1.106),ens33可以上外网,ens3仅仅是内部网络,B机器只有ens37(192.168.100.100),和A机器ens3可以通信互联。

需求1:可以让B机器连接外网

A机器上打开路由转发 echo "1">/proc/sys/net/ipv4/ip_forward

A上执行 iptables -t nat -A POSTROUTING -s 192.168.1.101/24 -o ens33 -j MASQUERADE

B上设置网关为192.168.1.106

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

A上打开路由转发echo "1">/ proc/sys/net/ipv4/ip_forward

A上执行iptables -t nat -A PREROUTING -d 192.168.1.101 -p tcp --dport 1122 -j DNAT --to 192.168.1.106:22

A上执行iptables -t nat -A POSTROUTING -s 192.168.1.106 -j SNAT --to 192.168.1.101

B上设置网关为192.168.1.106

保存和备份iptables规则

service iptables save //会把规则保存到

/etc/sysconfig/iptables 把iptables规则备份到my.ipt文件中

iptables-save > my.ipt 恢复刚才备份的规则

iptables-restore

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


推荐阅读
  • iTOP4412开发板QtE5.7源码编译指南
    本文详细介绍了如何在iTOP4412开发板上编译QtE5.7源码,包括所需文件的位置、编译器设置、触摸库编译以及QtE5.7的完整编译流程。 ... [详细]
  • springMVC JRS303验证 ... [详细]
  • 本文探讨了如何在Classic ASP中实现与PHP的hash_hmac('SHA256', $message, pack('H*', $secret))函数等效的哈希生成方法。通过分析不同实现方式及其产生的差异,提供了一种使用Microsoft .NET Framework的解决方案。 ... [详细]
  • 本文介绍了如何通过Java代码计算一个整数的位数,并展示了多个基础编程示例,包括求和、平均分计算、条件判断等。 ... [详细]
  • 搭建Jenkins、Ant与TestNG集成环境
    本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ... [详细]
  • Servlet过滤器入门:实现与配置
    本文介绍如何在Java Web应用中实现和配置Servlet过滤器,通过实现`javax.servlet.Filter`接口来创建过滤器,并详细说明其在web.xml文件中的配置方法。 ... [详细]
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
  • 本文详细介绍了 Kubernetes 集群管理工具 kubectl 的基本使用方法,涵盖了一系列常用的命令及其应用场景,旨在帮助初学者快速掌握 kubectl 的基本操作。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
  • 使用LVS与ldirectord实现高可用负载均衡
    本文介绍了如何通过LVS(Linux Virtual Server)结合ldirectord工具来实现服务器的健康检查及负载均衡功能。环境设置包括一个LVS节点和两个真实服务器节点,通过配置ldirectord进行健康状态监测,确保系统的高可用性。 ... [详细]
  • Windows 环境下安装 Git 并连接 GitHub 的详细步骤
    本文详细介绍了如何在 Windows 系统中安装 Git 工具,并通过配置 SSH 密钥实现与 GitHub 的安全连接。包括下载、安装、环境配置及验证连接等关键步骤。 ... [详细]
  • VMware Horizon View 5.0桌面虚拟化部署实践与心得
    在近期的研究中,我花费了大约两天时间成功部署了桌面虚拟化环境,并在此过程中积累了一些宝贵的经验。本文将分享这些经验和部署细节,希望能对同样关注桌面虚拟化的同行有所帮助。 ... [详细]
  • Python编码入门指南
    本文探讨了使用Python进行网络设备连通性测试的简便性,特别是针对IP地址范围为192.168.0.101至192.168.0.200的设备。通过比较Python与Shell、Java等语言,展示了Python在执行此类任务时的优势。 ... [详细]
  • 本文档详细介绍了在 Kubernetes 集群中部署 ETCD 数据库的过程,包括实验环境的准备、ETCD 证书的生成及配置、以及集群的启动与健康检查等关键步骤。 ... [详细]
  • 本文基于《Linux命令行与Shell脚本编程大全》第三版的第十一章内容,探讨了如何构建基本的Shell脚本,包括命令组合、脚本创建、消息显示、变量使用、输入输出重定向、管道、数学运算及脚本退出等方面的知识。 ... [详细]
author-avatar
80后之多管闲事
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有