Saturday, December 11, 2010

[Access Control List] Extended ACL

I.Các khái niệm
eACL kiểm tra nhiều phần của packet, nó cho phép ta có thể lọc packet dựa vào cả source và dest port cùng một lúc...

Thursday, December 9, 2010

[Access Control List] Standard ACL

sACL là một kiểu ACL đơn giản. Nó chỉ kiểm tra và quan tâm đến thông tin của source IP và dest IP trong gói tin mà ko quan tâm đến việc gói tin đó là gói tin của dịch vụ nào.
.
ACL này sẽ deny hoặc permit tất cả các traffic từ một nguồn nào đó

Saturday, November 20, 2010

[Access Control List] Wildcard mask

Phần này sẽ giới thiệu về một khái niệm khá quan trọng trong ACL là Wildcard mask.
ACLs kiểm tra các packets bằng cách xem xét IP, UDP, TCP header của packet.Extended ACL thì kiểm tra cả source/dest IP address cũng như source/dest port và một số thông tin chi tiết khác. Trong khi đó thì standard ACL chỉ kiểm tra dựa trên source IP.

[Access Control List] Giới thiệu về ACL

ACL là công cụ để phân loại các packets đi qua router, rất hữu dụng để điều khiển các luồng dữ liệu trên mạng đi qua router.
ACL cũng có thể được sử dụng để ngăn chặn các packets không mong muốn đi ra/vào mạng dựa vào các chính sách security. Ví dụ: cho phép hoặc ngăn chặn một số host trong mạng truy cập vào web server, tài nguyên dữ liệu...

Thursday, November 11, 2010

[Samba]Demo[Part2] Using password requirement

Phần này sẽ demo về việc yêu cầu password khi muốn chia sẻ dữ liệu
-Tạo một user sử dụng cho việc truy cập
Ở đây tôi tạo một user là testsamba

Wednesday, November 10, 2010

[STP_Part2]How STP works

Phần I đã giới thiệu về STP và các lý do nên dùng STP. Phần này sẽ tâp trung giới thiệu cách mà STP làm việc.

Monday, November 8, 2010

[Samba]Demo[Part1]No password required

Yêu cầu đã cài đặt được samba:

Phần này sẽ trình bày cách cấu hình một samba server đơn giản theo 2 kiểu:
-Cấu hình cho guest, chia sẻ ko cần yêu cầu password
-Cấu hình samba user, yêu cầu chứng thực khi muốn kết nối

Wednesday, November 3, 2010

[STP_Part1] Tại sao phải sử dụng STP?


Khi thiết kế một mạng, người ta sẽ để ý đến việc thiết kế các đường dự phòng. Việc thiết kế dự phòng cho các sw dẫn đến một số vấn đề xảy ra đó là việc các frame có thể bị lặp vô hạn gây ảnh hưởng đến toàn bộ hệ thống mạng. Lúc này, giao thức được IEEE định nghĩa ở tiêu chuẩn 802.1d là STP được sử dụng để chống lại một số tác nhân gây ảnh hưởng đến hệ thống mạng khi thiết kế các đường dự phòng.

[Samba]Samba configuration[Part1]

-File cấu hình của samba mặc định sẽ được đặt tại path /etc/samba/smb.conf
Đây là file chứa các thông số cấu hình cho samba server, các tài nguyên được chia sẻ.

Tuesday, November 2, 2010

Qúa trình boot hệ thống trong Linux


Sau khi quá trình boot của hệ thống phần cứng kết thúc thì hệ điều hành sẽ được khởi động để người dùng sử dụng.

Monday, November 1, 2010

[Samba]Samba daemons

Phần trước tôi đã giới thiệu về giao thức CIFS mà Samba sử dụng. Phần này, tôi sẽ giới thiệu về các daemons mà Samba sẽ sử dụng.

Samba sử dụng 3 daemons chính:bmd, nmbd, windbindd.

[Samba]Samba_Protocols

Samba là một tiện ích giúp ta chia sẻ tài nguyên giữa các máy sử dụng Windows và Linux. Đây là phần đầu tiên nói về Samba trên blog của tôi. Phần này sẽ nói về các giao thức chính mà Samba sử dụng đến.

Các giao thức liên quan đến Samba

Sunday, October 31, 2010

VLAN Trunking and VTP configuration[Part2]


Part1: http://nguyenvcuong.blogspot.com/2010/10/vlan-trunking-and-vtp-configuration.html 
Một bài LAB khác về trunking: http://nguyenvcuong.blogspot.com/2010/04/simple-lab-trunking-vlans.html
2.Cấu hình trunking
Việc cấu hình trunking cho sw Cisco có thể được cấu hình thông thường hoặc để các sw tự thỏa thuận với nhau thông qua Dynamic Trunking Protocol. Trong quá trình thỏa thuận, nếu cà 2 sw đều hỗ trợ cả ISL và 802.1q thì chúng sẽ chọn ISL.Nếu 1 sw hỗ trợ cả 2 cách mà sw kia chỉ hỗ trợ 1 cách trunking thì sẽ sử dụng trunking protocol mà cả 2 cùng hỗ trợ.

VLAN Trunking and VTP configuration[Part1]


1.Tạo VLAN và gán các interface vào VLAN
Phần này sẽ nói về cách tạo VLAN, đặt tên cho VLAN và gán các int vào VLAN.Để rõ ràng, phần này chỉ dùng 1 sw độc lập, cho nên vấn đề trunking và VTP sẽ chưa đc nói đến.
1.1.Tạo mới VLAN
Để tạo mới một VLAN, tại config mode, ta sử dụng câu lệnh
 Switch(config)#vlan [vlan id]
Trong đó, vlan id là id mà ta muốn gán cho vlan đó, id này nằm trong khoảng 1-1005

 
Ngoài ra, ta có thể tạo vlan ngay bên ngoài mode config, phần này sẽ trình bày sau.
Ta có thể đặt tên cho VLAN nếu muốn bằng câu lệnh sử dụng ngay trong mode vừa tạo vlan:
Switch(config-vlan)#name [name]
Trong đó, [name] là tên của VLAN mà bạn muốn đặt. Ví dụ, tôi muốn đặt tên cho VLAN là Accounting:
1.2.Gán các interfaces vào một VLAN.
VLAN là khái niệm tương đương với LAN, cho nên ta sẽ gán các interfaces nào đó vào một nhóm để tạo thành 1 LAN
Các bước thực hiện:
            -Dùng lệnh để vào một interface nào đó
            -Sử dụng lệnh switchport access vlan [id number] để gán interface đó vào VLAN. Trong đó, id number là id của VLAN

Kiểm tra lại thông tin vừa cấu hình, sử dụng câu lệnh show vlan:


 
Như đã thấy, port fa0/3 đã gán vào vlan 10 tên là Accounting.

1.3.Ví dụ về các cách tạo VLAN
Ở đây ta sẽ làm thử 2 cách tạo VLAN khác nhau. Sử dụng mô hình dưới

 
1.3.1.Cách 1:


 
Cách này sẽ tạo ra vlan 3, sau đó đặt 2 port fa0/15 và fa0/16 vào vlan này.
Câu lệnh switchport access vlan [id] nói cho sw biết rằng, các port này chỉ có tác dụng truy cập, sau này khi ta cấu hình đường trunk thì mode đối với trunk interface sẽ khác.
Câu lệnh:
Int range fa0/15 – fa0/16
Ý nghĩa: cấu hình cùng lúc nhiều interface kề nhau.
Đây là câu lệnh sẽ giúp cho ta không phải lặp đi lặp lại nhiều lần việc vào từng port. Ở đây, ta muốn nhóm 2 port fa0/15 và fa0/16 vào 1 vlan thì câu lệnh int range trên sẽ làm giúp ta điều này.
Kiểm tra lại các vlan vừa khởi tạo:
 
1.3.2.Cách 2:
Đây là cách mà ta sẽ khởi tạo vlan ngay từ mode interface config, cách này ngắn hơn so với cách trước:

Ở trên ta đã khởi tạo vlan trực tiếp trong mode interface, cách này vẫn sẽ tạo ra vlan 3 bình thường.
Xem lại cấu hình:

 
========End(Part1)===========

Thursday, October 28, 2010

[Switching]Các khái niệm cơ bản về Virtual LAN


1.Cơ bản về VLAN-Virtual LAN
Để hiểu được về VLAN, trước hết ta phải hiểu về LAN. Với LAN có nhiều cách để nói về khái niệm này, để thấy được sự tương quan giữa LAN và VLAN, ta sẽ dùng khái niệm sau với LAN:

Friday, October 22, 2010

Giới thiệu static route


I.Giới thiệu static route
Router sử dụng 3 phương thức để đưa các routes vào routing table của nó:connected route, static route, dynamically routing protocol.
Khi các interfaces được cấu hình và trạng thái ổn định, router sẽ đưa chúng vào connected routes. Đối với một mạng lớn hơn, admin thường sử dụng các dynamically routing protocols để các giao thức này tự động học được tất cả các routes trong toàn bộ mạng.
1.      Giới thiệu static route
Static route là cách mà người quản trị phải cấu hình bằng tay, hoàn toàn thủ công để cho router biết được tất cả các routes trong mạng. Cách này chỉ phù hợp với mạng nhỏ, với mạng lớn nhiều router thì cách này sẽ bộc lộ nhược điểm rất lớn. Khi đó thì người ta thường nghĩ đến dynamically routing protocols.
2.      Nhược điểm của static route
Như đã nói, static route chỉ phù hợp với mạng nhỏ vài router.Nếu với một mô hình mạng lớn thì static sẽ bộc lộ nhiều nhược điểm lớn:
            -Tốn công sức cấu hình của admin
            -Không tự động cập nhật khi thông tin trong mạng thay đổi
II.Các bước cấu hình static route
1.Xác định các routes cần học cho từng routers
Việc cấu hình thành công static route có thể được chia thành 3 bước:
            -Admin cấu hình thủ công static route trên router
            -router sẽ đưa các static route vào routing table của nó
            -Các packets sẽ được đưa đi thông qua các routes này
Gỉa sử ta có mô hình mạng như sau:
 
Ở đây ta có 4 mạng với 3 router kết nối với nhau. Việc cấu hình routing cho các routers đồng nghĩa với việc ta phải để cho các router biết được tất cả các đường đi tới từng mạng.
Khi cấu hình căn bản cho các router bao gồm việc cấu hình đúng các interfaces và trạng thái các interfaces đúng thì các router sẽ đưa routes mà nó kết nối trực tiếp vào routing table và ký hiệu nó là connected route. Với mô hình trên, ta đã cấu hình các thông số cơ bản cho các router, và lúc này các router cũng đã đưa các connected routes vào routing table của nó:
 
Như ta đã thấy, R1 đã đưa vào routing table của nó 2 routes kết nối trực tiếp với nó là 172.16.2.0/24 và 192.168.2.0/24.
Việc cấu hình chỉ thành công khi trong routing table của mỗi routers sẽ biết được tất cả các mạng. Điều đó có nghĩa là R1 sẽ phải biết thêm 2 mạng nữa là 192.168.1.0/24 và 172.16.1.0/24. Tương tự với R2 và R3.
2.Cấu hình cho các routers
Lệnh cấu hình static route:
Router(config)# ip route [dest_net] [subnet_mask] [ip_next_hop]
Hoặc
Router(config)# ip route [dest_net] [subnet_mask] [forward_int]
Trong đó:
            -dest_net: mạng đích mà router cần học
            -subnet_mask: subnet mask của mạng đích
            -ip_next_hop: địa chỉ ip của int nằm trên router đầu tiên mà gói tin sẽ đi qua
            -forward_int: tên của interface mà gói tin sẽ đi ra khỏi router
Với ví dụ trên, đứng tại R1 ta muốn R1 biết được mạng 192.168.1.0/24 và 172.16.1.0/24 thì next hop của nó sẽ nằm trên R2 và interface đầu tiên gói tin gặp là fa0/0. Nếu ko sử dụng ip_next_hop thì giá trị forward_int đối với R1 lúc này là fa0/0.
Các bước cấu hình chi tiết trên từng routers:
Đối với R1:
  
 Đối với R2:
Đối với R3:
Tôi đã đưa ra cả 2 cách cấu hình trên. Lưu ý rằng, với một số soft giả lập khác như router sim thì câu lệnh cấu hình với thông số tên của forward_int có thể sẽ không được chấp nhận.
Tiến hành thử bằng công cụ ping, ta sẽ ping từ PC0 đến PC1. Nên nhớ đặt IP cho 2 PCs và trỏ gateway về đúng interface trên router.
Trên PC0 đặt IP là 172.16.2.2 gateway trỏ về 172.16.2.1:
 
Trên PC1 đặt IP là 172.16.1.2 gateway trỏ về 172.16.1.1:
 
Một số lưu ý với người dùng Packet Tracer: đôi khi sau khi routing xong, mặc dù đúng nhưng khi dùng ping để kiểm tra, ta sẽ thấy chưa thông mạng. Điều đó có thể do PT hội tụ chậm, cho nên hãy thử ping lại nhiều lần để chắc chắn rằng việc cấu hình sai hay do PT hội tụ chậm!

========End==========

Video+.pkt file + .doc file:
http://www.mediafire.com/?4v8sgnuxnskar9x

Thursday, October 21, 2010

Một số thao tác đơn giản với router Cisco sử dụng soft giả lập Packet Tracer


Phần này sẽ nói về một số thao tác cơ bản với các thiết bị của Cisco(router/switch) thông qua phần mềm giả lập Packet Tracer.
1.Kết nối router vào cổng console để cấu hình
Với thiết bị thật, ta sẽ phải cắm cổng console vào cổng COM của máy tính để thực hiện cấu hình. Việc cấu hình sẽ thông qua các chương trình telnet đến router, sau đó dùng môi trường dòng lệnh để thực hiện các lệnh.Trong Windows, ta sẽ sử dụng chương trình Hyper Terminal để làm trình telnet.
Đối với PT, ko yêu cầu việc nối cáp console để cấu hình thiết bị mà có thể sử dụng tab CLI khi mở thiết bị. Nhưng nếu muốn, ta cũng vẫn có thể giả lập bằng cách nối cáp console từ 1 PC đến router rồi telnet để làm việc. Ở đây sẽ không bàn đến việc hướng dẫn sử dụng PT(sau này sẽ có video hướng dẫn cách cấu hình)
2. Các modes của router
2.1.User mode
Trong môi trường dòng lệnh, mỗi một mode đều có cách nhận dạng riêng. Khi làm việc ở user mode thì dấu nhắc dòng lệnh sẽ có dạng:
Router > 
Ta có thể xem các câu lệnh có thể thực hiện được ở mode này bằng cách gõ dấu ? nó sẽ liệt kê ra các câu lệnh có thể sử dụng trong mode này. Từ đó gợi nhớ cho ta khi nào thì sử dụng câu lệnh nào!
 
Tại user mode ta sẽ bị hạn chế về số câu lệnh cấu hình, để có thể sử dụng được nhiều hơn các câu lệnh, đòi hỏi ta phải vào được một mode khác là priviledge mode
2.2.Priviledge mode

Để vào được priviledge mode từ user mode ta sẽ dùng lệnh enable, khi đó dấu nhắc lệnh sẽ chuyển từ dấu > sang dấu #. Đây cũng là để phân biệt các mode khác nhau trong môi trường cấu 
 hình router

 







Tương tự, để xem các câu lệnh có thể được thực hiện tại mode này ta sẽ dùng dấu ? để liệt kê ra các lệnh có thể thực hiện. Muốn xem nhiều hơn thì dùng phím space để liệt kê các câu lệnh.
2.3.Configuration mode
Đây là mode sẽ thực hiện nhiều lệnh cấu hình quan trọng và ảnh hưởng trực tiếp đến hệ thống file cấu hình của router.
Để vào Configuration mode từ priviledge mode, ta sẽ sử dụng câu lệnh
config terminal
( cũng có thể gõ tắt là conf t)
  
