Oct 19, 2018

[WEBLOGIC] Managing HTTP Sessions in a Cluster – In memory replication type




Managing HTTP Sessions in a Cluster – In memory replication type


HTTP Session in a Cluster Weblogic gồm có 2 loại:


  • In Memory Replication
  • JDBC (Database) Replication

Để một ứng dụng chạy Replication Http Session thì bạn cần cấu hình ở 2 phía. 


  • Application Server.
  • App cụ thể. 

Yêu cầu:


  • Cài đặt Weblogic Server 12c
  • Tạo domain và tạo 2 AppServer chạy trên Cluster.
  • Tạo một ứng dụng java nhỏ. 

Chi tiết cấu hình như thế nào thì ở link này nhé.

Mình chỉ có một số lưu ý khi Replication không hoạt động được:

1. Phải thêm Cluster Address Trong Configuration Cluster. 


2. Edit the WEB-INF/weblogic.xml file in application file .EAR or WAR


3. Trong code java. Những object nào được lưu trong session thì phải serializable. Cách đơn giản là implements Serializable class object đó. Ví dụ:
1
2
3
<session-descriptor>
   <persistent-store-type>replicated_if_clustered</persistent-store-type>
</session-descriptor>


Class A implements Serializable{
x

}

Aug 31, 2018

[Apache] Đôi nét về ModSecurity (Phần 1)

I. Giới thiệu:
Mod_Security là một module mở rộng cho các web server như Apache, Nginx, IIS và hoạt động như một firewall tại lớp ứng dụng web.
Cùng với sự gia tăng về cách thức tấn công web thì mod_security cũng đã cập nhật những rule và đưa ra nhiều
phương pháp phòng chống mã nguồn của chương trình.
Nó cũng có thể được dùng nuhw một Web Application Firewall.
II.Tính năng
1. Parsing:
ModSecurity sẽ phân tách các dữ liệu luân chuyển qua hệ thống thành cấu trúc dữ liệu mà ModSecurity đã định nghĩa sẵn bằng cơ chế so trùng mẫu trong tập rule.
2. Buffering
Tính năng này đóng vai trò khá quan trọng trong cơ chế hoạt động của ModSec. ModSec trong vai trò này giống như một cầu nối giữa client và ứng dụng web.
Các request và response sẽ được phân tích và xử lí thông qua ModSec.
Dữ liệu mà ModSec nhận và phân tích sẽ được lưu trữ trong RAM (bao gồm request body và response data)
3. Logging
ModSec hỗ trợ cơ chế ghi log các gói tin HTTP: request headers, request body, response header, response body.  
4. Rule Engine
ModSec cùng phát triển với dự án OWASP xây dựng các mẫu để phân tích và phòng chống ác tấn công hệ thống web
III. Qui trình hoạt động của ModSec


1.Request Header
Đây là bước đầu tiên trong quá trình thực hiện phân tích gói tin. Mục đích của bước này
nhằm cho phép người viết rule tương tác với các request trước khi thực hiện các yêu cầu trong
phần HTTP body. Phần này khá quan trọng để phân tích các khai thác dựa vào HTTP method
cũng như dựa vào URL như SQL Injection, Reflect XSS, Local file include …
2. Request body
Bước 2 là quá trình kiểm tra chính trong quá trình client gởi request đến server, phần này sẽ
có hiệu quả khi người dùng cố sử dụng phương thức POST hoặc PUT để upload tập tin lên phía
server. Việc kiểm tra này bảo đảm dữ liệu đưa lên server là an toàn, tránh tình trạng upload mã
độc hoặc các dạng tấn công nhưng Stored XSS, Ajax Injection …
3. Response headers
Những request đã được xử lý tại server sẽ được trả về cho ModSecurity kiểm tra trạng thái
trong phần respone header. Trước khi phần response body được đọc thì ModSecurity sẽ dựa vào
tập rule để xác định có cần kiểm tra nội dung dữ liệu trong phần body hay không.
Ví dụ: mã trạng thái trả về là 404 (Not found) thì lúc này sẽ không cần kiểm tra nội dung gói
tin trả về.
4. Response body
Sau khi ModSecurity đã hoàn thành việc kiểm tra tại respone header thì nội dung trong phần
body sẽ được kiểm tra so trùng với mẫu trong tập lệnh.Việc này là khá hiệu quả để phát hiện và
phòng chống xâm nhập trong trường hợp bước 1 và 2 không phát hiện được tấn công.
Ví dụ: trong khai thác SQL injection, nếu hacker cố gắng sử dụng một số công nghệ evasion
thì việc phát hiện khi request là khó khăn. Khi khai thác thành công, ModSecurity sẽ phân tích
kết quả trong gói tin trả về để phát hiện nếu như câu truy vấn thành công.
5. Logging
Việc ghi log sẽ ghi nhận các cảnh báo cũng như quy trình làm việc của ModSecurity.

