/*auto readmore*/ /*auto readmore*/ /* an hien script*/ // an hien password /*an hien ma chuong trinh cong tru */ /*Scrollbox thanh cuon*/ /***Nhung CODE***/ /* dòng xanh dòng trắng */ /* https://cdnjs.com/libraries/prism lay thu vien, can vao ten file ma goi 1. copy link vao vi du:prism-python.min.js 2. ten ngon nua la python */ /*=== New posts ===*/ /*header slider*/ /*=== bai viet lien quan===*/ /*===tabcode===*/

Mô Hình Mạng Cho Các Doanh Nghiệp Vừa & Nhỏ - Bài 4 - Chuyên Đề Radius Authentication (802.1x) on Windows 2/4

Yêu cầu:
1. Đăng ký Network Policy Server với Domain Controller
2. Tạo Radius Client và secret key.
3. Cấu hình Policy
4. Tạo Username & Group
5. Tạo policies
6. Test kết nối Radius
7. Cấu hình Phương thức chứng thực.

Thực hiện:
1. Đăng ký Network Policy Server với Domain Controller



2. Tạo Radius Client và secret key.


Với cấu hình trên có nghĩa là: cho phép thiết bị có IP 192.168.0.112 có thể giao tiếp với Radius server và secrect key là 123456 với Friendly Name là "Sw_Port-baseAuthentication"

3. Cấu hình Policy
Thiết lập Connection

Policies name: là tên chỉ mang tính gợi nhớ, chúng ta điền tên gì cũng được.
Client Friendly Name: là trên Radius client chúng vừa tạo ở bước 2. Trong lab này Frient Name có tên là "Sw_Port-baseAuthentication"




4. Tạo Username & Group

Tạo Group có tên RADIUS GROUP nhằm chuẩn bị cho việc tạo Network Policies

Tạo mới user với thông tin:
  • Username: u10;
  • Password: 123;
  • Password không bao giờ hết hạn.

Thêm user u10 vào group có tên RADIUS GROUP (vừa tạo ở trên).
Khi làm policy với group sẽ tiện hơn thay vì làm policy cho từng user riêng, vì chỉ policy cho group thì nó sẽ cho các user trong group.



Tạo thêm user u20 với password 123, chúng tôi chọn copy u10 cho u20. Khi làm vậy mặc định u20 sẽ là thành viên của group RADIUS GROUP luôn.


5. Tạo policies





6. Test kết nối Radius
Chạy Windows PowerShell và thực hiện lệnh trên máy Radius Server:
netsh advfirewall firewall add rule name="Allow Port 1645" dir=in action=allow protocol=TCP localport=1645

Có nghĩa: đảm bảo firewall trên Radius server của windows cho phép truy cập port 1645- TCP

Dùng 1 máy tính dùng hệ điều hành windows đặt IP 192.168.0.112/24 (đây là IP chúng ta đã cấu hình ở bước 2 trong bài lab này, và máy tính này chỉ dùng để test xem Radius có hoạt động không, test xong bỏ PC này ra khỏi hệ thống).

Ở đây chúng tôi hướng dẫn các bạn từng bước chậm mà chắc, nếu bạn nào tự tin là đúng thì có thể bỏ qua phần kiểm tra này.

Tải phần mềm NTRadping tại đây chạy file NTRadping và điền các thông tin như dưới rồi nhấn Send. Nếu kết quả trả về Accept là kết nối thành công
  • Radius server: 192.168.0.111
  • Port: 1645
  • Secret key: 123456
  • User  name: u10
  • Password: 123


Xem log file trong radius server cũng đã ghi nhận Radius client có IP 192.168.0.112 dùng username u10 để chứng thực.



7. Cấu hình Phương thức chứng thực.



Noted: Với PEAP chúng dùng trong phần wireless authentication

Xong!

Học Python Qua Ví Dụ #001 - Ví Dụ Kinh Điển, Comments, Printing to stdout and Reading from stdin

Tham khảo các cài đặt python ở đây

Yêu cầu:
1. Dùng hàm Print() in ra chuỗi 
2. Dùng hàm Print() in ra chuỗi thông qua biến (có từ khóa của python)
3. In ra chuỗi với dữ liệu nhập từ bàn phím với hàm input
4. Chú thích trong python. Hàm input với cách bắt lỗi try, except. 

Thực hiện:

Ví dụ1:
In ra màn hình 1 dòng trắng
In ra màn hình chữ Hello World

  • Tạo file Demo.PY có nội dung như hình dưới
  • Từ màn hình command prompt chuyển đến thư mục chứa file Demo.py sau đó gõ lệnh python demo.py. Trong ví dụ này chúng tôi lưu ở c:\python


Ví vụ 2:
In ra chuỗi "c:\python\test\newfolder" thông qua biến.

Code:
path = "c:\python\test\newfolder"
print(path)
 
Kết quả:
C:\python>python Demo.py
c:\python       est
ewfolder

