Trao đổi với tôi

http://www.buidao.com

5/11/11

[Net]CHMOD là gì? – Và cách CHMOD an toàn cho site của bạn

Bạn hãy thử vào bất cứ diễn đàn thảo luận về thiết kế web nào, chắc chắn sẽ bắt gặp câu hỏi: “Thế nào là CHMOD?”. Thực ra không có gì phức tạp trong vấn đề này cả, nhưng dẫu sao để hiểu một cách thấu đáo về nó, chắc phần lớn trong số các bạn đều cần đến sự giúp đỡ. Chúng ta hãy bắt đầu bàn về nó nhé…
CHMOD – đó là phạm trù liên quan đến các files và thư mục, có chức năng chỉ ra cho server biết, ai có thể làm gì đối với file hay thư mục nào đó.
Chủ yếu CHMOD đưa ra các lệnh như quyền được đọc, viết vào file (hay thư mục), quyền thực hiện một công việc nhất định. Vì phần lớn các servers làm việc trên cơ sở hệ thống UNIX, nên chúng ta sẽ nghiên cứu về cách CHMOD chính cho các servers này.
Trên các hệ thống UNIX, người sử dụng được chia ra làm 3 nhóm: “user” (chủ nhân trực tiếp của các files), “group” (thành viên của nhóm mà người chủ nhân file có tham gia) và “world” (tất cả những trường hợp khác). Khi bạn kết nối với server, nó sẽ xác định xem bạn thuộc về nhóm nào.
Ví dụ bạn kết nối với server bằng FTP, khai báo tên truy cập như một thành viên, chính server sẽ quy bạn vào nhóm “user”. Còn những thành viên khác truy cập bằng FTP thuộc về nhóm “group”. Khi ai đó đến site của bạn bằng trình duyệt web, sẽ được quy vào nhóm “world”. Sau khi xác định nhóm, người sử dụng sẽ được gán quyền hạn nhất định đối với file hoặc thư mục nào đó.
Cụ thể là người sử dụng sẽ được đọc, ghi hay tạo mới (hoặc xóa) file. Để xem thư mục nào đó thì nó phải ủng hộ cho việc xem này. Để được xem nội dung thư mục, thì các files hay thư mục con trong đó cũng phải có chế độ “Cho phép đọc”.
Còn để tạo file hay thư mục mới nằm trong thư mục này lại đòi hỏi phải có quyền ghi. Tóm lại, để thực hiện một trong những việc trên, cần phải đặt vào thư mục chế độ “quyền đọc” và “quyền thực hiện”. Bây giờ chúng ta sẽ thực hành… Như trên đã nêu, có tất cả 3 nhóm người sử dụng và 3 “quyền hạn” đối với files hay thư mục.
Để xác định quyền hạn cho các nhóm nhất định, thống nhất sử dụng các ký hiệu bằng con số như sau: 4 = read (quyền được đọc) 2 = write (quyền được ghi) 1 = execute (quyền được thực hiện) Bằng phép cộng đơn giản các con số này có thể hiển thị được cả một “tổ hợp” quyền hạn khác nhau. Ví dụ:
  • 3 (2+1) – quyền ghi và quyền thực hiện đối với file (hay thư mục);
  • 5 (4+1) – quyền đọc và quyền thực hiện;
  • 6 (4+2) – quyền đọc và quyền ghi;
  • 7 (4+2+1) – quyền đọc, ghi và thực hiện.
Tóm lại có tất cả 7 phương án sau:
  • 7 = read, write & execute
  • 6 = read & write
  • 5 = read & execute
  • 4 = read
  • 3 = write & execute
  • 2 = write
  • 1 = execute
Ký hiệu lệnh CHMOD thường có 3 con số: con số đầu thể hiện quyền hạn gán cho người sử dụng thuộc nhóm “user” (Tức là đối với bạn).
Con số thứ hai chỉ ra quyền hạn của người sử dụng thuộc nhóm “group” và con số thứ ba – dành cho nhóm “world”. Trong phần lớn các chương trình FTP hiện đại đều ủng hộ CHMOD theo kiểu nêu trên (Ví dụ, công cụ truy cập bằng FTP mạnh nhất hiện nay là CuteFTP) Thế nhưng cũng không thừa nếu như ta biết thêm về các lệnh của hệ thống UNIX. lệnh “chmod” trong UNIX có 2 chế độ: tuyệt đối (Bằng các con số) và bằng các ký hiệu chữ.
Khi sử dụng chế độ tuyệt đối (bằng các con số), thống nhất dùng tổ hợp 3 con số được nêu trên để thể hiện quyền hạn. Trong trường hợp sử dụng ký hiệu chữ, chúng ta sẽ bắt gặp những ký hiệu sau: “r” – quyền được đọc “w” – quyền được ghi “x” – quyền được thực hiện Ngoài ra còn có: “u” – đối với user “g” – đối với group “o” – đối với other (world) “a” – đối với all (tất cả) Ví dụ: 755 = chmod u=rwx,go=rx filename; 644 = chmod u=rw,go=r filename; 600 = chmod u=rw,go= filename; 444 = chmod a=r filename.

