Dit artikel doet diepgaand onderzoek naar en analyse van het IPsec ondersteuningsmechanisme in de Linux 2.6 kernel, en biedt een uitgebreide ontwerpmethode voor het bouwen van een VPN gateway: inclusief user gateway console, kernel module communicatie en IKE module, het ontwerpen en implementeren van een IPsec VPN Security gateway prototype.
Beveiliging is een belangrijke voorwaarde voor de ontwikkeling van het internet. In februari 1998 bracht de IETF het IP-beveiligingsprotocol uit, beter bekend als IPsec. Dit is een verzameling protocollen op de netwerklaag die authenticatie van gegevensbronnen, gegevensintegriteit en vertrouwelijkheid van gegevens bieden voor IPv4 en IPv6. Als uitbreidbare netwerkbeveiligingsset wordt IPsec ondersteund en steeds breder toegepast. De IPsec beveiligingsarchitectuur bestaat uit vier delen:
(1) Beveiligingsprotocol: De Authentication Header (AH) wordt gebruikt om integriteit zonder verbindingen en authenticatie van gegevensbronnen te bieden voor IP datagrammen. ESP biedt vertrouwelijkheid, authenticatie van gegevensbronnen, integriteit zonder verbindingen, vertrouwelijkheid van de netwerklaag en beperkte vertrouwelijkheid van het verkeer. Zowel AH als ESP ondersteunen twee gebruiksmodi: transportmodus en tunnelmodus. Het protocol in transportmodus biedt voornamelijk bescherming voor protocollen van de bovenste laag. In tunnelmodus is het protocol geschikt voor het tunnelen van IP pakketten.Industriële gateway
(2) Beveiligingsassociaties en beveiligingsbeleid. Een beveiligingsassociatie (SA) is een eenvoudige “verbinding” die AH of ESP kan gebruiken om eenrichtingsbeveiligingsservices te bieden. Als er zowel AH- als ESP-bescherming wordt toegepast op de verkeersstroom, dan moeten er twee (of meer) SA's worden aangemaakt. Om typische tweerichtingscommunicatie tussen twee hosts of tussen twee beveiligingsgateways te garanderen, zijn er twee beveiligingsassociaties (één in elke richting) nodig
vereist. Beveiligingsbeleid richt zich op meerdere communicatieparameters (zoals IP-adressen, poortnummers, protocollen, enz.) om netwerkbeveiligingsdiensten te definiëren die specifiek worden toegepast op specifiek netwerkverkeer.
(3) Interactieprotocol voor wachtwoorden. Internet Key Exchange (IKE) is een belangrijk IPsec protocol. Het doel ervan is om op een beschermde manier te onderhandelen over gecertificeerd sleutelmateriaal en een beveiligingsassociatie te bieden. De huidige versie van het protocol is IKEv2, dat het volgende definieert
Efficiëntere vormen van sleuteluitwisseling, sleutels, veiligere authenticatie- en versleutelingsmechanismen en het creëren van nieuwe methoden.

(4) Beveiligingsalgoritme. IPsec gespecificeerde algoritmen omvatten HMAC-MD5-96, HMAC-SHA-96, DES-CBC cryptografisch algoritme en vele andere algoritmen.
1 Linux IPSec-ondersteuning
De Linux 2.6 kernel biedt een nieuw ondersteuningsmechanisme voor IPSec. Het IPSec-ondersteuningsmechanisme in de Linux 2.6 kernel omvat voornamelijk: IPSec-verwerking/naadloze toegang 0 in de kernel netwerk protocol stack, AH-protocol, ESP-protocol verwerking, de datastructuur en gerelateerde datastructuren van de belangrijke IPSec-componenten beveiligingsassociatie SA en beveiligingsbeleid SP Toegangsalgoritme, bouw en toegang van beveiligingsassociatie database SAD en beveiligingsbeleid database SPD, ondersteuning van IPSec encryptie algoritme functiebibliotheek, communicatie-ondersteuning tussen kernel-modus en gebruikersmodus op basis van Netlink socket, en het beheer van kernel IPSec, enz. 2VPN gateway algemeen ontwerp en implementatie
De VPN beveiligingsgateway is verdeeld in een gebruikersconsole module en een kernelruimte module. Zoals weergegeven in figuur 1.
De beheerconsole van de beveiligingsgateway biedt beheerders een interface voor beheerconfiguratie. VPN-beheerders kunnen de functie van de beveiligingsgateway via de console in- of uitschakelen. Als de beveiligingsgateway is ingeschakeld, kunnen ze handmatig een beveiligd kanaal tot stand brengen via de beheerconsole en het beveiligingsbeleid, de beveiligingsassociaties en andere parameters voor beveiligde communicatie configureren.
De security gateway en kernel interactiemodule is een communicatiehub die verantwoordelijk is voor het verbinden van het user space proces en het kernel space IPSec deel. Het voert voornamelijk twee taken uit:
(1) Berichten ontvangen die actief worden geïnitieerd door processen in de gebruikersruimte, waaronder verzoeken die worden verzonden door de beheerconsole en de IKE-daemon, de verzoeken van het gebruikersproces inkapselen in een berichtindeling die acceptabel is voor het IPSec-beheer van de kernel, deze naar de kernel verzenden en ten slotte de resultaten van de kernelverwerking bewaken; ;
(2) Houd toezicht op berichten die actief door de kernel worden geïnitieerd, waaronder: verzoek om SA op te zetten, kennisgeving over het verlopen van de SA-levensduur en kennisgeving over het verlopen van de levensduur van het beveiligingsbeleid.
Het kernel IPSec-beheeronderdeel bevat ook de communicatie-interface die door de kernel wordt geleverd voor de interactie tussen kernel IPSec en gebruikersruimte. Dit onderdeel ontvangt berichten uit de gebruikersruimte, roept de corresponderende functies in de kernel aan en voert specifieke bewerkingen uit.
De beveiligingsbondatabase SAD bevat alle beveiligingsassociaties die gebruikt worden om communicatie te beschermen en de beveiligingsbeleidsdatabase SPD bevat alle gebruikte beleidsregels. Alle inkomende en uitgaande pakketten gaan door de IP-laag. Bij het ontvangen van IPSec-verwerking moeten SAD en SPD worden opgevraagd om overeenkomstige verwerkingsmaatregelen te nemen.
IPSec-verwerking biedt versleuteling en integriteitsbescherming voor uitgaande gegevens, ontsleutelt en controleert de integriteit van ontvangen gegevens en realiseert echt de beveiligingsgarantiefunctie van de beveiligingsgateway. Dit deel van de functionele kern wordt geleverd. De kernelversleutelingsalgoritmabibliotheek voorziet IPSec van de functies die nodig zijn voor verschillende versleutelingsbewerkingen.