一个执着于技术的公众号

实战1 服务器禁止ping

iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
// 禁止任何人ping通本机

“

除了上面禁止PING的方法,我们还可以通过修改内核配置实现,如下:

echo net.ipv4.icmp_echo_ignore_all=1 >> /etc/sysctl.conf
sysctl -p // 如果允许PING,则将 `ignore_all=1`,修改成 `ingore_all=0` 即可

实战2 利用iptables保护公司 web 服务器

2.1 web服务器配置:

1、安装httpd及vsftpd服务
yum -y install httpd
yum -y install vsftpd //安装vsfptd服务目的是为了对比iptables 2、启动httpd及vsftpd服务
systemctl start httpd
systemctl start vsftpd

2.2 客户端验证(未配置iptables)

测试web访问

测试vsftpd


2.3 配置iptables防火墙策略

iptables -A INPUT -i lo -j ACCEPT
// 放行环回口所有数据 iptables -A INPUT -p tcp -m multiport --dports 22,80 -j ACCEP
// 放行 TCP/22,80 端口 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
// 允许已经建立 tcp 连接的包以及该连接相关的包通过 iptables -P INPUT DROP
// 设置filter表INPUT链默认规则。当数据包没有被任何规则匹配时,则按默认规则拒绝所有

2.4 再次验证

测试web访问

测试vsftpd


“

测试结果正如我们所料:可以正常访问web服务,但由于iptables规则未放行ftp相关端口,因此无法访问ftp服务。

实战3 利用iptables搭建网关服务器

“

背景:公司使用双网卡Linux主机作为网关服务器,其中网卡eth0连接局域网,网卡eth1接入Internet。由于公司只注册了一个公网IP地址,要求合理配置网关策略,使局域网内的PC机可以通过共享的方式访问Internet,如下图所示:

具体实验步骤,点击:干货|利用iptables搭建网关服务器

实战4 利用iptables实现端口映射(DNAT)

实验拓扑图


4.1  qll252 web服务器

