一个执着于技术的公众号

实战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. keybd_event 在F按键系列不起作用的解决办法

    最近给公司做自动化测试工具,主要用到的功能是模拟鼠标键盘录制回放.一切都很完美了,但在客户大机系统上使用的时候,发现F1-F24系列按键无法正确使用,查了很多资料,主要有2个方面的原因: 1.一些游戏 ...

  2. java中的四种引用类型

    为什么需要引用: Java的内存回收不需要程序员负责,JVM会在必要时启动Java GC完成垃圾回收. Java以便我们控制对象的生存周期,提供给了我们四种引用方式,引用强度从强到弱分别为:强引用.软 ...

  3. SpringDataJdbc整合MyBatis方式

    由于官方文档springdatajdbc整合mybatis过于简述,导致死磕了一段时间, SpringDataJdbc整合Mybatis的官方文档:https://docs.spring.io/spr ...

  4. 面试问题之C++语言:说一下static关键字的作用

    1.全局静态变量 在全局变量加上关键字static,全局变量就定义成一个全局静态变量,存放于静态存储区,在整个程序运行期间一直存在:未经初始化的全局静态变量会被自动初始化为0:全局静态变量在声明他的文 ...

  5. List、Map、Set 三个接口存取元素时,各有什么特点?

    List 以特定索引来存取元素,可以有重复元素.Set 不能存放重复元素(用对象的 equals()方法来区分元素是否重复).Map 保存键值对(key-value pair)映射, 映射关系可以是一 ...

  6. TCP 重传、滑动窗⼝、流量控制、拥塞控制

    重传机制 TCP 会在以下两种情况发⽣超时重传: 数据包丢失 确认应答丢失 重传超时 重传超时是TCP协议保证数据可靠性的另一个重要机制,其原理是在发送某一个数据以后就开启一个计时器,在一定时间内如果 ...

  7. scanf()函数的原理

    最近使用scanf发现了自己对scanf函数还是不太了解,主要出现在无意中出现的一个错误: scanf正确的写法是,scanf中以什么格式输入变量,则变量的类型就应该是什么格式,如下面scanf输入到 ...

  8. Android CheckBox的监听事件

    1.在xml文件中定义CheckBox,一定要定义id <CheckBox android:id="@+id/beijing" android:layout_width=&q ...

  9. TypeScript学习文档-基础篇(完结)

    目录 TypeScript学习第一章:TypeScript初识 1.1 TypeScript学习初见 1.2 TypeScript介绍 1.3 JS .TS 和 ES之间的关系 1.4 TS的竞争者有 ...

  10. Java基础之浅谈异常与了解断言

    一.产生错误原因 用户输入错误 设备错误 物理限制 代码错误 二.解决错误---异常 在Java中异常对象都是派生于Throwable类的一个实例. 我们一般将异常分为两种:①Error和②Excep ...