Tải bản đầy đủ (.docx) (28 trang)

Access Control List ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (151.1 KB, 28 trang )

Access Control
List
ACL là gì?
Danh sách quản lý truy cập, nhiệm vụ cơ bản là lọc gói tin
Một vài đặc điểm ACL?
Các entry trong ACL đc xử lý theo thứ tự
Cơ chế lọc bằng cách kiểm tra các thông số trong header gói tin
ACL có nhiều ứng dụng, và cần phải được đặt lên interface, line, giao thức
hoặc dịch vụ hỗ trợ ACL
Mỗi interface, line, giao thức hoặc dịch vụ hỗ trợ có thể sử dụng 1 hoặc
nhiều ACL
Hỗ trợ hầu như tất cả giao thức nhưng mỗi giao thức nên có riêng một ACL
Cuối mỗi ACL luôn có 1 explicit entry [deny all] => cần phải cẩn thận
Không thể xóa,sửa entry trong numbered ACL
* * *
Có nhiều cách để phân loại ACL, dựa theo tên gọi ACL được chia làm number
ACL và named ACL, hoặc dựa trên cơ chế lọc thì ACL đc chia thành standard
ACL và extend ACL; hay dựa trên độ linh hoạt thì ACL có thể chia thành
static ACL và complex ACL…
Standard ACL
Standard ACL là những bản tin ACL đơn giản nhất. Chúng được đánh số từ 1-
99 nếu là number ACL. Standard ACL chỉ lọc địa chỉ nguồn trong header của
IP packet, vì thế chúng hoạt động tại lớp 3 trong mô hình OSI hay lớp
internet trong mô hình TCP/IP.
Standard ACL có thể được đặt theo chiều inbound (vào) hoặc outbound (ra)
trên router (ta hiểu rằng vào hay ra là chiều tương đối đối với mỗi interface),
tuy nhiên bản tin standard ACL nên được đặt càng gần destination, và
thường theo chiều outbound. Vì standard ACL chỉ kiểm tra địa chỉ IP nguồn,
nên vị trí đặt cần chỉ ra chính xác chiều gói tin sẽ được cho phép qua hoặc
không được cho phép qua.
Cấu hình Standard ACL


Format Standard ACL
Router(config)#access-list [list number] [permit / deny] [source IP
add] [wildcardmask]
Trong đó:
[list number] đánh số cho standard ACL từ 1-99
[permit / deny]: cho phép hoặc không cho phép gói tin qua router
[source IP add]: địa chỉ IP nguồn của gói tin
[wildcard mask]: wildcard mask của địa chỉ IP

Đặt Standard ACL lên interface:
[list number] đánh số cho standard ACL từ 1-99
[permit / deny]: cho phép hoặc không cho phép gói tin qua router
[source IP add]: địa chỉ IP nguồn của gói tin
[wildcard mask]: wildcard mask của địa chỉ IP

Trong đó:
[list number] Số của ACL đã xác định trước
[in / out]: Chọn hướng inbound hoặc outbound

Extended ACL
Extended ACL là những bản tin ACL mở rộng, cho phép lọc đa dạng hơn so
với standard ACL nên thường được sử dụng nhiều hơn. Extended ACL được
đánh số từ 100 đến 199, extended ACL cho phép port number (application),
source-destination IP address , protocol và nhiều tùy chọn. Vì thế extended
ACL hoạt động tại lớp 3 và lớp 4 mô hình OSI
Extended ACL cũng thể được cấu hình inbound hoặc outbound trên interface,
tuy nhiên vì extended ACL lọc chính xác source/destination IP Address nên vị
trí đặt cần tránh tình trạng hao tổn băng thông mạng không cần thiết khi gói
tin bị discard “lang thang” trước khi bị deny. Người ta thường thực hiện điều
này bằng cách đặt ACL gần source.

Extended ACL được sử dụng nhiều để thiết lập các routing policy trên router.
Các entry trong Extended ACL rất đa dạng, và có khả năng tùy biến cao, hỗ
trợ phòng chống nhiều kiểu tấn công
Cấu hình Extended ACL
Format Standard ACL:
Router(config)#access-list [list number] [permit / deny] [protocol]
[source specification] [destination specification] [protocol
qualification] [logging]
Trong đó:
[list number] đánh số cho standard ACL từ 1-99
[permit / deny]: cho phép hoặc không cho phép gói tin qua router
[protocol]: Giao thức (từ lớp 3 trở lên) của gói tin (lớp 3: “ospf”, “eigrp”, ;
lớp 4: “tcp”, “udp”; “icmp”; “ip” đại diện bất kỳ giao thức nào)
[source specification]: Là một chuỗi entry bao gồm [source IP add] [wildcard
mask] [source port number (với protocol là TCP hoặc UDP)]
[destination specification]: Là một chuỗi entry bao gồm [des IP add]
[wildcard mask] [des port number (với protocol là TCP hoặc UDP)]
[protocol qualification]: Các tùy chọn hỗ trợ phụ thuộc vào entry [protocol],
tăng cường tính năng bảo mật hoặc thực hiện những tác vụ lọc dữ liệu đặc
biệt
- Nếu [protocol] là TCP hoặc UDP thì [protocol qualification] = [optional
port] [port number].
Trong đó:
[optional port] chỉ ra khoảng port cần được kiểm tra
[port number] chỉ ra chính xác port làm mốc cho [optional port]
- Nếu [protocol] là ip: router sẽ match tất cả giao thức
- Nếu [protocol] là giao thức định tuyển (ospf, eigrp, ) ???
[logging]: Ghi lại thông tin về những gói tin match các entry trong ACL

