GNU/Linux >> Linux の 問題 >  >> Cent OS

Strongswanを使用してIKEv2VPNをセットアップし、CentOS8で暗号化する方法

Strongswanは、オープンソースのマルチプラットフォームIPSec実装です。これは、強力な認証メカニズムに焦点を当てたIPSecベースのVPNソリューションです。 Strongswanは、IKEv1とIKEv2の両方のキー交換プロトコル、X.509証明書または事前共有キーに基づく認証、および安全なIKEv2EAPユーザー認証のサポートを提供します。

このチュートリアルでは、Strongswanを使用してIPSecVPNサーバーをインストールする方法を紹介します。 「EAP-MSCHAPv2」認証を使用してIKEv2VPNサーバーを作成し、CentOS8サーバーでLetsencrypt証明書を使用します。

前提条件

  • CentOS8サーバー
  • root権限

何をしますか?

  • CentOS8にStrongswanをインストールする
  • SSLLetsencryptを生成する
  • Strongswanを設定する
  • NATファイアウォールを有効にする
  • ポート転送を有効にする
  • テスト
ステップ1-CentOS8にStrongswanをインストールする

この最初のステップでは、strongswanのIPsec実装ソフトウェアと必要なすべてのパッケージをEPELリポジトリからインストールします。

strongswanパッケージをインストールする前に、EPELリポジトリをCentOS8システムに追加する必要があります。

CentOS8サーバーのEPELリポジトリを追加します。

sudo dnf install epel-release

その後、以下のdnfコマンドを使用して、EPELリポジトリからstrongswanパッケージをインストールします。

sudo dnf install strongswan

strongswanパッケージがインストールされるのを待ちます。

ステップ2-Let'sEncryptを使用してSSL証明書を生成する

このガイドでは、ドメイン名「vpn.hakase-labs.io」を使用してIKEv2 VPNサーバーを作成し、letsencryptから生成された証明書を使用します。

このステップでは、letsencryptツール「certbot」を手動でインストールし、サーバードメイン名「vpn.hakase-labs.io」の証明書を生成します。

以下のwgetコマンドを使用して、GitHubからcertbotバイナリファイルをダウンロードします。

wget https://dl.eff.org/certbot-auto -O /usr/local/bin/certbot-auto

その後、ファイルの権限を変更して実行可能にします。

chmod +x /usr/local/bin/certbot-auto

また、Letsencrypt証明書を生成するためのcertbotツールがインストールされています。

Letsencrypt証明書を生成する前に、firewall-cmdを使用してサーバーのHTTPポートとHTTPSポートを開く必要があります。

以下のfirewall-cmdコマンドを実行して、HTTPおよびHTTPSサービスをfirewalldサービスリストに追加します。

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload

これで、letsencryptツールcertbot-autoを使用して新しいSSL証明書ファイルを生成できます。

メールアドレスとドメイン名を自分のものに変更し、以下の「certbot-auto」コマンドを実行します。

certbot-auto certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d vpn.hakase-labs.io

完了すると、次のような結果が得られます。

ドメイン名のすべての証明書は、「/etc/letsencrypt/live/domain.com」ディレクトリに生成されます。

次に、証明書ファイル「fullchain.pem」、「privkey.pem」、および「chain.pem」を「/etc/strongswan/ipsec.d/」ディレクトリにコピーする必要があります。

cp /etc/letsencrypt/live/vpn.hakase-labs.io/fullchain.pem /etc/strongswan/ipsec.d/certs/
cp /etc/letsencrypt/live/vpn.hakase-labs.io/privkey.pem /etc/strongswan/ipsec.d/private/
cp /etc/letsencrypt/live/vpn.hakase-labs.io/chain.pem /etc/strongswan/ipsec.d/cacerts/

「vpn.hakase-labs.io」という名前のStrongswanVPNのすべてのletsencrypt証明書が生成され、「/ etc / strongswan/ipsec.d」ディレクトリにコピーされました。

tree /etc/strongswan/ipsec.d/

ステップ3-Strongswanを設定する

'/ etc / strongswan'ディレクトリに移動し、デフォルトの'ipsec.conf'構成ファイルをバックアップします。

cd /etc/strongswan/
mv ipsec.conf ipsec.conf.asli

vimエディターを使用して新しい「ipsec.conf」を作成します。

vim ipsec.conf

そして、次の構成を貼り付けます。

config setup
    uniqueids=never # allow multiple connections per user
    charondebug="ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2,  mgr 2"

conn %default
    fragmentation=yes
    closeaction=restart
    rekey=no
    dpdaction=clear
    keyexchange=ikev2
    compress=yes
    dpddelay=35s
    lifetime=3h
    ikelifetime=12h

    ike=aes256gcm16-prfsha512-ecp384!
    esp=aes256gcm16-ecp384!

    left=%any
    [email protected]
    leftcert=fullchain.pem
    leftsendcert=always
    leftsubnet=0.0.0.0/0

    right=%any
    rightid=%any
    rightauth=eap-mschapv2
    rightsourceip=10.15.1.0/24
    rightdns=1.1.1.1,8.8.8.8
    rightsendcert=never
    eap_identity=%identity