Còn tiếp Phần 2 - Cách thiết lập một rule trong ModSecurity ...

Jun 26, 2018

[JAVA] Kiến trúc Java Memory Model (JVM) - GC Quá trình dọn rác





Khi một object được khởi tạo, nó sẽ được quản lý tại một trong 3 vùng của JVM.

  • Vùng Young Gen
Chia làm 3 vùng nhỏ: Eden, S0, S1
Đầu tiên, object tạo mới được nhét vào Eden. Minor GC hoạt động khi số lượng obj đầy hết vùng Eden – Nó sẽ xóa các obj không cần thiết và không còn hoạt động. Các obj còn hoạt động sẽ được đưa vào 2 vùng S01, S02. Sau n lần Minor GC (n là chỉ số MaxTenuringThreshold , default: 32) mà obj vẫn còn hoạt động thì nó sẽ được chuyển đến vùng Old.

  • Vùng Old Gen
Vùng này chứa những obj còn sống và được Major GC quản lý. Cũng giống như Minor GC thì Major hoạt động khi Old Gen đầy.

  •  Vùng Perm
Vùng này chứa các thông tin meta như thông số về class, method, thư viện SE… Nó không chưa obj . Vùng này không nằm trong Heap.

  • Tuning một số thông số.

-Xms
Giá trị size khởi đầu của toàn bộ Heap
-Xmx
Giá trị size max của toàn bộ Heap
-XX:NewSize
Giá trị size ban đầu của vùng New của Heap
-XX:MaxNewSize
Giá trị size Max của vùng New của Heap
-XX:PermSize
Giá trị size ban đầu của vùng Permanent
-XX:MaxPermSize
Giá trị size Max của vùng Permanent
-XX:NewRatio
Tỉ lệ phân chia bộ nhớ giữa vùng New và Old
-XX:SurvivorRatio
Tỉ lễ phân chia bộ nhỡ giữa vùng [Eden] và [From/To] trong New

Còn tiếp …
Tham khảo:

Apr 4, 2018

[WEBLOGIC] Cài đặt Oracle Weblogic 12c (12.1.3) trên Oracle Linux 6 - 64bit


Oracle WebLogic Server là một server ứng dụng Java EE hiện được phát triển bởi tập đoàn OracleOracle đã mua lại WebLogic Server từ BEA Systems từ năm 2008.

I.                   Yêu cầu
-          Oracle linux bắt buộc phải 64bit.
II.                Phần mềm
-          Java Development Kit (1.7.79)
-          WebLogic Server 12c Release 3 - Generic WebLogic Server and Coherence Installer (880M)
-          Chép 2 phần mềm vào thư mục /u01 trên máy cài đặt
III.             Cài đặt
1.      Chuẩn bị trước cài đặt
-          Đăng nhập bằng user root
-          Cấu hình /etc/hosts
127.0.0.1      localhost
192.168.16.22  wls12cr3.localdomain

-          Tạo một group và user mới

groupadd -g 54321 oinstall
useradd -g oinstall weblogic
passwd weblogic

-          Tạo thư mục cài đặt cho OWLS
mkdir -p /u01/app/oracle/product/ofm12.1.3
mkdir -p /u01/app/oracle/config/domains
mkdir -p /u01/app/oracle/config/applications
chown -R weblogic:oracle /u01
chmod -R 775 /u01/


-          Thêm biến môi trường vào file /home/weblogic/.bash_profile
# Adjust paths as required.
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/ofm12.1.2
export MW_HOME=$ORACLE_HOME
export WLS_HOME=$MW_HOME/wlserver
export WL_HOME=$WLS_HOME
export DOMAIN_BASE=$ORACLE_BASE/config/domains
export JAVA_HOME=/u01/app/oracle/jdk1.7.0_79
export PATH=$JAVA_HOME/bin:$PATH0