Để thoát ra ngoài mode hiện tại(trở về mode trước đó) ta sẽ dùng lệnh exit

3.Đặt password cho router
Vì lý do bảo mật ta sẽ cấu hình các password cho router. Việc đặt pass sẽ yêu cầu nhập đúng pass mỗi lần muốn vào môi trường dòng lệnh để cấu hình router. Ta sẽ tiến hành đặt pass cho
            -console
            -enable mode
3.1.Đặt pass cho cổng console(console mode)
Khi đặt pass cho console mode, mỗi lần mở router để vào user mode sẽ được yêu cầu nhập pass. Nếu nhập đúng thì sẽ cho qua
Cách thực hiện: lần lượt gõ các lệnh:
Router>enable
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#line console 0  ç đăng nhập vào mode console
Router(config-line)#password cisco  ç đặt pass là cisco, pass này tùy ở người quản trị
Router(config-line)#login ç áp dụng cấu hình trên cho router
Sau khi đã cấu hình, mỗi lần vào user mode sẽ được yêu cầu nhập pass


Lưu ý: khi gõ pass sẽ không xuất bất kỳ một ký tự nào, chỉ cần gõ đúng pass là được.
3.2. Đặt password cho enable mode
Việc đặt pass lúc này có ý nghĩa là khi muốn từ user mode vào priviledge mode(gõ câu lệnh enable) thì sẽ yêu cầu nhập pass, nếu nhập đúng sẽ đc cho qua.
Có 2 cách để thực hiện việc này:
            -C1:có thể dùng dòng lệnh:
Router(config)#enable password cisco
            -C2: có thể dùng dòng lệnh:
Router(config)#enable secret cisco
Trong 2 trường hợp này, câu lệnh thứ 2 sẽ mạnh hơn và pass sẽ được mã hóa, nếu ta gõ cả 2 lệnh này thì router sẽ nhận câu lệnh thứ 2 và cũng sẽ sử dụng pass của câu lệnh thứ 2.


3.3. Đặt pass cho việc truy cập router từ xa(virtual terminal password)
Khi muốn cấu hình cho router thông qua việc đăng nhập từ xa(telnet, ssh…) thì yêu cầu phải được đặt pass cho các cổng virtual terminal. Nếu ko sẽ ko thể đăng nhập từ xa đc.
Việc cấu hình thông qua các dòng lệnh:
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#line vty 0 4 çđăng nhập vào mode vty. 0 4 có nghĩa là có 5 đường kết nối từ xa
Router(config-line)#password cisco çnhập pass
Router(config-line)#login çbắt đầu áp dụng việc cấu hình pass
4. Đặt tên và banner cho router
4.1.Đặt tên cho router
Mỗi router có thể được đặt tên riêng. Việc đặt tên sẽ giúp ta dễ dàng ghi chú hơn cho từng Router
Việc cấu hình thông qua các dòng lệnh:
Router#conf  t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#hostname R1 ç đặt R1 là tên của router
R1(config)#
4.2.Đặt banner cho router
Banner là một đoạn text xuất hiện khi vào môi trường dòng lệnh cấu hình router(user mode). Các banner này có thể là ghi chú của admin.
Việc đặt banner thông qua các câu lệnh:
Router(config)#banner motd #Chao mung den voi moi truong cau hinh router# ç phần phía trong 2 dấu # là đoạn text mà bạn muốn làm banner.


 
5.Đặt địa chỉ cho interface
Trên router, mỗi interface sẽ nằm trong 1 mạng riêng, vì vậy ta có thể coi mỗi interface là một host trong mạng đó. Và như thế, mỗi interface cũng có thể có một địa chỉ IP riêng trong mạng.
Router Cisco phân chia các interface thành nhiều kiểu đáp ứng các nhu cầu khác nhau, bao gồm:
            - Ethernet     IEEE 802.3
            - FastEthernet     FastEthernet IEEE 802.3
            -GigabitEthernet  GigabitEthernet IEEE 802.3z
            -Loopback         Loopback interface
            -Serial           Serial
Việc đánh thứ tự các interface là tùy thuộc vào từng router. Mỗi interface đều được mang một tên riêng, và duy nhất trên router.
Việc cấu hình IP cho interface như sau:
R1(config)#interface [ten_interface] çmuốn cấu hình interface nào thì ta sẽ vào interface đó
R1(config-if)#ip address [dia_chi_ip] [subnet mask] ç ghi các thông số về IP cho router
R1(config-if)#no shutdown ç câu lệnh này sẽ active interface đó lên



Download video and .doc file:
http://www.mediafire.com/?5xmb94butmi4viy

 Enjoy!

Tuesday, August 24, 2010

FTP Active and Passive mode

Ko giống với hầu hết các giao thức khác trên Internet, FTP yêu cầu nhiều port để làm việc. Khi 1 ứng dụng FTP client khởi tạo 1 kết nối đến 1 FTP server, nó sẽ mở port 21 trên server-gọi là "command port". Port này đc dùng để đưa ra các câu lệnh đến server.
Bất kỳ dữ liệu nào đc yêu cầu từ server sẽ đc đưa trở lại client thông qua "data port".
Port number cho kết nối và cách mà việc kết nối dữ liệu đc khởi tạo phụ thuộc vào cách mà client gửi yêu cầu đến theo dạng active hay passive.
1/Active mode: client chỉ là kẻ bắt đầu 1 phiên giao dịch
Trong active mode, client sẽ là kẻ đưa ra yêu cầu phiên kết nối từ port cao(>1024) đến port 21 của server.



+Ngay sau khi nhận đc yêu cầu này, server sẽ đáp trả lại 1 ACK đến client. Đồng thời, client cũng sẽ lắng nghe trên 1 port cao nào đó, chờ đợi tín hiệu đến từ server.
+Sau khi đã thiết lập đc kết nối, server sẽ dùng port 20 của nó để truyền dữ liệu đến 1 port cao khác đang lắng nghe trên client
+Một vấn đề xảy ra cho phía client, đó là firewall. Thực chất, client ko phải là kẻ bắt đầu phiên truyền dữ liệu mà chính xác là nó sẽ lắng nghe trên 1 port nào đó đã đc server biết trước để server connect tới.Với firewall, việc một tín hiệu từ bên ngoài cố gắng kết nối vào bên trong sẽ bị deny!
2/Passive mode:client là kẻ bắt đầu cả 2 phiên giao dịch


+Với vấn đề firewall cho active mode nên đã xuất hiện mode thứ 2 trong FTP là passive mode.
+Tại passive mode thì client là kẻ ra lệnh, trong cả 2 lần thì client đều là kẻ chủ động đưa ra kết nối, điều này khắc phục tình trạng firewall ở trên
+Khi khởi tạo kết nối, client sẽ đồng thời tạo ra 2 port cao. Port đầu tiên dùng để kết nối đến port 21 của server, và port thứ 2 sẽ dùng để vận chuyển dữ liệu
+Port thứ nhất sẽ liên lạc với server qua port21 và nói cho server biết rằng đây là passive mode.Khi biết đây là passive mode thì server sẽ lắng nghe trên 1 port cao, ko phải port20 và sẽ trả lại thông tin cho client biết rằng đang lắng nghe ở port nào. Sau khi đã biết port lắng nghe tại server, client sẽ dùng port cao thứ 2 để kết nối đến port cao mới đc tạo ra tại server, server sẽ đáp trả lại bằng 1 ACK để chấp nhận!
-----Summary------
Active FTP :

  • command : client( port >1024) ---> server(port 21)
  • data : client ( port>1024 ) <--- server (port 20)
Passive FTP :
  • command : client (port>1023) ---> server (port 21)
  • data : client(port >1024) ---> server(port >1024)

Thursday, August 19, 2010

FIle system trong Linux /proc


Linux kernel có 2 chức năng chính:
  • Điều khiển truy cập đến các thiết bị trong máy tính
  • Vạch ra kế hoạch làm việc, khi nào và như thế nào cho các processes hoạt động với các thiết bị đó.
