banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Messages posted by: hakuso  XML
Profile for hakuso Messages posted by hakuso [ number of posts not being displayed on this page: 6 ]
 
1. gõ tiếng Việt không dấu
2. dùng chữ hoa
3. câu hỏi không rõ ràng

Tôi khoá topic lại. Nếu matrixhoa muốn hỏi thì hãy tạo topic mới và khắc phục 3 điều trên

thangitti wrote:
Các sư huynh ơi, đệ không biết RAM BUS 400 chạy chung với RAM BUS 433 được không vậy? Có huynh nào biết xin chỉ giùm đệ.  


theo như mình hiểu thì khi đó RAM 433 sẽ chạy ớ tốc độ 400, và như thế thì hơi phí tiền mua 433 smilie
Đây là các bài viết về asm 32 bit của benina (không biết phải là bồ không)
http://masm32vn.com/

Whoareyou wrote:
kết nối theo modem 56K
Redhat Enterprise Linux AS ver 4.0 


ặc :shock:
vậy thì modem giao tiếp qua COM , PCI hay USB :?:
với COM thì dễ, trong hầu hết các distro đều có công cụ setup kết nối PPP (bằng GUI luôn). Bạn chịu khó kiếm phần System hay Tool (trong menu) thì thấy
còn PCI hay USB thì trườc hết phải biên dịch kernel (có thể) rổi mới tính tiếp (phức tạp lắm)
Còn nếu bí rị thì hãy lục trong đống tài liệu này (nhớ là phải chịu khó lục đấy)
http://tldp.org/HOWTO/HOWTO-INDEX/hardware.html#HWMODEMS
trong đây hơi nhiều lý thuyết thì phải smilie
nếu nói về sự tiếp thu thì ngôn ngữ được tiếp thu nhanh hơn là công nghệ đấy.
thôi tui không vào đây nữa, cứ tưởng là thảo luận căn bản, ai ngờ mọi người bàn cao siêu quá
Có 2 forum free = php cho bạn đây, mình nhớ còn 1 cái nữa giống giống như IPB nhưng quên tên rồi smilie
http://www.phpbb.com/
http://www.simplemachines.org/
hì, cho bồ cái link này xài đỡ smilie
http://edu.net.vn/Default.aspx?tabindex=1&tabid=6

Liniac wrote:
1. Hiện nay có những công nghệ lập trình & thiết kế web nào được sử dụng rộng rãi trên thế giới? Tất nhiên, chỉ liệt kê tên của công nghệ web thì quá dễ với vô số cái tên quen thuộc: HTML, JS, ASP, PHP... Cái khó là có thống kê nào dự đoán được mức độ sử dụng của những công nghệ này trên hàng tỉ website cùa thế giới hay không? Hoặc với kinh nghiệm nhà nghề trong lĩnh vực này của các anh chị thì anh chị thấy thế nào? Câu hỏi này mang tính thực dụng hơn là hoàn thiện (phải thực dụng mới tồn tại và phát triển chứ). 


Nếu nói là công nghệ thì hiện nay có 2 em lớn là .NET và Java. Cả 2 đều có ưu và nhược điểm riêng cả. Mình thì chỉ biết căn bản nên không rành về cả 2 smilie

2. Những công nghệ khác nhau đó được sử dụng cho những đối tượng (website) nào và ưu nhược điểm của từng loại công nghệ đó? 


Đối tượng thì nhiều lắm. Nếu là personal hay văn phòng nhỏ thì dùng java hay .net đều ok hết nhưng thường thì .NET vì deploy và maintain nhanh. Còn lên đến enterprise thì còn phụ thuộc vào hệ thống máy tính của công ty đó. Nếu server họ là Unix-based thì hơi khó dùng .NET nhỉ smilie
Nếu đứng ở gốc độ người mới vào thì sẽ không thấy hết cái ưu và nhược của 2 công nghệ, phải tự mình học cả 2 rồi apply vào thực tế mới thấy

