信頼できるホストの証明書またはキーをプリロードしてリモートホストから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を設定する正しい方法ですか?