/proc/ là thư mục chứa 1 cấu trúc các files đặc biệt nói lên tình trạng hiện tại của kernel, cho phép các ứng dụng và users có thể "nhìn thấy" tình trạng của hệ thống.
Bên trong /proc/ ta có thể nhìn thấy đc sự đa dạng của các thông tin chi tiết về hệ thống phần cứng và bất cứ process nào đang hoạt động. Hơn nữa, một vài files trong /proc/ có thể đc điều khiển bởi các users và các ứng dụng để trao đổi những sự thay đổi trong cấu hình đến kernel.


1.A Virtual File System
Trong Linux, mọi thứ đều là file, hoặc là dạng text, hoặc là dạng binary. Nhưng /proc/ chứa 1 định dạng khác gọi là virtual file. Vì lý do này cho nên /proc/ cũng thường đc gọi là virtual file system.
Các virtual files như /proc/interrupts, /proc/meminfo, /proc/mounts và /proc/partitions cung cấp một cái nhìn lướt qua nhưng đầy đủ(cho tới hiện tại) về tình trạng của hệ thống phần cứng. Và, các file như /proc/filesystems và thư mục /proc/sys/ cũng cung cấp các thông tin về việc cấu hình hệ thống.

Với mục địch phân chia rõ ràng, các files chứa các thông tin nào thì sẽ đc nhóm vào 1 nhóm và lưu trong 1 subdir. Ví dụ, /proc/ide/ chứa các thông tin cho tất cả các thiết bị IDE.Cũng như vậy, processes dirs cũng chứa các thông tin về mỗi process đang chạy trong hệ thống

1.1.Viewing Virtual Files
Trong /proc/ ta có thể sử dụng các câu lệnh thông thường như cat, more, less để xem đc ngay các thông tin hệ thống. Ví dụ, nếu muốn xem thông tin về CPU ta có thể:
cat /proc/cpuinfo

1.2.Chaging Virtual Files

Thông thường thì các subdir trong /proc ở chế độ read-only. Nhưng có 1 vài dir có thể đc dùng để điều chỉnh các thiết lập của kernel, những việc này thường diễn ra ở thư mục /proc/sys/
-Ví dụ, để thay đổi hostname ta có thể:

echo newhostname > /proc/sys/kernel/hostname

-Một số file sử dụng hệ nhị phân nên ta có thể chỉ nhìn thấy 0 hoặc 1. Khi cat /proc/sys/net/ipv4/ip_forward có thể trả về 0 hoặc 1. 0 có nghĩa là ko forward gói tin, 1 là forward.

2.Top-level FIles within /proc/

-/proc/apm: cung cấp thông tin trạng thái về Advance Power Managerment(APM) thông qua câu lệnh apm.
-/proc/cpuinfo: các thông tin về CPU
-/proc/cryto: thông tin mã hoá của hệ thống
-/proc/filesystems: các filesystem có thể đc kernel hỗ trợ.
-/proc/meminfo:xác định thông tin về dung lượng RAM đc sử dụng.
-/proc/modules: tất cả các modules đc load vào kernel.
.....


Tham khảo: RedHat Enterprise Linux Deployment Guide

Monday, June 28, 2010

FIle system trong Linux /dev

/dev
Các thiết bị trong Linux đều đc biểu diễn dưới dạng các file. Các file này được lưu tại path: /dev
Các thiết bị ở đây có thể là các thiết bị nhập/xuất. CHúng thường đc biểu diễn dưới dạng ký tự bao gồm 1 phần là ký tự biểu trưng cho thiết bị, còn 1 phần ký tự biểu trưng cho khối trong thiết bị đó. Nói chung, Linux có cách đặt tên các thiết bị sao cho khi ta nhìn vào có thể thấy đc rằng ký tự đó nói đến thiết bị nào!:D
Linux có cơ chế phân chia để đặt tên cho các thiết bị. Các thiết bị lưu trữ như hdd, floppy disk...đều có cách đặt tên để có thể phân biệt với nhau.

Thursday, June 24, 2010

TCP:Sequence & Acknowledgement Numbers

Như ta đã biết thì TCP là 1 giao thức hướng kết nối. 2 thông số Sequence and Acknowledgment number là 2 trong số những chi tiết nói lên sự hướng kết nối của TCP. Khi sử dụng TCP để truyền dữ liệu thì nó sẽ giúp cho dữ liệu đc liền mạch, ko bị mất mát dữ liệu trong quá trình truyền tin.
TCP sử dụng 1 số cơ chế như timout, retransmission, sequence để bảo đảm ko có lỗi trong quá trình truyền.Khi hết 1 khoảng thời gian quy định mà vẫn chưa nhận đc ACK thì dữ liệu sẽ đc truyền lại với ACK là ACK ngay sau ACK cuối cùng đc truyền.
Mỗi hệ điều hành có 1 cách để tính toán sequence number khác nhau. Mỗi hệ điều hành có thuật toán riêng để tạo ra các số đó, số này sẽ đc dùng để đảm bảo việc truyền dữ liệu.
Cả Acknowledgment and sequence number đều sử dụng 32bit cho nên sẽ có 2^32~4,3 tỉ trường hợp có thể có của các số này.
-Initial sequence number(ISN)
Khi 2 host muốn có 1 kết nối, điều đó cũng đồng nghĩa với việc sẽ phải tạo ra 1 số ban đầu để có thể bắt đầu một phiên kết nối, số này gọi là Initial sequence number(ISN)
ISN là giá trị của sequence number đc khởi tạo khi bắt đầu 1 phiên kết nối. Đây là 1 mối nguy cơ của việc session hijacking.
Ý tưởng của việc này đó là:
Hacker là kẻ "đứng giữa" 2 máy đang kết nối với nhau, 2 host này muốn kết nối thì trước tiên sẽ phải tao ra ISN để có thể đạt được 1 kết nối thành công giữa 2 host này. Việc của hacker là đứng ở giữa, sniff các gói tin, đoán đc thuật toán tạo ra ISN, sau đó tấn công chiếm đoạt phiên kết nối!
Giả sử ta có 2 host là hostA-client, hostB-server chuẩn bị khởi tạo kết nối với nhau.Ở đây host muốn khởi tạo kết nối là hostA.
Khi muốn tạo 1 kết nối với hostB, hostA sẽ dùng 1 thuật toán của riêng OS nó đang sử dụng để tạo ra sequence number, gói tin TCP này sẽ bật cờ SYN lên, với sequence number đã đc tạo ra, nó sẽ gửi đến hostB.
Lúc này hacker là kẻ đứng ở giữa, nó sẽ cố gắng sniff gói tin, sao cho có thể đoán đc thuật toán của việc khởi tạo này.Một khi đã thấy đc thuật toán thì việc đoán đc gói tin tiếp theo với sequence number nào la ko khó.
Khi đã có đc thuật toán và đoán đc sequence number tiếp theo thì nó sẽ tiến hành hijack phiên kết nối. THời gian đóng vai trò khá quan trọng, cho nên nó sẽ cùng lúc tiến hành việc gửi các gói tin trông có vẻ đúng tới hostB, đồng thời cũng sẽ gửi các thông tin rác đến hostA, làm hostA ko thể có khả năng tiếp tục phiên kết nối với hostB. Như vậy hacker đã thành công trong việc chiếm đoạt phiên kết nối!
-Ví dụ về ACK number and SYN number
Bây giờ ta sẽ xem xét về tính kết nối tin cậy của TCP