3. Có những cách nào để tạo ra một trang web (gõ từng dòng code, dùng tools...)? Hiện nay trong ngành công nghiệp lập trình & thiết kế web, người ta thường sử dụng những công cụ nào để làm ra một trang web hoàn chỉnh và lý do họ dùng những công cụ đó? Có công cụ nào như một "chìa khóa vạn năng" có thể dùng từ đầu đến cuối trong qui trình tạo lập 1 trang web hay không (từ website đơn giản tới phức tạp)? 


Trên đời này không có gì gọi là "ngon nhiều mà rẻ" cả bạn smilie

4. Với newbie như tôi thì nên bắt đầu tìm hiểu từ đâu và các bước tìm hiểu tiếp theo là gì? Lý lịch trích ngang: newbie đã có kiến thức cơ bản về web (HTML, JavaScript, TCP/IP) và có kiến thức tốt về lập trình thủ tục và hướng đối tượng. 


Vậy tiếo theo sao không học java trước rồi học C# (nên học java trước .NET)
design ở đây không phải là về đồ hoạ mà là thết kế mạng, bảo mật bạn à smilie
1. Đặt vấn đề

Chắc hẳn bạn đã từng tự hỏi tại sao các chương trình ftp, su, login, passwd, sshd, rlogin … lại có thể hiểu và làm việc với shadow password; hay tại sao các chương trình su, rlogin lại đòi hòi password; tại sao một số hệ thống chỉ cho một nhóm nào đó có quyền su, hay sudo, hay hệ thống chỉ cho phép một số người dùng, nhóm người dùng đến từ các host xác định và các thiết lập giới hạn cho những người dùng đó, …Tất cả đều có thể lý giải với PAM. Ứng dụng của PAM còn nhiều hơn những gì tôi vừa nêu nhiều, và nó bao gồm các module để tiện cho người quản trị lựa chọn.

2. Cấu trúc PAM

- Các ứng dụng PAM được thiết lập trong thư mục /etc/pam.d hay trong file /etc/pam.conf ( login, passwd, sshd, vsftp, …)
- Thư viện các module được lưu trong /lib/security ( pam_chroot.so, pam_access.so, pam_rootok.so, pam_deny.so, … )
- Các file cấu hình được lưu trong /etc/security ( access.conf, chroot.conf, group.conf ,… )
+ access.conf – Điều khiển quyền truy cập, được sử dụng cho thư viện pam_access.so.
+ group.conf – Điểu khiển nhóm người dùng, sử dụng bởi pam_group.so
+ limits.conf – thiết lập các giới hạn tài nguyên hệ thống, được sử dụng bởi pam_limits.so.
+ pam_env – Điểu khiển khả năng thay đổi các biến môi trường, sử dụng cho thư viện pam_env.so .
+ time – Thiết lập hạn chế thời gian cho dịch vụ và quyền người dùng, sử dụng cho thư viện pam_time.so.

3. Cách hoạt động của PAM

Thuật ngữ
- Các chương trình login, pass, su, sudo, … trên được gọi là privilege-granting application ( chương trình trao đặc quyền ).

- PAM-aware application: là chương trình giúp các privile-granting application làm việc với thư viện PAM.

Các bước hoạt động:

1. Người dùng chạy một ứng dụng để truy cập vào dịch vụ mong muốn, vd login.
2. PAM-aware application gọi thư viện PAM để thực hiện nhiệm vụ xác thực.
3. PAM library sẽ dựa vào file cấu hình của chương trình đó trong /etc/pam.d ( vd ở đây là login -> file cấu hình /etc/pam.d/login ) xác định loại xác thực nào được yêu cầu cho chương trình trên. Trong trường hợp không có file cấu hình, thì file /etc/pam.d/other sẽ được sử dụng.
4. PAM library sẽ load các module yêu cầu cho xác thực trên.
5. Các modules này sẽ tạo một liên kết tới các hàm chuyển đổi ( conversation functions ) trên chương trình.
6. Các hàm này dựa vào các modules mà đưa ra các yêu cầu với người dùng, vd chúng yêu cầu người dùng nhập password.
7. Người dùng nhập thông tin vào theo yêu cầu.
8. Sau khi quá trình xác thực kết thúc, chương trình này sẽ dựa vào kết quả mà đáp ứng yêu cầu người dùng ( vd cho phép login vào hệ thống ) hay thông báo thất bại với người dùng.