C:\python>
Nhận xét: Chúng ta thấy:
- "\t" không được in ra mà thay vào đó là 1 cái tab
- "\n" không được in ra và thay vào đó là 1 xuống hàng (hay enter)
Vì chúng trùng với các ký hiệu hay từ khóa của hệ thống nên nó sẽ không được in ra mà python sẽ ưu tiên xử lý chuỗi theo từ khóa trước.

Để giải quyết vấn đề này chúng ta thêm chữ r phía trước chuỗi, ý nghĩa bỏ qua các ký hiệu/từ khóa trong chuỗi, nhập sao xuất vậy:
code:
path = r"c:\python\test\newfolder"
print(path)

Kết quả:
C:\python>python Demo.py
c:\python\test\newfolder

Vidu 3:
Yêu cầu nhập dữ liệu từ bàn phím và in nội dung vừa nhập ra màn hình.

Code:

output = input("Nhap vao Chuoi: ")

print("Chuoi ban vua nhap vao: ", output)
Kết quả:
C:\python>python Demo.py
Nhap vao Chuoi: Hoc Python qua vi du
Chuoi ban vua nhap vao: Hoc Python qua vi du
C:\python>

Ví dụ 4:
Hàm input chỉ chạy trên python3.6 trờ lên và không chạy trên python2.x viết chương trình nhập chuỗi từ bàn phím và in ra chuỗi vừa nhập và đảm bảo chạy được trên cả python3.x và python2.x

Code:
'''Đây là chú thích nhiều dòng!!!
Hàm input chỉ chạy trên python3.6 trờ lên và không chạy trên python2.x
viết chương trình nhập chuỗi từ bàn phím và in ra chuỗi vừa nhập và
đảm bảo chạy được trên cả python3.x và python2.x
'''
from __future__ import print_function # nếu sử dụng python 2.x phải thêm dòng này
try: # trước tiên thử với python2.x
    output = raw_input("'python2' Nhap vao Chuoi: ")
except NameError: # nếu không phải pytho2.x thì chạy code bên dưới.
    output = input("'python3' Nhap vao Chuoi: ")
print("Chuoi ban vua nhap vao: ", output)

Chú thích trong python:
 
  • Dùng dấu thăng # chú thích 1 dòng, nội dung sau dấu # là chú thích python sẽ bỏ qua không thực thi 
  • Nếu muốn chú thích nhiều dòng liên tiếp thì dùng 1 cặp 3 dấu nháy đơn ''' ''' nội dung chú thích trong cặp nháy này
Kết quả:
C:\python>python Demo.py
'python3' Nhap vao Chuoi: 8.8.8.8
Chuoi ban vua nhap vao: 8.8.8.8
C:\python>

Xong!

Mô Hình Mạng Cho Các Doanh Nghiệp Vừa & Nhỏ - Bài 4 - Chuyên Đề Radius Authentication (802.1x) on Windows 1/4

Sơ đồ tổng quan mô hình

Trong Lab chuyên đề Radius Authentication chúng tôi chia ra làm 4 phần. Theo sơ đồ trên mỗi phần chúng tôi thực hiện một Zone với nội dung như sau:
  • Lab 1: Chuẩn bị và cài đặt các thứ cần thiết để xây dựng một Radius Server trên Windows - Zone #1
  • Lab 2: Cài đặt cấu hình Radius Server trên Windows - Zone #1
  • Lab 3: Cài đặt cấu hình sao cho khi cắm thiết đầu cuối vào switch thì phải đăng nhập bằng user và password thông qua Radius server đã xây dựng ở Lab 1 - Zone #1 & Zone #2
  • Lab 4: Cài đặt cấu hình sao cho khi các thiết bị không dây khi kết nối vào hệ thống phải đăng nhập trông qua Radius server đã xây dựng ở Lab 1 - Zone #1 & Zone #3
LAB 1
Yêu cầu:
1. Cài đặt domain controller trên Windows 2012 R2
2. Cài đặt Network Policy Server
3. Cài đăt Certification Authority
4. Cấu hình Root CA Enterprise

Thực hiện:
1. Cài đặt domain controller trên Windows 2012 R2

Cài đặt IP với các thông tin:
IPv4 Address. . . . . . . . . . . : 192.168.0.111
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . : 192.168.0.1
DNS Servers . . . . . . . . . . . : 127.0.0.1

Cài Active Directory Domain Services
Server Roles -> Active Directory Domain Services -> Add Features -> Next -> Next -> Next -> Install

Cài đặt Domain Controller
Promote this server to domain controller -> Add a new forest -> nhập trên domain cần tạo (Lab này nhập: KHANHVC.com) -> Next -> để mặc định -> nhập password -> Next -> Next  -> Next  -> Next  -> Next  -> Install -> xong bước này server sẽ tự khởi động -> Xong

Vì đây là bài nói về chuyên Radius xây dựng để chuẩn bị phần Radius Authentication 802.1x nên chúng tôi lướt nhanh, chỉ hướng dẫn cho các bạn cách xây dựng một domain controller mới hoàn toàn.

Thiết lập chính sách password: 