1、安装httpd服务
[root@qll252 ~]# yum -y install httpd 2、设置http服务首页内容
[root@qll252 ~]# echo 10.10.10.2 > index.html 3、启动httpd服务
[root@qll252 ~]# systemctl start httpd 4、指定qll251为网关
[root@qll252 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY=10.10.10.1 5、重启网卡服务
[root@qll252 ~]# systemctl restart network

4.2 在qll251上做DNAT

1、开启内核转发
echo "net.ipv4.ip_forward = 1" >> etc/sysctl.conf
sysctl -p 2、添加iptables规则
[root@qll252 ~]# iptables -t nat -A PREROUTING -d 20.20.20.20 -p tcp --dport 8000 -j DNAT --to 10.10.10.2:80 3、保存iptables规则
[root@qll251 ~]# service iptables save

4.3 验证


“

结果正如我们所料,浏览器上输入http://20.20.20.20:8000,即可跳转到qll252的内容,实现端口映射。

结语

如果您看完本文后有所收获, 还希望您随手点个在看 、或者分享转发。您的支持是我坚持分享的最大动力!

往期精彩

◆  必看 | Linux系列学习书籍免费送!

◆  利用expect批量修改Linux服务器密码

◆  nginx+Keepalived 实现高可用集群

◆  干货 | LVM快照学习

◆  一文带你读懂nginx反向代理

◆  抓包工具tcpdump用法说明

◆  零成本 | 手把手教你搭建个人博客

◆  实战 | Hadoo大数据集群搭建

◆【深度好文】终于有人把云计算、大数据和AI讲明白了

◆  亿级web系统负载均衡几种实现方式

◆  一文带你读懂zookeeper在大数据生态的应用

好文和朋友一起看~

iptables系列教程(三)| iptables 实战篇的更多相关文章

  1. Linux Capabilities 入门教程:基础实战篇

    该系列文章总共分为三篇: Linux Capabilities 入门教程:概念篇 Linux Capabilities 入门教程:基础实战篇 待续... 上篇文章介绍了 Linux capabilit ...

  2. Capabilities 入门教程:基础实战篇

    该系列文章总共分为三篇: Linux Capabilities 入门教程:概念篇 Linux Capabilities 入门教程:基础实战篇 待续... 上篇文章介绍了 Linux capabilit ...

  3. Linux Capabilities 入门教程:进阶实战篇

    原文链接:https://fuckcloudnative.io/posts/linux-capabilities-in-practice-2/ 该系列文章总共分为三篇: Linux Capabilit ...

  4. 黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (初级)

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (初级) 企业库提供了一个很强大的验证应用程序模 ...

  5. CRL快速开发框架系列教程三(更新数据)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  6. Android Studio系列教程三--快捷键

    Android Studio系列教程三--快捷键 2014 年 12 月 09 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://stormzhang.com/ ...

  7. NGUI系列教程三

    接下来我们再来看Progress Bar和Slider,对比参数我们可以发现,Progress Bar和slider的明显区别在于slider多一个Thumb选项,这里的Thumb就是我们拖动的时候点 ...

  8. 黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (高级)

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (高级) 企业库验证应用程序模块之配置文件模式: ...

  9. Fastify 系列教程三 (验证、序列化和生命周期)

    Fastify 系列教程: Fastify 系列教程一 (路由和日志) Fastify 系列教程二 (中间件.钩子函数和装饰器) Fastify 系列教程三 (验证.序列化和生命周期) 验证 Fast ...

  10. webpack4 系列教程(三): 多页面解决方案--提取公共代码

    这节课讲解webpack4打包多页面应用过程中的提取公共代码部分.相比于webpack3,4.0版本用optimization.splitChunks配置替换了3.0版本的CommonsChunkPl ...

随机推荐

  1. Kafka 与传统 MQ 消息系统之间有三个关键区别?

    (1).Kafka 持久化日志,这些日志可以被重复读取和无限期保留 (2).Kafka 是一个分布式系统:它以集群的方式运行,可以灵活伸缩,在内部通过 复制数据提升容错能力和高可用性 (3).Kafk ...

  2. springMVC和struts2的区别有哪些?

    (1)springmvc的入口是一个servlet即前端控制器(DispatchServlet),而struts2入口是一个filter过虑器(StrutsPrepareAndExecuteFilte ...

  3. 在 Java 中 Executor 和 Executors 的区别?

    Executors 工具类的不同方法按照我们的需求创建了不同的线程池,来满足业务 的需求. Executor 接口对象能执行我们的线程任务. ExecutorService 接口继承了 Executo ...

  4. java-設計模式概述

    什麽是設計模式?? 软件设计中常见问题的典型解决方案. 能根据需求进行调整的预制蓝图, 可用于解决代码中反复出现的设计问题. 模式并不是一段特定的代码, 而是解决特定问题的一般性概念. 你可以根据模式 ...

  5. 初识Spring(为什么要使用Spring?)

    Spring,英文翻译是春天的意思,而在Java中,是一个开放源代码的设计层面框架(手动滑稽,程序员的春天),他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用.S ...

  6. Linux 基础优化

    1.操作的最小化原则 1)安装系统最小化 一般情况下安装OS时,软件安装包组(Package Group)的选择: base--------------------------基本环境 editors ...

  7. 解决canvas画图模糊的问题

    canvas 画图经常发现他是模糊的.解决这个问题主要从两个方面下手. 改变canvas渲染的像素情况:画1像素的线条看起来模糊不清,好像更宽的样子. 解决方案 var ctx = canvas.ge ...

  8. 原生js实现架子鼓特效

    这是代码完成的效果,按下abcd会出现对应的架子鼓音乐的效果. 简单的介绍下代码思路,html和css部分就不多说了. 重要的是js部分. 大致是这样的, 首先获取到所有的按钮为一个数组,然后遍历整个 ...

  9. 关于Echarts的填坑之旅

    正如标题所说,这是Echarts的一遍填坑,如果你是一些echart的配置的话可以阅读http://echarts.baidu.com/opti...的官网配置信息.今天我想给大家分享的是一些我前段时 ...

  10. 从ES6重新认识JavaScript设计模式(三): 建造者模式

    1 什么是建造者模式? 建造者模式(Builder)是将一个复杂对象的构建层与其表示层相互分离,同样的构建过程可采用不同的表示. 建造者模式的特点是分步构建一个复杂的对象,可以用不同组合或顺序建造出不 ...