4. Bây giờ chúng ta sẽ nghiên cứu file config

The /etc/pam.d/rlogin file

#%PAM-1.0
auth required /lib/security/pam_securetty.so
auth sufficient /lib/security/pam_rhosts_auth.so
auth required /lib/security/pam_stack.so service=system-auth
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_stack.so service=system-auth
password required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
 



Các dòng trong file config có dạng sau:

module-type control-flag module-path module-args

----MODULE TYPE

auth: thực hiện xác thực. Thông thường, một auth module sẽ yêu cầu password để kiểm tra, hay thiết lập các định danh như nhóm người dùng, hay thẻ kerberos.

Account điều khiển sự kiểm tra “bề mặt” với yêu cầu xác thực. Ví dụ, nó có thể kiểm tra người dùng truy cập dịch vụ từ một host và trong thời gian cho phép hay không.

Password: thiết lập password. Thông thường, nó luôn có sự tương ứng giữa một module auth và một module password..

Session: điều khiển các nhiệm vụ quản lý session. Được sử dụng để đảm bảo rằng người dùng sử dụng tài khoản của họ khi đã được xác thực..

----PAM MODULE CONTROL FLAGS

Require: cờ điều khiển này nói với PAM library yêu cầu sự thành công của modules tương ứng, vd “auth required /lib/security/pam_securetty.so” à module pam_securetty.so phải thành công. Nếu module đó không được thực hiện thành công thì quá trình xác thực thất bại. Nhưng lúc đó, PAM vẫn tiếp tục với các module khác, tuy nhiên nó chỉ có tác dụng nhằm tránh khỏi việc người dùng có thể đoán được quá trình này đã bị thất bại ở giai đoạn nào.

Sufficient: cờ này khác với cờ trên ở chỗ, khi có một module thực hiện thành công nó sẽ thông báo hoàn thành ngay quá trình xác thực, mà không duyệt các module khác nữa.

Requisite: cờ này có ý nói PAM library loại bỏ ngay quá trình xác thực khi gặp bất kỳ thông báo thất bại của module nào.

Optional: cờ này ít khi được sử dụng, nó có ý nghĩa là module này được thực hiện thành công hay thất bại cũng không quan trọng, không ảnh hưởng quá trình xác thực.

----MODULE-PATH – Đường dẫn đên thư viện PAM.


----ARGUMENTS – Các biến tùy chọn cho các module.

Các module ( auth, account, password, session ) được thực hiện trong stack và chúng được thực hiện theo thứ tự xuất hiện trong file config.

Các chương trình yêu cầu xác thực đều có thể sử dụng PAM.


5. Sau đây tôi xin giới thiệu chức năng của một số module

* pam_access.so:
- Support module type : account
- Module này sử dụng file thiết lập trong etc/security/access.conf .
File cấu hình này có dạng như sau:

Code:
< + or - > : : + : grant permission
- : deny permission


Với username list là người dùng hay nhóm người dùng, tty list là login qua console, host list xác định các host hay domain. Chúng ta có thể sử dụng các từ khóa ALL=tất cả, EXCEPT=trừ,LOCAL=cục bộ.

Ví dụ: sau cho cấm osg login từ tất cả, và cho phép linet login từ xa.

Code:
account required pam_access.so
-:osg:ALL
+:linet:ALL EXCEPT LOCAL


* pam_chroot.so:
Support module type :account; session; authentication
Dùng để chroot cho các user thiết lập trong /etc/security/chroot.conf
Ví dụ, tôi thực hiện chroot cho sshd để người dùng linet chỉ có quyền truy cập trong /home/osg mà không có quyền truy cập đến các thư mục home của người dùng khác
Thêm dòng sau trong /etc/pam.d/sshd ( lưu ý trong /etc/sshd/sshd_config phải thiết lập UsePAM = yes )

