証明書またはキーをプリロードしてリモートホストにIPSec SAを機会的に生成するようにLibreswanを設定する方法はありますか?

証明書またはキーをプリロードしてリモートホストにIPSec SAを機会的に生成するようにLibreswanを設定する方法はありますか?

信頼できるホストの証明書またはキーをプリロードしてリモートホストからIPSec SAを機会的に生成するようにLibreswanを設定する方法はありますか?

私は、RHEL、CentOS、またはFedoraのホストグループが各ホスト間接続の「conn」部分を指定せずにそれらの間にIPSec SAを設定できるようにするLibreswan構成を探しています。どういう意味なのかを説明するために例を挙げましょう。モデレーターはアルファ、ブラボー、チャーリー、デルタです。現在、次のような6つの接続を持つ構成セクションがあります(Alpha <-->Bravo、Alpha <--> Charlie、Alpha <--> Delta、Bravo <--> Charlie、Bravo <--> Delta Airlines、チャーリー<-->デルタ航空):

conn alpha+bravo
     [email protected]
     left=10.1.2.3
     leftrsasigkey=
     [email protected]
     right=10.1.2.4
     rightrsasigkey=
     authby=rsasig
     auto=start

現在の構成では、6つのホストがIPSecを介して通信できますが、構成セクションの数が(n *(n-1))/ 2であるため、拡張機能が心配です。 20のホストには190のコンポーネントが必要です!私は、別名、IPアドレス、およびキーを含むCSVファイルから構成を簡単に生成するために、次のPerlプログラムを作成しました。

#!/usr/bin/perl

#use strict;
use warnings;

sub usage {
    $0 =~ /([^\/]+)$/;
    my $name = $&;
    print "$name [host+keyfile]
    each line of host+keyfile should contain the short hostname,
    IP address,
    and the key returned from 'ipsec showhostkey --left'\n
    This program then outputs ipsec.conf content to support
    all of the connections.
    \n";
    exit 1;
}

if ( !defined $ARGV[0] ) {
    usage;
}

open (STDI, "$ARGV[0]") or die "Can't open input file: $!";

my $section=0;

my @hosts = <STDI> ;
my (@a, @b) ;

#foreach $i (@hosts) {

for ($i = 0; $i < $#hosts ; $i++) {
    for ($j = $i+1 ; $j <= $#hosts ; $j++) {
        @a = split(/,/,$hosts[$i]);
        @b = split(/,/,$hosts[$j]);
        print "conn $a[0]+$b[0]\n";
        print "\tleftid=\@$a[0]\n";
        print "\tleft=$a[1]\n";
        print "\tleftrsasigkey=$a[2]";
        print "\trightid=\@$b[0]\n";
        print "\tright=$b[1]\n";
        print "\trightrsasigkey=$b[2]";
        print "\tauthby=rsasig\n";
        print "\tauto=start\n\n";
    }
}

close STDI;

繰り返しますが、これは私にとって効果的ですが、100ホストの場合、設定ファイルは19MBになります!私が本当に知りたいのは、libreswanを使用して複数のホスト間でホスト間IPSec SA / VPNを設定する正しい方法ですか?

ベストアンサー1

おすすめ記事