* * *

Inbound hay Outbound
Khi nhắc tới lọc theo chiều nào (inbound hoặc outbound) phải gắn liền với
mỗi interface trên router, trên mỗi interface cho phép nhiều ACL nên cho
phép lọc nhiều chiều tùy vào mỗi ACL.
-> Inbound: Các bản tin hướng vào interface
-> Outbound: Các bản tin hướng ra từ interface
Lọc inbound sẽ tiêu tốn ít tài nguyên CPU hơn, do gói tin được lọc trước khi
được forward; ngược lại, lọc outbound sẽ tốn nhiều thời gian hơn vì gói tin
được lọc sau khi forward. Tuy nhiên chiều lọc rất quan trọng và đặt chính
xác là yêu cầu cơ bản.
Turbo ACL
Đối với vấn đề sử dụng tài nguyên xử lý của router, khi mạng doanh nghiệp
càng iến cho việc xử lý của router ngày càng chậm chạp, nhất là với những
ACL có nhiều hơn 3 statement. Vấn đề là cơ chế của router: kiểm tra ACL
đồng thời với forwarding và điều này lặp đi lặp lại với mỗi gói tin.

Để giải quyết tình huống này, router CISCO dòng 7200, 7500, 12000 đưa
vào một cấu hình dòng lệnh cho phép router biên dịch (compile) statement
trong ACL thành file BIN, sau đó lưu vào RAM. Như vậy router sẽ xử lý gói
tin trong lookup table, độc lập với ACL, và điều này sẽ giảm bớt thời gian tải
trên CPU.

Cấu hình turbo ACL:

Router(config)#access-list compiled

* * *
Named Access Control List
Có thể là standard ACL hoặc extended ACL nhưng được đặt tên bằng
ký tự (vì thế, trong nhiều trường hợp named ACL giúp admin quản lý

danh sách ACL hiệu quả hơn)
Vì thế nên không giới hạn số lượng ACL
Cho phép xóa sửa entry trong ACL, entry mới sẽ đặt ở cuối
Một vài dạng ACL (reflexive ACL) yêu cầu cấu hình với named ACL
Cấu hình named ACL
Router(config)ip access-list [standard / extended] [name]
Router(config-std-nacl)#[permit / deny] …

Trong đó:
[standard / extended] là loại ACLs
[name] là tên đặt cho ACLs
[permit / deny]… là cấu hình entry cho named ACLs: Hoàn toàn Tương tự
cấu hình standard / extended ACLs kể từ entry [permit /deny]
* * *
Wild-card Mask
Wildcard Mask là một chuỗi nhị phân 32 bit được chia làm 4 octet. Mỗi một
wildcard mask đi k-> m với một địa chỉ IP. Các bit 0 và 1 được định nghĩa để
xác định cách xử lý các bit tương ứng trong đia chỉ IP theo quy tắc: 0 kiểm
tra – 1 bỏ qua. Nghĩa là bit tương ứng với bit 0 trong wildcard mask sẽ được
kiểm tra, còn tương ứng với bit 1 sẽ được bỏ qua không cần kiểm tra.
Phân biệt wildcard mask và subnet mask
wildcard mask và subnet mask khác nhau hoàn toàn về nguyên tắc cũng như
chức năng. Subnet mask có chuỗi bit 1 kéo dài từ trái sang phải để xác định
phần host và phần Network trong 1 địa chỉ IP tương ứng. Trong khi wildcard
mask được dùng để lọc một hoặc một nhóm địa chỉ IP cụ thể
Trong các bài toán tính wildcard mask, thật sai lầm khi cho rằng để tính
wildcard mask ta lấy dải 255.255.255.255 trừ đi tương ứng subnet mask.
Tuy nhiên vậy tại sao lại sử dụng wildcard mask trong giao thức định tuyến
OSPF (và EIGRP)?
Subnet mask cho phép xác định một dải IP liên tục, trong khi mục đích của