Thực hiện như hình

Bước này cho phép chúng ta tạo user với password đơn giản, và chiều dài của password thấp nhất là 3 ký tự.

2. Cài đặt Network Policy Server
Server Roles -> Network Policies and Access Services -> Add Features -> Next -> Next -> Next -> Network Policy Server -> Next -> Install


3. Cài đăt Certification Authority 
Server Roles -> Active Directory Certificate Services -> Add Features -> Next -> Next -> Next -> Certification Authority -> Next -> Install


Kết quả cài đặt ở mục 1, 2 và 3

4. Cấu hình Root CA Enterprise
Server Roles -> Active Directory Certificate Services on the destination Server -> Next -> Certificate Authority -> Next


CA Enterprise -> Next -> Root CA -> Next


Create a new private key -> Next -> chọn RSA# Microsoft Software Key Storage Provider;  Key length 2048;  SHA1 -> Next


Next -> Next ->  Next -> configure




Request and Enroll Certificate các bước thực hiện như hình bên dưới:




Kết quả sau khi Enroll CA

Đến đây chúng đã hoàn thành xong các điều kiện cơ bản đủ để xây dựng Raidius Server trên Windows Server. Chúng ta còn tiếp tục với chuyên đề này trong các bài Lab 2, Lab 3, Lab 4.

Xong!

P/s: Trong bài lab này chúng tôi thực hiện cài đặt DC, Root CA và Network Policy Server trên 1 máy. Trong thực tế triển khai các bạn có thể làm trên nhiều server, mỗi server làm một nhiệm vụ khác nhau.

Cisco, Cách Sao Lưu/Backup & Phục Hồi/Restore Cấu Hình Thiết Bị Cisco và TFTP Server

Yêu cầu:
1. Chuẩn bị mô hình:
2. Sao lưu/Backup cấu hình trên thiết bị cisco đến TFTP server
3. Phục hồi/Restore cấu hình có thiết bị với TFTP Server

Thực hiện:
1. Chuẩn bị mô hình:


1.1. Download TFTP Server và cài mặt định
1.2. Cài đặt thông tin cơ bản


Đảm bảo TFTP đã Start


Cài đặt port sẽ sử dụng khi truyền file (trong trường hợp này là port 69 và giao thức UDP); nơi lưu trữ logfile là C:\TFTPServer\Logs

Nơi lưu trữ file backup, trong trường hợp này là C:\TFTPServer\BackupStore

1.3. Chỉnh firewall trên Windows

Đảm máy tính cài TFTP Server đã được cho phép truy cập port 69 UDP theo chiều inbound, và từ thiết bị cisco (router hoặc switch) có thể ping thấy được server TFTP.

Thực hiện trên PowerShell:
netsh advfirewall firewall add rule name="Allow UDP 69 for TFTP" dir=in action=allow protocol=UDP localport=69

Cisco#ping 192.168.0.48
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.48, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/4/9 ms

2. Sao lưu/Backup cấu hình trên thiết bị cisco đến TFTP server
2.1 Trên thiết bị cisco:
Cisco#copy startup-config tftp:
Address or name of remote host []? 192.168.0.48 
Destination filename [cisco-confg]? cisco-config-bk.cfg 
!!
4898 bytes copied in 0.042 secs (116619 bytes/sec)

Giải thích: 192.168.0.48 là IP của TFTP server; cisco-config-bk.cfg tên của file backup cần lưu

P/S: Chúng ta cũng có thể copy running-config tftp:

HOẶC:

Như chúng ta đã biết mọi cấu hình sẽ được lưu trong flash:
Cisco#dir flash:
Directory of flash:/
    2  -rwx        2084   Mar 4 1993 05:54:43 +00:00  private-config.text
    3  -rwx        1936   Mar 1 1993 00:00:43 +00:00  vlan.dat
    5  -rwx        3096   Mar 1 1993 00:00:50 +00:00  multiple-fs
    6  -rwx        4898   Mar 4 1993 05:54:43 +00:00  config.text
    7  drwx         192   Mar 1 1993 00:47:57 +00:00  c2960-lanbasek9-mz.150-2.SE8
  592  drwx          64   Mar 1 1993 00:52:20 +00:00  dc_profile_dir
65544192 bytes total (49498112 bytes free)
Cisco#

Noted: dir flash: có dấu 2 chấm nhé!

File config.text chính là file cấu hình hiện tại cần phải sao lưu

Cisco#copy flash:config.text tftp:
Address or name of remote host []? 192.168.0.48
Destination filename [config.text]? config.text.cfg
!!
4898 bytes copied in 0.034 secs (144059 bytes/sec)
Cisco#

Giải thích: Copy file config.text từ flash đến TFTP và đổi tên thành config.text.cfg

Chú ý: Nếu thiết bị là switch, khi backup cấu hình chúng ta phải thực hiện backup cấu hình của vlan, file cấu hình này được lưu trữ trong flash với tên vlan.dat