Code:
session required pam_chroot.so


* pam_deny.so:

Support module type: account; authentication; password; session
Module này luôn trả về giá trị false. Vd nó được dùng trong /etc/pam.d/other để từ chối mọi truy cập của người dùng khi truy cập vào các PAM-aware program mà không có file cấu hình PAM

- Acount module type: Từ chối người dùng quyền truy cập vào hệ thống

Code:
#add this line to your other login entries to disable all accounts
login account required pam_deny.so


- Authentication module type: từ chối truy cập, thiết lập giá trị mặc định. vd trong /etc/pam.d/other. Khi người dùng login vào hệ thống, đầu tiên sẽ gọi các module trong /etc/pam.d/login ra và yêu cầu người dùng nhập thông tin tương ứng ( username, password ), nếu các thông tin này không đáp ứng thì PAM sẽ gọi /etc/pam.d/other ra để deny quyền truy cập.

Code:
#/etc/pam.d/other
auth required /lib/security/$ISA/pam_deny.so
account required /lib/security/$ISA/pam_deny.so
password required /lib/security/$ISA/pam_deny.so
session required /lib/security/$ISA/pam_deny.so


- Password module type: Không cho phép change password

ví dụ không cho phép người dùng đổi passwd
Thêm dòng sau vào /etc/pam.d/passwd

Code:
password required pam_deny.so


* pam_limits.so
- Support module type: session
Thiết lập các giới hạn tài nguyên trong /etc/security/limit

Code:
username|@groupname type resource limit.


A resource can be one of these keywords:
· core - Limits the size of a core file (KB).
· data - Maximum data size (KB).
· fsize - Maximum file size (KB).
· memlock - Maximum locked-in memory address space (KB).
· nofile - Maximum number of open files.
· rss - Maximum resident set size (KB).
· stack - Maximum stack size (KB).
· cpu - Maximum CPU time in minutes.
· nproc - Maximum number of processes.
· as - Address space limit.
· maxlogins - Maximum number of logins allowed for this user.

Thông tin chi tiết ở trong /etc/security/limits.conf

Vd dưới đây, tất cả user giới hạn 10 MB mỗi session và cho phép max là 4 logins đồng thời. ftp được cho phép 10 login đồng thời ( hứu ích cho anonymous ftp ); thành viên của nhóm manager giới hạn 40 process, nhóm developers giới hạn 64MB bộ nhớ, và các user thuộc wwwusers không thể tạo files lớn hơn 50 MB = 500000 KB.

Setting quotas and limits
Code:
* hard rss 10000
* hard maxlogins 4
* hard core 0
bin -
ftp hard maxlogins 10
@managers hard nproc 40
@developers hard memlock 64000
@wwwusers hard fsize 50000


Để active các limits này, bạn cần thêm dòng sau vào cuối /etc/pam.d/login:

Code:
session required /lib/security/pam_limits.so.



* pam_listfile.so

Module này đọc thông tin trong file và thực hiện hành động được thiết lập ( như cho phép hay không cho phép truy cập ) dựa vào sự tồn tại hay không của các nhân tố như username, host, groups, …

Ví dụ trong vsftpd

Code:
auth required /lib/security/pam_listfile.so item=user \
sense=deny file=/etc/ftpusers onerr=succeed



Yêu cầu PAM load pam_listfile module và đọc trong /etc/ftpusers, nếu /etc/ftpusers chứa các dòng username, thì PAM sẽ sử dụng sense=deny để quyết định ngăn cản các user này truy cập vào. Vậy các user trong /etc/ftpusers sẽ ko có quyền truy cập vào ftp.

* pam_rootok.so

Sử dụng module này để yêu cầu root không cần nhập password khi thực hiện chương trình, vd nó được gán vào su để chi rằng root không cần gõ passwd khi đánh lệnh su