wildcard mask là lọc ra một dải IP có tính chất giống nhau (có thể liên tục
hoặc ko liên tục), và chỉ ra router cần quan tâm đến những địa chỉ IP nào
i.e Liệu 1.1.1.0/24 và 1.1.1.0 0.0.0.255 có tương đương nhau ko? Chính xác
là không, vì 1.1.1.0 0.0.0.255 bao gồm 1.1.1.0/24; 1.1.1.0/25; 1.1.1.0/26…
đến 1.1.1.0/32
Đối với giao thức định tuyến Link State như OSPF (hoặc EIGRP) với cơ chế
trigger update wildcard mask hiệu quả hơn subnet mask, điều này mang đến
2 cái lợi: giảm tốc độ xử lý CPU router và giảm dung lượng file cấu hình:
i.e Trên router cần quảng bá OSPF trên 2 interface:
S0/0: 192.168.0.1/24
S0/1: 192.168.1.1/24
Thay vì 2 dòng lệnh nếu sử dụng subnet mask, admin có thể cấu hình với
wildcard mask:
Router(config-router)#net 192.168.0.0 0.0.1.255 area 0
Quá trình kiểm tra wildcard mask:
Trong quá trình lọc ACL, địa chỉ IP trong mỗi statement được kết hợp với
wildcard mask để tính ra một giá trị chuẩn: giá trị chuẩn đó có thể là một
địa chỉ host, 1 subnet, 1 khoảng địa chỉ IP(liên tục hoặc không liên tục) hoặc
là tất cả các địa chỉ IP. Gói tin khi tới interface đặt ACL sẽ được kiểm tra địa
chỉ IP, địa chỉ IP này được so sánh với giá trị chuẩn ở trên: Nếu 2 giá trị này
giống nhau thì điều kiện đã thỏa mãn và router thực hiện các lệnh trên ACL.
Các bài toán tính wildcard mask:
1. Wildcard mask match 1 host
I.e: Tính wildcard mask match host 192.168.1.1
Theo nguyên tắc: bit 0 kiểm tra – bit 1 bỏ qua
 IP Address: 192.168.1.1 0.0.0.0 hoặc từ khóa “host”

2. Wildcard mask match tất cả địa chỉ IP
I.e: Tính wildcard mask match tất cả địa chỉ IP
Theo nguyên tắc: bit 0 kiểm tra – bit 1 bỏ qua

 IP Address: 192.168.1.1 255.255.255.255 hoặc từ khóa
“any”

3. Wildcard mask match 1 subnet
i.e: Tính wildcard mask match subnet 192.168.1.0/24
Cách tính: Lấy 255.255.255.255 trừ đi subnet mask của subnet
 IP Address: 192.168.1.1 0.0.0.255

4. Tính Wildcard mask match range địa chỉ IP liên tục
i.e: Tính wildcard mask match range từ 192.168.2.0 đến 192.168.4.255
Cách tính: Lấy địa chỉ cuối trừ địa chỉ đầu
 IP Address: 192.168.2.0 0.0.2.255

5. Tính widcard mask match 1 số IP add đầu tiên
i.e: Cho địa chỉ IP 192.168.1.0, tính wildcard mask match X host đầu tiên
-> Dải địa chỉ cần match: 192.168.1.0 - > 192.168.1.X
-> wildcard mask: 0.0.0.X (lấy địa chỉ cuối trừ địa chỉ đầu)
-> IP Address: 192.168.1.0 0.0.0.X

6. Tính wildcard mask của nửa trên (upper half) hoặc nửa dưới
(lower half) 1 dải mạng:
I.e: Cho địa chỉ IP 192.168.1.0, tính wildcard mask match nửa dải IP phía
trên và dưới:
-> Dải địa chỉ nửa trên: 192.168.1.0 - > 192.168.1.127
-> wildcard mask: 0.0.0.127 (lấy địa chỉ cuối trừ địa chỉ đầu)
-> Địa chỉ IP: 192.168.1.0 0.0.0.127

-> Dải địa chỉ nửa dưới: 192.168.1.128 - > 192.168.1.255
-> wildcard mask: 0.0.0.127 (lấy địa chỉ cuối trừ địa chỉ đầu)
-> Địa chỉ IP: 192.168.1.128 0.0.0.127


7. Tính wildcard mask match IP lẻ, hoặc IP chẵn
1 địa chỉ Ip lẻ / chẳn là địa chỉ có octet cuối cùng dạng thập phân là số lẻ /
chẳn
I.e: IP lẻ - 192.168.1.1
IP chẵn – 192.168.1.2
Nhận xét: bit cuối cùng của IP lẻ luôn là bit 1, bit cuối cùng của IP chẵn
luôn là bit 0. Vậy wildcard mask thỏa mãn phải tạo ra một dải địa chỉ IP có
bit cuối của octet cuối không đổi bằng 0 hoặc 1.
Giải pháp: để router luôn match bit cuối của octet cuối của địa chỉ IP, bit
tương ứng trên wildcard mask phải là bit 0
-> I.e1: Cho địa chỉ IP: 192.168.1.0, tính wildcard mask match tất
cả IP chẵn:
-> wildcard mask: 0.0.0.254 (dạng nhị phân:
00000000.00000000.00000000.11111110)
-> Địa chỉ IP: 192.168.1.0 0.0.0.254 (IP chẵn có bit cuối luôn
bằng 0)

-> I.e2: Cho địa chỉ IP: 192.168.1.0, tính wildcard mask match tất
cả IP lẻ
-> wildcard mask: 0.0.0.254 (dạng nhị phân:
00000000.00000000.00000000.11111110)
-> Địa chỉ IP: 192.168.1.1 0.0.0.254 (IP lẻ có bit cuối luôn bằng 1)

8. Tính wildcard mask match 1 range IP address không liên tục
Đây là dạng toán tính wildcard mask phức tạp nhất vì admin không có cách
nào sử dụng 1 wildcard mask để tạo thành địa chỉ IP match tất cả dải IP ban
đầu:
I.e: Tính wildcard mask match dải: 192.168.1.15 - > 192.168.1.75
Nhận xét: Đây là một dải IP không liên tục , không có 1 wildcard mask nào