Cisco#copy flash:vlan.dat tftp:
Address or name of remote host []? 192.168.0.48
Destination filename [vlan.dat]? vlan.dat.100.21.cfg
!!
1936 bytes copied in 0.017 secs (113882 bytes/sec)
Cisco#

Backup file vlan.dat từ flash của switch đến TFTP server và lưu với tên là vlan.dat.100.21.cfg

2.2 Quan sát trên TFTP Server


Giải thích:
     - 1: Tên file "cisco-config-bk.cfg" đã được tạo ra trong đường dẫn đã cài đặt ở phần chuẩn bị
     - 2: Từ thiết bị có IP là 192.168.100.21
     - 3. Đã upload thành công

3. Phục hồi/Restore cấu hình có thiết bị với TFTP Server

Cisco#copy tftp: flash:
Address or name of remote host []? 192.168.0.48
Source filename []? config.text.cfg
Destination filename [config.text.cfg]? config.text
%Warning:There is a file already existing with this name
Do you want to over write? [confirm] Y
Accessing tftp://192.168.0.48/config.text.cfg...
Loading config.text.cfg from 192.168.0.48 (via Vlan1): !
[OK - 4898 bytes]
4898 bytes copied in 8.104 secs (604 bytes/sec)
Cisco#

Thực hiện copy file config.text.cfg từ trên TFTP server có IP 192.168.0.48 vào flash: của thiết bị và đổi tên thành file config.text (khi thiết bị boot nó sẽ tìm đọc file config.text và load cấu hình file này vào startup-config, nếu muốn load file cấu hình đó thì chúng ta phải đặt tên là config.text). Vì file đã tồn tại nên có cảnh báo, chúng ta chọn Yes để xác nhận và thực hiện copy.

Nếu thiết bị là switch và đã cấu hình vlan chúng ta phải thực hiện thêm phần restore file vlan.dat nữa nhé.

Xong!

BGInfo Background & Deploy To Client Via GPO

Giới thiệu:
Do nhu cầu thực tế về việc quản lý nhiều server nên khi kết nối vào chúng ta không biết là đang đăng nhập vào server nào, hoặc hướng dẫn ai đó cung cấp cho chúng ta một vài thông tin để chúng ta hỗ trợ họ. Với BGinfo giúp chúng lấy thông tin như: tên máy tính, username, địa chỉ IP, thông tin phần cứng, ...  của máy tính hiện tại ghi lên màn hình nền của Desktop mỗi khi logon. 

Mục tiêu 

Lấy các thông tin hiển thị lên màn hình như hình dưới.

Yêu cầu:
1. Download Bginfo
2. Lấy các trường thông tin: Host name, Boot time, Logon server, Logon domain, User name, System type, Default Gateway, Memory, CPU, OS system, Volumes, Free Space được định nghĩa mặc định và in lên góc trên trái của màn hình.
3. Dùng WMI query để lấy thêm các trường thông tin: Domain Name, Model Name, Model Vendor, IP Address, DNS Server và MAC Address
4. Dùng VB Script để lấy địa chỉ IPv4 của máy tính.
5. Sắp xếp các trường cần hiển thị theo ý
6. Cài đặt Bginfo vào startup cho user.
7. Deploy từ Domain Controller xuống các máy con trong môi trường domain thông qua GPO.

Thực hiện:
1. Download Bginfo tại đây

2. Lấy các trường thông tin: Host name, Boot time, Logon server, Logon domain, User name, System type, Default Gateway, Memory, CPU, OS system, Volumes, Free Space được định nghĩa mặc định và in lên góc trên trái của màn hình.

Cài đặt nơi lưu ảnh sau khi ghi thông tin; vị trí hiển thị của trường thông tin là góc trên trái, và chỉ ghi trong phạm vi là  4,2 inch như hình dưới:

Chọn các trường đã được định nghĩa sẵn trong vùng Fields -> Add -> Apply -> OK để xem kết quả, cài đặt như hình dưới:

3. Dùng WMI query để lấy thêm các trường thông tin: Domain Name, Model Name, Model Vendor, IP Address, DNS Server và MAC Address


Chọn Custom... -> New... -> WMI query -> Browse trong WMI Class chọn Win32_ComputerSystemClass Property chọn Domain -> OK -> đặt trên chổ Identifier là Domain Name (hay WMI Domain Name cho dể phân biệt) -> OK -> OK. Có thể tham khảo cài đặt như hình dưới:

Hoặc chúng ta có thể gõ trực tiếp câu query vào phần path như dưới và đặt tên chổ phần Identifier

Domain Name query:
SELECT Domain FROM Win32_ComputerSystem

Tương tự cho Model Name, Model Vendor, IP Address, DNS Server và MAC Address

Model Name:
SELECT Name FROM Win32_ComputerSystemProduct

Model Vendor:
SELECT Vendor FROM Win32_ComputerSystemProduct

IP Address:
SELECT IPAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=True

DNS Server:
SELECT DNSServerSearchOrder FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=True

MAC Address:
SELECT MACAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=True


