• 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
    
    • 1
    • 2

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

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

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

    3、端口转发

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

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

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

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

    在这里插入图片描述
    或者

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

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

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

    表示将目标服务器上的目标端口路由给本机,192.168.112.188表示本机的ip地址,192.168.112.153表示目标服务器,80是目标端口。
    在这里插入图片描述
    (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
    
    • 1

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

  • 相关阅读:
    《从菜鸟到大师之路 正则表达式 篇》
    Python函数式编程
    数据分析常见的英文缩写(一)
    实现BIO多客户端通讯模式
    Linux系统安装redis并配置为服务
    内核开发0 --- 代码规范
    【基于富瀚6630使用/dev/fb0显示设备和TDE模块渲染bmp图像】
    解密NFT区块链游戏和收藏品市场
    Flyway-数据库管理工具使用与命令
    国内数字藏品的乱象与未来
  • 原文地址:https://blog.csdn.net/weixin_42374938/article/details/126638758