22 lines
623 B
Perl
22 lines
623 B
Perl
#! /usr/pkg/bin/perl
|
|
|
|
die "insufficient arguments" if (scalar(@ARGV) < 2);
|
|
$src = $ARGV[0];
|
|
$dst = $ARGV[1];
|
|
$mode = 'transport';
|
|
if (scalar(@ARGV) > 2) {
|
|
$mode = $ARGV[2];
|
|
}
|
|
|
|
open(OUT, "|setkey -c");
|
|
if ($mode eq 'transport') {
|
|
print STDERR "install esp transport mode: $src -> $dst\n";
|
|
print OUT "spdadd $src $dst any -P out ipsec esp/transport//require;\n";
|
|
print OUT "spdadd $dst $src any -P in ipsec esp/transport//require;\n";
|
|
} elsif ($mode eq 'delete') {
|
|
print STDERR "delete policy: $src -> $dst\n";
|
|
print OUT "spddelete $src $dst any -P out;\n";
|
|
print OUT "spddelete $dst $src any -P in;\n";
|
|
}
|
|
close(OUT);
|