Noted: Với các trường IP address, DNS Server, MAC Address chúng ta phải thêm "WHERE IPEnabled=True" ở cuối câu query nếu không có một số trường hợp chúng ta nhận được kết quả có thêm chữ NULL như hình bên dưới



Kết quả cuối cùng của các trường query bằng WMI


Nhận xét: Với cách lấy IP Address bằng WMI query như hiện tại nó sẽ lấy cả IPv6 nếu IPv6 có enable trên máy tính. Để chỉ lấy IPv4 thì chúng ta có thể dùng VB Script với các query kèm thêm các điều kiện. Tham khảo mục VB Script ở mục 4.

4. Dùng VB Script để lấy địa chỉ IPv4 của máy tính.

Tạo file Bginfo.vbs với nội dung:
' Special BGInfo Script
' Only IPv4 Address v1.7
' Programmed by WindowsStar - Copyright (c) 2009-2011
' --------------------------------------------------------
strComputer = "."
On Error Resume Next
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colSettings = objWMIService.ExecQuery ("SELECT * FROM Win32_NetworkAdapterConfiguration where IPEnabled = 'True'")
For Each objIP in colSettings
   For i=LBound(objIP.IPAddress) to UBound(objIP.IPAddress)
      If InStr(objIP.IPAddress(i),":") = 0 Then Echo objIP.IPAddress(i)
   Next
Next

Cài đặt thực hiện query thông qua VBS, chúng ta trỏ đến file Bginfo.vbs vừa tạo ở trên. Tham khảo cài đặt như hình dưới:

Chọn IPv4 vừa định nghĩa trong vùng Fields -> Add để thêm vào nội dung cần hiển thị -> Apply -> OK xem kết quả.

Kết quả cho chúng ta thấy chỉ lấy duy nhất IPv4 cho dù IPv6 đang enable. 

5. Sắp xếp các trường cần hiển thị theo ý
Các bạn có thể sắp xếp theo yêu cầu của các bạn, cách làm của chúng tôi chỉ nhằm mục đích tham khảo:


Sau khi xem kết quả nếu ok chúng ta lưu lại (file -> save as) với tên Bginfo.bgi cùng thư mục với file Bginfo.exe cho dễ.


Chúng tôi lưu vào C:\Windows\Bginfo, và hiện tại có 3 file (bginfo.exe là file chương trình, bginfo.vbs được tạo ra ở mục 4, bginfo.bgi được tạo ra ở mục 5 lưu cấu hình).

6. Cài đặt Bginfo vào startup cho user.

  • Tạo file Bginfo.reg với nội dụng sau và chạy file này với quyền administrator:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Sysinternals\BGInfo]
"EulaAccepted"=dword:00000001

 Kết quả sau khi chạy file Bginfo.reg

  • Tạo file Bginfo.bat với nội dung:

@echo off
cd
CALL "C:\BGinfo\Bginfo.exe" "C:\BGinfo\Bginfo.bgi" /timer:0 /nolicprompt
Ý nghĩa:  timer:0 : thời gian chờ là 0;  nolicprompt: không cần cần hiển thị form xác nhận thông tin

  • Tạo shortcut để chạy file Bginfo.bat mỗi khi đăng nhập vào máy


7. Deploy từ Domain Controller xuống các máy con trong môi trường domain thông qua GPO.

  • Share folder Bginfo trên file server và cho phép các client truy cập vào folder này
Kết quả truy cập đến folder Bginfo trên file server thành công.
  • Tạo GPO thực hiện copy tất cả các file Bginfo.* từ file server đến máy client

  • Tạo regedit key mặc đinh cho phép (EulaAccepted) khi chạy lần đầu tiên

  • Tạo shortcut để thực thi file Bginfo.bgi trên Startup



  • Thực hiện deploy từ domain xuống các client


Với các máy client các bạn thực hiện lệnh gpupdate /force và log off lại máy để xem kết quả.

Chúng tôi hy vọng sẽ ít nhiều giúp được các bạn khi cần.
Các file đã thực hiện của bài lab

Xong!

Các link tham khảo
1. Cài đặt cơ bản từ microsoft.com
2. Remove the (none) IP Address
3. VBScript for displaying only IPv4 Addresses

Cisco, Port Security

Giới thiệu:

Trong một số trường hợp chúng ta cần kiểm soát sự truy xuất của client vào một hệ thống mạng nhằm giảm thiểu rủi ro (MAC flooding là một kỹ thuật tấn công phổ biến trong mạng LAN) cho hệ thống mạng. Cách đơn giản để quản lý client là dựa vào địa chỉ MAC của client đó. Catalyst Switch Cisco cung cấp tính năng port security giúp kiểm khiển truy cập của một client trên port của switch dựa vào địa chỉ MAC của nó.

Mặc định switch cho phép và học tất cả các địa chỉ MAC trên một interface, chúng ta có thể thay đổi cách hành sử này với tính năng port security (bảo mật cổng, bảo mật lớp 2 trên switch).