-          Cài đặt JDK
# su - weblogic
$ cd $ORACLE_BASE
$ tar -xvzf /u01/jdk-7u79-linux-x64.tar.gz

-          Sửa đổi file /etc/security/limits.d/90-nproc.conf như sau:
# From
*          soft    nproc     1024

#To
* - nproc 16384

2.      Cài đặt
-          Đăng nhập bằng user weblogic
-          Giải nén và chạy file cài đặt bằng lệnh bên dưới
$ unzip ofm_wls_generic_12.1.3.0.0_disk1_1of1.zip
$ $JAVA_HOME/bin/java -jar fmw_12.1.3.0.0_wls.jar

-          Nếu lần đầu tiên cài đặt server thì nhập địa chỉ cài đặt như bên dưới và nhấn “OK”


-          Nhấn “Next” trên màn hình screen


-          Nhập thư mục ORACLE_HOME "/u01/app/oracle/product/fmw12cr3" và nhấn nút “Next”.
                                              
                                                                                              
-          Chấp nhận cài đặt “Weblogic Server “. Nếu bạn muốn cài đặt example thì chấp nhận “Complete with Example”.

-          Bạn đợi cho kiểm tra điều kiện tiên quyết hoàn thành. Nếu như có lỗi, Bạn phải trở về và kiểm tra lỗi. Nếu không thì bạn nhấn nút “Next”

-          Bước tiếp theo, bạn có thể nhập Email để Oracle hỗ trợ và chọn nhận các security updates. Nếu không thì bạn nhấn nút “Next”


-          Nếu bạn chắc chắn với các thông tin tổng hợp, Nhấn nút “Install” để bắt đầu cài đặt


-          Đợi cho quá trình cài đặt hoàn tất,  Nhấn nut “Next” để tiếp tục

-          Trên màn hình hoàn thành cài đặt, nhấn nút “Finish” để chạy Configuration Wizard.


3.      Tạo Domain
-          Nếu bạn không chạy Configuration Wizard ở bước trên thì bạn có thể chạy bằng command bên dưới:
$ $WLS_HOME/common/bin/config.sh

-          Nếu bạn muốn tạo mới một domain thì chon “Create a new domain” và nhập địa chỉ bạn muốn lưu thư mục của domain trong “Domain Location”. Cuối cùng, bạn nhấn nút “Next” để tiếp tục. Trong trường hợp này, domain là “mydomain” và địa chỉ là “/u01/app/oracle/config/domains/mydomain


-          Tiếp theo, chọn các templale yêu cầu cho domain. Sau đó nhấn “Next”

-          Tạo Administrator credentials, nhớ  lưu lại username và password và nhấn nút “Next”

-          Nhập domain mode và JDK details. Sau đó, nhấn nút “Next”


-          Chọn bất kì yêu cầu config nâng cao. Ở đây, không chọn yêu cầu nào nhấn “Next”


-          Nếu bạn chắc chắn với những thông tin cài đặt, Nhấn nút “Create” để bắt đầu tạo domain

-          Nhấn “Next” sau khi quá trình tạo hoàn tất


-          Màn hình Configuration Successfully. Note lại URL của Admin Server. Cuối cùng nhấn “Finish”.


-          Cuối cùng khởi động domain bằng lệnh:
$ $DOMAIN_HOME/startWebLogic.sh &
                                                                                                                                         
-          Truy cập URL của admin server đã note lúc nãy.

-          Một số câu lệnh cần thiết.
$ # Start NodeManager (if you configured one-per-domain)
$ nohup $DOMAIN_NAME/bin/startNodeManager.sh > /dev/null 2>&1 &
$ # Start WebLogic
$ nohup $DOMAIN_HOME/startWebLogic.sh > /dev/null 2>&1 &
$ # or
$ nohup $DOMAIN_HOME/bin/startWebLogic.sh > /dev/null 2>&1 &
$ # Stop WebLogic
$ $DOMAIN_HOME/bin/stopWebLogic.sh
$ # Start Managed Server
$ nohup $DOMAIN_HOME/bin/startManagedWebLogic.sh AdminServer > /dev/null 2>&1 &
$ # Stop Managed Server
$ $DOMAIN_HOME/bin/stopManagedWebLogic.sh AdminServer
$ # Start the configuration wizard
$ $WLS_HOME/common/bin/config.sh
                                                                                                          
IV.             Tài liệu tham khảo