* pam_wheel.so
Chỉ cho phép quyền truy cập root với group wheel. Ví dụ chỉ cho phép những người thuộc nhóm wheel có quyền su lên root.

Code:
#
# root gains access by default (rootok), only wheel members can
# become root (wheel) but Unix authenticate non-root applicants.
#
auth sufficient pam_rootok.so
auth required pam_wheel.so
auth required pam_unix_auth.so



---------------------- Tham khảo -----------------------------------
Document: http://www.kernel.org/pub/linux/libs/pam/pre/doc/
Mã nguồn module: http://cvs.sourceforge.net/viewcvs.py/pam/Linux-PAM/modules/

Trên đây là một số thông tin tôi cung cấp về PAM. Hy vọng sẽ giúp ích phần nào cho các bạn trong security linux. Mọi chi tiết xin liên hệ kiennd@gmail.com. Thanks!!!


Tác giả linet
1. Giới thiệu

Chào các fan hâm mộ Linux,

Bài viết này chủ yếu dựa trên hai tài liệu là http://www.securityfocus.com/infocus/1739 của Ivan, tác giả mod_security và http://www.securityfocus.com/infocus/1786 của Artur Maj. Bà con có thể xem đây là một bản dịch tiếng Việt của hai tài liệu trên, kèm theo những suy nghĩ riêng của bản thân tôi dựa vào kinh nghiệm thực tế khi triển khai reverse proxy -0-.

Bài viết này có thể xem là một case study thuộc tập tài liệu "Bảo vệ máy chủ an toàn với phần mềm tự do".

Nhiệm vụ của chúng ta là bảo vệ một hay nhiều content web-server -1- nằm trong vùng Internal -2-, các web-server này có thể là Apache httpd, hoặc Microsoft IIS, hoặc có thể chỉ là một web-server đơn giản được embedded vào một ứng dụng nào đó. Để hoàn thành nhiệm vụ, chúng ta sẽ tập trung vào xây dựng một firewall/ids hoạt động ở tầng application, trong tài liệu này gọi là reverse-proxy, sử dụng Apache httpd -3- trên nền Linux.

2. Reverse proxy là gì?




Một proxy, theo định nghĩa, là một thiết bị đứng giữa server và client, tham gia vào "cuộc trò chuyện" giữa hai bên. Khái niệm proxy mà chúng ta thường dùng hàng ngày tốt hơn nên được gọi là một forward proxy: một thiết bị đứng giữa một client và tất cả server mà client đó muốn truy cập vào. Một reverse proxy làm công việc hoàn toàn ngược lại: nó đứng giữa một server và tất cả client mà server này phải phục vụ. Reverse proxy giống như một nhà ga kiêm một trạm kiểm soát, các request từ client, bắt buộc phải ghé vào reverse proxy, tại reverse proxy sẽ kiểm soát, lọc bỏ các request không hợp lệ, và luân chuyển các request hợp lệ đến đích cuối cùng là các server. Chú ý là một reverse proxy có thể luân chuyển request cho nhiều server cùng lúc.

Lợi thế lớn nhất của việc sử dụng reverse proxy là ở khả năng quản lí tập trung. Một khi đã đẩy được tất cả traffic đi qua một trạm kiểm soát duy nhất (là reverse proxy), chúng ta có thể áp dụng nhiều "đồ nghề" khác để tăng cường an ninh cho hệ thống của mình. Dĩ nhiên, bất kì sản phẩm hay công nghệ nào cũng có ưu và khuyết điểm của nó, đi cùng với single point of access bao giờ cũng là "bóng ma" single point of failure. Single point of failure có thể được giải quyết bằng cách xây dựng cluster. Đây là một vấn đề hoàn toàn vượt qua khỏi phạm vi của bài viết này, tôi chỉ xin giới thiệu bồ nào muốn tìm hiểu về cluster trên Linux thì thử ghé vào http://www.linux-ha.org. Ngoài ra áp dụng reverse proxy đúng cách sẽ giúp tăng cường performance cũng như nâng cao scalability của các web-application chạy trên các content server. Chút xíu nữa, tôi sẽ đi vào chi tiết các ưu điểm của reverse proxy cũng như làm thế nào để khai thác các ưu điểm đó.

