Cấu hình bảo mật BGP Juniper EX Series

Cấu hình bảo mật BGP Juniper EX Series

 

BGP Route Authentication

Tìm hiểu về route authentication cho BGP

Việc sử dụng xác thực định tuyến, định tuyến và tính toàn vẹn của định tuyến làm giảm đáng kể nguy cơ bị tấn công bởi máy hoặc bộ định tuyến đã được cấu hình để chia sẻ thông tin định tuyến không chính xác với bộ định tuyến khác. Trong loại tấn công này, bộ định tuyến bị tấn công có thể bị lừa tạo vòng lặp định tuyến hoặc bảng định tuyến của bộ định tuyến bị tấn công có thể được tăng lên đáng kể do đó ảnh hưởng đến hiệu suất hoặc thông tin định tuyến có thể được chuyển hướng đến một vị trí trong mạng để kẻ tấn công phân tích. Quảng cáo định tuyến giả mạo có thể được gửi ra trên một phân đoạn. Những bản cập nhật này có thể được chấp nhận vào bảng định tuyến của bộ định tuyến lân cận trừ khi có cơ chế xác thực để xác minh nguồn của các tuyến.

Xác thực bộ định tuyến và tuyến đường cho phép các bộ định tuyến chia sẻ thông tin chỉ khi chúng có thể xác minh rằng chúng đang nói chuyện với một nguồn đáng tin cậy, dựa trên mật khẩu (KEY). Trong phương pháp này, một hashed key được gửi cùng với tuyến đường được gửi đến một router khác. Router nhận so sánh key đã gửi với key được cấu hình của riêng nó. Nếu chúng giống nhau, nó sẽ chấp nhận route. Bằng cách sử dụng thuật toán hashing, key không được gửi qua đường dây dưới dạng văn bản thuần túy. Thay vào đó, một hashing được tính toán bằng cách sử dụng key được cấu hình. Bản cập nhật định tuyến được sử dụng làm văn bản đầu vào, cùng với key đi vào hàm hashing. Hashing này được gửi cùng với bản cập nhật tuyến đường đến bộ định tuyến nhận. Router nhận so sánh hashing đã nhận với hashing mà nó tạo ra trên bản cập nhật route bằng cách sử dụng key được chia sẻ trước được cấu hình trên đó. Nếu hai hashing giống nhau thì tuyến đường được coi là từ một nguồn đáng tin cậy. Key chỉ được biết đến bởi Router gửi và nhận.

Để tăng cường bảo mật hơn nữa, bạn có thể cấu hình một loạt các key authentication (a keychain). Mỗi key có thời gian bắt đầu duy nhất trong keychain. Xác thực keychain cho phép bạn thay đổi thông tin mật khẩu theo định kỳ mà không làm sập các phiên ngang hàng. Phương pháp xác thực keychain này được gọi là hitless vì các key được chuyển từ key này sang key khác mà không cần đặt lại bất kỳ phiên ngang hàng nào hoặc làm gián đoạn giao thức route.

Người gửi sử dụng các quy tắc sau để xác định key authentication đang hoạt động:

  • Thời gian bắt đầu nhỏ hơn hoặc bằng thời gian hiện tại (nói cách khác, không phải trong tương lai).

  • Thời gian bắt đầu dài hơn thời gian bắt đầu của tất cả các key khác trong chuỗi có thời gian bắt đầu ngắn hơn thời gian hiện tại (nói cách khác là gần nhất với thời gian hiện tại).

Người nhận sẽ xác định key mà nó dùng để xác thực dựa trên mã định danh key đến.

Người gửi xác định key xác thực hiện tại dựa trên thời gian bắt đầu được cấu hình và sau đó tạo giá trị hashing bằng key hiện tại. Sau đó, người gửi chèn đối tượng tùy chọn xác thực nâng cao TCP vào thông báo cập nhật BGP. Đối tượng chứa ID (do IANA chỉ định), độ dài đối tượng, key hiện tại và giá trị hashing.

Người nhận sẽ kiểm tra tùy chọn xác thực nâng cao TCP đến, tra cứu key xác thực đã nhận và xác định xem key có được chấp nhận hay không dựa trên thời gian bắt đầu, thời gian hệ thống và tham số dung sai. Nếu key được chấp nhận, người nhận sẽ tính toán hashing và xác thực thông báo cập nhật.