Sơ đồ trên có 2 máy tính kết nối vào một switch bình thường (là switch không thể quản lý được, chỉ gắng vào là chạy) và switch được nối với Cisco Switch cổng Et0/0, lúc này trên cổng  Et0/0 của Cisco Switch học được địa chỉ MAC của PC1 và PC2.

Ví dụ chúng ta cho phép Cisco Switch chỉ học một địa chỉ MAC trên cổng Et0/0 mà thôi, các địa chỉ khác sẽ bị vi phạm (violation) và chúng ta có thể đưa ra cách hành xử cho các MAC vi phạm này.

Ngoài việc giới hạng số lượng MAC học trên cổng chúng ta có thể cho phép lọc-Filter địa chỉ MAC, tức là chỉ cho phép một hoặc một nhóm các địa chỉ MAC cụ thể nào đó, các địa chỉ khác ngoài danh sách cho phép sẽ bị vi phạm sẽ bị loại bỏ.

Sơ đồ Lab:

Các kiến thức sử dụng trong bài: Spanning portfast, port security

YỀU CẦU:
1. Đấu nối, đặt IP như hinh và cấu hình spanning portfast (hội tụ nhanh trong việc kiểm tra) trên tất cả các interface của switch.
2. Enable tính năng port security trên cổng Et0/0 của cisco switch
3. Chỉ cho phép duy nhất địa chỉ MAC 0050.7966.6803 của PC1 kết nối vào cổng Et0/0 của cisco switch.
4. Nếu không vi phạm (số PC < = 2) port sẽ tự động phục hồi khỏi trạng thái lỗi sau 30 giây.
5. Đảm bảo cisco switch chỉ cho phép 2 PC đầu tiên kết nối vào cổng Et0/0 của cisco switch.

THỰC HIỆN:
1. Đấu nối, đặt IP như hinh và cấu hình spanning portfast (hội tụ nhanh trong việc kiểm tra) trên tất cả các interface của switch.

PC1:
VPCS> set pcname PC1
PC1> ip 192.168.1.1/24 192.168.1.254
Checking for duplicate address...
PC1 : 192.168.1.1 255.255.255.0 gateway 192.168.1.254

PC2:
VPCS> set pcname PC2
PC2> ip 192.168.1.2/24 192.168.1.254
Checking for duplicate address...
PC1 : 192.168.1.2 255.255.255.0 gateway 192.168.1.254

Normal Switch:
hostname Normal_sw
spanning-tree portfast default 

Cisco Switch:
hostname Cisco_sw
spanning-tree portfast default
!
interface Vlan1
ip address 192.168.1.254 255.255.255.0
no shutdown
end
write


2. Enable tính năng port security trên cổng Et0/0 của cisco switch

Cisco Switch:
interface Ethernet0/0
 switchport mode access
 switchport port-security

Kiểm tra:
Cisco_sw#show run int et0/0
Building configuration...
Current configuration : 92 bytes
!
interface Ethernet0/0
 switchport mode access
 switchport port-security
 duplex auto
end
Port security đã được cấu hình trên cổng Et0/0

Cisco_sw#show port-security interface Et0/0
Port Security                            : Enabled
Port Status                               : Secure-up
Violation Mode                         : Shutdown
Aging Time                               : 0 mins
Aging Type                               : Absolute
SecureStatic Address Aging    : Disabled
Maximum MAC Addresses      : 1
Total MAC Addresses              : 1
Configured MAC Addresses    : 0
Sticky MAC Addresses            : 0
Last Source Address:Vlan       : aabb.cc00.2000:1
Security Violation Count          : 0

Với lệnh show port-security interface Et0/0 chúng ta tạm hiểu là Port security đã được bật; trạng thái hiện tại là up; số lượng MAC cho chép học là 1, nếu số lượng MAC lớn hơn (sẽ vi phạm -Violation) thì cổng sẽ bị Shutdown (mặc định tổng số lượng MAC cho phép là 1 và khi bị vi phạm các điều kiện sẽ bị shutdown).

Với cấu hình trên nếu địa chỉ MAC nào đến trước sẽ được cho phép, nếu có MAC thứ 2 đi qua port sẽ shutdown.

3. Chỉ cho phép duy nhất địa chỉ MAC 0050.7966.6803 của PC1 kết nối vào cổng Et0/0 của cisco switch.

Nhận xét trước khi cấu hình: Ta thấy Cisco_switch được nối với Normal_switch thông qua cổng Et0/0, với yêu cầu là chỉ cho phép duy nhất MAC 0050.7966.6803 đi qua nhưng thực tế trên công Et0/0 của Cisco_switch phải cho phép địa chỉ MAC của Normal switch và MAC của PC1. Vậy số lượng MAC tối đa (Maximum MAC Addresses) trong trường hợp này là 2.

Để kiểm tra địa chỉ MAC của cổng Et0/0 trên Normal_Switch chúng ta dùng lệnh: show interface Et0/0

Normal_Switch:
Normal_sw#show interface Et0/0
Ethernet0/0 is up, line protocol is up (connected)
  Hardware is AmdP2, address is aabb.cc00.2000 (bia aabb.cc00.2000)
  {..}