Xét ví dụ 2 host truyền tải thông tin sử dụng TCP với nhau
hostA--------------------------------------hostB
step1: ------------------------------------>
step2: <-----------------------------------
step3: ------------------------------------>
step4: ------------------------------------>
đây là quá trình bắt tay 3 bước giữa 2 hostA và hostB.
Ta sẽ xem xét theo từng bước
Step1:
HostA muốn khởi tạo 1 phiên kết nối, nó sẽ gửi 1 gói tin với cờ SYN đc bật lên và 1 số sequence number(A) đc tạo ra. Lúc này ACK =0
Ta có thể hiểu ngắn gọn rằng hostA nói:'Tôi có thể có 1 phiên kết nối với anh ko?Sequence number của tôi là A'
Step2:
Khi hostB nhận đc yêu cầu từ hostA, nó sẽ xem xét khả năng của nó có thể đáp ứng đc yêu cầu của hostA hay ko!?Nếu đc nó sẽ gửi trả lại 1 gói tin hồi đáp với Sequence number là B và ACK là A+1.Gói tin này sẽ có cờ SYN và ACK đc bật lên. Điều đó cũng nói rằng, hostB đã xác nhận là gói tin này nó gửi là để hồi đáp lại gói tin với sequence number mà hostA mới gửi cho nó!
Khi này thì hostB đã giống như:'Tôi đã nhận đc gói tin yêu cầu của anh, tôi có thể kết nối với anh. Sequence number tiếp theo so với sequence number của anh mới gửi cho tôi là A+1, và ACK của tôi là B'
Khi này rõ ràng hostA sẽ nhận ra đây là gói tin dành cho yêu cầu mới gửi thông qua sequence number mà hostB gửi trả lại cho nó!
Step3:
Khi hostA đã nhận đc gói tin mà hostB vừa gửi thì cũng là lúc nó sẽ tạo ra 1 gói tin để kết thúc việc xin xỏ kết nối này. HostA sẽ tạo ra gói tin với cờ ACK đc bật lên, sequence number lúc này sẽ là A+1 và ACK là 1 số C nào đó.
Khi mà hostB nhận đc gói tin này rồi, nó cũng sẽ hiểu rằng 2 bên đã thoả thuận xong, và sẽ bắt đầu kết nối với nhau. Đến đây quá trình bắt tay 3 bước đã hoàn thành. 2 bên có thể truyền gửi dữ liệu với nhau.
Step4:
Đây là giai đoạn truyền dữ liệu. HostA khi đã đc sự cho phép từ hostB thì sẽ gửi lại gói tin với SYN, ACK như ở Step3, những gói tin này sẽ chứa data để gửi sang hostB

Monday, June 21, 2010

Khái quát về TCP

Source: firewall.cx, các tài liệu liên quan trong cuốn TCP/IP Illustrated vol1.
Cung cấp 1 cái nhìn tổng quan về TCP sau đó sẽ đi sâu vào trọng tâm từng phần!
OSI là một mô hình chuẩn và thông minh, hiện tại thì OSI vẫn đc xem là chuẩn giao thức để dựa vào đó nghiên cứu về giao thức sâu hơn.
TRong OSI, mỗi tầng đều có nhiệm vụ riêng của nó, càng lên các tầng ở trên thì các giao thức càng trở nên thông minh hơn và phức tạp hơn
TCP là một giao thức vận chuyển, gọi là vậy bởi vì nó đc đặt tại tầng transport trong OSI và nhiệm vụ chính của nó là lấy dữ liệu từ nơi này đến nơi khác, ko quan tâm đến vị trí địa lý của mạng
Các chức năng chính của TCP:
1.Reliable TRansport
TCP có cơ chế kiểm soát lỗi, khi dữ liệu đc gửi đi, nó sẽ đc TCP bảo đảm rằng, dữ liệu này là hoàn toàn đầy và ko có lỗi. Các thông số đảm bảo này đc thể hiện qua các code trong TCP header sẽ đc đề cập sau.
2.Connection-Oriented
TRước khi truyền dữ liệu giữa các host thì sẽ có 1 kết nối được thiết lập. Khi kết nối đc thiết lập, điều đó cũng đồng nghĩa với việc rằng các hosts cũng đã sẵn sàng để truyền tải dữ liệu cho nhau. Điều này đc làm nổi bật lên bởi quá trình 3-way handshake.
STEP1:HOST A-------------SYN------------->HOST B
STEP2:HOST A<--------SYN,ACK-----------HOST B
STEP3:HOST A------------ACK-------------->HOST B
            HOST A<-----Con. Established--->HOST B


-Bước 1: hostA sẽ gửi 1 thông điệp đến hostB, với cờ SYN đc bật lên với dụng ý rằng 'tôi muốn có 1 kết nối với anh'
-Bước 2:hostB khi nhận đc thông điệp này sẽ xem xét xem có khả năng đáp trả lời yêu cầu đó ko, trong trường hợp đồng ý, hostB sẽ gửi lại cho hostA 1 gói tin với cờ SYN và ACK đc bật lên với dụng ý rằng:'tôi có thể kết nối với anh và đã xác nhận cái SYN mà anh đã gửi trước đó!'
-Bước 3: Sau khi cả 2 bên nhận đc thông điệp của nhau, hostA sẽ gửi 1 gói tin khác đến hostB với cờ ACK đc set lên 1 với dụng ý rằng:'OK, tôi đã xác nhận lại'
Đến lúc này cũng là lúc kết thúc 3-way handshake và kết nối đã đc thiết lập
3.Flow Control
Flow Control đc dùng để khiểm soát dữ liệu lưu thông giữa các hosts đang truyền tải với nhau. Vì 1 lý do nào đó mà 1 trong 2 host không thể ngay lập tức đáp ứng yêu cầu từ bên kia thì sẽ sử dụng flowcontrol để kiểm soát việc lưu thông này, có thể tạm dừng, dừng hẳn hay 1 vài thao tác đại loại vậy...
Ví dụ:
Một webserverA thì sẽ phải cùng lúc đáp ứng nhiều nhu cầu từ phía clients, ta ví dụ rằng ở đây, hostB sẽ là 1 client đóng vai trò là kẻ đc server phục vụ. Ta cũng biết rằng ko chỉ có hostB mới là kẻ đc phục vụ mà còn nhiều clients khác nữa. Khi đó, nếu trong quá trình truyền tải giữa hostB và server mà có nhiều yêu cầu từ clients khác thì rõ ràng server phải đưa ra 1 yêu cầu hostB tạm dừng truyền tải trong 1 khoảng thời gian để có thể đáp ứng đc nhu cầu của tất cả clients
Tổng quát:
HostA(receiver)-----------------------------------------------------HostB(sender)
1st: Data received<------------------------------------------------Data transmitted
2nd: Stop-buffer full, stop sending---------------------------------->(receive signal and stop transmitting)
3rd:Go!(buffer enough, continue transmitting)----------------------->hostB( retransmit)
Data receive<---------------------------------------------------
Khi 1 host nhận đc dữ liệu quá nhanh, nó sẽ ko có đủ khả năng để chứa một lúc hết toàn bộ dữ liệu, thay vào đó nó sẽ để vào 1 nơi trong bộ nhớ gọi là buffer để có thể xử lý đc thông tin. Khi mà buffer này đầy, nó sẽ gửi 1 tín hiệu yêu cầu dừng việc truyền tải lại để có thể xử lý hết đống thông tin trong buffer. Khi đã xử lý đc đống thông tin trong buffer, nó sẽ gửi thông tin sẵn sàng đáp ứng tiếp và có thể truyền tải lại
4.Windowing
Windowing điều khiển xem bao nhiêu thông tin sẽ đc truyền tải giữa 2 điểm cuối
Thử xem xét ví dụ:
Với windowing=1,hostA là host nhận, hostB là host gửi.

Receive 1: hostA<------------------------------------------hostB
Ack 2 :hostA------------------------------------------>hostB
Receive 2:hostA<------------------------------------------hostB
Ack3 :hostA------------------------------------------>hostB