Ứng dụng ban đầu của một keychain cho một phiên TCP khiến phiên đó phải thiết lập lại. Tuy nhiên, sau khi keychain được áp dụng, việc thêm hoặc xóa mật khẩu khỏi keychain không khiến phiên TCP phải thiết lập lại. Ngoài ra, phiên TCP không thiết lập lại khi keychain thay đổi từ thuật toán xác thực này sang thuật toán xác thực khác.

Xác thực TCP

Thông thường, bạn có thể cấu hình xác thực TCP ở các cấp độ phân cấp sau:

  • [edit protocols bgp]

  • [edit protocols bgp group group-name]

  • [edit protocols bgp group group-name neighbor address]

Xác thực TCP và Prefix Subnets

Các thiết bị Junos hỗ trợ xác thực TCP đối với các đối tác BGP được phát hiện thông qua các Prefix Subnets được phép cấu hình trong một group BGP.

Để cấu hình xác thực dựa trên prefix cho TCP-AO hoặc TCP MD5 cho các phiên BGP, bạn có thể cấu hình câu lệnh theo các phân cấp sau: allow (all | prefix-list)

  • [edit protocols bgp group group-name]

  • [edit protocols bgp group group-name dynamic-neighbor dyn-name]

Ví dụ: Cấu hình xác thực router cho BGP

Tất cả các trao đổi giao thức BGP có thể được xác thực để đảm bảo rằng chỉ các router đáng tin cậy mới tham gia vào các bản cập nhật route hệ thống tự trị (AS). Theo mặc định, xác thực bị vô hiệu hóa.

Yêu cầu

Trước khi bạn bắt đầu:

  • Cấu hình giao diện router.

  • Cấu hình interior gateway protocol (IGP - giao thức cổng nội bộ).

Tổng quan

Khi bạn cấu hình xác thực, thuật toán sẽ tạo một tổng kiểm tra được mã hóa có trong gói tin được truyền đi. Thiết bị định tuyến nhận sử dụng key authentication (PASSWORD) để xác minh tổng kiểm tra của gói tin.

Ví dụ này bao gồm các câu lệnh sau để cấu hình và áp dụng keychain:

  • key — Một keychain có thể có nhiều key. Mỗi key trong một keychain phải được xác định bằng một giá trị số nguyên duy nhất. Phạm vi giá trị định danh hợp lệ là từ 0 đến 63.

    Key có thể dài tới 126 ký tự. Các ký tự có thể bao gồm bất kỳ chuỗi ASCII nào. Nếu bạn bao gồm khoảng trắng, hãy đặt tất cả các ký tự trong dấu ngoặc kép (“ ”).

  • tolerance — (Tùy chọn) Đối với mỗi keychain, bạn có thể cấu hình giá trị dung sai độ lệch đồng hồ tính bằng giây. Dung sai độ lệch đồng hồ áp dụng cho bộ thu chấp nhận key để cập nhật BGP. Phạm vi có thể cấu hình là từ 0 đến 999.999.999 giây. Trong thời gian dung sai, mật khẩu hiện tại hoặc trước đó đều được chấp nhận.

  • key-chain — Đối với mỗi keychain, bạn phải chỉ định một tên. Ví dụ này định nghĩa một keychain: bgp-auth. Bạn có thể có nhiều keychain trên một router. Ví dụ, bạn có thể có một keychain cho BGP, một keychain cho OSPF và một keychain cho LDP.

  • secret — Đối với mỗi key trong keychain, bạn phải đặt mật khẩu bí mật. Mật khẩu này có thể được nhập ở định dạng được mã hóa hoặc văn bản thuần túy trong secret báo cáo. Nó luôn được hiển thị ở định dạng được mã hóa.

  • start-time — Mỗi key phải chỉ định thời gian bắt đầu theo định dạng UTC. Quyền điều khiển được chuyển từ key này sang key tiếp theo. Khi thời gian bắt đầu được cấu hình (dựa trên đồng hồ của thiết bị định tuyến), key có thời gian bắt đầu đó sẽ hoạt động. Thời gian bắt đầu được chỉ định theo múi giờ địa phương cho router và phải là duy nhất trong keychain.

  • authentication-key-chain — Cho phép bạn áp dụng một keychain ở cấp độ BGP toàn cầu cho tất cả các đối tác, cho một nhóm hoặc cho một thiết bị lân cận. Ví dụ này áp dụng keychain cho các đối tác được xác định trong nhóm BGP bên ngoài (EBGP) có tên là ext.

  • authentication-algorithm — Đối với mỗi keychain, bạn có thể chỉ định thuật toán hashing. Thuật toán có thể là AES-128, MD5 hoặc SHA-1.

    Bạn liên kết một keychain và một thuật toán xác thực với phiên BGP lân cận.