có thể thỏa mãn dải không liên tục. Tuy nhiên đối với những dải IP liên tục
thì luôn có wildcard mask thỏa mãn.
Giải pháp: Chia dải IP ban đầu thành những dải nhỏ mà trong đó luôn tìm
được 1 wildcard mask thỏa mãn mỗi dải. Vậy cách chia như thế nào? Nhắc
lại: mỗi bit trong octet phần host đại diện cho một nhóm các host gọi là một
block size. Bit cuối cùng là block size 1 vì nó thể hiện 1 host, tương tự bit
đầu tiên là block size 128. Và, mỗi block size luôn tìm được 1 wildcard mask
thỏa mãn.
Chia dải thành các block size:
- 192.168.1.15 (1)
- 192.168.1.16 - > 192.168.1.31 (2)
- 192.168.1.32 - > 192.168.1.63 (3)
- 192.168.1.64 -> 192.168.75 (4)
Tính wildcard mask cho mỗi block size:
- (1): 192.168.1.15 0.0.0.0 - > IP host
- (2): 192.168.1.16 0.0.0.15
- (3): 192.168.1.32 0.0.0.31
- (4): Chưa có wildcard mask phù hợp, ta phân tích dạng nhị phân octet
cuối để tách tiếp wildcard mask:
.64: 01000000
.75: 01001011
-> Ta tách thành: 01000000 -> 01000111 (5)
01001000 -> 01001011 (6)
-> (5): 192.168.1.64 0.0.0.7
(6): 192.168.1.72 0.0.0.3
Tổng kết: Như vậy, từ dải IP ban đầu, ta tách thành 6 dải nhỏ (1)(2)(3)(4)
(5)(6). Quả thật là một công trình “vĩ đại”…
* * *
Complex ACL
Complex ACL là những dạng ứng dụng mở rộng của standard ACL và

extended ACL. Complex ACL cung cấp thêm nhiều tính năng có tính bảo mật
cao hơn, complex ACL gồm 3 loại: Dynamic ACL hay lock-and-key ACL;
Reflexive ACL, và time-based ACL
1. Dynamic ACL:
Dynamic ACL hay còn gọi là lock-and-key ACL, là một ứng dụng hỗ trợ lọc IP
traffic. Dynamic ACL chỉ hoạt động với extended ACL, dynamic ACL đưa ra
yêu cầu 2 bước người dùng là truy cập telnet và xác thưc (authentication)
Ý tưởng của Dynamic ACL:
Thiết lập ACL trên 1 interface của router có thể giới hạn quyền truy cập qua
router; có thể inbound hoặc outbound; tuy nhiên trong một vài trường hợp,
admin cần phải cho phép 1 host hoặc một nhóm host có dải IP trong ACL
trên có thể truy nhập/ xuất qua router. Để thực hiện điều này, admin buộc
phải thay đổi statement trong ACL, hoặc phải mở một “cánh cửa tạm thời”
cho phép các PC thỏa mãn đc điều kiện do admin đặt ra đi qua.
Điều kiện cần phải thõa mãn chính là yêu cầu xác thực (authentication), liệu
sau khi người dùng xác thực chính xác, có thể tạo một phiên telnet (session)
tạm thời, mà trong đó ACL ban đầu đã được cấu hình lại để traffic của họ có
thể đi qua router trong một khoảng thời gian định sẵn?
Cơ chế Hoạt động Dynamic ACL:
1. Interface trên router biên đã được cấu hình lock-and-key
2. Người dùng telnet tới router, khi đó IOS sẽ mở một phiên làm việc telnet,
yêu cầu người dùng nhập thông tin xác thực. Nếu thông tin xác thực chính
xác người dùng có thể vượt qua ACL trên router để truy nhập hoặc truy xuất.
Quá trình chứng thực đc thực hiện bởi router hoặc AAA hay TACACS+ server
3. Sau khi chứng thực thành công, người dùng sẽ thoát khỏi phiên telnet,
một entry tạm thời trên dynamic ACL mở ra và bạn có thể trao đổi dữ liệu.
4. Sau một khoảng thời gian time-out cho phép, entry tạm thời sẽ bị tự
động xóa hoặc admin sẽ xóa bằng tay. Có 2 khoảng thời gian time-out là idle
time-out: nếu sau idle time-out người dùng không sử dụng phiên, entry sẽ bị
xóa; và absolute time-out: entry sẽ bị xóa bất kể thế nào sau khoảng thời

gian này.
Khi nào sử dụng dynamic ACL
Lock-and-Key cho phép 2 chiều: inbound và outbound
- Admin muốn cho phép một người dùng ở xa có thể truy cập vào hệ
thống mạng qua Internet. Lock-and-key sẽ chứng thực và cho phép truy cập
có giới hạn vào 1 host hoặc một subnet trong 1 khoảng thời gian định sẵn
- Khi admin hoặc host trong hệ thống mạng muốn truy xuất tới một
remote host từ xa được bảo vệ bởi ACL trên router. Các host này được yêu
cầu chứng thực qua TACACS+ server trước khi đc cho phép truy xuất
* Lock-and-Key sau khi được kích hoạt, người dùng sau khi xác thực thành
công- nghĩa là trên ACL đã xuất hiện một “khe” cho phép IP xác thực thành
công có thể trao đổi dữ liệu qua router. Hacker hoàn toàn có thể tìm và thực
hiện IP spoofing để lấy quyền xâm nhập hệ thống mạng trong khoảng thời
gian định sẵn
Configure dynamic ACL:
S0/0 được cấu hình ACL ngăn không cho những truy cập trái phép ngoài
internet tới hệ thống mạng LAN
-> ĐỊnh nghĩa user name và password để xác thực:
[standard / extended] là loại ACLs
[name] là tên đặt cho ACLs
[permit / deny]… là cấu hình entry cho named ACLs: Hoàn toàn Tương tự
cấu hình standard / extended ACLs kể từ entry [permit /deny]
-> Thiết lập ACL đặt chiều inbound interface s0/0
1. Cho phép telnet từ remote user tới router
Router(config)#access-list 101 permit tcp any host 1.1.1.1 eq 23 log
2. Tạo dynamic ACL tên TEMP_ACCESS
Router(config)#access-list 101 TEMP_ACCESS permit tcp host 3.3.3 1 host
1.1.1.1 eq 23
3. Áp dụng vào interface
Router(config)#interface s0/0

