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

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

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

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

前提条件
  • CentOS7サーバー
  • root権限

何をしますか?

  1. CentOS7にStrongswanをインストールする
  2. SSLLetsencryptを生成する
  3. Strongswanを設定する
  4. NATファイアウォールを有効にする
  5. ポート転送を有効にする
  6. テスト
ステップ1-CentOS7にStrongswanをインストールする

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

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

yum -y install epel-release
yum -y install strongswan

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

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

ドメイン名「ikev2.hakase-labs.io」を使用してIKEv2VPNサーバーを作成し、letsencryptから生成された証明書を使用します。

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

'certbot'letsencryptツールをインストールします。

yum -y install certbot

certbotのインストール後、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を使用して新しいSSL証明書ファイルを生成できます。

以下のcertbotコマンドを実行します。

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

VPNドメイン名「ikev2.hakase-labs.io」のLetsencrypt証明書が生成され、「/ etc / testsencrypt/live」ディレクトリにあります。

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

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

「ikev2.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

vimeditorを使用して新しい「ipsec.conf」を作成します。

vim ipsec.conf

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

#global configuration IPsec
#chron logger
config setup
    charondebug="ike 1, knl 1, cfg 0"
    uniqueids=no

#define new ipsec connection
conn hakase-vpn
    auto=add
    compress=no
    type=tunnel
    keyexchange=ikev2
    ike=aes128-sha1-modp1024,aes128-sha1-modp1536,aes128-sha1-modp2048,aes128-sha256-ecp256,aes128-sha256-modp1024,aes128-sha256-modp1536,aes128-sha256-modp2048,aes256-aes128-sha256-sha1-modp2048-modp4096-modp1024,aes256-sha1-modp1024,aes256-sha256-modp1024,aes256-sha256-modp1536,aes256-sha256-modp2048,aes256-sha256-modp4096,aes256-sha384-ecp384,aes256-sha384-modp1024,aes256-sha384-modp1536,aes256-sha384-modp2048,aes256-sha384-modp4096,aes256gcm16-aes256gcm12-aes128gcm16-aes128gcm12-sha256-sha1-modp2048-modp4096-modp1024,3des-sha1-modp1024!
    esp=aes128-aes256-sha1-sha256-modp2048-modp4096-modp1024,aes128-sha1,aes128-sha1-modp1024,aes128-sha1-modp1536,aes128-sha1-modp2048,aes128-sha256,aes128-sha256-ecp256,aes128-sha256-modp1024,aes128-sha256-modp1536,aes128-sha256-modp2048,aes128gcm12-aes128gcm16-aes256gcm12-aes256gcm16-modp2048-modp4096-modp1024,aes128gcm16,aes128gcm16-ecp256,aes256-sha1,aes256-sha256,aes256-sha256-modp1024,aes256-sha256-modp1536,aes256-sha256-modp2048,aes256-sha256-modp4096,aes256-sha384,aes256-sha384-ecp384,aes256-sha384-modp1024,aes256-sha384-modp1536,aes256-sha384-modp2048,aes256-sha384-modp4096,aes256gcm16,aes256gcm16-ecp384,3des-sha1!
    fragmentation=yes
    forceencaps=yes
    dpdaction=clear
    dpddelay=300s
    rekey=no
    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

保存して終了します。

構成の詳細:

  • 「hakase-vpn」という名前の新しいIPSecVPNトンネル接続を作成します。
  • 認証用のIKEv2およびESP暗号スイートを指定します。
  • ドメイン名「ikev2.hakase-labs.io」と「/etc/strongswan/ipsec.d/certs」ディレクトリにあるletsencrypt証明書「fullchain.pem」を使用した「左」サーバー構成。
  • EAP認証方式「eap-mschapv2」を使用した「適切な」クライアント/リモートセットアップ。接続されているすべてのクライアントに仮想IPアドレス範囲「10.15.1.0/24」を割り当て、パブリックDNSCloudflareとgoogleを使用します。

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

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

vim ipsec.secrets

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

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

保存して終了します。

構成の詳細:

  • 「/etc/strongswan/ipsec.d/private」ディレクトリにあるletsencrypt証明書「privkey.pem」を使用してRSAサーバーの秘密鍵を指定します。
  • EAPユーザーの資格情報を「user:EAP"password"」の形式で定義します。

strongswanのIPSec構成が完了しました。 strongswanサービスを開始し、システムの起動時に毎回起動できるようにします。

systemctl start strongswan
systemctl enable strongswan
ステップ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サーバーは、CentOS7サーバーでStrongswanとLetsencryptを使用して作成されています。


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

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

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

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

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

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

  1. Nginxを使用してWordPressをインストールし、CentOS8でSSLを暗号化する方法

  2. Nginxを使用してDrupal8をインストールおよび構成し、CentOS8で暗号化できるようにします

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