Ví dụ này cấu hình một keychain có tên là bgp-auth. Khóa 0 sẽ được gửi và chấp nhận bắt đầu từ 2011-6-23.20:19:33 -0700 và sẽ ngừng được gửi và chấp nhận khi key tiếp theo trong keychain (key 1) trở nên hoạt động. Key 1 trở nên hoạt động một năm sau đó vào 2012-6-23.20:19:33 -0700 và sẽ không ngừng được gửi và chấp nhận trừ khi một key khác được cấu hình với thời gian bắt đầu muộn hơn thời gian bắt đầu của key 1. Dung sai độ lệch xung nhịp là 30 giây được áp dụng cho người nhận chấp nhận các key. Trong thời gian dung sai, key hiện tại hoặc key trước đó đều được chấp nhận. Các key là mật khẩu bí mật được chia sẻ. Điều này có nghĩa là cácthiết bị lân cận nhận được bản cập nhật định tuyến đã xác thực phải có cùng cấu hình keychain xác thực, bao gồm các key giống nhau (password). Do đó, Router R0 và Router R1 phải có cùng cấu hình keychain xác thực nếu chúng được cấu hình là các đối tác.

Sơ đồ
Xác thực cho BGP

Hình 1: Xác thực BGP

Cấu hình nhanh CLI

Để cấu hình nhanh ví dụ này, hãy sao chép các lệnh sau, dán chúng vào tệp văn bản, xóa mọi ngắt dòng, thay đổi mọi chi tiết cần thiết để phù hợp với cấu hình mạng của bạn, sau đó sao chép và dán các lệnh vào CLI ở cấp độ phân cấp [edit].

set protocols bgp group ext type external

set protocols bgp group ext peer-as 65530

set protocols bgp group ext neighbor 172.16.2.1 

set routing-options autonomous-system 65533

set protocols bgp group ext authentication-key-chain bgp-auth

set protocols bgp group ext authentication-algorithm md5

set security authentication-key-chains key-chain bgp-auth tolerance 30

set security authentication-key-chains key-chain bgp-auth key 0 secret this-is-the-secret-password

set security authentication-key-chains key-chain bgp-auth key 0 start-time 2011-6-23.20:19:33-0700

set security authentication-key-chains key-chain bgp-auth key 1 secret this-is-another-secret-password

set security authentication-key-chains key-chain bgp-auth key 1 start-time 2012-6-23.20:19:33-0700

Quy trình từng bước

Ví dụ sau đây yêu cầu bạn điều hướng nhiều cấp độ khác nhau trong cấu hình hệ thống phân cấp. Để biết thông tin về cách điều hướng CLI, hãy xem Using the CLI Editor in Configuration Mode ở trong Junos OS CLI User Guide.

Để cấu hình Bộ định tuyến R1 chấp nhận bộ lọc tuyến từ Thiết bị CE1 và thực hiện lọc tuyến đi bằng các bộ lọc đã nhận:

  1. Cấu hình hệ thống tự động cục bộ.

[edit routing-options]

user@R1# set autonomous-system 65533

  1. Cấu hình một hoặc nhiều nhóm BGP.

[edit protocols bgp group ext]

user@R1# set type external

user@R1# set peer-as 65530

user@R1# set neighbor 172.16.2.1

  1. Cấu hình xác thực Keys.

[edit security authentication-key-chains key-chain bgp-auth]

user@R1# set key 0 secret this-is-the-secret-password

user@R1# set key 0 start-time 2011-6-23.20:19:33-0700

user@R1# set key 1 secret this-is-another-secret-password