Router(config)#ip access-group 101 in
-> Cấu hình trên line vty
Ô Văn bản
Router(config)#line vty 0 4
Router(config)#login local
Router(config)#autocommand access-enable host timeout [#]
Trong đó:
- Autocommand: cho phép tạo 1 câu lệnh được chỉ định sẵn nếu
có người dùng login vào
- Access-enable: cho phép tạo 1 entry tạm thời trong dynamic
ACL
- Host: chỉ cho phép host đã telnet đến router và chứng thực
đúng được truy cập. Nếu không có entry này router sẽ cho phép
mọi địa chỉ IP cùng subnet với host đã telnet vào.
- Timeout [#]: xác định khoảng thời gian idle – timeout
-> Admin có thể xóa entry tạm thời trong dynamic ACL:
Router#clear access-template 101 TEMP_ACCESS host 3.3.3.1 host 1.1.1.1
2. Reflexive ACL:
Reflexive ACL có thể coi là 1 extended named ACL “mở rộng”, hỗ trợ lọc
phiên (session). Reflexive ACL chỉ chứa các bản ghi tạm thời, các bản ghi
này được gọi ra khi một phiên kết nối được thiết lập và sẽ tự động xóa đi khi
phiên kết nối kết thúc.
Bài toán bảo mật: Có 2 PC nối với nhau thông qua một router, admin
muốn PC 1 có thể telnet tới PC 2 nhưng không muốn PC 2 có thể telnet tới
PC 1, nếu đặt ACL trên interface của router, admin có thể cho phép PC 1 liên
lạc với PC 2 và ngăn chiều ngược lại. Nhưng vấn đề là PC 2 cũng không thể
gửi bản tin trả lời lại PC 1. Điều admin cần là router hoạt động như một
firewall, từ chối request từ PC 2 nhưng cho phép reply về PC 1.
Giải pháp :
- Nếu admin chỉ quan tâm PC 1 có thể ping PC 2 để kiểm tra, với

extended ACL có thể cấu hình “echo” hoặc “echo-reply” cho phép bản tin
ICMP đi qua.
- Nếu admin muốn PC 1 có thể trao đổi với PC 2 trên một số cổng cho
phép nhưng vẫn thỏa mãn bài toán bảo mật, với extended ACL có thể cấu
hình “established”
I.e: Router(config)#access-list [num] permit tcp [source add] [destination
add] [optional port] [ports] established
-> Khi đó các gói tin ACK và RST cũng sẽ được lọc, điều này đảm
bảo PC 2 không phải PC khởi tạo phiên (vì ACK không nằm trong
segment đầu tiên), như thế chỉ cho phép các kết nối được bắt đầu
từ PC 1
-> Tuy nhiên vấn đề là nếu hacker (bằng phương pháp nào đó) đặt
được giá trị ACK trên header gói tin thì hoàn toàn có thể xâm nhập
vào hệ thống mạng. Chưa kể thiết lập “established” chỉ hoạt động
với giao thức TCP….
- Các vấn đề trên đều có thể giải quyết với Reflexive ACL
Ý tưởng của Reflexive ACL:
Với mỗi kết nối TCP được thiết lập, Reflexive ACL sẽ tự động tạo ra một
entry tạm thời trong ACL, entry này sẽ chỉ cho phép dữ liệu trao đổi trong
chính kết nối đó và sẽ bị xóa ngay sau khi kết nối đóng. Điều này ngăn chặn
việc bất kỳ segment nào có ACK cũng được đi qua mà bắt buộc phiên phải
được khởi tạo từ người dùng.

Entry “established” không hoạt động trên UDP vì UDP là giảo thức không kết
nối (connectionless protocol), “established” không thể lọc phiên UDP. Cần 1
cơ chế ACL có thể lọc phiên UDP, miễn là bắt đầu từ người dùng. Tuy vậy
UDP không có gói tin FIN để thông báo kết thúc mạng, trong một vài trường
hợp kết nối TCP cũng có thể đóng mà chưa trao đổi FIN – Reflexive ACL đưa
ra một khoảng timeout-interval mà phiên chỉ đóng sau khoảng thời gian này
nếu không có traffic trao đổi qua router