Cấu hình:
Cisco Switch:
interface Ethernet0/0
shutdown
switchport port-security maximum 2
switchport port-security mac-address 0050.7966.6803
switchport port-security mac-address aabb.cc00.2000
no shutdown
end

Nên shutdown port cần cấu hình trước khi cấu hình.

Với các cấu hình cho phép chỉ định một địa chỉ MAC cụ thể như vậy chúng ta gọi là cấu hình tĩnh, ngoài ra chúng ta có cách cấu hình để switch tự học và lưu lại các địa chỉ MAC đầu tiên rồi đưa vào running-config (tham khảo ở mục 5 trong bài lab này)
Kiểm tra:


Cisco_sw#show port-security interface et0/0
Port Security                 : Enabled
Port Status                    : Secure-up
Violation Mode              : Shutdown
Aging Time                    : 0 mins
Aging Type                    : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses      : 2
Total MAC Addresses              : 2
Configured MAC Addresses    : 2
Sticky MAC Addresses            : 0
Last Source Address:Vlan       : 0050.7966.6803:1
Security Violation Count          : 0

Maximum MAC Addresses bây giờ là 2 đã đúng yêu cầu đặt ra.

PC1> ping 192.168.1.254
84 bytes from 192.168.1.254 icmp_seq=1 ttl=255 time=0.639 ms
84 bytes from 192.168.1.254 icmp_seq=2 ttl=255 time=0.974 ms
84 bytes from 192.168.1.254 icmp_seq=3 ttl=255 time=0.995 ms
84 bytes from 192.168.1.254 icmp_seq=4 ttl=255 time=1.039 ms
84 bytes from 192.168.1.254 icmp_seq=5 ttl=255 time=0.779 ms
PC1 ping đến 192.168.1.254 là thành công

Cisco_sw#show port-security interface Et0/0 address 
               Secure Mac Address Table
-----------------------------------------------------------------------------
Vlan    Mac Address       Type                          Ports   Remaining Age
                                                                   (mins) 
----    -----------       ----                          -----   -------------
   1    0050.7966.6803    SecureConfigured              Et0/0        -
   1    aabb.cc00.2000    SecureConfigured              Et0/0        -
-----------------------------------------------------------------------------
Total Addresses: 2

Cách học địa chỉ MAC trên cổng Et0/0 là do cấu hình tĩnh

Thử dùng PC2 để ping đến 192.168.1.254
PC2> ping 192.168.1.254
host (192.168.1.254) not reachable
PC2> 
Kết quả không thành công.

Quan sát trên Cisco_switch chúng ta thấy lỗi như bên dưới
Cisco_sw#
*May 12 07:21:58.886: %PM-4-ERR_DISABLE: psecure-violation error detected on Et0/0, putting Et0/0 in err-disable state
*May 12 07:21:58.886: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address  050.7966.6804 on port Ethernet0/0.
*May 12 07:21:59.887: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/0, changed state to down
*May 12 07:22:00.888: %LINK-3-UPDOWN: Interface Ethernet0/0, changed state to down

Thông trên chúng ta hiểu là: Vi phạm điều kiện port security nên Interface Ethernet0/0 được đưa vào trạng thái là err-disable  đã có địa chỉ 050.7966.6804 đi vào cổng Et0/0 và trạng thái hiện tại là down

Noted: các hành xử khi phạm port security:

  • Shutdown: Khi vi phạm port bị shutdown và đưa vào trạng thái err-disabled
  • Retrict: Khi bị vi phạm port vẫn up, tuy nhiên tất cả các frame từ địa chỉ MAC vi phạm điều kiện sẽ bị drop và gửi ra SNMP trap, syslog.
  • Protect: Khi bị vi phạm port vẫn up, nhưng không gửi ra SNMP hay syslog.


Cisco_sw#show interfaces status 
Port      Name               Status       Vlan       Duplex  Speed Type
Et0/0                        err-disabled 1            auto   auto unknown
Et0/1                        connected    1            auto   auto unknown
Et0/2                        connected    1            auto   auto unknown
Et0/3                        connected    1            auto   auto unknown
với lệnh show interfaces status chúng ta thấy được trạng thái của các port trong đó có Et0/0

Cisco_sw#show interfaces status err-disabled
Port      Name               Status         Reason               Err-disabled Vlans
Et0/0                        err-disabled     psecure-violation
Hoặc chỉ các port nào có trạng thái là err-disable mới hiện thị ra thì dùng lệnh show interfaces status err-disabled

Trên PC1 kiểm tra ping đến 192.168.1.254
PC1> ping 192.168.1.254
192.168.1.254 icmp_seq=1 timeout
192.168.1.254 icmp_seq=2 timeout
192.168.1.254 icmp_seq=3 timeout
192.168.1.254 icmp_seq=4 timeout
192.168.1.254 icmp_seq=5 timeout
PC1 cũng không ping đến được vì port Et0/0 của cisco switch đang bị down