user@R1# set key 1 start-time 2012-6-23.20:19:33-0700

Thời gian bắt đầu của mỗi key phải là duy nhất trong keychain.

  1. Áp dụng keychain xác thực cho BGP và thiết lập thuật toán hashing.

[edit protocols bgp group ext]

user@R1# set authentication-key-chain bgp-auth

user@R1# set authentication-algorithm md5

  1. (Tùy chọn) Áp dụng giá trị dung sai độ lệch đồng hồ tính bằng giây.

[edit security authentication-key-chains key-chain bgp-auth]

user@R1# set tolerance 30

 

Kết quả

Từ chế độ cấu hình, hãy xác nhận cấu hình của bạn bằng cách nhập các lệnh show protocolsshow routing-options và show security. Nếu đầu ra không hiển thị cấu hình mong muốn, hãy lặp lại các hướng dẫn trong ví dụ sau để sửa cấu hình.

user@R1# show protocols

bgp {

    group ext {

        type external;

        peer-as 65530;

        neighbor 172.16.2.1;

        authentication-key-chain bgp-auth;

        authentication-algorithm md5;

    }

}

user@R1# show routing-options

autonomous-system 65533;

user@R1# show security

authentication-key-chains {

    key-chain bgp-auth {

        tolerance 30;

            key 0 {

            secret $ABC123$ABC123

            start-time “2011-6-23.20:19:33 -0700”;

        }

        key 1 {

            secret $ABC123$ABC123

            start-time “2012-6-23.20:19:33 -0700”;

        }

    }

}

Nếu bạn đã hoàn tất việc cấu hình thiết bị, hãy vào commit từ chế độ configuration.

Lặp lại quy trình này cho mọi thiết bị hỗ trợ BGP trong mạng, sử dụng tên interface và địa chỉ phù hợp cho từng thiết bị hỗ trợ BGP.

Xác minh

Xác nhận cấu hình đang hoạt động bình thường.

Xác minh xác thực cho Neighbor

- Mục đích:

Đảm bảo rằng tùy chọn AutheKeyChain này xuất hiện trong kết quả của lệnh show bgp neighbor.

- Hoạt động:

Từ chế độ operational, nhập lệnh show bgp neighbor.

user@R1> show bgp neighbor

Peer: 172.16.2.1+179 AS 65530  Local: 172.16.2.2+1222 AS 65533

  Type: External    State: Established    Flags:

  Last State: OpenConfirm   Last Event: RecvKeepAlive

  Last Error: None

  Export: [ direct-lo0 ]

  Options:

  Options:

  Authentication key is configured

  Authentication key chain: jni

  Holdtime: 90 Preference: 170

  Number of flaps: 0

  Peer ID: 172.16.2.1       Local ID: 10.255.124.35    Active Holdtime: 90

  Keepalive Interval: 30         Peer index: 0

  Local Interface: fe-0/0/1.0

  NLRI advertised by peer: inet-unicast

  NLRI for this session: inet-unicast

  Peer supports Refresh capability (2)

  Table inet.0 Bit: 10000

    RIB State: BGP restart is complete

    Send state: in sync

    Active prefixes:              2

    Received prefixes:            2

    Suppressed due to damping:    0

    Advertised prefixes:          1

  Last traffic (seconds): Received 2    Sent 2    Checked 2

  Input messages:  Total 21     Updates 2       Refreshes 0     Octets 477

  Output messages: Total 22     Updates 1       Refreshes 0     Octets 471

  Output Queue[0]: 0

Xác minh rằng tin nhắn ủy quyền đã được gửi.

- Mục đích

Xác nhận rằng tùy chọn BGP có ủy quyền nâng cao.

- Hoạt động

Từ chế độ operational, nhập lệnh monitor traffic interface fe-0/0/1.

