【Linux】TCP_Wrappers+iptables實現堡壘機功能

規劃

顯示jumpserver的簡單功能,大致的網絡拓撲圖如下
在這里插入圖片描述


功能規劃 & 拓撲結構

JumpServer(堡壘機)主要功能:

  • 對訪問目標服務器進行統一入口控制(例如 nginx、mysql、redis)。
  • 使用 iptables 做 NAT 轉發,控制從外部進入內部服務器的流量。
  • 使用 /etc/hosts.allow/etc/hosts.deny 做基于主機的簡單訪問控制。
  • 提供腳本化的登錄菜單,方便用戶連接目標服務。

網絡拓撲圖

正式的圖結構如下:

┌──────────────┐        ┌─────────────┐       ┌──────────────┐
│ NAT客戶端     │        │ NAT路由器     │       │ 目標內網服務器們 │
│ 192.168.100.x │ <───?  │ 192.168.100.202 │────?│ 192.168.200.201等 │
└──────────────┘        │ 192.168.200.250 │       └──────────────┘└─────────────┘

主機訪問控制(hosts.allow / deny)

在客戶端啟用訪問控制(防止非法 IP 直接訪問內網服務器):

# /etc/hosts.allow
sshd:192.168.200.200
# 僅允許堡壘機 IP 登錄 sshd 服務# /etc/hosts.deny
sshd:ALL
# 拒絕所有其他 IP

這樣就實現了“只有堡壘機能登錄這些服務器”。

加固堡壘機ssh

vim /etc/ssh/sshd_config
PermitRootLogin no
Port 6677

NAT 轉發規則

配置在 nat-router 上:

#開啟路由功能
echo  1  >/proc/sys/net/ipv4/ip_forward
#SNAT
# 源地址偽裝,使內網服務器返回包能正常出去
iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -o ens32 -j MASQUERADE
#iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -o ens32 -j SNAT --to-source 192.168.100.202# 將外網訪問堡壘機端口 2233 的請求,轉發到內網堡壘機的 6677 端口
iptables -t nat -A PREROUTING -i ens32 -d 192.168.100.202 -p tcp --dport 2233 -j DNAT --to-destination 192.168.200.200:6677[root@nat-router ~]# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       tcp  --  0.0.0.0/0            192.168.100.202      tcp dpt:2233 to:192.168.200.200:6677Chain INPUT (policy ACCEPT)
target     prot opt source               destinationChain OUTPUT (policy ACCEPT)
target     prot opt source               destinationChain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  192.168.200.0/24     0.0.0.0/0

通過防火墻服務器的DNAT功能連接jumpserver服務器
在這里插入圖片描述


堡壘機腳本(模擬登陸菜單)

#!/bin/bashwhile true; doecho "========= 堡壘機登錄系統 ========="echo "1. 連接 Redis 服務器"echo "2. 連接 MySQL 服務器"echo "3. 連接 nginx 服務器"echo "4. 退出"echo "================================="read -p "請輸入你的選擇 [1-4]:" numcase $num in1)ssh root@192.168.200.201 -p 22;;2)ssh root@192.168.200.202 -p 22;;3)ssh root@192.168.200.203 -p 22;;4)echo "已退出。"exit 0;;*)echo "無效選擇,請重新輸入!";;esac
done

測試結果
在這里插入圖片描述


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/77651.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/77651.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/77651.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

用HTML和CSS繪制佩奇:我不是佩奇

在這篇博客中&#xff0c;我將解析一個完全使用HTML和CSS繪制的佩奇(Pig)形象。這個項目展示了CSS的強大能力&#xff0c;僅用樣式就能創造出復雜的圖形&#xff0c;而不需要任何圖片或JavaScript。 項目概述 這個名為"我不是佩奇"的項目是一個純CSS繪制的卡通豬形象…

Spring 中 WebFlux 編寫一個簡單的 Controller

