当前位置: 首页 > news >正文

iptables实战

1、只对外开放某个端口

在这里插入图片描述
允许本地访问外部IP地址和端口号,通过设定白名单的方式可以防止本机去访问别的服务器。通过这种场景的设置,可以最大可能避免反弹shell和挖矿程序去试图通过本地访问目标服务器下载恶意程序或执行恶意指令。

iptables -I INPUT -i  ens33 -p tcp -s 192.168.112.153 --sport 80 -j ACCEPT
iptables -I OUTPUT -o  ens33 -p tcp -d 192.168.112.153 --sport 80 -j ACCEPT

通过以上设置本机可以与192.168.112.153的80端口进行交互。注意上述是本机访问其他服务器。

2、防止DDOS攻击,设定一些数据的限制条件

iptables -A INPUT -p --sport 80 -m limit 25/minute --limit-burst 100 -j ACCEPT

3、端口转发

1、本机端口转发:比如80端口对外封闭,开放一个45692供外部访问,外部只知道45692,不知道80,可以避免协议猜测。

iptables -t nat -A PREROUTING -p tcp --dport 45692 -j REDIRECT --to-port 80

如上表示把45692端口的流量转发到80端口。

2、远程端口转发:把本机接收到的请求转发到远程电脑和对应端口上,远程可以是本地局域网,也可以是公网服务器。
远程端口转发时需要确保端口转发功能是启用的。

在这里插入图片描述
或者

vi /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p /etc/sysctl.conf

(1)SNAT
原地址转换典型应用环境:局域网主机共享单个公网IP地址接入inernet。
前提条件:
(1)局域网各主机正确设置IP地址/子网掩码。
(2)局域网各主机正确设置默认网关地址。
(3)Linux网关支持IP路由转发。
实现方式:
在这里插入图片描述
或者如下:

iptables -t nat -A POSTROUTING -d 192.168.112.153 -p tcp --dport 80 -j SNAT --to 192.168.112.188

表示将目标服务器上的目标端口路由给本机。
在这里插入图片描述
(2)DNAT
目标地址转换典型应用环境:在Internet中发布位于企业局域网内的服务器。
前提条件:
(1)局域网的Web服务器能够访问Internet。
(2)网关的外网IP地址有正确的DNS解析记录。
(3)Linux网关支持IP路由转发。
实现方式:
在这里插入图片描述
也可如下:

iptables -t nat -A PREROUTING -d 192.168.112.188 -p tcp --dport 80 -j DNAT --to-destination 192.168.112.153:80

表示如果有人访问192.168.112.188的80端口,则DNAT会转发给192.168.112.153的80端口。

相关文章:

  • JavaScript心得笔记-1(后端了解必备)
  • 前端培训丁鹿学堂:css布局之定位知识总结
  • 基础 | 并发编程 - [AQS]
  • java8 新特性 stream
  • DAY45(DAY46拓展):SOCKS 代理技术
  • Handler消息传递机制
  • Django之路由匹配
  • Java面试(四)JVM基础
  • 新学期,新FLAG
  • 一文详解C语言文件
  • Java实现的一个编译器源代码(Win11)
  • 内核调试:crash工具与vmcore实践
  • C++ Qt / VS2019 +opencv + onnxruntime 部署语义分割模型【经验】
  • 如何查看线程死锁
  • 代码源每日一题div2 可重排列
  • 【翻译】babel对TC39装饰器草案的实现
  • 2017 年终总结 —— 在路上
  • AWS实战 - 利用IAM对S3做访问控制
  • Druid 在有赞的实践
  • IDEA 插件开发入门教程
  • Java精华积累:初学者都应该搞懂的问题
  • LeetCode29.两数相除 JavaScript
  • Netty源码解析1-Buffer
  • PHP 的 SAPI 是个什么东西
  • python_bomb----数据类型总结
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 将 Measurements 和 Units 应用到物理学
  • 三栏布局总结
  • 微信开源mars源码分析1—上层samples分析
  • 问题之ssh中Host key verification failed的解决
  • kubernetes资源对象--ingress
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • !!java web学习笔记(一到五)
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • $.ajax()
  • (2015)JS ES6 必知的十个 特性
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (四)图像的%2线性拉伸
  • (转载)hibernate缓存
  • (转载)利用webkit抓取动态网页和链接
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .Net7 环境安装配置
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .NET学习全景图
  • .so文件(linux系统)
  • .stream().map与.stream().flatMap的使用