conn ikev2-pubkey
    auto=add

保存して終了します。

次に、「ipsec.secrets」ファイルを編集して、RSAサーバーの秘密鍵とEAPユーザーパスワードのクレデンシャルを定義する必要があります。

'ipsec.secrets'ファイルを編集します。

vim ipsec.secrets

以下の設定を貼り付けてください。

: RSA "privkey.pem"
hakase : EAP "[email protected]"
tensai : EAP "[email protected]"

保存して終了します。

そして、strongswanのIPSec構成が完了しました。起動ブート時間にstrongswanサービスを追加してから、サービスを開始します。

systemctl enable strongswan
systemctl start strongswan

strongswanサービスはCentOS8サーバーで稼働しています。次のコマンドを使用して確認してください。

systemctl status strongswan
netstat -plntu

そして、以下のような結果が表示されます。

ステップ4-FirewalldでNATを有効にする

このステップでは、NATマスカレードを有効にし、「リッチルール」構成を使用して、ファイアウォールでIPSecプロトコル認証ヘッダー(AH)とカプセル化セキュリティペイロード(ESP)を追加します。

認証および暗号化プロトコル用の「AH」および「ESP」をfirewalldに追加します。

firewall-cmd --zone=public --permanent --add-rich-rule='rule protocol value="esp" accept'
firewall-cmd --zone=public --permanent --add-rich-rule='rule protocol value="ah" accept'

ipsecUDPポートとサービスを追加します。

firewall-cmd --zone=public --permanent --add-port=500/udp
firewall-cmd --zone=public --permanent --add-port=4500/udp
firewall-cmd --zone=public --permanent --add-service="ipsec"

次に、NATモードのマスカレードを有効にして、firewalld構成ルールをリロードします。

firewall-cmd --zone=public --permanent --add-masquerade
firewall-cmd --reload

FirewalldのNATモードが有効になっています。以下のコマンドを使用して確認してください。

firewall-cmd --list-all

結果は次のとおりです。

ステップ5-ポートフォワーディングを有効にする

ポートフォワーディングを有効にするには、「sysctl.conf」ファイルを編集する必要があります。

vimエディターを使用して「/etc/sysctl.conf」ファイルを編集します。

vim /etc/sysctl.conf

次の構成をそこに貼り付けます。

net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0

保存して終了し、以下のsysctlコマンドを使用してリロードします。

sysctl -p

ポートフォワーディングが有効になっています。次に、strongswanサービスを再起動します。

systemctl restart strongswan

ステップ6-StrongswanIPSecVPNのテスト

この場合、MacOSXとAndroidフォンでテストを行います。

MacOSの場合

-[システム環境設定]を開き、[ネットワーク]メニューをクリックします。

[+]ボタンをクリックして、新しいVPN接続を作成します。

    • インターフェース:「VPN」
    • VPNタイプ:'IKEv2'
    • サービス名:'IKEv2-vpn

-「サーバーアドレス」と「リモートID」に、VPNドメイン名「ikev2.hakase-labs.io」を入力します。
-「認証設定」をクリックします。
-「ユーザー名」を使用した認証。
-ユーザー名「tensai」とパスワード「[emailprotected]」を入力します。
-「OK」をクリックして「Apply」をクリックします。


新しいIKEv2VPN接続がクライアントに作成されました。次に、接続ボタンをクリックします。


そして、クライアントはstrongswan VPNサーバーに接続されており、内部/プライベートIPアドレス10.15.1.1を持っています。

Androidの場合

-Google-Playからネイティブのstrongswanandroidアプリケーションをダウンロードしてインストールします。
-新しいVPNプロファイルを追加します
-サーバードメイン名「ikev2.hakase-labs.io」を入力し、IKEv2EAPのユーザー名とパスワードを使用します認証。

以下は、VPNサーバーに接続したときの結果です。

IKEv2 IPSecベースのVPNサーバーは、CentOS8サーバーでStrongswanとLetsencryptを使用して作成されています。


Cent OS
  1. Strongswanを使用してIKEv2VPNをセットアップし、CentOS7で暗号化する方法

  2. CentOSにDRBDをインストールしてセットアップする方法

  3. CentOS8でFirewallDを使用してファイアウォールを設定する方法

  1. CentOS8でPuppetマスターとエージェントをセットアップする方法

  2. CentOS7でPuppetマスターとエージェントをセットアップする方法

  3. CentOS7でOracleWeblogicをセットアップおよびインストールする方法

  1. NGINXを使用してShopwareをインストールし、CentOS7で暗号化する方法

  2. Nginxを使用してWonderCMSをインストールし、CentOS7でSSLを暗号化する方法

  3. Nginxを使用してPicoCMSをインストールし、CentOS7で暗号化する方法