引言&#xff1a;響應式編程與 WebFlux 隨著應用程序需要處理大量并發請求的情況越來越多&#xff0c;傳統的 Servlet 編程模式可能無法滿足高效和低延遲的需求。為了應對這種情況&#xff0c;Spring 5 引入了 WebFlux&#xff0c;一個基于響應式編程的 Web 框架&#xff0c;旨…

React十案例下

代碼下載 登錄模塊 用戶登錄 頁面結構 新建 Login 組件&#xff0c;對應結構: export default function Login() {return (<div className{styles.root}><NavHeader className{styles.header}>賬號登錄</NavHeader><form className{styles.form}>&…

100道C#高頻經典面試題帶解析答案——全面C#知識點總結

100道C#高頻經典面試題帶解析答案 以下是100道C#高頻經典面試題及其詳細解析&#xff0c;涵蓋基礎語法、面向對象編程、集合、異步編程、LINQ等多個方面&#xff0c;旨在幫助初學者和有經驗的開發者全面準備C#相關面試。 &#x1f9d1; 博主簡介&#xff1a;CSDN博客專家、CSD…

機動車號牌管理系統設計與實現(代碼+數據庫+LW)

摘 要 在如今社會上&#xff0c;關于信息上面的處理&#xff0c;沒有任何一個企業或者個人會忽視&#xff0c;如何讓信息急速傳遞&#xff0c;并且歸檔儲存查詢&#xff0c;采用之前的紙張記錄模式已經不符合當前使用要求了。所以&#xff0c;對機動車號牌信息管理的提升&…

VMWare Workstation Pro17.6最新版虛擬機詳細安裝教程(附安裝包教程)

目錄 前言 一、VMWare虛擬機下載 二、VMWare虛擬機安裝 三、運行虛擬機 前言 VMware 是全球領先的虛擬化技術與云計算解決方案提供商&#xff0c;通過軟件模擬計算機硬件環境&#xff0c;允許用戶在一臺物理設備上運行多個獨立的虛擬操作系統或應用。其核心技術可提升硬件…

DeepSeek的神經元革命:穿透搜索引擎算法的下一代內容基建

DeepSeek的神經元革命&#xff1a;穿透搜索引擎算法的下一代內容基建 ——從語義網絡到價值共識的范式重構 一、搜索引擎的“內容饑渴癥”與AI的基建使命 2024年Q1數據顯示&#xff0c;百度索引網頁總數突破3500億&#xff0c;但用戶點擊集中在0.78%的高價值頁面。這種“數據…

docker安裝nginx,基礎命令,目錄結構,配置文件結構

Nginx簡介 Nginx是一款輕量級的Web服務器(動靜分離)/反向代理服務器及電子郵件&#xff08;IMAP/POP3&#xff09;代理服務器。其特點是占有內存少&#xff0c;并發能力強. &#x1f517;官網 docker安裝Nginx &#x1f433; 一、前提條件 ? 已安裝 Docker&#xff08;dock…

Python Lambda表達式詳解

Python Lambda表達式詳解 1. Lambda是什么&#xff1f; Lambda是Python中用于創建匿名函數&#xff08;沒有名字的函數&#xff09;的關鍵字&#xff0c;核心特點是簡潔。它適用于需要臨時定義簡單函數的場景&#xff0c;或直接作為參數傳遞給高階函數&#xff08;如map()、f…

基礎知識補充篇:什么是DAPP前端連接中的provider

專欄:區塊鏈入門到放棄查看目錄-CSDN博客文章瀏覽閱讀352次。為了方便查看將本專欄的所有內容列出目錄,按照順序查看即可。后續也會在此規劃一下后續內容,因此如果遇到不能點擊的,代表還沒有更新。聲明:文中所出觀點大多數源于筆者多年開發經驗所總結,如果你想要知道區塊…

P1115 最大子段和