3. Cài đặt máy chủ reverse-proxy

3.1. Chọn và cài đặt hệ điều hành cho reverse proxy

Dĩ nhiên là tôi sử dụng linux cho máy chủ reverse proxy. Tôi không mô tả quá trình cài đặt linux ở đây bởi có rất nhiều tài liệu hay trên Internet nói về đề tài này, và hơn nữa tôi nghĩ là một khi đã nghĩ đến chuyện làm reverse proxy thì chắc chắn chuyện cài đặt Linux không là vấn đề.Linux có quá trời distro, thế mrro chọn distro nào? Theo tôi thì distro nào cũng như nhau cả thôi, nhưng nếu ai đó hỏi tôi câu hỏi trên thì câu trả lời sẽ là Trustix -4-. Bất kể chọn distro nào, nhớ là sau khi cài đặt xong, hãy dành một chút thời gian để secure cái distro của mình lại trước khi đọc tiếp -5-. Phần tiếp theo chúng ta sẽ bàn về việc cài đặt Apache httpd cũng như các module kèm theo của nó.

3.2. 1.3.x hay 2.x?

Trước tiên, tôi nghĩ cần phải trả lời câu hỏi là chúng ta sẽ chọn phiên bản Apache nào để làm reverse proxy đây, 1.3.x hay 2.x? Tôi chọn 2.x vì ba lý do: thứ nhất là tôi "nghe đồn" là có rất nhiều 0-day trong phiên bản 1.3.x smilie. Lý do thứ hai là Apache 2.x cung cấp một bộ filtering API tốt hơn so với phiên bản 1.3.x, cho phép các module có thể nhìn thấy và tương tác với nội dung của các request cũng như các response tương ứng từ trả lời từ server. Điều này rất quan trọng đối với một reverse proxy đóng vai trò là một application gateway bởi vì nó phải kiểm tra tất cả thông tin đi xuyên qua nó trước khi chuyển giao cho bên nhận. -6-. Lý do cuối cùng là Apache httpd 2.x có performance cao hơn hẳn 1.3.x khi phục vụ các static content như file HTML và file hình ảnh. Tôi quan tâm đến vấn đề này là vì tôi có ý định giảm tải cho các content server bên trong bằng cách tách content ra làm hai loại là dynamic (các loại file CGI/Perl, PHP) và static (các file HTML và file hình ảnh), các content server chỉ phục vụ dynamic content, còn tất cả static content thì đưa qua máy chủ reverse proxy luôn. Lúc đó khi các request của client đi vào reverse proxy, nếu request đó có đích đến là một static content, máy chủ reverse proxy sẽ trả lời luôn cho client mà không cần forward request đó đến content server ở phía sau, chỉ những request đến các dynamic content mới được forward để các content server xử lí. Tôi sẽ đi vào chi tiết vấn đề này ở phần sau, chỉ lưu ý một điều là cuối cùng tôi lại không dùng Apache httpd cho mục đích này mà lại sử dụng một máy chủ web khác chuyên trị static content.

3.3. Chọn module cho Apache httpd

Ngoài những module mà tài liệu "Securing Apache 2: step by step" đề nghị, chúng ta phải chọn thêm các module sau đây:

- mod_rewrite, mod_proxy, mod_proxy_http: các module này sẽ hỗ trợ chúng ta trong việc thiết lập reverse proxy.

- mod_security: module này giúp chúng ta cấu hình reverse proxy thành một application firewall để chống lại các dạng tấn công thường thấy vào các web-application chạy trên content server. -7-

- mod_ssl: module này giúp chúng ta mã hóa dữ liệu của các kết nối từ client đến server thông qua giao thức SSL và TLS, biến giao thức HTTP không an toàn thành giao thức HTTPS rất bảo mật. -8-