CHMOD an toàn

Hiện nay có rất nhiều diễn đàn bị Local Attack và dẫn đến hiện tượng down forum rất nhiều . Bài hướng dẫn này không hoàn toàn có thể giúp các bạn chống được Local Attack mà chỉ hạn chế được phần nào. Nguyên nhân bị Local do những sai lầm chết người của các Admin, ngay cả VNMagic cũng mắc sai lầm rất đáng trách . – CHMOD sai, Forum của VNMagic CHMOD file conf_global. khong chap nhan php là 666 do đó dễ dàng bị Edit file và lỗi này được TQN khai thác liên tục mà Kingasawa không hề sửa đổi . Bản thân thư mục CHMOD la 755 do đó trên Server Linux, Config ko kỹ thì toàn bộ cấu trúc Folder và nội dung File đều có thể View được.
- Cấu trúc Forum ko có nhiều sửa đổi so với bản gốc nên attacker có thể dễ dành đoán biết vị trí các file quan trọng cần để lấy thông tin .
- Các thông tin quan trọng không hề được mã hóa .(cái này thì hạn chế một chút )
- Các thông tin quan trọng và các Action can thiệp đến CSDL ko được bảo vệ bởi các firewall Thực ra Local Attack có thể làm được rất nhiều thứ nguy hiểm hơn và khả năng chống cự là không thể nếu như bạn ko Zendcode và không có một Server tốt (có thể chống được Remview, CGI Telnet==> đây là hai công cụ Local rất tốt, chưa kể đến SSH Local nếu có Shell) Do đây là bài viết về bảo mật vả lại cũng ko muốn phổ biến kỹ thuật Hack nguy hiểm này nên tôi chỉ trình bày sơ qua các nguyên nhân dẫn đến tình trạng bị Local Attack rất phổ biến hiện nay ở VN .
Từ các phân tích trên có một số khuyến nghị tôi xin đưa ra để mọi người khắc phục :
- Mã hóa thông tin, các bạn có thể mã hóa thông tin lại và việc này sẽ vô hiệu hóa được việc các thông tin quan trọng của bạn bị đánh cắp .
- Tôi sẽ cho các bạn download Zendcode miễn phí của Matrix, có đầy đủ License, các bạn Load tại đây nhé :
http://www.matrix2kol.net/download/

- CHMOD cho đúng, các bước sau đây rất quan trọng để bạn chống Local nên đề nghị các bạn chú ý thực hiện cho đúng :
  • CHMOD thư mục Public_html thành 710 thay vì 750 mặc định việc này sẽ giúp bạn bảo vệ được cấu trúc Website của mình.
  • CHMOD thư mục là 701 và cố gắng đừng bao giờ CHMOD 777, có một số folder ko quan trọng, bạn có thể CHMOD 755 để có thể hiện thị đúng và đầy đủ một số nội dung trong Folder đó .
  • CHMOD File là 604 và nhớ rằng đừng bao giờ để là 666 nếu có việc cần 666 thì bạn CHMOD tạm để sử dụng lúc đó, sau đó hãy CHMOD lại ngay. Đối với các Server hỗ trợ CHMOD file 404 bạn hãy CHMOD như vậy, ví dụ Server Eshockhost.net
Chú ý thế này, một số Server hỗ trợ CHMOD thư mục được 101, nếu Server của bạn hỗ trợ cái này thì hãy sử dụng nó, vì biện pháp CHMOD này rất an toàn, đến ngay cả Owner cũng ko thể xem được cấu trúc Folder ngay cả khi vào FTP. Hiện tôi chỉ thấy có Server của Eshockhost.net là hỗ trợ cái này
- Thay đổi cấu trúc, tên file mặc định có chứa các thông tin quan trọng . Nếu có thể hãy thay đổi cả cấu trúc CSDL nếu bạn làm được .
- Thiết lập các tường lửa truy cập Admin mà ko sử dụng đến CSDL, mã hóa User/Pass thì càng tốt, ngoài ra có hệ thống kiểm tra tác vụ của MOD, Admin … nếu quyền hạn xác nhận mới được thực hiện (cái này Matrix sử dụng rất thành công) .
Trên đây là hướng dẫn từng bước giúp các bạn cố gắng chống Local attack, dù sao đây cũng chỉ là hướng dẫn cơ bản, trong quá trình thực hiện, các bạn nên linh động hơn một chút, nếu có thêm ý tưởng gì mới thì hãy cùng nhau thảo luận tại đây.
Hy vọng bài viết sẽ giúp các Admin bảo mật tốt hơn cho site của mình.
Hutek đã từng bị Local Attack nên đăng lại bài này để các bác hiểu hơn và biết cách phòng tránh.