Hướng khắc phục.
Cisco_sw:
interface Et0/0
shutdown
no shutdown
P/s: phải đủ 2 dòng lệnh shutdown trước và no shutdown sau nhé.

Cisco_sw#show ip interface brief 
Interface              IP-Address      OK? Method Status                Protocol
Ethernet0/0            unassigned      YES unset  up                    up   
Ethernet0/1            unassigned      YES unset  up                    up   
Ethernet0/2            unassigned      YES unset  up                    up   
Ethernet0/3            unassigned      YES unset  up                    up   
Vlan1                  192.168.1.254   YES manual up                    up  
Bây giờ trạng thái của Et0/0 đã up trở lại

4. Nếu không vi phạm (số PC < = 2) port sẽ tự động phục hồi khỏi trạng thái lỗi sau 30 giây.

Cisco Switch (ở mode config):
errdisable recovery cause all
errdisable recovery interval 30

Cấu hình trên ý là tất cả các trạng thái lỗi nếu là errdisable thì sẽ tự động phục hồi trạng thái lỗi nếu không có vi phạm nào trong 30 giây.

Kiểm tra cấu hình
Cisco_sw#show  run | include errdisable
errdisable recovery cause udld
errdisable recovery cause bpduguard
errdisable recovery cause security-violation
errdisable recovery cause channel-misconfig (STP)
errdisable recovery cause pagp-flap
errdisable recovery cause dtp-flap
errdisable recovery cause link-flap
errdisable recovery cause sfp-config-mismatch
errdisable recovery cause gbic-invalid
errdisable recovery cause l2ptguard
errdisable recovery cause psecure-violation
errdisable recovery cause port-mode-failure
errdisable recovery cause dhcp-rate-limit
errdisable recovery cause pppoe-ia-rate-limit
errdisable recovery cause mac-limit
errdisable recovery cause unicast-flood
errdisable recovery cause vmps
errdisable recovery cause storm-control
errdisable recovery cause inline-power
errdisable recovery cause arp-inspection
errdisable recovery cause link-monitor-failure
errdisable recovery cause oam-remote-failure
errdisable recovery cause loopback
errdisable recovery cause psp
errdisable recovery interval 30

Tạo lỗi bằng cách trên PC2 ping đến 192.168.1.254
PC2> ping 192.168.1.254
host (192.168.1.254) not reachable

Quan sát thông báo trên Cisco_Switch:
Cisco_sw#
*May 12 08:26:15.594: %PM-4-ERR_DISABLE: psecure-violation error detected on Et0/0, putting Et0/0 in err-disable state
*May 12 08:26:15.594: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 0050.7966.6804 on port Ethernet0/0.
*May 12 08:26:16.594: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/0, changed state to down
*May 12 08:26:17.595: %LINK-3-UPDOWN: Interface Ethernet0/0, changed state to down
*May 12 08:26:45.590: %PM-4-ERR_RECOVER: Attempting to recover from psecure-violation err-disable state on Et0/0
*May 12 08:26:47.594: %LINK-3-UPDOWN: Interface Ethernet0/0, changed state to up
*May 12 08:26:48.599: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/0, changed state to up

Port bị đưa vào trạng thái down lúc 08:26:17 và sau 30 giây (08:26:47) đã tự đội phục hồi.

5. Đảm bảo cisco switch chỉ cho phép 2 PC đầu tiên kết nối vào cổng Et0/0 của cisco switch.

Cấu hình:
Cisco_sw:
no switchport port-security mac-address 0050.7966.6803
no switchport port-security mac-address aabb.cc00.2000
switchport port-security mac-address sticky

Kiểm tra:
PC2> ping 192.168.1.254
84 bytes from 192.168.1.254 icmp_seq=1 ttl=255 time=0.708 ms
84 bytes from 192.168.1.254 icmp_seq=2 ttl=255 time=1.053 ms
84 bytes from 192.168.1.254 icmp_seq=3 ttl=255 time=0.852 ms
84 bytes from 192.168.1.254 icmp_seq=4 ttl=255 time=1.066 ms
84 bytes from 192.168.1.254 icmp_seq=5 ttl=255 time=1.004 ms

Kết quả PC2 ping thành công.

Cisco_sw#show port-security interface ethernet 0/0 address 
               Secure Mac Address Table
-----------------------------------------------------------------------------
Vlan    Mac Address       Type                          Ports   Remaining Age
                                                                   (mins) 
----    -----------       ----                          -----   -------------
   1    0050.7966.6804    SecureSticky                  Et0/0        -
   1    aabb.cc00.2000    SecureSticky                  Et0/0        -
-----------------------------------------------------------------------------
Total Addresses: 2

Có 2 địa chỉ MAC đã được học thông qua Sticky.

Hy vọng sẽ giúp được cho bạn nào đó cần và áp dụng vào công việc của mình một cách hiệu quả.

Xong!
P/s: Port security thường được cấu hình trên các switch đấu vào các thiết bị đầu cuối nhé các bạn.
/*header slide*/