その結果、タスクはAmazonとロシア連邦のインフラストラクチャの間に追加のVPNトンネルを作成することでした。

簡単なハウツーに加えて、発生する可能性のある構成のいくつかの機能について説明します。
ファイアウォールとルーティング設定
1か月あたり10,000モンゴルのtugriksに相当する量でまだブロックされていないVPSホスティング業者から購入し、CentOS 7を入れて、パケット転送を有効にします
echo net.ipv4.ip_forward=1 >>/etc/sysctl.d/ipv4.forward.enable.conf sysctl -a
ファイアウォールでIPsecパケットを受信するためのルールを追加する
firewall-cmd --zone=dmz --permanent --add-rich-rule='rule protocol value="esp" accept' firewall-cmd --zone=dmz --permanent --add-port=500/udp firewall-cmd --zone=dmz --permanent --add-port=4500/udp firewall-cmd --permanent --add-service="ipsec" firewall-cmd --reload firewall-cmd --list-all
StrongSwanのセットアップ
IPsec StrongSwanデーモンをインストールします。
yum install -y epel-release yum install -y strongswan
/etc/strongswan.d/charon.confにプリセットを作成します 。
charon { # Cisco IKEv2 make_before_break = yes # install_routes = no }
Strongswanは2つの方法で構成できます。
strongswanデーモンを使用する古い方法は、すでに十分に説明されています。
構成ファイル
/etc/strongswan/ipsec.conf
パスワードと証明書を含むファイル:
/etc/ipsec.secrets
サービス停止:
systemctl stop strongswan
バージョン5.2.0で導入されたcharonデーモンを使用した新しい方法:
すべての構成は/etc/strongswan/swanctl/swanctl.confに保存されます
charonデーモンを構成するための2つのオプションを検討してください。
全員に同じ認証と暗号化設定。 PSKを異なるものにしましょう。
connections { ToWorld { local_addrs = 10.3.3.1 version = 1 proposals = aes256-sha1-modp1536 reauth_time = 1440m local { auth = psk } remote { auth = psk } children { ToWorld-1 { local_ts = dynamic[gre] remote_ts = dynamic[gre] mode = transport esp_proposals = aes128-sha1-modp1536 rekey_time = 60m start_action = trap dpd_action = restart } } } } secrets { ike-To-2951 { id = 1.1.1.1 secret = "etokto2ttakoimohnatenkyi" } ike-To-CSR1000V { id = 2.2.2.2 secret = "zdorovkakzhiznkasampro100klass" } }
個別の認証および暗号化設定:
connections { To2951 { encap = no remote_addrs = 1.1.1.1 version = 1 proposals = aes256-sha1-modp1536 reauth_time = 1440m fragmentation = yes local-1 { auth = psk id = 10.3.3.1 } remote-1 { auth = psk } children { To2951-1 { local_ts = 10.3.3.1/32[gre] remote_ts = 1.1.1.1/32[gre] mode = transport esp_proposals = aes128-sha1-modp1536 rekey_time = 60m start_action = start dpd_action = restart } } } ToCSR1000V { encap = no remote_addrs = 2.2.2.2 version = 1 proposals = aes256-sha1-modp1536 reauth_time = 1440m fragmentation = yes local-1 { auth = psk id = 10.3.3.1 } remote-1 { auth = psk } children { ToCSR1000V-1 { local_ts = 10.3.3.1/32[gre] remote_ts = 2.2.2.2/32[gre] mode = transport esp_proposals = aes128-sha1-modp1536 rekey_time = 60m start_action = start dpd_action = restart } } } } secrets { ike-To-2951 { id-1 = 1.1.1.1 secret = "etokto2ttakoimohnatenkyi" } ike-To-CSR1000V { id-1 = 2.2.2.2 secret = "zdorovkakzhiznkasampro100klass" } }
サービスを有効にする
sudo systemctl enable strongswan-swanctl sudo systemctl start strongswan-swanctl
Ciscoルーターでトンネルを上げる
CentOSでGREトンネルを構成する
/etc/sysconfig/network-scripts/ifcfg-Tunnel13
作成します
NAME=Tunnel13 DEVICE=Tunnel13 ONBOOT=yes STARTMODE=onboot BOOTPROTO=none TYPE=GRE PEER_OUTER_IPADDR=1.1.1.1 PEER_INNER_IPADDR=172.16.130.2/30 MY_INNER_IPADDR=172.16.130.1/30 MY_OUTER_IPADDR=10.3.3.1 ZONE=trusted TTL=30 MTU=1400
/etc/sysconfig/network-scripts/ifcfg-Tunnel23
作成します
NAME=Tunnel23 DEVICE=Tunnel23 ONBOOT=yes STARTMODE=onboot BOOTPROTO=none TYPE=GRE PEER_OUTER_IPADDR=2.2.2.2 PEER_INNER_IPADDR=172.16.230.2/30 MY_INNER_IPADDR=172.16.230.1/30 MY_OUTER_IPADDR=10.3.3.1 ZONE=trusted TTL=30 MTU=1400
GREインターフェイスのセットアップには、いくつかの機能があります。
1つ目は、パケットの正しい通過のためにMTUを減らすことです。
2番目はTTLを指定することです。これは、将来OSPFを構成するときに必要になります。 これが行われない場合、OSPFパケットは、TTLが1(GRE over IPsecによる)でリモートホストに到着し、未応答のままになります。 したがって、デバイスはINIT / DROTHER状態でハングし、接続を待機しません。 ただし、正しいICMP応答は混乱を招く可能性があります。
インターフェイスを上げる
ifup Tunnel13 ifup Tunnel23
Cisco 2951にトンネルを作成します
crypto keyring StrongSwanKeyring pre-shared-key address 3.3.3.1 key etokto2ttakoimohnatenkyi crypto isakmp policy 60 encr aes 256 authentication pre-share group 5 crypto isakmp identity address crypto isakmp profile StrongSwanIsakmpProfile keyring StrongSwanKeyring match identity address 3.3.3.1 crypto ipsec transform-set StrongSwanTransformSet esp-aes esp-sha-hmac mode transport crypto ipsec profile StrongSwanIpsecProfile set transform-set StrongSwanTransformSet set pfs group5 set isakmp-profile StrongSwanIsakmpProfile interface Tunnel13 ip address 172.16.130.2 255.255.255.252 tunnel source GigabitEthernet2 tunnel destination 3.3.3.1 tunnel protection ipsec profile StrongSwanIpsecProfile
Cisco CSR1000Vにトンネルを作成します
crypto keyring StrongSwanKeyring pre-shared-key address 3.3.3.1 key etokto2ttakoimohnatenkyi crypto isakmp policy 60 encr aes 256 authentication pre-share group 5 crypto isakmp identity address crypto isakmp profile StrongSwanIsakmpProfile keyring StrongSwanKeyring match identity address 3.3.3.1 crypto ipsec transform-set StrongSwanTransformSet esp-aes esp-sha-hmac mode transport crypto ipsec profile StrongSwanIpsecProfile set transform-set StrongSwanTransformSet set pfs group5 set isakmp-profile StrongSwanIsakmpProfile interface Tunnel23 ip address 172.16.230.2 255.255.255.252 tunnel source GigabitEthernet2 tunnel destination 3.3.3.1 tunnel protection ipsec profile StrongSwanIpsecProfile
トンネルが起動し、暗号化が機能していることを確認してください。
CentOSで
strongswan statusall
Ciscoで
show crypto session detail
Quaggaで動的ルーティングを構成する
OSPFベースの動的ルーティングを使用する場合、次のステップは、CentOSでOSPFデーモンを起動し、新しいトンネルをフォールバックルートとして設定する論理的なものになります。
CentOSでのOSPFの構成
Quaggaをデーモンとしてインストールします。
yum install -y quagga
デーモン構成ファイル/etc/quagga/zebra.conf
作成します
hostname StrongSwanServer log file /var/log/quagga/quagga.log ! interface Tunnel13 ip address 172.16.130.1/30 ! interface Tunnel23 ip address 172.16.230.1/30 !
パスの重みは、コストまたは帯域幅のパラメータを使用して調整し、目的のインターフェイスに設定できます。
権限を設定し、サービスを有効にします
chown quagga:quaggavt /etc/quagga/zebra.conf systemctl enable zebra.service systemctl start zebra.service
/etc/quagga/ospfd.conf
デーモンの構成ファイルを作成します
log file /var/log/quagga/ospfd.log ! router ospf ospf router-id 10.3.3.1 passive-interface default no passive-interface Tunnel13 no passive-interface Tunnel23 network 172.16.130.0/30 area 0.0.0.0 network 172.16.230.0/30 area 0.0.0.0
権限を設定し、サービスを有効にします
chown quagga:quaggavt /etc/quagga/ospfd.conf systemctl enable ospfd.service systemctl start ospfd.service
次に、vtyshターミナルを起動し、cisのようなインターフェイスでQuaggaを操作できます。次に例を示します。
vtysh show running-config
Cisco 2951でのOSPFの構成
router ospf 1 passive-interface default no passive-interface Tunnel12 no passive-interface Tunnel13 no passive-interface GigabitEthernet1 network 192.168.1.0 0.0.0.255 area 0 network 172.16.120.0 0.0.0.3 area 0 network 172.16.130.0 0.0.0.3 area 0
Cisco CSR1000VでのOSPFの構成
router ospf 1 passive-interface default no passive-interface Tunnel12 no passive-interface Tunnel23 no passive-interface GigabitEthernet1 network 192.168.2.0 0.0.0.255 area 0 network 172.16.120.0 0.0.0.3 area 0 network 172.16.230.0 0.0.0.3 area 0
CentOSに到着したネイバーとルートの可視性を確認します。
vtysh show ospf neighbor show ip ospf route
シスコでは:
show ospf neighbor show ip ospf route
検討されていないもの
最も簡単なオプションについて説明しました。 もちろん、 IKE v2、証明書認証を使用してキー交換を設定し、ファイアウォールに追加のアドレスフィルタリングを追加し、認証で OSPFを実行し、多数のルーターをエリアで分割して、hello-intervalとdead-intervalの値をインターフェース。
コメントでのアドバイスと、タイプミスに関する情報をPMに喜んでお送りします。 ご清聴ありがとうございました。