-> Câu hình time-interval:
I.e: Router(config)#ip reflexive-list timeout 300
->timeout interval = 300s
Để ngăn chặn việc chồng chất bộ nhớ và làm chậm quá trình xử lý,
Reflexive ACL không phải một bản tin ACL rời rạc mà được “cài” vào
extended ACL, và chỉ kích hoạt khi có phiên được thiết lập. Đây là một cơ
chế tự động vô cùng hiệu quả của Reflexive ACL vì nó bảo vệ người dùng từ
chính quá trình truy cập của người dùng – mỗi entry trong reflexive ACL chỉ
dùng cho một kết nối.
Cấu hình Reflexive ACL :
Bài toán: Cấu hình Reflexive ACL: cho phép PC A chỉ có thể telnet tới PC B,
không cho bản tin request từ PC B qua router.
Bước 1: Thiết lập một named extended ACL bắt gói tin khởi tạo phiên
từ mạng 1.1.1.0/24
Router(config)#ip access-list extended Telnet_Out
Router(config-ext-nacl)#permit tcp host 1.1.1.10 host 2.2.2.20 eq
telnet reflex TEMP_ENTRY
Router(config-ext-nacl)#deny ip any any
-> Mọi thứ đều giống cấu hình một extended ACL ngoai trừ entry “reflex
TEMP_ENTRY”: TEMP_ENTRY là tên reflexive ACL sẽ tạo ra entry nếu gói tin
từ PC 1 tới PC 2 được dùng để thiết lập telnet; “reflex” sẽ yêu cầu entry tạm
thời trong TEM_ENTRY kiểm tra header gói tin phản hồi từ PC 2 về PC 1
Bước 2: Thiết lập một named extended ACL kiểm tra traffic từ
PC 2 tới PC 1
Router(config)#ip access-list extended Telnet_In
Router(config-ext-nacl)#evaluate TEMP_ENTRY
Router(config-ext-nacl)#deny ip any any
-> Trong named extended ACL này không có entry “permit”, thay vào đó
entry “evaluate” sẽ yêu cầu gói tin từ PC 2 được kiểm tra bởi reflexive ACL
TEMP_ENTRY


Bước 3: Đặt cả 2 named extended ACL vào 1 interface
Router(config)#interface f0/1
Router(config-if)#ip access-group Telnet_In in
Router(config-if)# ip access-group Telnet_Out out
Kiểm tra cấu hình:
- Admin dùng lệnh show access-list để kiểm tra trước khi PC 1
telnet
Router(config)#interface f0/1
Router(config-if)#ip access-group Telnet_In in
Router(config-if)# ip access-group Telnet_Out out

-> Tất cả các traffic không phải telnet từ PC 1 đều bị chặn tại
outbound interface f0/1
-> Chưa có entry nào được khởi tạo từ reflexive ACL TEMP_ENTRY

- Admin dùng lệnh show access-list để kiểm tra sau khi PC 1
telnet
Router(config)#interface f0/1
Router(config-if)#ip access-group Telnet_In in
Router(config-if)# ip access-group Telnet_Out out

-> Một entry “permit” được tạo ra trong reflexive ACL TEMP_ENTRY
-> Lưu ý: + Entry tạm thời tạo ra trong reflexive ACL luôn là entry
“permit”
+ Entry tạm thời luôn sử dụng cùng giao thức trên lớp 3
với gói tin mở phiên
+ Entry tạm thời đặt địa chỉ IP nguồn và đích ngược với gói
tin mở phiên
+ Entry tạm thời sử dụng port đích – nguồn ngược với port

trong gói tin mở phiên, như
vậy chúng phải đồng nhất

3. Time-based ACL:
Time-based ACL có thể coi là 1 extended ACL “mở rộng”-cho phép quản
lý truy cập dựa vào thời gian trong ngày, hoặc các ngày trong tuần. Time-
based ACL lọc 2 thông tin: header trong gói tin và thời gian cấu hình
trong router system clock.
Time range trong Time-based ACL:
Time-range là một khoảng thời gian admin định nghĩa sẵn trên router,
bắt buộc time-range phải được gán tên. Số lượng time-range không giới
hạn.
Time-range sẽ được đưa vào extended ACL để tạo thành time-based
ACL, sau đó được gán vào interface. ACL sẽ bắt đầu active khi đến đúng
thời điểm time-range
Cấu hình Time-based ACL
1) Cấu hình time-range:
Router2#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)#time-range [name] > i.e: WORKING_TIME
Router2(config-time-range)#periodic [time] > i.e: monday
9:00 to 17:00
“Periodic” là từ khóa để định nghĩa một time-range, ngoài ra có thể sử dụng
từ khóa “absolute”. “Absolute” cho phép admin cấu hình một time-range thật
cụ thể. Trên cùng một time-range có thể sử dụng đồng thời “periodic” và
“absolute” nhưng “absolute” sẽ được ưu tiên hơn. Ngoài ra có thể cấu hình
nhiều lệnh “periodic” nhưng chỉ cho phép duy nhất một “absolute” cho mỗi
time-range
Router2#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.