hostB sử dụng window size là 1, điều đó có nghĩa là mỗi lần gửi 1 segment tới hostA thì nó sẽ kèm theo 1 ACK.Khi hostA nhận đc segment thứ nhất, nó sẽ gửi một ACK2 tới cho hostB. ACK2 ở đây đc hiểu rằng hostA đã nhận đc segment1 mà hostB vừa mới gửi cho nó, bây giờ nó đã sẵn sàng để nhận segment tiếp theo....Cứ như thế, lần lượt từng segment đc gửi qua cho hostA, để ý rằng ở đây window size=1 cho nên mỗi lần gửi thì chỉ có 1 segment đc gửi giữa 2 nơi. Còn nếu bị thất lạc hay có lỗi nào đó xảy ra mà hostA ko nhận đc đầy đủ thông tin từ hostB thì sẽ yêu cầu hostB gửi lại thông tin đó. Ví dụ, khi hostB đã gửi segment2 mà lại nhận đc 1 ACK2 từ phía hostA, nó sẽ phải gửi lại thông tin đã vừa mới gửi cho hostA
Bây giờ xem xét đến window size=3:
receive1:hostA<------------------------------------hostB receive2:hostA<------------------------------------hostB receive3:hostA<------------------------------------hostB
ACK4 :hostA------------------------------------>hostB

Với ví dụ trên thì hoàn toàn khác hẳn. Ta có window size=3, điều đó có nghĩa rằng hostB có thể gửi cùng lúc 3 segment đến hostA, sau đó hostA sẽ gửi lại cho hostB 1 ACK là ACK=4, điều đó cũng đồng nghĩa với việc hostA đã xác nhận là nó đã lấy đc đầy đủ thông tin của 3 segments vừa rồi!Khi đã nhận đc ACK4 thì hostB sẽ tiếp tục gửi 3 segment tiếp theo...
5.Acknowledgements
Đây là cơ chế để TCP đc gọi là 1 giao thức đáng tin cậy. Acknowledgments là cách để 2 bên truyền/nhận có thể nhận đc đúng dữ liệu mà ko bị lỗi hay bị chồng chéo lên nhau.Với bất kỳ lỗi nào xảy ra trong quá trình truyền gây mất mát dữ liệu phải truyền lại khi đủ/đúng dữ liệu
Khi các segments đc gửi đi, bên gửi phải nhận đc 1 thông tin xác nhận rằng dữ liệu đã đc gửi thành công thì nó mới truyền tải thông tin tiếp theo.
received:hostA<------------------------------------hostB send1 received:hostA<------------------------------------hostB send2 received:hostA<------------------------------------hostB send3 ACK4------------------------------------------------>ACK received
received:hostA<------------------------------------hostB send4
received:hostA<------------- LOST-------------hostB send5
 received:hostA<------------------------------------hostB send6
ACK5------------------------------------------------>ACK received
received:hostA<------------------------------------hostB send5 ACK7------------------------------------------------>ACK received
.....
Ở trên ta thấy rằng 2 host truyền với nhau với window size=3. Khi đó, hostA sẽ nhận 1 lúc 3 segment từ hostB, khi đã nhận đủ 3 segments nó sẽ gửi lại ACK4.Đến lần thứ 2, tiếp tục như lần thứ 1, nhưng lần này có lỗi xảy ra với segment thứ 5, hostA ko thể nhận đc và đã gửi lại ACK5 cho hostB, với dụng ý rằng:'segment thứ 5 chưa nhận đc, gửi lại cho tôi!'. Khi đó hostB nhận đc ACK5 từ hostA và sẽ gửi lại thông tin trong segment thứ 5 cho hostA, sau đó hostA gửi lại ACK7, tiếp tục với 3 segments tiếp theo...
Đây chính là cách mà TCP đảm bảo dữ liệu truyền tải sẽ ko bị mất mát hay bị lỗi trong quá trình truyền.

Saturday, June 5, 2010

Bookmark các câu lệnh trong Linux

Đây là nơi tôi ghi nhớ các câu lệnh khi làm việc với LInux.
+fuser: to identify processes using file or socket.
---Usage---
When you try to umount some mount point, maybe receive an error alert like: Device is busy...So, you can identify what processes using mount point, and use kill to kill that process...
+df: disk free
---Usage---
To view the space and state of all partitions
+rpm: install/uninstall software with rpm package
---Usage---
Some useful and often using option:
-Try to uninstall a software when unknown the full name of that package.
use: rpm -qa | grep
ie:when you want to uninstall VMware
command: rpm -qa | grep VM
+ldd
---Usage---
syntax:
ldd [program]
This command will show what library is neccessary for this program.
ex:
[cuong@CentOS5 Ebooks and Documents]$ ldd /bin/bash
linux-gate.so.1 => (0x00e74000)
libtermcap.so.2 => /lib/libtermcap.so.2 (0x07471000)
libdl.so.2 => /lib/libdl.so.2 (0x0076d000)
libc.so.6 => /lib/libc.so.6 (0x005e8000)
/lib/ld-linux.so.2 (0x005c9000)
+fsck
---Usage---
Check error for filesystem
+ln
---Usage---
make a link between files
syntax:
ln filename newname
when make link with the path, ln called symbolic link or symlink.
syntax:
ln /path/to/old/file /path/to/new/file
+find
---Usage---
To find files
ex:
find /bin -name ls
How the command above works?!
that command will look up in /bin firectory and find any file that named ls, when found, it will display to screen
+wc
---Usage---
wc-word count-the command to display the whole file. It will display the line, words, bytes of file
ex:
[cuong@CentOS5 27-6]$ ls
text1.txt
[cuong@CentOS5 27-6]$ wc text1.txt
1 6 25 text1.txt

As you see, wc counts the line, words, and bytes of text1.txt: 1 line, 6 words, 25 bytes
+tail
---Usage---
Print the last 10 lines of file to standard output
ex:

[cuong@CentOS5 27-6]$ wc tex2.txt
15 13 30 tex2.txt
[cuong@CentOS5 27-6]$ tail tex2.txt
t
y
u
w
d
x
h
j
ky
+split: split file into smaller parts 

usage: this command will split a file into smaller parts tha you can specific some characteristics for each parts. Assume i have a file of 12GB, i want split that file into some parts that each part is 4GB to burn into DVD disk, so i could use this option for split command:
#split 4048M myfile  mypart

This command will devide myfile into some smaller files and each file is 4048M(~4gb) and the splitted files name are begin with mypart( mypartaa, mypartab...).

Mount NTFS trong CentOS

CentOS là distro đang sử dụng phiên bản kernel 2.6.18. Mặc định, nó ko hỗ trợ hệ thống file NTFS. Vì vậy, nếu muốn có nhu cầu sử dụng thêm NTFS, bạn sẽ phải làm một số bước.
Đây là thông tin về bản distro tôi đang sử dụng
[root@CentOS5 sdb5]# uname -a
Linux CentOS5 2.6.18-194.3.1.el5 #1 SMP Thu May 13 13:09:10 EDT 2010 i686 i686 i386 GNU/Linux

Chúng ta sẽ xem thử kernel hiện tại mà CentOS đang dùng có hỗ trợ NTFS hay ko?!

[root@CentOS5 /]# ls /lib/modules/2.6.18-194.17.1.el5/kernel/fs/ | grep ntfs
[root@CentOS5 /]#

Như vây, hiện tại thì CentOS chưa hỗ trợ NTFS. Bây giờ chúng ta sẽ cùng làm một số bước để có thể mount các phân vùng NTFS.

-Step1:Cài đặt fuse.
Fuse là gì, các bạn hãy tìm hiểu thêm ở đây http://fuse.sourceforge.net/
Download và cài đặt từ source:
Sourceforge page: http://fuse.sourceforge.net/
Mirror:http://easynews.dl.sourceforge.net/sourceforge/fuse/fuse-2.7.1.tar.gz
-Step2: Cài đặt ntfs-3g
TÌm hiểu thêm về ntfs-3g tại homepage:http://www.tuxera.com/
Mirror:http://tuxera.com/opensource/ntfs-3g-2010.5.22.tgz


Sau khi đã hoàn thành việc cài đặt 2 công cụ trên, chúng ta sẽ thực hiện lệnh mount. Đây là cấu trúc câu lệnh để mount các phân vùng ntfs
[root@CentOS5 /]# mount -t ntfs-3g /dev/sdb5 media/sdb5/

Bây giờ bạn có thể sử dụng các phân vùng này một cách bình thường.