Phần quan trọng tiếp theo là chọn một MPM phù hợp với mục đích làm reverse proxy của chúng ta. MPM là viết tắt của cụm từ Multi-Processing Module, là một cải thiện đáng kể của Apache httpd 2.x so với Apache 1.x. Trong kiến trúc của Apache 2.x, MPM đóng vai trò hết sức quan trọng, nó chịu trách nhiệm lắng nghe trên các cổng mạng, chấp nhận các yêu cầu kết nối từ phía client, và chuyển các yêu cầu đó vào bên trong để Apache httpd xử lí -9-. Trong trường hợp này tôi chọn MPM worker. MPM worker sử dụng thread để phục vụ các request, do đó nó có khả năng phục vụ một lượng lớn các request nhưng lại tốn rất ít tài nguyên so với các process-based MPM khác như prefork. Đồng thời MPM worker vẫn khai thác đặc tính ổn định của cá process-based MPM bằng cách tạo ra nhiều process để trước, mỗi process có nhiều thread để sẵn sàng phục vụ client -10-.

3.4. Biên dịch và cài đặt Apache httpd

Câu hỏi kế tiếp là biên dịch các module theo kiểu nào. Như chúng ta đều biết, có hai cách biên dịch các module trong Apache httpd. Cách thứ nhất, gọi là phương pháp động, là biên dịch các module thành các thư viện liên kết chia sẻ (tương tự như các thư viện DLL trên Windows). Với cách này, các module sẽ được biên dịch thành các file .so, và sẽ được tải lên khi Apache httpd khởi động nếu cần (tùy theo các câu lệnh LoadModule trong file cấu hình conf/httpd.conf). Cách biên dịch thứ hai, gọi là phương pháp tĩnh, là gom tất cả module nhét vào trong file bin/httpd luôn (link statically). Khi khởi động và trong quá trình chạy, Apache httpd không cần phải tải thêm module nào nữa. Phương pháp tĩnh được xem là lựa chọn tốt hơn hết.
Chọn phương pháp tĩnh, chúng ta không cần dùng đến module mod_so (module cần thiết để tải các file .so trong phương pháp động). Hơn nữa, theo khuyến cáo của Apache, sử dụng phương pháp tĩnh sẽ giúp tăng 5% về mặt performance so với phương pháp động.

Chúng ta tải Apache httpd 2.x ở http://httpd.apache.org/download.cgi và tải mod_security tại http://www.modsecurity.org sử dụng các lệnh sau:

Code:
localhost$ wget http://www.tux.org/pub/net/apache/dist/httpd/httpd-2.0.54.tar.gz
localhost$ wget http://www.modsecurity.org/download/modsecurity-1.8.7.tar.gz
localhost$ tar -xzf httpd-2.0.54.tar.gz -C /usr/local/src
localhost$ tar -xzf modsecurity-1.8.7.tar.gz -C /usr/local/src


Tài liệu kèm theo của mod_security chỉ hướng dẫn cách biên dịch mod_security thành một thư viện chia sẻ của Apache httpd, do đó chúng ta cần phải chuẩn bị đôi chỗ để có thể biên dịch tĩnh mod_security:

Code:
localhost$ cd /usr/local/src
localhost$ mkdir -p httpd-2.0.54/modules/security
localhost$ cp modsecurity-1.8.7/apache2/mod_security.c httpd-2.0.54/modules/security
localhost$ cp httpd-2.0.54/modules/echo/Makefile.in httpd-2.0.54/modules/security


Okay, xong xuôi, bắt đầu biên dịch như sau:

Code:
localhost$ cd /usr/local/src/httpd-2.0.54
localhost$ ./configure \
--with-mpm=worker \
--disable-charset-lite \
--disable-include \
--disable-env \
--disable-status \
--disable-autoindex \
--disable-asis \
--disable-cgid \
--disable-cgi \
--disable-negotiation \
--disable-imap \
--disable-actions \
--disable-userdir \
--disable-alias \
--disable-so \
--with-module=security:mod_security.c \
--enable-modules='ssl rewrite proxy proxy_http'