Router2(config)#time-range [name] > i.e:
WORKING_TIME_DETAILED
Router2(config-time-range)#absolute [time] > i.e: start 9:00 1
October 1988 end 18:00 31 December 1988
Router2(config-time-range)#periodic monday 9:00 to 18:00
2) Áp dụng time-range vào ACL:
Router2(config)#access-list [number] [permit / deny] [protocol]
[source IP] [destination IP] [port optional] time-range [name]
>i.e: access-list 101 deny tcp any any eq www time-range
WORKING_TIME
Hoặc…
Router2(config)#ip access-list extended [name]
Router2(config-ext-nacl)# [permit / deny] tcp [protocol] [source IP]
[destination IP] [port optional] time-range [name]
3) Gán ACL vào interface:
Router2(config)#interface [#]
Router2(config-if)# IP access-group [num] [in/out]

* * *
Ứng dụng ACL vào các bài toán bảo
mật
Vấn đề bảo mật hệ thống mạng, đặc biệt là các mạng doanh nghiệp ngày
càng trở nên quan trọng; thủ thuật của hacker càng ngày càng tinh vi trong
khi các công cụ hỗ trợ phá hoại ngày càng phong phú và tràn lan trên mạng.
Tuy nhiên, về bản chất thì mọi cuộc tấn công đều là sự trao đổi gói tin qua
router, theo nhiều cách khác nhau; vậy phòng thủ, về bản chất chính là làm
sao lọc được những gói tin ấy, có thể phân biệt được gói tin nào là tin cậy,
gói tin nào là không tin cậy; trong những trường hợp không thể phân biệt
được, thì làm sao hạn chế chúng.
Bản chất của Access Control List, chính là quản lý, và lọc những gói tin đi

qua router – cho phép, hay không cho phép, điều đó tùy thuộc vào cấu hình
của người quản trị; như thế đối với người quản trị, phòng thủ hiệu quả chính
là đặt các chính sách bảo mật một cách chặt chẽ, đề phòng được các trường
hợp có thể gây hại, và cấu hính chính xác. Đó là lý do mọi hacker trước khi
tấn công đều cố gắng xâm nhập vào hệ thống nhằm phát hiện những vị trí
“gót chân Asin”, để có thể xác định được nên tấn công bằng phương pháp
nào, vào đâu và như thế nào.
Các quy trình triển khai ACL vào hệ thống
- Đánh giá toàn bộ hệ thống mạng
- Thiết lập các chính sách an ninh (network Security)
- Lên danh sách ACL
- Triển khai trên hệ thống mạng
- Kiểm tra và xác nhận
Các kiểu tấn công thường gặp và giải pháp phòng thủ:
1. Access Control
Line vty cho phép người dùng từ xa có thể telnet vào hệ thống, một khi đã
telnet được vào hệ thống, “mọi thứ đã hiện ra rõ mồn một”; vì thế quyền
telnet chỉ nên được giới hạn cho một hoặc một nhóm host tin cậy:
-Cấu hình với standard ACL (đối với SSH)


Router(config)#access-list 1 permit host 1.1.1.200 log
Router(config)#access-list 1 deny any log
Router(config)#line vty 0 4
Router(config-line)#login authentication vty -sysadmin
Router(config-line)#transport input ssh
Router(config-line)#access-class 1in
-Cấu hình với extended ACL (đối với telnet)
Router(config)#access-list 1 permit host 1.1.1.200 log
Router(config)#access-list 1 deny any log

Router(config)#line vty 0 4
Router(config-line)#login authentication vty -sysadmin
Router(config-line)#transport input ssh
Router(config-line)#access-class 1in
Ngoài ra để tăng cường tính bảo mật có thể sử dụng dynamic ACL: nhằm
yêu cầu xác thực và giới hạn trong absolute time-out
2. SNMP:
SNMP (Simple Network Management) là một giao thức quản lý mạng, có thể
truy cập tới router. Một hệ thống SNMP bao gồm server SNMP đóng vai trò
trạm quản lý mạng NMS (Network management Stations) SNMP agent được
cài đặt sẵn trong IOS của router CISO và cơ sở dữ liệu MIB. Với SNMP, người
dùng có thể thu thập thông tin hay cấu hình router bằng cách từ NMS gửi
truy vấn get-request hoặc set-request tới router.
Tuy vậy nhưng với SNMP v1, quá trình xác thực giữa NMS và SNMP agent lại
khá đơn giản, chỉ cần đồng bộ 1 community string, là 1 password dạng
clear-text. Bất kỳ ai có thể lấy được gói tin nào đó, chẳng hạn một server
hoặc 1 host “chơi trò” man-in the-middle, có thể tìm ra chuỗi này và xâm
nhập vào hệ thống.
Như thế, với ACL, admin có thể giới hạn xác định cho router địa chỉ IP của
SNMP server, và chỉ công nhận địa chỉ IP này của SNMP server được qua để
xác thực.
-Cấu hình với standard ACL:
Trường hợp, hacker đánh lừa hệ thống “tôi là SNMP server, xác thực nào” để
giành quyền xác thực. Sau khi xác thực, mặc nhiên router coi PC hacker là
SNMP server

Router(config)#access-list 1 permit host 1.1.1.200 log
Router(config)#access-list 1 deny any log
Router(config)#line vty 0 4
Router(config-line)#login authentication vty -sysadmin

Router(config-line)#transport input ssh
Router(config-line)#access-class 1in
Ngoài ra có thể sử dụng extended ACL để tăng các chính sách bảo mật

3. Routing Advertisement filtering:
Bản tin quảng bá mang thông định tuyến. Sử dụng ACL để ngăn thông tin
định tuyến được quảng bá ra ngoài. (???)
-Cấu hình với standard ACL:

Router(config)#access-list 1 deny 1.1.1.0 0.0.0.255
Router(config)#access-list 1 permit any
Router(config)#router [routing protocol specification]
Router(config-router)#distribute-list 1 out

-Cấu hình với extended ACL (đối với mọi giao thức định tuyến)
-> RIP sử dụng UDP port 520
Router(config)#access-list 101 deny udp 1.1.1.0 0.0.0.255 any eq 520
-> IGRP sử dụng giao thức riêng IGRP
Router(config)#access-list 101 deny igrp 1.1.1.0 0.0.0.255 any
-> EIGRP sử dụng giao thức riêng EIGRP đối với quảng bá định tuyển
và bản tin multicast hello
Router(config)#access-list 101 deny eigrp 1.1.1.0 0.0.0.255 224.0.0.10
Router(config)#access-list 101 deny eigrp 1.1.1.0 0.0.0.255 any
-> OSPF sử dụng giao thức riêng EIGRP đối với quảng bá định tuyển
và bản tin multicast hello
Router(config)#access-list 101 deny ospf 1.1.1.0 0.0.0.255 224.0.0.10
Router(config)#access-list 101 deny ospf 1.1.1.0 0.0.0.255 any
-> Apply vào interface
Router(config)#interface s0/0
Router(config-if)#ip access-group 101 out


4. Defend IP Spoofing
IP spoof là kỹ thuật giả địa chỉ, trong đó hacker là những kẻ muốn xâm nhập
hệ thống mạng, tìm cách đánh lừa router rằng mình là một host tin cậy.
Bằng sử dụng sock proxy (đổi IP add) và IP source routing (kỹ thuật định
tuyến không phụ thuộc routing table) hacker có thể xâm nhập vào hệ thống
mạng, lấy được sequence number trong segment, để rồi chiếm quyền điều
khiển.

Theo đó, vấn đề là làm sao ngăn được những gói tin từ ngoài vào mà địa chỉ
IP nằm trong dải mạng:
-Cấu hình với standard ACL:

-> Lọc mọi địa chỉ IP inside đi từ outside
Router(config)# access-list 101 deny ip 1.1.1.0 0.0.0.255 1.1.1.0 0.0.0.255
log
-> Lọc mọi địa chỉ private (vì địa chỉ private không tham gia
traffic trên WAN)
Router(config)# access-list 101 deny ip 10.0.0.0 0.255.255.255
1.1.1.0 0.0.0.255 log
Router(config)# access-list 101 deny ip 172.16.0.0 0.0.255.255
1.1.1.0 0.0.0.255 log
Router(config)# access-list 101 deny ip 192.168.0.0 0.0.255.255
1.1.1.0 0.0.0.255 log
Router(config)# access-list 101 deny ip 127.0.0.0 0.255.255.255
1.1.1.0 0.0.0.255 log
Router(config)# access-list 101 deny ip 169.254.0.0 0.0.255.255
1.1.1.0 0.0.0.255 log
Router(config)# access-list 101 permit ip any any
Router(config)#interface s0/0

Router(config-if)#ip access-group 101 in
5. Defend DOS
Tấn công DoS là kiểu tấn công mà hacker làm ngập hệ thống, liên tục gửi
một lượng lớn lớn truy vấn đến server trong một khoảng thời gian ngắn,
khiến hệ thống bị quá tải, không thể xử lý được số lệnh mà nó được yêu cầu
giải quyết, server có thể nhanh chóng bị ngừng hoạt động.
“Vũ khí” được sử dụng trong những cuộc tấn công DoS là những gói tin
TCP/SYN, ICMP, và ngay cả ICMP-reply. Vậy vấn đề là làm sao có thể lọc,
hoặc thiết lập các giới hạn truy cập đối với các gói tin đó:
a) DoS TCP/SYN:
Đây là kiểu tấn công DoS làm ngập hệ thống bằng cách gửi tới
những segment chỉ chứa cờ SYN nhằm yêu cầu router trả lời với
TCP SYN và ACK. Vậy giải pháp là thiết lập ACL từ chối các phiên
kết nối TCP từ bên ngoài vào hệ thống, và chỉ cho phép phiên được
khởi tạo bên trong. ACL cần phải lọc được cờ ACK:
-Cấu hình với extended ACL:
Flags: ACK

Flags: SYN

Flags: SYN, ACK

Router(config)#access-list 1 permit tcp any host 2.2.2.1 established
router(config)#interface s0/0
router(config-if)#ip access-group 1 in
Một giải pháp nữa là sử dụng reflexive ACL.
b) DoS Smurf
Đây là kiểu tấn công DoS “gắp lửa bỏ tay người” làm ngập hệ thống
bằng các gói tin ICMP. Hacker spoof địa chỉ IP của victim, dùng địa
chỉ đó gửi tới 1 hệ thống mạng khác bản tin broadcast ICMP echo,

để rồi làm ngập victim bởi vô số bản tin ICMP echo-reply.
- Đứng vị trí hệ thống mạng nhận gói tin broadcast ICMP echo,
giải pháp là ngăn chặn mọi gói tin ICMP broadcast
-Cấu hình với extended ACL:
S0/0

S0/0

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×