Friday, June 4, 2010

Một số việc cần làm sau khi cài đặt CentOS5

-Add repositories:
Thêm các repo cho CentOS.
http://wiki.centos.org/AdditionalResources/Repositories/RPMForge
-Playing multimedia:
Thêm các codec để chơi multimedia
http://wiki.centos.org/TipsAndTricks/MultimediaOnCentOS
-Một số công cụ:
Scim
Pidgin
Thunderbird
Stardict:dic for stardict:http://www.box.net/shared/cebk3e7q42
VirtualMachine: VirtualBox, VMWare Player(free)
Screen Recording: gtk-recordMyDesktop
PDF reader: evince(included), Adode Reader 9
Remote Desktop: Teamviewer
.CHM Reader: khcmviewer
....

Sunday, May 30, 2010

Biến PATH trong Linux và việc rút gọn khi gõ lệnh

Thông thường, khi làm việc với CentOS hay 1 số distro khác, vào terminal ta ko thể làm 1 số công việc nhất định, ví như lệnh ifconfig, chkconfig...bởi vì ko phải đứng ở bất cứ thư mục nào cũng có thể làm việc đc với các câu lệnh này. Để khắc phục việc này, ta sẽ add thêm PATH cho user hiện tại.

File đảm nhiệm việc này là file profile của user nằm tại đường dẫn:
/home/[username]/.bash_profile ta có thể sử dụng vim hoặc gedit để chỉnh sửa file này. Nội dung file có thể như thế này:

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export


Bây giờ ta sẽ thêm sbin để có thể thực thi các câu lệnh có trong thư mục này mà ko cần phải mất công gõ /sbin/
Thêm :/sbin vào phiá sau dòng PATH, lưu lại, logout rồi relogin để check lại!

 

Cài đặt bộ gõ tiếng Việt cho CentOS5[Scim]

Cài đặt scim và các công cụ cần thiết:
yum -y install scim scim-tables scim-libs scim-bridge

Sau khi cài đặt đc sẽ cài bộ input tiếng Việt để có thể gõ đc tiếng Việt
http://code.google.com/p/scim-tables-vietnamese-ext/

Có thể dùng gói .rpm để cài đặt cho dễ
Sau khi cài xong, vào System>Preference>More pre...>Input chọn vào scim.
Tại more preference, chọn scim input method, vào global setup chọn vietnamese.
Sau đó logout rồi login lại để type đc tiếng Việt!

Sunday, May 23, 2010

[Video] Redistributing RIP and OSPF

Ngồi rảnh làm cái video cho ai cần thì xem chơi, đoạn cuối bị sai nên thông cảm nhé!;)






Download here:
http://www.mediafire.com/?2ytdoqly02n

Saturday, May 15, 2010

[Share] Ebooks về Linux

Đây là các cuốn sách tôi sưu tầm được. Link Mediafire để mọi người dễ dàng download.


http://www.mediafire.com/?6131iftcaq73r

Mỗi khi tìm được cuốn sách nào về Linux tôi sẽ up lên thư mục trên, bạn nào cần thì bookmark cái link trên là được!

Saturday, May 8, 2010

Làm Ubuntu trở nên dễ dàng hơn sau khi cài đặt

Ubuntu là một distro(bản phân phối của Linux) đang được sử dụng rất rộng rãi. Nếu là người mới làm quen với Linux thì đây có lẽ là bản distro tốt để làm quen với Linux khi chuyển sang từ Windows. Sau đây là một số tips mà mình đã tổng hợp lại để có thể có 1 bản Ubuntu đầy đủ các chức năng cơ bản cho người dùng bình dân( like me!:D). Việc cài đặt/ thiết lập ra sao, các bạn chịu khó google, chúng có rất nhiều trên net!

-Download và cài đặt một số tiện ích cơ bản

  • Scim:dùng để làm bộ gõ tiếng Việt
  • Gstreamers codec: Các codecs để có thể chơi các file media.
  • Stardict: Ứng dụng từ điển
  • VLC:Chương trình chơi multimedia
  • Thunderbird: Công cụ check mail
....
-Sao lưu và phục hồi hệ thống:

Mình tìm được 2 cách để làm việc này:
  • 1st: Sử dụng command line. Các bạn tham khảo link bên dưới
http://ubuntuforums.org/showthread.php?t=35087
  • 2nd: Sử dụng công cụ hỗ trợ. Xem link bên dưới luôn!
http://www.debianadmin.com/backup-and-restore-your-ubuntu-system-using-sbackup.html
-Secure Ubuntu
LInux là bất khả xâm phạm?! Câu trả lời là ở mỗi người, với mình thì không!:D
LInk này để cho các bạn tham khảo thôi!
Ubuntu Security - Ubuntu Forums

Friday, May 7, 2010

[Flash]How STP works?!

A flash file determines how the stp works
http://www.cisco.com/warp/public/473/spanning_tree1.swf

Friday, April 30, 2010

Simple LAB: Trunking VLANs

Mấy ngày nay toàn viết lý thuyết suông nên hôm nay sẽ đụng chân đụng tay một chút. Bài LAB đơn giản thôi, ko có gì phức tạp cả.



OK, trên là mô hình bài LAB. Bây giờ ta sẽ đi cấu hình trên từng con sw.
1.Tạo VLANs
------------------------------------
Switch(config)#hostname SW1
SW1(config)#VLAN 10
SW1(config-vlan)#exit
SW1(config)#vlan 20
SW1(config-vlan)#exit
SW1(config)#vlan 30
SW1(config-vlan)#exit
SW1(config)#
-----------------------------------
Switch(config)#hostname SW2
SW2(config)#vlan 10
SW2(config-vlan)#exit
SW2(config)#vlan 20
SW2(config-vlan)#exit
SW2(config)#vlan 30
SW2(config-vlan)#exit
SW2(config)
----------------------------------
2. Gán port vào các VLANs
----------------------------------
SW1(config)#int fa0/3
SW1(config-if)#switchport mode access //đưa port vào trạng thái access
SW1(config-if)#switchport access vlan 10 //gán port vào vlan tương ứng
SW1(config-if)#int fa0/5
SW1(config-if)#s
SW1(config-if)#sw
SW1(config-if)#sw mod
SW1(config-if)#sw mode acc
SW1(config-if)#sw mode access
SW1(config-if)#sw acc vlan 20
SW1(config-if)#int fa0/7
SW1(config-if)#sw mod acc
SW1(config-if)#sw acc vlan 30
----------------------------------
OK, như vậy ta đã gán các port vào các vlan. Bây giờ ta sẽ xem lại cấu hình bằng lệnh show vlan
---------------------------------
SW1#show vlan
----------------------------------
OK vậy là đã gán đc các port vào các vlan
3.Cấu hình đường trunk
---------------------------------
SW1(config)#int fa0/1
SW1(config-if)#swt
SW1(config-if)#sw
SW1(config-if)#switchport mo
SW1(config-if)#switchport mode ?
access Set trunking mode to ACCESS unconditionally
dynamic Set trunking mode to dynamically negotiate access or trunk mode
trunk Set trunking mode to TRUNK unconditionally
SW1(config-if)#switchport mode tr
SW1(config-if)#switchport mode trunk

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to down
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up
SW1(config-if)#
--------------------------------------
Kiểm tra lại với lệnh show vlan thì ko thấy fa0/1 nằm trong bất cứ vlan nào nữa. Như vậy là ta đã cấu hình xong đường trunk. Mặc định ở dòng sw 2960 của Cisco thì nó chỉ sử dụng 802.1q còn ở một số dòng cũ hơn bạn có thể phải chọn xem sẽ dùng trunking nào.
Cấu hình tương tự cho con sw2, sau đó ping lại để kiểm tra tại các host.
-------------------------------------
PC>ipconfig

IP Address......................: 192.168.10.2
Subnet Mask.....................: 255.255.255.0
Default Gateway.................: 0.0.0.0

PC>ping 192.168.10.1

Pinging 192.168.10.1 with 32 bytes of data:

Reply from 192.168.10.1: bytes=32 time=93ms TTL=128
Reply from 192.168.10.1: bytes=32 time=96ms TTL=128
Reply from 192.168.10.1: bytes=32 time=49ms TTL=128
Reply from 192.168.10.1: bytes=32 time=78ms TTL=128

Ping statistics for 192.168.10.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 49ms, Maximum = 96ms, Average = 79ms

PC>
------------------------------------------
file pkt:http://vnnshare.com/download/kFtKZnNAWK/Trunking.rar

Thursday, April 29, 2010

FIle system trong Linux /bin

/bin
Đây là thư mục chứa các câu lệnh dành cho cả user và root nhưng có thể sử dụng mà ko cần các filesystem khác chưa đc mounted.Trong thư mục này ko có subdir, một số câu lệnh hoặc các link đến các câu lệnh đc yêu cầu có trong /bin như:
---------------------------------------------------------------------------------
cat-------------Utility to concatenate files to standard output
chgrp--------Utility to change file group ownership
chmod-------Utility to change file access permissions
chown------ Utility to change file owner and group
cp------------- Utility to copy files and directories
date----------Utility to print or set the system data and time
dd-------------Utility to convert and copy a file
df-------------Utility to report filesystem disk space usage
dmesg-------Utility to print or control the kernel message buffer
echo--------- Utility to display a line of text
false--------- Utility to do nothing, unsuccessfully
hostname- Utility to show or set the system's host name
kill------------ Utility to send signals to processes
ln-------------- Utility to make links between files
login--------- Utility to begin a session on the system
ls-------------- Utility to list directory contents
mkdir------- Utility to make directories
mknod----- Utility to make block or character special files
more------- Utility to page through text
mount----- Utility to mount a filesystem
mv---------- Utility to move/rename files
ps----------- Utility to report process status
pwd-------- Utility to print name of current working directory
rm---------- Utility to remove files or directories
rmdir----- Utility to remove empty directories
sed -------- The `sed' stream editor
sh----------- The Bourne command shell
stty-------- Utility to change and print terminal line settings
su---------- Utility to change user ID
sync------ Utility to flush filesystem buffers
true------- Utility to do nothing, successfully
umount-- Utility to unmount file systems
uname---- Utility to print system information
---------------------------------------------------------------------------------------
Các tiện ích sau nếu như đc cài đặt vào trong hệ thống thì phải để trong /bin:
---------------------------------------------------------------------------------------
csh---------- The C shell (optional)
ed----------- The `ed' editor (optional)
tar---------- The tar archiving utility (optional)
cpio-------- The cpio archiving utility (optional)
gzip-------- The GNU compression utility (optional)
gunzip---- The GNU uncompression utility (optional)
zcat-------- The GNU uncompression utility (optional)
netstat---- The network statistics utility (optional)
ping-------- The ICMP network test utility (optional)
----------------------------------------------------------------------------------------
Thường thì một số các tiện ích này sẽ đc tự động cài đặt trong quá trình ta cài LInux OS

Wednesday, April 28, 2010

FIle system trong Linux /sbin

Filesystem là gì?!
Ok, để nói ngắn gọn thì có thể nói như vầy:
Filesystem là các phương thức và cấu trúc các dữ liệu mà một OS sử dụng để duy trì các files trong disk hoặc trong các partitions. Cách mà các files đc tổ chức trong disk.
Trong Linux thì nó sẽ đc tổ chức thành dạng cây phân tầng(có lẽ bạn đã nghe qua rồi nhỉ?!:P)
Với LInux thì mọi thứ đều bắt đầu từ root dir, đc thể hiện bởi dấu gạch chéo: /(frontflash)
và sau đó các subdir sẽ lần lượt đc trình bày bên dưới.
(Nếu bạn để ý thì trong Window$ nó sẽ dùng dấu \(backflash) để làm đường dẫn đến các thư mục.)
Bây giờ cùng xem xét cấu trúc của filesystem trong Linux
Vào terminal xem trực tiếp luôn!
-----------------------------------------------
randomx@Ubuntu9:/$ ls -la
total 25
drwxr-xr-x 22 root root 680 2010-04-18 21:43 .
drwxr-xr-x 22 root root 680 2010-04-18 21:43 ..
drwxr-xr-x 2 root root 2984 2010-04-14 07:33 bin
drwxr-xr-x 3 root root 648 2010-04-14 07:39 boot
lrwxrwxrwx 1 root root 11 2010-04-14 06:49 cdrom -> media/cdrom
-rw-r--r-- 1 cuong cuong 467 2009-02-13 08:49 .deb
drwxr-xr-x 16 root root 3920 2010-04-28 18:55 dev
drwxr-xr-x 138 root root 6848 2010-04-28 18:55 etc
drwxr-xr-x 3 root root 72 2010-04-14 06:56 home
lrwxrwxrwx 1 root root 33 2010-04-14 07:36 initrd.img -> boot/initrd.img-2.6.31-20-generic
lrwxrwxrwx 1 root root 33 2010-04-14 06:57 initrd.img.old -> boot/initrd.img-2.6.31-14-generic
drwxr-xr-x 18 root root 5960 2010-04-20 22:19 lib
drwxr-xr-x 8 root root 264 2010-04-28 18:55 media
drwxr-xr-x 3 root root 72 2010-04-14 15:38 mnt
drwxr-xr-x 2 root root 48 2009-10-29 03:55 opt
dr-xr-xr-x 192 root root 0 2010-04-28 18:51 proc
drwx------ 18 root root 656 2010-04-27 23:15 root
drwxr-xr-x 2 root root 4432 2010-04-14 07:36 sbin
drwxr-xr-x 2 root root 48 2009-10-20 06:05 selinux
drwxr-xr-x 3 root root 72 2010-04-15 14:41 srv
drwxr-xr-x 12 root root 0 2010-04-28 18:51 sys
drwxrwxrwt 20 root root 952 2010-04-28 20:12 tmp
drwxr-xr-x 12 root root 288 2010-04-14 21:16 usr
drwxr-xr-x 15 root root 360 2009-10-29 04:02 var
lrwxrwxrwx 1 root root 30 2010-04-14 07:36 vmlinuz -> boot/vmlinuz-2.6.31-20-generic
lrwxrwxrwx 1 root root 30 2010-04-14 06:57 vmlinuz.old -> boot/vmlinuz-2.6.31-14-generic
-----------------------------------------------------
Bạn hãy chỉ để ý đến các thư mục thôi nhé("d" đầu tiên ở cột đầu tiên á, các phần khác tớ blur đi rồi...)
Theo phương châm chia để trị thì mỗi ngày tớ sẽ overview một dir thôi. Từ từ nó mới ngấm sâu đc!:P
Hôm nay tớ sẽ bắt đầu với
/sbin
Đây là thư mục con nằm trong thư mục root, nó chứa các chương trình sẵn sàng để thực thi. Thường thì đó là các chương trình dành cho việc quản trị hệ thống và đc nằm dưới quyền trực tiếp của Root user.
Các chương trình nằm trong /sbin thường là các chương trình cần thiết cho quá trình boot hệ thống. Nếu bạn đang đọc bài trên một Linux OS thì thử ls -la nó xem sao!
Một số chương trình đc nằm trong /sbin như:
  • fsck:file system check and repair ultilities
  • grub:LInux boot loader
  • halt: stop the system
  • ifconfig: configure a network interface
  • klogd: intercepts and logs kernel messages
  • lilo: Linux loader
  • modinfo: display information about a kernel module
  • route: manipulate the IP ROuting table
  • update: updates an application
  • .....
Các chương trình này thường đc dùng cho việc boot, mount /usr và thực hiện việc recover hệ thống.
Sau khi đã mount /usr thì mọi thứ đc thực thi sẽ đc đặt trong /usr/sbin.
sbin trong /sbin là viết tắt của system binaries. Một binary hoặc binary file là 1 kiểu của file chứa một vài dữ liệu thuộc dạng "non-text". Các file có khả năng thực thi là một kiểu của binary file