Nếu quá trình biên dịch thành công, chúng ta sẽ tiếp tục như sau để cài Apache httpd vào hệ thống (tại thư mục mặc định là /usr/local/apache):

Code:
localhost$ make
localhost$ su
localhost# umask 022
localhost# make install
localhost# chown -R root:sys /usr/local/apache


3.5. Đổi "root" của server

Phần này xin vui lòng tham khảo tài liệu "Securing Apache 2:Step by Step."

(còn tiếp)

Phần sau:
4. Cấu hình Apache httpd làm reverse proxy-


----------------------
-0-: Thực tế phần tiếng Việt của tài liệu "Securing Apache 2: Step-by-Step" tôi sao chép khá nhiều từ bản dịch và mở rộng tài liệu "Securing Apache: Step-by-Step" http://www.securityfocus.com/infocus/1694) của hnd (aka conmale)

-1-: ngoài web-server ra, giải pháp reverse proxy (hoặc tương tự) có thể áp dụng cho các dịch vụ khác như VNC (xem thử http://sourceforge.net/projects/vnc-reflector/), mail (xem thử tài liệu "Qmail as the mail gateway" của hnd@diendantinhoc.org). Chỉ duy nhất một dịch vụ tui chưa làm được reverse proxy là FTP, bồ nào có thông tin về ftp reverse proxy thì cho tui vài xu.

-2-: chúng ta vẫn có thể thiết lập reverse proxy để bảo vệ cho các web-server nằm ở ngay vùng DMZ, hoặc thiết lập một reverse-proxy đặt ngay trong vùng Internal để bảo vệ các web-server ở vùng Internal từ các mối hiểm họa đến từ bên trong.

-3-: Ngoài Apache httpd ra, còn có rất nhiều software khác có thể được ứng dụng để làm reverse proxy mà đáng kể nhất là pound. Thao khảo thêm tại địa chỉ http://www.apsis.ch/pound/.

-4-: Trustix là một distro nhỏ gọn (trọn bộ cài đặt chỉ có một CD duy nhất) được xây dựng dựa trên RedHat với hai mục tiêu chính là bảo mật và ổn định. Phiên bản stable mới nhất của Trustix là 2.2, phiên bản unstable là 3.0 RC2. Tham khảo thêm tại http://www.trustix.org

-5-: Tham khảo tài liệu Linux Security HOWTO có tại http://www.tldp.org để biết thêm chi tiết. Phần mềm Bastille-Linux cũng sẽ rất hữu dụng trong việc secure cho các Linux server.

-6-: Chỉ có sử dụng Apache 2.x thì những luật cản lọc OUTPUT của mod_security mới có tác dụng.

-7-: Tham khảo thêm tài liệu về mod_security tại địa chỉ http://www.modsecurity.org và loạt kí sự của conmale về các vụ tấn công DDoS vào HVA.

-8-: Kể từ phiên bản Apache httpd 2.0, mod_ssl đã được chính thức đưa vào Apache httpd. Tham khảo thêm tài liệu về mod_ssl tại địa chỉ http://www.modssl.org.

-9-: Chọn lựa MPM cho Apache 2.x là một vấn đề cực kì quan trọng, ảnh hưởng rất nhiền đến performance của server, do đó tôi đề nghị những ai quan tâm đến Apache 2.x, nên tham khảo thêm tài liệu về MPM tại http://httpd.apache.org/docs-2.0/mpm.html

-10-: Tại sao thread lại "ngon" hơn process về performance? Những ai quan tâm đến vấn đề này xin tìm các tìm đọc các tài liệu sau đây:
- Advanced Linux programming http://www.advancedlinuxprogramming.com)
- Understanding the Linux kernel.


Tác giả Mrro
 
Go to Page:  First Page Page 6 7 8 9

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|