user@R1> monitor traffic interface fe-0/0/1verbose output suppressed, use or for full protocol decode
Listening on fe-0/0/1, capture size 96 bytes
13:08:00.618402 In arp who-has 172.16.2.66 tell 172.16.2.69
13:08:02.408249 Out IP 172.16.2.2.1122 > 172.16.2.1.646: P
1889289217:1889289235(18) ack 2215740969 win 58486 <nop,nop,timestamp 167557
1465469,nop,Enhanced Auth keyid 0 diglen 12 digest: fe3366001f45767165f17037>:
13:08:02.418396 In IP 172.16.2.1.646 > 172.16.2.2.1122: P 1:19(18) ack 18 win
57100 <nop,nop,timestamp 1466460 167557,nop,Enhanced Auth keyid 0 diglen 12
digest: a18c31eda1b14b2900921675>:
13:08:02.518146 Out IP 172.16.2.2.1122 > 172.16.2.1.646: . ack 19 win 58468
<nop,nop,timestamp 167568 1466460,nop,Enhanced Auth keyid 0 diglen 12 digest:
c3b6422eb6bd3fd9cf79742b>
13:08:28.199557 Out IP 172.16.2.2.nerv > 172.16.2.1.bgp: P
286842489:286842508(19) ack 931203976 win 57200 <nop,Enhanced Auth keyid 0
diglen 12 digest: fc0e42900a73736bcc07c1a4>: BGP, length: 19
13:08:28.209661 In IP 172.16.2.1.bgp > 172.16.2.2.nerv: P 1:20(19) ack 19 win
56835 <nop,Enhanced Auth keyid 0 diglen 12 digest: 0fc8578c489fabce63aeb2c3>:
BGP, length: 19
13:08:28.309525 Out IP 172.16.2.2.nerv > 172.16.2.1.bgp: . ack 20 win 57181
<nop,Enhanced Auth keyid 0 diglen 12 digest: ef03f282fb2ece0039491df8>
13:08:32.439708 Out IP 172.16.2.2.1122 > 172.16.2.1.646: P 54:72(18) ack 55 win
58432 <nop,nop,timestamp 170560 1468472,nop,Enhanced Auth keyid 0 diglen 12
digest: 76e0cf926f348b726c631944>:
13:08:32.449795 In IP 172.16.2.1.646 > 172.16.2.2.1122: P 55:73(18) ack 72 win
57046 <nop,nop,timestamp 1469463 170560,nop,Enhanced Auth keyid 0 diglen 12
digest: dae3eec390d18a114431f4d8>:
13:08:32.549726 Out IP 172.16.2.2.1122 > 172.16.2.1.646: . ack 73 win 58414
<nop,nop,timestamp 170571 1469463,nop,Enhanced Auth keyid 0 diglen 12 digest:
851df771aee2ea7a43a0c46c>
13:08:33.719880 In arp who-has 172.16.2.66 tell 172.16.2.69
^C
35 packets received by filter
0 packets dropped by kernel

Kiểm tra lỗi xác thực

- Mục đích

Kiểm tra số lượng gói tin bị TCP loại bỏ do lỗi xác thực.

- Hoạt động

Từ chế độ operational, nhập lệnh show system statistics tcp | match auth.

user@R1> show system statistics tcp | match auth

                0 send packets dropped by TCP due to auth errors

                58 rcv packets dropped by TCP due to auth errors

Xác minh hoạt động của Keychain

- Mục đích

Kiểm tra số lượng gói tin bị TCP loại bỏ do lỗi xác thực.

- Hoạt động

Từ chế độ operational, nhập lệnh show security keychain detail.

user@R1> show system statistics tcp | match auth

        0 send packets dropped by TCP due to auth errors

        58 rcv packets dropped by TCP due to auth errors

 

Như vậy là chúng ta đã hoàn thành Cấu hình bảo mật BGP Juniper EX Series, chúc các bạn thực hiện thành công. Hi vọng bài viết này sẽ giúp ích cho các bạn trong công việc.

Nếu bạn có vấn đề gì thắc mắc đừng ngần ngại liên hệ với chúng tôi theo thông tin dưới đây để được hỗ trợ thêm.

Hẹn gặp lại các bạn trong các bài viết tiếp theo !

 

CÔNG TY CỔ PHẦN DỊCH VỤ CÔNG NGHỆ DATECH

• Địa chỉ: Số 23E4 KĐT Cầu Diễn, Tổ 7, Phú Diễn, Bắc Từ Liêm, Hà Nội

• Điện thoại: 02432012368

• Hotline: 098 115 6699

• Email: info@datech.vn

• Website: https://datech.vn