P1115 最大子段和 - 洛谷 題目描述 給出一個長度為 n 的序列 a&#xff0c;選出其中連續且非空的一段使得這段和最大。 輸入格式 第一行是一個整數&#xff0c;表示序列的長度 n。 第二行有 n 個整數&#xff0c;第 i 個整數表示序列的第 i 個數字 a?。 輸出格式 輸出一…

用實體識別模型提取每一條事實性句子的關鍵詞(實體),并保存到 JSON 文件中

示例代碼&#xff1a; # Generate Keywords import torch import os from tqdm import tqdm import json import nltk import numpy as npfrom span_marker import SpanMarkerModelmodel SpanMarkerModel.from_pretrained("tomaarsen/span-marker-mbert-base-multinerd&…

E8流程多行明細行字符串用I分隔,賦值到主表

需求&#xff1a;明細行摘要字段賦值到主表隱藏字段&#xff0c;隱藏摘要字段在標題中顯示 代碼如下&#xff0c;代碼中的獲取字段名獲取方式&#xff0c;自行轉換成jQuery("#fieldid").val()替換。 //1:參數表單id 2:流程字段名 3:0代表主表&#xff0c;1代表明細…

優化你的 REST Assured 測試:設置默認主機與端口、GET 請求與斷言

REST Assured 是一個功能強大的 Java 庫&#xff0c;用于測試 RESTful Web 服務。它簡化了 API 測試流程&#xff0c;提供了一整套用于高效驗證響應的工具。在本篇博客中&#xff0c;我們將深入探討幾個核心概念&#xff0c;包括如何設置默認主機和端口、如何發起 GET 請求以及…

3.1.3.4 Spring Boot使用使用Listener組件

在Spring Boot中&#xff0c;使用Listener組件可以監聽和響應應用中的各種事件。首先&#xff0c;創建自定義事件類CustomEvent&#xff0c;繼承自ApplicationEvent。然后&#xff0c;創建事件監聽器CustomEventListener&#xff0c;使用EventListener注解標記監聽方法。接下來…

【 vue + js 】引入圖片、base64 編譯顯示圖片

一、引入普通圖片 1、代碼示例&#xff1a; <div class"question"><!-- 錯誤寫法 --><el-empty image"../assets/noinformation.svg" description"暫無問卷"><el-button type"primary">按鈕</el-button&…

JVM 之 String 引用機制解析:常量池、堆內存與 intern 方法

關于常量池中的String類型的數據&#xff0c;在JDK6中只可能是對象&#xff0c;在JDK7中既可以是對象也可以是引用 案例一&#xff1a; String s1 new String("1"); String s2 "1"; System.out.println(s1 s2);s1: 執行 new String("1")&am…

數據庫管理-第313期 分布式挑戰單機,OceanBase單機版試玩(20250411)

數據庫管理313期 2025-04-11 數據庫管理-第313期 分布式挑戰單機&#xff0c;OceanBase單機版試玩&#xff08;20250411&#xff09;1 環境說明2 操作系統配置2.1 關閉防火墻2.2 關閉SELinux2.3 配置hosts文件2.4 配置本地yum源2.5 配置sysctl.conf2.6 配置limits.conf2.7 創建…

AI 之 LLM(大語言模型)是如何生成文本的!

你是不是也曾在朋友面前自信滿滿地說&#xff1a;“AI我可太熟了&#xff01;”然后隨便丟一句“寫篇短文”給大模型&#xff0c;坐等它秒出結果&#xff1f;但你有沒有想過&#xff0c;那幾秒鐘里&#xff0c;AI到底干了什么&#xff1f;從你敲下的幾個字&#xff0c;到屏幕上…

STL之序列式容器(Vector/Deque/List)

序列式容器 序列式容器包括&#xff1a;靜態數組 array 、動態數組 vector 、雙端隊列 deque 、單鏈表 forward_ list 、雙鏈表 list 。這五個容器中&#xff0c;我們需要講解三個 vector 、 deque 、 list 的使 用&#xff0c;包括&#xff1a;初始化、遍歷、尾部插入與刪除、…