Bài đăng nổi bật

Hướng dẫn thay đổi thư mục root mặc định của Docker trên Linux

Hoàn cảnh: người viết gặp một trường hợp như này Được team hạ tầng cấp cho một máy chủ gồm 2 phân vùng lưu trữ, 1 phân vùng 20GB được gắn và...

26 tháng 12, 2014

Whitelist, blacklist trong Zimbra

Bài viết này tôi sẽ tập trung vào việc hướng dẫn các bạn các cách thiết lập whitelist và blacklist trong phiên bản Zimbra 8.x
1. Hướng dẫn cách đưa địa chỉ thư local vào whitelist.
Để đưa tên miền nội bộ vào whitelist (Không bị đưa vào thư mục spam) ta làm như sau:
- Giả sử tên miền nội bộ có tên là domain.com
- Ta thêm dòng sau vào trong tập tin /opt/zimbra/conf/amavisd.conf.in:
"domain.com" => -10.0,
- Thêm nội dung sau vào tập tin /opt/zimbra/conf/amavis.conf.in:
read_hash(\%whitelist_sender, ‘/opt/zimbra/whitelist’);
read_hash(\%blacklist_sender, ‘/opt/zimbra/blacklist’);
read_hash(\%spam_lovers, ‘/opt/zimbra/spamlovers’);

- Tạo tập tin /opt/zimbra/whitelist với nội dung:
domain.com
- Thêm vào tập tin /opt/zimbra/conf/spamassassin/local.cf nội dung sau:
trusted_networks your_ip
Lưu ý thay your_ip bằng ip tương ứng của bạn
- Khởi động lại các dịch vụ bằng lênh sau:
zmmtactl restart
zmamavisdctl restart
zmcontrol restart
2. Đưa địa chỉ thư nội bộ ra khỏi bộ quét virus, spam.
Để đưa địa chỉ thư nội bộ ra khỏi bộ quét virus, spam (Không bị kiểm tra nữa) ta làm như sau:
- Chỉnh nội dung tham số amavis_originating_bypass_sa thành true và chạy lệnh zmamavisdctl restart
- Một khi đã được bật, tất cả các thư được gửi từ địa chỉ nằm trong dải trustednetwork sẽ không bị đưa qua bộ lọc nữa.
Xem thêm tại đây
 

28 tháng 10, 2014

Các plugin tốt dành cho Notepad++

1. Compare:
Được sử dụng để so sánh 2 văn bản.
Plugin sẽ hỗ trợ đánh dấu các vị trí có sự khác biêt: bị xóa, nội dung không khớp, có nội dung mới,...
2. JSTool
Là công cụ hỗ trợ thao tác với các dữ liệu có định dạng JSON.
Tool sẽ giúp người lập trình định dạng lại dữ liệu để thuận tiện cho việc thao tác.
3. XML Tools
Là công cụ hỗ trợ định dạng lại dữ liệu XML để thuận tiện cho người phát triển.
4. Plugin Manager
Là công cụ hỗ trợ việc tìm kiếm và cài đặt các plugin khác nhau cho Notepad++
5. MIME Tools
Là công cụ hỗ trợ thao tác với các dữ liệu theo chuẩn MIME.
Chức năng của nó bao gồm: encode/decode chuẩn base64,...

13 tháng 9, 2014

fstab trong Linux

Fstab là gì? Hiểu nôm na nó là một tập tin hỗ trợ việc quản lý gắn kết (mount) và sử dụng các phân vùng của hệ điều hành.
Trong bài viết này, tôi sẽ giới thiệu cho bạn cách để làm chủ tập tin cấu hình này, tất nhiên là chỉ với những kiến thức nằm trong tầm hiểu biết của cá nhân tôi.
Cấu trúc chung của một fstab bao gồm các dòng có nội dung như sau:

[Device] [Mount Point] [File System Type] [Options] [Dump] [Pass]

Trong đó:
Device: là thiết bị hoặc phân vùng (có thể là đường dẫn của tập tin đại diện hoặc UUID của đối tượng), device được ở đây còn có thể là thiết bị mạng, phân vùng chia sẻ,...
Có thể xem thông tin UUID của thiết bị bằng lệnh:  sudo blkid
Một ổ phân vùng thường có đường dẫn dạng: /dev/sdxy
 Hoặc có dạng LABEL=label
Hoặc các dạng ổ mạng, chia sẻ:
  • Samba: //server/share
  • NFS: //server:/share
  • SSHFS : sshfs#user@server:/share
Mount point: địa chi gắn kết thiết bị, ví dụ /opt/data/
File System Type: định dạng của thiết bị, có thể là:
  • auto
  • vfat: dành cho các phân vùng có định dạng FAT
  • ntfs, ntfs-3g: dành cho các phân vùng có định dạng NTFS
  • ext2, ext3, ext4, jfs, reiserfs
  • udf, iso9660: dành cho các ổ đĩa CD, DVD,
  • swap.
Options: các tùy chọn áp dụng trên phân vùng, được phân cách bằng dấu phẩy (,)
  •  sync/async: tất cả các thao tác đọc, ghi trên thiết bị phải ở dạng đồng bộ/bất đồng bộ
  • auto: tự động gắn kết phân vùng khi khởi động hệ điều hành.
  • noauto: không tự động gắn kết phân vùng khi khởi động hệ điều hành.
  • dev/nodev: tùy chọn này hiểu nôm na là cho phép hoặc không cho phép coi một node nằm ngoài thư mục /dev/ là một thiết bị (ví dụ nếu dùng nodev thì hệ điều hành sẽ coi việc định nghĩa thiết bị tại đường dẫn /home/dev/sda là bất hợp pháp).
  • exec/noexec: cho phép hoặc không cho phép thực thi một tập tin có quyền exec trên thiết bị này.
  • suid/nosuid: cho phép hoặc không cho phép các thao tác với các bit suid hoặc sgid
  • ro: thiết bị ở dạng chỉ đọc.
  • rw: thiết bị ở dạng đọc và ghi.
  • user: cho phép người dùng có thể gắn kết ổ này, tùy chọn này sẽ tự động thực thi các tùy chọn rw, suid, exec, auto, nouser và async
  • nouser: chỉ cho phép người dùng root gắn kết ổ, tùy chọn này tương ứng với tùy chọn defaults.
  • defaults: bao tương ứng với các tùy chọn rw, suid, dev, exec, auto, nouser, async.
  • _netdev: đây là một thiết bị mạng, chỉ thực hiện gắn kết sau khi khởi động card mạng. Chỉ có hiệu lực với các định dạng nfs và fstype.
Dump: bật hoặc tắt chế độ backup cho ổ đĩa, có giá trị là 0 - tắt hoặc 1 - bật.
Pass: định nghĩa thứ tự để ứng dụng fsck kiểm tra thiết bị nếu gặp lỗi trong quá trình khởi động, thường sẽ là 2, 1 chỉ nên dùng cho phân vùng root, 0 có nghĩa là tắt
Dưới đây là một ví dụ về nội dung tập tin fstab:

# /etc/fstab: static file system information.
#
#                

proc  /proc  proc  defaults  0  0
# /dev/sda5
UUID=be35a709-c787-4198-a903-d5fdc80ab2f8  /  ext3  relatime,errors=remount-ro  0  1
# /dev/sda6
UUID=cee15eca-5b2e-48ad-9735-eae5ac14bc90  none  swap  sw  0  0

/dev/scd0  /media/cdrom0  udf,iso9660  user,noauto,exec,utf8  0  0
Và đây là một ví dụ về tập tin fstab quản lý một thiết bị mạng:
# FAT ~ Linux calls FAT file systems vfat)
# /dev/hda1
UUID=12102C02102CEB83  /media/windows  vfat auto,users,uid=1000,gid=100,dmask=027,fmask=137,utf8  0  0

# NTFS ~ Use ntfs-3g for write access (rw) 
# /dev/hda1
UUID=12102C02102CEB83  /media/windows  ntfs-3g  auto,users,uid=1000,gid=100,dmask=027,fmask=137,utf8  0  0

# Zip Drives ~ Linux recognizes ZIP drives as sdx'''4'''

# Separate Home
# /dev/sda7
UUID=413eee0c-61ff-4cb7-a299-89d12b075093  /home  ext3  nodev,nosuid,relatime  0  2

# Data partition
# /dev/sda8
UUID=3f8c5321-7181-40b3-a867-9c04a6cd5f2f  /media/data  ext3  relatime,noexec  0  2

# Samba
//server/share  /media/samba  cifs  user=user,uid=1000,gid=100  0  0
# "Server" = Samba server (by IP or name if you have an entry for the server in your hosts file
# "share" = name of the shared directory
# "user" = your samba user
# This set up will ask for a password when mounting the samba share. If you do not want to enter a password, use a credentials file.
# replace "user=user" with "credentials=/etc/samba/credentials" In the credentials file put two lines
# username=user
# password=password
# make the file owned by root and ro by root (sudo chown root.root /etc/samba/credentials && sudo chmod 400 /etc/samba/credentials)

# NFS
Server:/share  /media/nfs  nfs  rsize=8192 and wsize=8192,noexec,nosuid
# "Server" = Samba server (by IP or name if you have an entry for the server in your hosts file
# "share" = name of the shared directory

#SSHFS
sshfs#user@server:/share  fuse  user,allow_other  0  0
# "Server" = Samba server (by IP or name if you have an entry for the server in your hosts file
# "share" = name of the shared directory

14 tháng 8, 2014

HA (High Avaibility) trong Linux với Heartbeat

Bài viết này tôi chỉ tập trung vào giải thích nguyên tắc hoạt động của Heartbeat khi được sử dụng để xây dựng giải pháp HA trên môi trường Linux.
Trước khi đi vào bài viết, có lẽ bạn nên xem qua bài viết IP ảo trong môi trường Linux để biết thêm một số khái niệm.
Về cơ bản, nguyên tắc hoạt động của Heartbeat là:

  • Theo dõi trạng thái của các máy chủ thành phần.
  • Xác định một máy chủ thành phần gặp sự cố thông qua cơ chế tương tự như "ping" - ping không thấy thì coi như chết.
  • Nếu máy chủ chính gặp sự cố, Heartbeat sẽ tiến hành gọi dịch vụ thay thế trên máy chủ dự phòng.
Phần dưới đây tôi đi sâu vào chi tiết một số vấn đề kỹ thuật của hệ thống, bạn nào muốn biết cách cài đặt và sử dụng Heartbeat thì xem thêm tại bài viết http://www.linuxnix.com/2010/01/heartbeat-clustering.html
Giả sử ta có 2 máy chủ thành phần là A và B.
A có 2 card mạng:
eth0 - 10.0.0.10
eth1 - 192.168.1.2
B có 2 card mạng:
eth0 - 10.0.0.11
eth1 - 192.168.1.3
Ta cho hai card mạng eth1 của A và B thông với nhau để thực hiện nhiệm vụ đồng bộ dữ liệu (do DRBD thực hiện) đồng thời đây cũng là card mạng mà Heartbeat sử dụng để kiểm tra dịch vụ.
Hai card mạng eth0 kết nối ra internet.
Người dùng bên ngoài sẽ sử dụng dịch vụ tại địa chỉ IP 10.0.0.12 ( Bạn lưu ý thông số này và thông số của 2 card eth0 của 2 máy nhé )
Khi chạy Heartbeat, hệ thống sẽ tiến hành tạo ra một địa chỉ IP ảo là 10.0.0.12 cho hệ thống. Giả sử ta thiết lập cho nó hoạt động với card mạng eth0. Khi đó nếu ta gõ lệnh ifconfig eth0 thì sẽ thấy như sau:
Eth0:0 Link encap:Ethernet HWaddr 00:02:A5:4C:AF:8E
inet addr:10.0.0.12 Bcast:10.77.231.255 Mask:255.255.248.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Base address:0×5000 Memory:f7fe0000-f8000000

Như vậy, tại một thời điểm, Heartbeat sẽ chỉ gán địa chỉ IP này cho một máy trong cụm máy chủ HA, nếu máy chủ chính gặp lỗi nó sẽ chuyển địa chỉ này sang máy chủ dự phòng. ( Có một điểm tôi thắc mắc nhưng chưa xác nhận qua thực tế là liệu Heartbeat có thể hoạt động với các máy chủ có một card mạng hay không? - Bạn đọc nào có thời gian thử xác nhận lại giúp tôi xem.)

07 tháng 7, 2014

Một số ví dụ về cấu hình sử dụng log4j

Lưu ý, nội dung bài viết chỉ sử dụng cho mục đích tác giả tham khảo  cho các lần sử dụng sau vì lý do có nhiều thứ quá tác giả không nhớ hết được nên tự ghi note ra đây. Bạn đọc nào thấy hữu ích thì có thể đọc còn không thì vui lòng bỏ qua nhé.

Khi sử dụng log4j, tôi chủ yếu tập trung sử dụng 2 tính năng là ghi ra màn hình console hoặc ghi ra tập tin.

Để sử dụng log4j trong java, bạn tạo tập tin log4j.properties và đặt nó vào thư mục gốc của package (đơn giản là tạo file và dán nó vào thư mục src).

Để log4j ghi thông tin ra màn hình bạn cấu hình như sau:
# Root logger option
log4j.rootLogger=INFO, stdout
 
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
Trong đó INFO là cấp độ ghi log, stdout để báo cho log4j ghi thông tin ra màn hình.

Để log4j ghi thông tin ra tập tin bạn cấu hình như sau:
# Root logger option
log4j.rootLogger=INFO, file
 
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
 
#Redirect to Tomcat logs folder
#log4j.appender.file.File=${catalina.home}/logs/logging.log
 
log4j.appender.file.File=C:\\logigng.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
Trong đó, INFO là cấp độ ghi log, và file để báo cho log4j ghi thông tin ra tập tin.

Bạn có thể tham khảo thêm thông tin về cách cấu hình log4j tại đường link sau:
http://www.tutorialspoint.com/log4j/log4j_configuration.htm
http://logging.apache.org/log4j/1.2/manual.html

20 tháng 6, 2014

Cấu trúc tập tin /etc/shadows trong Linux

Tập tin /etc/shadow là một phương thức khác của Linux để lưu thông tin mật khẩu đăng nhập của người dùng hệ thống.
Thông tin được lưu tại đây sẽ an toàn hơn so với cách lưu trong tập tin /etc/passwd do tập tin này chỉ có tài khoản root hoặc có quyền sudo mới có thể truy cập.
Dưới đây là định dạng mỗi dòng trong tập tin /etc/shadow:
hduser:$6$nRDJ.w8b$wqH4G72KtYbUs:16038:0:99999:7:::
  •  Các trường trong /etc/shadow được phân cách với nhau bằng dấu ":"
  • Trường đầu tiên là username.
  • Trường thứ 2 là mật khẩu đã được mã hóa; nó có thể bắt đầu bằng ký tự $, khi đó ký tự tiếp theo sẽ là thuật toán mã hóa áp dụng cho mật khẩu.
    • $1 = MD5 hashing algorithm. 
    • $2 = Blowfish Algorithm is in use. 
    • $2a = eksblowfish Algorithm
    •  $5 = SHA-256 Algorithm 
    •  $6 = SHA-512 Algorithm
  • Trường thứ 3 là khoảng thời gian (tính bằng ngày) tính từ 1/1/1970  cho tới lần đổi mật khẩu gần nhất.
  • Trường thứ 4 là thời gian tối đa còn cho phép người dùng đổi mật khẩu, nếu là 0 tức là người dùng có thể đổi mật khẩu bất cứ khi nào, nếu là số khác 0, ví dụ 9, tức là người dùng còn 9 ngày nữa có thể đổi mật khẩu.
  • Trường thứ 5 là thời gian hiệu lực tối đa của mật khẩu, nếu là 99999 có nghĩa là vô hạn.
  • Trường thứ 6 là khoảng thời gian trước khi mật khẩu hết hạn, hệ thống sẽ cảnh báo cho người dùng, ở đây là 7, tức là trước khi hết hạn 7 ngày, hệ thống sẽ cảnh báo.
  • Trường thứ 7 là khoảng thời gian mà tài khoản đã hết hạn đăng nhập, ví dụ nếu là 2 tức là người dùng đã hết hạn đăng nhập 2 ngày.
  • Trường thứ 8 là khoảng thời gian mà tài khoản đã hết hạn đăng nhập tính từ ngày 1/1/1970 (đơn vị tính là ngày)
Ngoài ra trong file /etc/shadow còn có thể có chứa một số ký tự đặc biệt để dùng vào một số mục đích riêng như sau:
  • Nếu trường password rỗng tức là người dùng không có mật khẩu đăng nhập.
  • Nếu trường password là "!" tức là đăng nhập bằng mật khẩu của người dùng bị chặn nhưng có thể đăng nhập bằng phương thức khác, ví dụ sử dụng ssh key.
  • Nếu trường password là "*LK*" hoặc "*" tức là tài khoản bị khóa, không thể đăng nhập bằng mật khẩu nhưng vẫn có thể đăng nhập bằng phương thức khác.

06 tháng 6, 2014

Ads block trong Android

Bài này tôi xin mạn phép đứng về phía các lập trình viên nhé.
         Trước hết tôi nói sơ qua về Admob. Đây là một dạng quảng cáo mà bạn thường xuyên nhìn thấy trong một ứng dụng, thường là miễn phí trên các thiết bị di động. Và rất nhiều người sử dụng rất là không thích việc hiển thị này vì những lý do như: nặng máy, tốn tiền internet,... Tuy nhiên tôi xin phép nói rằng các bạn chơi như thế là không đẹp. Vì sao? Vì người ta đã bỏ công sức viết cho bạn ứng dụng miễn phí, thì ít ra bạn cũng có thể ủng hộ người ta hiển thị quảng cáo để họ còn kiếm tiền cơm cháo qua ngày mà tiếp tục làm các ứng dụng khác cho bạn chứ? ^.^
         Chính vì đứng ở phía lập trình viên nên tôi sẽ không tập trung hướng dẫn bạn cách để chặn các admob này. Nếu muốn bạn có thể tham khảo một số link sau để biết cách:
http://www.howtogeek.com/140576/how-to-edit-the-hosts-file-on-android-and-block-web-sites/
http://forum.xda-developers.com/showthread.php?t=1916098
         Bạn nào ngại đọc tiếng Anh thì tôi sẽ có một bài viết hướng dẫn riêng cho bạn sau.
         Ở đây tôi chỉ viết cách để hướng dẫn các bạn remove tính năng Ads block này đi thôi.
         Như bạn đã biết, nguyên tắc của các ứng dụng chặn Admob phổ biến bây giờ là tác động vào tập tin hosts của hệ thống (/system/etc/hosts) bằng cách thêm dòng có cấu trúc như sau:
127.0.0.1 linkshighway.net 
Trong đó 127.0.0.1 là địa chỉ loopback localhost của hệ thống (thuật ngữ này hình như sai ^.^, nhưng ý tôi là thế) và linkshighway.net là địa chỉ cần chặn.

Theo như dòng trên thì bất cứ khi nào thiết bị của người dùng muốn kết nối tới địa chỉ linkshighway.net thì thay vì kết nối thực sự đến nó, thiết bị lại kết nối quay trở lại chính mình và như vậy là màn hình quảng cáo sẽ không hiện ra được.
Nói tới đây thì bạn chắc đã hiểu nguyên tắc để hiện lại quảng cáo rồi nhỉ?
Rất đơn giản, bạn chỉ cần xóa bỏ các dòng có cấu trúc như này trong file hosts đi là được.
Cách làm như sau:
  • Chuyển quyền cho tập tin hosts sang dạng ghi, nếu không bạn sẽ gặp lỗi khi copy đè file gốc.
  • Copy tập tin hosts sang máy tính để sửa nội dung (dĩ nhiên bạn có thể sửa ngay trên máy android nhưng sẽ rất là phiền phức nếu nội dung của file hosts này lên tới hàng ngàn dòng) bằng lệnh:
adb pull /system/etc/hosts F:\hosts
         /system/etc/hosts là vị trí tập tin hosts trên thiết bị android
         F:\hosts là nơi lưu tập tin hosts trên máy tính.
  • Giờ thì bạn xóa hết các dòng kiểu trên đi.
  • Sau đó bạn copy tập tin hosts này quay trở lại thiết bị bằng lệnh:
adb push F:\hosts /system/etc/
Thế là xong.
Chúc bạn thành công.

16 tháng 5, 2014

An toàn với các URL shortener



Ngày nay, việc sử dụng các liên kết dạng rút gọn đang trở nên phổ biến. Thay vì bạn phải cung cấp cho người dùng những url dài ngoằng và phức tạp thì thông qua dịch vụ url shortener này, bạn sẽ có những địa chỉ liên kết ngắn gọn và dễ nhớ. Tuy nhiên đây cũng trở thành công cụ cho kẻ xấu lợi dụng để lừa người dùng.
Với các url shortener, người dùng thông thường sẽ không có cách nào để kiểm tra xem liên kết này có thực sự an toàn hay không và thực sự biết là liên kết này đang dẫn tới đâu (có thể là một trang quảng cáo hoặc đưa bạn tới một liên kết tải phần mềm mã độc,...).
Trong bài viết này, tôi sẽ giúp bạn một số thủ thuật để nhanh chóng xem được thông tin các liên kết này trước khi quyết định có ghé thăm trang gốc thực sự của link hay không.
Dịch vụ bit.ly
Thông thường, các liên kết sử dụng dịch vụ của bit.ly sẽ có dạng http://bit.ly/RbQAC trong đó chuỗi RbQAC là do dịch vụ bit.ly sinh ra.
Để xem thông tin chi tiết và liên kết, bạn hãy copy địa chỉ này bằng cách bấm chuột phải vào liên kết và chọn “Copy link location” và dán lên trình duyệt. Sau đó trên thanh địa chỉ của trình duyệt, bạn thêm dấu “+” vào cuối link (khi đó link sẽ có dạng http://bit.ly/RbQAC+) và nhấn enter để xem.
Dịch vụ tinyurl.com
Thông thường, các liên kết sử dụng dịch vụ của tinyurl sẽ có dạng tinyurl.com/hmmmplay trong đó chuỗi hmmmplay là do dịch vụ tinyurl sinh ra.
Để xem thông tin chi tiết và liên kết, bạn hãy copy địa chỉ này bằng cách bấm chuột phải vào liên kết và chọn “Copy link location” và dán lên trình duyệt. Sau đó trên thanh địa chỉ của trình duyệt, bạn thêm cum “preview” vào đầu link (khi đó link sẽ có dạng http://preview.tinyurl.com/hmmmplay) và nhấn enter để xem.
Dịch vụ goo.gl
Thông thường, các liên kết sử dụng dịch vụ của goo.gl sẽ có dạng goo.gl/8wTc trong đó chuỗi 8wTc là do dịch vụ goo.gl sinh ra.
Để xem thông tin chi tiết và liên kết, bạn hãy copy địa chỉ này bằng cách bấm chuột phải vào liên kết và chọn “Copy link location” và dán lên trình duyệt. Sau đó trên thanh địa chỉ của trình duyệt, bạn thêm dấu “+” hoặc cụm “.info” vào cuối link (khi đó link sẽ có dạng goo.gl/8wTc+ hoặc goo.gl/8wTc.info) và nhấn enter để xem.

13 tháng 5, 2014

DdoS – Distributed denial-of-service attack – Tấn công từ chối dịch vụ phân tán (P1)

Tấn công DdoS là hình thức nhiều máy tính (hệ thống) tổng tấn công vào một mục tiêu nào đó, từ đó gây hiện tượng quá tải cho mục tiêu dẫn tới mục tiêu không thể đáp ứng dịch vụ cho người dùng thông thường. Hay người đọc có thể hiểu nôm na như nhà bạn nằm trong một cái ngõ. Thông thường thì cái ngõ này có khả năng cho phép mười ông ra vào cùng lúc. Tuy nhiên có một nhóm kẻ xấu muốn phá hoại, không cho ai tới thăm nhà bạn cả. Và chung tập trung một nhóm người lại rồi thi nhau đi ra đi vào cái ngõ nhà bạn khiến cho cái ngõ chật cứng và dĩ nhiên lúc đó thì bạn chả còn ông khách chân chính nào đến thăm được nữa.
Vậy DdoS được thực hiện như thế nào?
Ban đầu, kẻ xấu sẽ tân dụng những lỗ hổng của một mạng máy tính nào đó để biến nó thành một “vật chủ chính”, DdoS master. Từ vật chủ này, hay còn được gọi là botmaster, nó sẽ tìm cách lây nhiễm sang cá hệ thống khác bằng cách lợi dụng các lỗ hổng bảo mật thông qua việc phát tán các malware. Bằng cách này, kẻ tấn công có thể ra lệnh cho các máy bị nhiễm tham gia vào cuộc tấn công vào một nạn nhân cụ thể.
Hiện có hai kiểu tấn công DdoS: tấn công mạng trung tâm – network-centric attack – là kiểu tấn công gây quá tải cho một dịch vụ bằng cách chiếm băng thông và kiểu tấn công lớp ứng dụng – application-layer attack – là kiểu tấn công gây quá tải cho một dịch vụ hoặc cơ sở dữ liệu mà ứng dụng của bạn cần sử dụng. Việc gây ngập lụt cho mục tiêu bằng các gói dữ liệu sẽ khiến cho mục tiêu mất đi khả năng đáp ứng. Thông thường, khi xảy ra một cuộc tấn công DdoS chúng ta chỉ tập trung vào nạn nhân trực  tiếp của cuộc tấn công nhưng thực tế nạn nhân của nó lại bao gồm cả hệ thống đang bị điều khiển, mà dân tình mạng gọi chúng bằng cái tên khá thú vị “zombie” hay “bot” và tập hợp này thường được gọi là một “botnet”
Thế bạn có biết Ddos hoạt động như nào hay không?
                Ý tưởng ở đây rất đơn giản. Kẻ tấn công sau khi xác định được mục tiêu sẽ ra lênh cho đội quân “zombie” của mình “liên hệ” với “nạn nhân” theo kiểu hỏi “Ê chủ quán, cho bọn anh làm vài cốc bia nhé?”, thực tế nó chỉ hỏi thế thôi nhưng không thèm mua đâu, chỉ khổ thân ông chủ quán tưởng thật chạy ra chạy vào phục vụ nhiệt tình. Với thao tác này, kẻ tấn công sẽ dần dần hoặc đột ngột gia tăng lượng truy cập vào hệ thống nạn nhân khiến nó bị giảm khả năng phục vụ hoặc thậm chí nghiêm trọng hơn là bị “gục” hoàn toàn. Đây được gọi là Ddos.
                Đôi khi, kẻ tấn công có thể lợi dụng cả các máy bình thường – ta tạm hiểu như một người đi đường ngây thơ không biết gì – tham gia vào cuộc tấn công. Việc này được thực hiện như sau: kẻ tấn công tiến hành gửi một lệnh khởi tạo tấn công tới đội quân zombie của mình; mỗi một tên zombie này sẽ bắt đầu gửi các yêu cầu tới một máy tính thông thường khác, được gọi là các máy “phản xạ”; khi các máy phản xạ này nhận được yêu cầu, chúng lại nghĩ rằng thực ra yêu cầu này là từ máy nạn nhân của cuộc tấn công gửi tới (do các zombie đã đánh lừa chúng) và chúng sẽ hồn nhiên gửi thông tin ngược lại cho nạn nhân. Với cách tấn công này, kẻ tấn công có thể lợi dụng sức mạnh của các máy phản xạ để gây ngập lụt cho mục tiêu của mình. Nếu đứng từ góc nhìn của nạn nhân, thì thực tế nó đang bị tấn công bởi chính các máy phản xạ chứ không phải từ đội quân zombie kia. Còn từ góc nhìn của các máy phản xạ, thì nó là nạn nhân của các truy gói tin truy vấn. Như thế, đội quân zombie kia gần như ẩn mình hoàn toàn trong cuộc tấn công.
Ddos không chừa một ai.
Các nạn nhân của Ddos cũng có xuất hiện một số ông lớn. Ví dụ Microsoft cũng đã từng đón nhận một cuộc tấn công Ddos có tên gọi là MyDoom. Kẻ tấn công thường nhắm tới những hệ thống lớn như Amazone, CNN, Yahoo và eBay. Ddos gây ra những hậu quả từ rất nhẹ cho tới cực kì khủng khiếp:
  • ·         Ping of Death: các máy tấn công sẽ tạo ra một lượng khổng lồ các gói tin và gửi tới nạn nhân.
  • ·         Mailbomb: các máy tấn công gửi một lượng lớn thư điện tử gây nghẽn máy chủ thư.
  • ·         Smurf Attack: các máy tấn công gửi các thông điệp ICMP (Internet Control Message Protocol – Giao thức tin nhắn điều khiển mạng) tới máy chủ phản xạ - reflector.
  • ·         Teardrop: các máy tấn công gử các mảnh dữ liệu bất hợp pháp – hay gọi là dữ liệu lộn xộn, và hệ thống nạn nhân sẽ cố gắng ghép các mảnh này lại thành một gói tin có nghĩa và dẫn tới bị crash – chắc là ghép mãi mà không được nên bị xì troét.
      Một khi đã bị tấn công Ddos, người quản trị chỉ có thể làm một số việc để giảm thiểu hậu quả, ví dụ như giới hạn lưu lượng cho phép đi vào máy chủ của mình, nhưng điều này cũng đồng nghĩa giới hạn cả các kết nối hợp pháp. Nếu người quản trị có thể xác định chính xác nguồn gốc của các máy tấn công cũng có thể tiến hành lọc luồng kết nối từ đó. Thật không may, các máy zombie có thể nằm khắp nơi trên thế giới, do đó không dễ dàng gì để thực hiện việc này.
Vậy kẻ tấn công đã tạo ra các zombie như thế nào? 
      Kẻ tấn công tiến hành biến các máy tính thành các zombie bằng cách sử dụng một chương trình nhỏ để lây nhiễm vào các máy này thông qua các lỗ hổng của hệ điều hành. Thực tế, những tên này không hẳn là những siêu nhân về máy tính mà thường chỉ là những kẻ không có kiến thức và kinh nghiệm lập trình ( thường được gọi là “script kiddies” do đây là những đối tượng có kĩ năng code rất tồi). Một số chuyên gia giám sát các botnet nói rằng đa phần các chương trình do các kiddies này tạo nên thường được làm rất cẩu thả.

     Để lây nhiễm, kẻ tấn công đầu tiên phải cài đặt được ứng dụng của mình vào máy nạn nhân. Các con đường lây nhiễm có thể là qua email, chia sẻ mạng ngang hàng hoặc thậm chí thông qua một website bình thường nào đó đã bị chúng kiểm soát. Phần lớn, kẻ tấn công sẽ tìm cách lừa nạn nhân tự nguyện cài các ứng dụng này lên máy. Ví dụ, bạn đã bao giờ thấy một cửa sổ hiện lên có một nút ghi là “No thanks” chưa? Hi vọng bạn đừng có bấm vào nó nhé – thường các nút này là một cách lừa đấy – Tôi đã từng có một anh bạn nghịch ngợm viết một ứng dụng, khi cài đặt, anh ta ghi rõ ràng lên màn hình một đoạn dài thông báo cho người dùng đây là một ứng dụng virus và người dùng có đồng ý cài không, thế mà nhiều bác vẫn nhắm mắt bấm Yes mới ghê. Như vậy thay vì tắt pop-up này thì bạn đang trực tiếp tải về một phần mềm độc hại.

        Một khi nạn nhân đã tải về ứng dụng, anh ta sẽ kích hoạt nó. Trong phần lớn trường hợp, người ta sẽ nghĩ đây là một ứng dụng gì đó. Có thể nó hiện ra là một tập tin ảnh, một clip hoặc một tập tin gì đó (do cái extension gây ra thôi). Khi nạn nhân mở tập tin này, sẽ chả có gì xảy ra cả. Nếu nạn nhân có cài ứng dụng diệt virus,… thì có thể sẽ nhận được cảnh báo. Không may là, một số người lại nghĩ đây có thể làm một tập tin hỏng nên không cài được và bỏ qua nó.

        Thực tế, chương trình đã tự đính nó vào một nơi nào đó của hệ điều hành để có thể khởi động cùng máy tính mỗi khi nạn nhân bật máy. Để tránh bị phát hiện, kẻ tấn công sẽ không sử dụng cùng một vị trí đặt ứng dụng của mình.

        Ứng dụng này có thể chứa một số câu lệnh để thực hiện một số công việc nào đó vào một thời điểm định trước hoặc cho phép kẻ tấn công điều khiển máy tính nạn nhân. Rất nhiều các ứng dụng dạng này sử dụng IRC (Internet Relay Chat), và thực tế có các cộng đồng botnet sử dụng mạng IRC để hỗ trợ nhau hoặc để chiếm các botnet của nhau.
                Và một khi đã bị nhiễm, các máy nạn nhân sẽ được kẻ tấn công mặc sức dày vò – tự do làm bất cứ điều gì hắn muốn. Đa phần kẻ tấn công sẽ chờ đợi khi người dùng bất cẩn nếu không hắn sẽ khiến người dùng phát hiện và hắn sẽ mất đi một chiến binh trong đội quân của mình.
[Trong phần tiếp theo tôi sẽ đề cập tới mối quan hệ giữa máy zombie và việc phát tán rác ]

07 tháng 5, 2014

Cơ bản về tường lửa trên Linux với Iptables

Bài viết này mình chỉ tập trung vào một số kiến thức cơ bản về tường lửa trên Linux với ứng dụng Iptables.
Trước khi đi vào bài viết, có một số note trước khi bắt đầu bạn cần lưu ý:
  • Nguyên tắc áp dụng luật trên Iptables: áp dụng theo thứ tự từ trên xuống, nếu không tìm thấy luật nào thì chuyển sang dòng tiếp theo, nếu khớp với một luật thì iptables sẽ áp dụng luật đó và ngừng kiểm tra dòng tiếp theo.
  • Để sao lưu các luật trong iptables ta dùng lệnh service iptables save, tập tin sao lưu mặc định sẽ nằm ở /etc/sysconfig/iptables.
  • Để khôi phục các luật trong iptables ta dùng lệnh  iptables-restore < /etc/sysconfig/iptables.
Bây giờ ta bắt đầu đi vào tìm hiểu.
Iptables bao gồm 3 tập tin là:
  • /etc/init.d/iptables – là kịch bản điều kiển bao gồm start|stop|restart và save.
  • /etc/sysconfig/iptables – Vị trí sao lưu luật.
  • /sbin/iptables – ứng dụng chạy.
Iptables bao gồm 3 bảng:
  • Filter
  • NAT
  • Mangle
Hiện tại, iptables bao gồm 4 chain:
  • INPUT: dành cho các luồng đi vào hệ thống
  • OUTPUT: dành cho các luồng đi ra từ hệ thống
  • FORWARD: dành cho các luồng đi qua hệ thống từ các giao diện khác (?)
  • RH-Firewall-1-INPUT: luồng do người dùng tự định nghĩa.
Lưu ý: Các thông tin ở trên có thể hơi khác biệt trên các phiên bản hệ điều hành khác nhau.
Để bật, tắt hoặc khởi động lại iptables ta dùng các lệnh như sau:
# /etc/init.d/iptables start 
# /etc/init.d/iptables stop
# /etc/init.d/iptables restart
Để yêu cầu mỗi khi khởi động lại hệ điều hành, iptables tự động được bật ta chạy lệnh sau:
#chkconfig --level 345 iptables on
Để sao lưu các luật trong iptables ta dùng lệnh sau:
#service iptables save
Mặc định dữ liệu sau lưu sẽ nằm tại /etc/sysconfig/iptables. Dữ liệu này có thể dùng để phục hồi lại cho iptables sau này.
Để kiểm tra trạng thái của iptables ta dùng lệnh sau, với -L là liệt kê danh sách luật, -n là hiển thị dưới dạng số, -v là hiển thị chi tiết:
[root@tecmint ~]# iptables -L -n -v

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    6   396 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 5 packets, 588 bytes)
 pkts bytes target     prot opt in     out     source               destination
Để thêm các đánh dấu dòng khi hiển thị trạng thái của iptables ta dùng thêm tùy chọn --line-numbers. Với tham số này ta có thể sử dụng số dòng để thêm, bớt hoặc xoá các luật chỉ định.
[root@tecmint ~]# iptables -n -L -v --line-numbers

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1       51  4080 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
4        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 45 packets, 5384 bytes)
num   pkts bytes target     prot opt in     out     source               destination
Để xóa toàn bộ luật trong iptables ta dùng lệnh sau:
[root@tecmint ~]# iptables -F
 Xóa hoặc chèn thêm một luật. Trước tiên ta cần phải hiểu sơ qua các luật trong iptables. Lênh dưới đây sẽ hiển thị tất cả các luật trong INPUT, OUTPUT của iptables, các thông số này sẽ giúp ta có thể dễ dàng xóa hoặc thêm các luật mới:
[root@tecmint ~]# iptables -L INPUT -n --line-numbers

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

[root@tecmint ~]# iptables -L OUTPUT -n --line-numbers
Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination
Giả sử ta muốn xóa luật thứ 5 trong INPUT, ta phải nhập lệnh sau:
[root@tecmint ~]# iptables -D INPUT 5

Giả sử ta muốn thêm một luật vào giữa luật số 4 và 5 của INPUT ta dùng lệnh sau:
[root@tecmint ~]# iptables -I INPUT 5 -s ipaddress -j DROP
Trên đây là những kiến thức cơ bản với iptables. Để có thể hiểu thêm chi tiết về Iptables tôi sẽ mạn phép trình bày ở một bài viết khác.

27 tháng 4, 2014

Cách loại bỏ trojan "Distributed computing Experiment" - Một trojan đào bitcoin

Trước hết xin giới thiệu sơ lược về loại Trojan này.
"Distributed computing Experment" là một trong những trojan được tạo ra để phục vụ cho mục đích đào bitcoin của kẻ xấu, tương tự như RiskTool.Win32.BitCoinMiner.
Để biết máy bạn có nhiễm Trojan này hay không, bạn chỉ cần truy cập vào Control Panel --> Add or Remove Programs và tìm sẽ thấy có một ứng dụng có tên là "Distributed computing experiment", và bạn không thể Uninstall ứng dụng này được. Ghê không? Kể từ giờ máy bạn sẽ được tham gia vào một nhóm "những kẻ đào bitcoin điên cuồng nhé" :)) Thường thì khi phát tán Trojan này, kẻ xấu đưa máy bạn tham gia vào một mạng botnet đào bitcoin nhằm mục đích trục lợi (có thể hoặc không, máy bạn sẽ bị vắt kiệt sức để tham gia hoạt động này do công việc đào bitcoin cực kì tiêu tốn tài nguyên của máy)
Đùa thôi. Giờ ta phải tìm cách Remove nó thôi nhỉ? Bạn làm theo các bước sau:
1. Mở Task Manager  và tìm đến ứng dụng có tên dce.exe và End process nó nhé.
2. Truy cập vào C:\Program Files\, tìm và xóa thư mục có tên là DCE.
3. Bạn vào Run, gõ regedit để truy cập Windows Registry
4. Trong Windows Registry bạn tìm tới khóa sau:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\currentversion\Uninstall
5. Trong HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\currentversion\Uninstall, hãy tìm tới khóa có tên là Disturbed Computing Experiment và xóa nó đi.


6. Giờ bạn quay lại Control Panel --> Add or Remove Programs và Remove ứng dụng Distributed computing experiment" đi là được.
7. Hãy dùng một chương trình quét virus để quét lại máy cho chắc nhé.
Tham khảo thêm tại: http://deletemalware.blogspot.com/2014/01/remove-distributed-computing-experiment.html

11 tháng 4, 2014

Cách sửa lỗi HeartBleed trên ubuntu 12.04 LTS

Ở đây tôi chỉ hướng dẫn các bạn fix lỗi này trên hệ điều hành Ubuntu 12.04 LTS server mà không gây ảnh hưởng tới các dịch vụ đang chạy (các hệ điều hành khác cũng tương tự, bạn nào cần biết thêm thì liên hệ tôi theo email dalmate@live.com tôi sẽ hướng dẫn thêm)
Trước hết bạn cần kiểm tra xem server của bạn có bị dính lỗi này hay không tại địa chỉ này:
http://filippo.io/Heartbleed
Nếu server của bạn bị nhiễm thì lần lượt làm theo các bước sau;
Kiểm tra lại xem server có còn bị lỗi hay không tại địa chỉ ở trên.
Lưu ý: các bước này đã được xác thực là không gây ảnh hưởng tới các dịch vụ đang chạy nhé.

11 tháng 3, 2014

HA trên Ubuntu 12.04 với DRBD

Lưu ý, hiện tại trên bản Ubuntu 12.04 nếu bạn cài bản DRBD đi kèm trên kho của Ubuntu thì có khả năng là bạn sẽ không thể chạy được dịch vụ này. Vì vậy, bạn nên cài từ kho của DRBD là tốt nhất.
Kho của DRDB tại đây: http://oss.linbit.com/drbd
Sau đó bạn làm theo các bước hướng dẫn dưới đây
1 - Cấu hình cho máy chủ
- Sử dụng 2 máy chủ, chạy hệ điều hành như nhau (Ubuntu 12.04 LTS 64 bit)
- Chuẩn bị ổ lưu trữ trên 2 máy chủ như sau:
 ----------------
dev/sda1 * (Boot Flag on) ext3 mounted on / 12G
Swap 4G
/dev/sda3 Extended
/dev/sda5 No file system & not mounted 63.9G (for DRBD data disk)

 -------------------
- Cấu hình tập tin /etc/hosts của 2 máy chủ như sau:
 -------------------
/etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.0.134 mail.domain.com mail
192.168.0.162 mailbk.domain.com mailbk

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
 -------------------------------------
- Cấu hình tập tin /etc/hostname của 2 máy chủ như sau:
Máy chủ 1:
mail
Máy chủ 2:
mailbk
2 - Cài đặt BRDB:
- Cài các gói thư viện cần thiết:
-----------------
apt-get install flex build-essential linux-headers-`uname -r`
--------------------------
- Cài DRBD từ nguồn như sau :
---------------
wget http://oss.linbit.com/drbd/8.2/drbd-8.2.7.tar.gz
tar –xzvf drbd-8.2.7.tar.gz

cd drbd-8.2.7
make all && make make install
----------------------
- Lưu ý, nếu cài từ nguồn thì thư mục cài mặc định của DRBD sẽ ở đây:
----------------------
usr/local/
/usr/local/etc
/usr/local/etc/init.d
 ---------------------
- Vì vậy hãy chạy lệnh tiếp theo để DRBD khởi động khi máy khởi động:
 ---------------------------
ln -s /usr/local/etc/init.d/drbd -s /etc/init.d/drbd
update-rc.d drbd defaults 70
modprobe drbd
--------------------
3 - Cấu hình cho DRBD
- Sửa lại tập tin cấu hình DRBD như sau:

-------------------------------
# You can find an example in  /usr/share/doc/drbd.../drbd.conf.example

#include "drbd.d/global_common.conf";
#include "drbd.d/*.res";

global { usage-count no; }
resource r0 {
        protocol C;
        startup {
                wfc-timeout 15;
                degr-wfc-timeout 60;
        }
        net {
                cram-hmac-alg sha1;
                shared-secret "secret";
        }
        syncer {
              rate 110M;
              # group 1;
              al-extents 257;
        }
        on mail {
                device /dev/drbd0;
                disk /dev/sda5;
                address 192.168.0.134:7788;
                meta-disk internal;
        }
        on mailbk {
                device /dev/drbd0;
                disk /dev/sda5;
                address 192.168.0.162:7788;
                meta-disk internal;
        }
}

----------------------------




4 - Chuẩn bị ổ đĩa cho DRBD:
- Trên cả 2 máy chủ hãy chạy lênh:
drbdadm create-md r0
/etc/init.d/drbd restart
- Nếu mọi việc đều ổn thì khi chạy lệnh: cat /proc/drbd sẽ có output như sau:
version: 8.4.3 (api:1/proto:86-101)
srcversion: 5CF35A4122BF8D21CC12AE2
 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r---n-
    ns:2644932 nr:0 dw:154064 dr:2495677 al:745 bm:160 lo:0 pe:3 ua:15 ap:3 ep:1 wo:f oos:2007064836
        [>....................] sync'ed:  0.2% (1960024/1962592)Mfinish: 49:36:04 speed: 11,232 (11,344) K/sec
- Từ máy chủ chính, chạy lệnh:
drbdadm -- --overwrite-data-of-peer primary r0
mkfs –t ext3 /dev/drbd0
mount –t ext3 /dev/drbd0 /opt

- Để tiến trình chạy cho tới khi nó hoàn thành.

=============================================
Tham khảo thêm tại:
http://helpmelinux.blogspot.com/2009/08/zimbradrbdheartbeat-hi-availability.html
http://rdstash.blogspot.com/2012/11/high-availability-storage-using-drbd.html

04 tháng 3, 2014

Một số kiến thức về games online

Bài này tôi vô tình lượm lặt được từ trang http://vietgamedev.net.
Tôi mạn phép sao chép và lưu lại ở đây.
Bạn nào muốn biết thêm có thể truy cập địa chỉ bài viết gốc tại đây.

Đã làm game thì chắc chắn các bạn cũng đã từng chơi qua khá nhiều games, trong đó không ít dạng game là game trực tuyến, chơi được với nhiều người. Sau đây là 1 bài viết khá hay về mô hình Client - Server của game online mình sưu tầm được từ I4VN.com. 

Không biết rằng các bạn game thủ đang chơi có khi nào thắc mắc một game online nó vận hành như thế nào không?
Loạt bài viết về kiến thức game online (MMO) sẽ cho bạn hiểu rõ hơn về thế giới MMO và cũng mong muốn mang đến cho các bạn những phút thư giãn nhưng bổ ích. Bạn sẽ không phải bỏ công tìm hiểu những điều này và cũng muốn nói trước rằng đây chỉ là sự hiểu biết cá nhân tôi (kingbinhminh) do đó chắc chắn không tránh khỏi thiếu sót cũng như có thể sẽ sai lệch đi chút ít. Mong rằng các bạn sẽ lượng thứ và góp ý cho.


Một máy chủ kiểu mẫu

Nguồn: I4VN.com

Kiến thức MMO phần 1: Server và Client
Để một MMO có thể vận hành được không phải giống như các Game PC là chạy ngay game. Các game còn cần phải thiết lập đồng bộ giữa server và client game (tất cả các file bạn down về máy để chạy game), có thể bạn nghĩ rằng client quan trọng vì nó chứa tất cả các file để chạy game nhưng thực tế server quan trọng hơn rất nhiều với 1 MMO.

Server MMO

Sẽ không bao giờ game có thể thành MMO nếu không có server, bạn có thể chơi chung với người khác qua nhiều cách mà cách thông dụng nhất hiện nay là mạng Lan ảo cho phép các game thủ kết nối với nhau qua mạng. Để thành game online đúng nghĩa thì đó phải là một server được đặt đâu đó do nhà phát hành vận hành và cho tất cả các game thủ kết nối vào chứ không phải như Lan ảo là server sẽ được dựng từ một trong các máy của game thủ đảm trách.

Server MMO ngày nay xử lý tất cả các hành động trong game cho dù nó là việc làm nhỏ nhất cũng phải thông qua server chứ không còn giao cho client xử lý nữa. Bởi nếu để cho client xử lý thì chắc chắn rằng sẽ bị khai thác (nghĩa là bị Hhck), do đó quy trình làm việc của MMO chính là: Server xử lý thông tin —> Client thể hiện —> Hành động của game thủ —> Client chuyển tải thông tin —> Server xử lý thông tin.

Với quy trình làm việc như thế server sẽ đảm nhiệm hoàn toàn việc xử lý thông tin, muốn can thiệp để sửa đổi bạn phải tác động lên server và việc đó gần như bất khả thi nếu server phòng chống tốt. Bạn sẽ cho rằng mình có thể can thiệp vào chỗ truyền tải từ client thông tin lên server là có thể hack. Nghe thì có vẻ đúng là thế nhưng thực tế thì server làm việc rất có logic, bạn phải thỏa mãn điều kiện cần thiết. Ví dụ bạn sửa đổi và gửi thông tin lên server rằng “Tôi có vũ khí hoàng kim”, server cũng sẽ chẳng đáp ứng điều đó bởi bạn còn phải thỏa mãn điều kiện kiểu như: “Bạn từ đâu mà có”, “bạn nói rằng giết boss”, “Server không thấy boss có rơi ra”,…v…v..v…Nói nôm na là bạn đưa thông tin lên mà không đúng, server cũng sẽ chẳng xử lý hay nói chính xác hơn nó không hiểu để xử lý.

Mỗi 1 tầng đều có thể đem làm 1 server nho nhỏ.

Server MMO nó như thế nào? Chắc hẳn không ít người muốn biết. Server cũng giống máy tính thông thường mà thôi, nhưng vì chẳng cần thể hiện gì ra màn hình nên bị cắt mất cái card màn hình. Bạn còn nhớ server LineAge II Việt hóa cũng chỉ là một cái máy tính để bàn đủ mạnh mà thôi chứ cũng chẳ ng cần phải server tốn kém gì ghê gớm. Server của các nhà phát hành thì chắc không phải thế, là một hệ thống server được liên kết từ các server. Đó vẫn chưa phải là tất cả những gì liên quan đến server MMO, bởi nó còn được chia làm 2 để xử lý thông tin.

Bạn gửi thông tin lên để server xử lý thì nó sẽ làm việc như thế này: Nhận Thông tin —> Xử lý thông tin —> Trả lại thông tin đã xử lý —> Lưu vào Database.

Cái này đương nhiên không chính xác cho lắm, nhưng ghi vậy để các bạn hiểu việc truyền tải dữ liệu đã xử lý trước rồi mới lưu dữ liệu. Trước tiên ta nói về việc server chia làm 2 là do một đảm trách nhiệm vụ xử lý các thông tin và gửi trả lại, còn cái kia sẽ là nơi xử lý database. Vì database là nơi chứa thông tin của người chơi nên chỉ cần truy xuất, sửa đổi khi có thay đổi. Chẳng hạn như nhân vật này cấp bao nhiêu và có được những item gì…v..v…v…Còn thông tin về quái này nọ trong game không có lưu trong phần database. Nó sẽ được load lên mỗi khi bắt đầu mở server, các thông số này sẽ làm cơ sở để server tính toán mọi thứ trong game.

Quay lại việc tại sao trả thông tin rồi mới lưu vào database, vì để người chơi được xuyên suốt không phải ngừng làm cái việc truy xuất database. Nhưng cũng vì điều này mà nó xảy ra một vấn đề là dupe đồ mỗi khi server lag, tại sao lại thế? Cơ chế nó thế này, vì khi xảy ra lag là việc xử lý không được xuyên suốt, trong một số trường hợp đó sẽ bị rollback. Bởi server xử lý bị nghẽn thông tin phải load lại thông tin của nhân vật, trong quá trình đó bạn sẽ có vài giây hay nhiều hơn để kịp chuyển đồ (dữ liệu) sang một nơi khác. Sau đó bạn sẽ thấy mình lại có được đầy đủ trước khi chuyển, cứ thể mà làm cho đến khi bạn thỏa mãn. Tuy nhiên với các server ngày nay mạnh mẽ hơn trước rất nhiều nên việc server lag rất ít xảy ra.

Những gì hình thành server MMO? Server MMO cũng chỉ như client là tập hợp của nhiều file lại với nhau. Khác với Client chủ yếu thể hiện bằng hình ảnh, thì server là những file text chứa đựng những thiết lập mà khi chạy server các file hệ thống sẽ load nó. Cần chỉnh sửa gì như tỉ lệ rớt item, kinh nghiệm khi đánh quái…v…v…v…chỉ cần sửa lại trong các file này sau đó load lên lại là mọi thứ sẽ thấy khác ngay. Ngay cả việc thời gian hồi skill cũng có quy định trong này, có một số game vì ỷ y mà đưa cho client tự tính thời gian hồi skill nên đã bị hack một cách thê thảm bằng việc đánh skill không deplay. Một Server hoàn hảo là phải tự tính toán hết mọi việc, client chỉ thể hiện không hơn không kém tí nào.

Thông thường sẽ có 3 file xử lý chính: Một là center server gần như xử lý tất cả trừ công việc của 2 file kia. Map server là file load hết các map cũng như phân chia map để xử lý. Character server quá dễ để nhận ra file này khi chuyên xử lý những gì liên quan đến nhân vật. Điều thú vị là một khi tắt Map server thì game thủ chơi bằng client sẽ bị văng hết ra ngoài, nhưng Bot thì không…nên muốn quét sạch một mẻ bot thì chỉ cần tắt đi sau đó ghi nhận lại ai còn trong game mà thẳng tay chém không cần suy nghĩ.

Như những gì đã nói, server đảm nhận hết nên việc update cũng thế không phải cứ tải bản update về máy là bạn đã chơi được bản update. Cái đó còn phải chờ nhà phát hành chỉnh lại server cho các thông số nó khớp với client, nếu không mọi thứ sẽ trở nên vô nghĩa. Bạn có trong tay bản client mới nhất nhưng lại vẫn chơi với các tính năng cũ.

Đó là những thông tin về server, tôi chỉ nói thêm một ít trường hợp để các bạn phòng tránh tốt hơn là đừng nên làm theo. Trước tiên là hack speed, cái này đơn giản chỉ là tăng tốc trao đổi dữ liệu qua lại giữa server và client nên có rất nhiều chương trình có thể giúp đỡ chẳng cần phải là chương trình chuyên dùng cho game. Tuy nhiên tôi khuyên bạn đừng làm thế bởi các server đều có chống hack speed bạn sẽ bị đá văng game sau đó vài giây hoặc có game còn ác hơn với việc thiết lập auto ban cho việc server bị ép trao đổi dữ liệu với tốc độ cao. Việc đánh lừa server bằng gói dữ liệu mà bạn ngụy tạo cũng đừng nên làm tốn thời gian vô ích.

Client MMO

Cấu tạo cơ bản của client thì đa số là các file hình ảnh được giấu vào một file thường có tên gọi là Data.dat có vài chương trình đặc thù cho phép bạn tách một số file từ trong file này. Mục đích không phải để hack mà là để chỉnh sửa cho hợp ý họ, chẳng hạn như một số giao diện trong game không đẹp họ chế ra những giao diện màu sắc đẹp đẽ hơn nhưng vẫn giữ đúng kích thước giao diện. Có game tách sẵn cho game thủ làm cho dễ dàng nhưng không phải game nào cũng ưu ái đến thế, bởi họ không muốn chúng ta nghịch lung tung.

Có hình ảnh thì sẽ có file âm thanh, các file này cũng được giấu nhưng có một số game thì mở ra phần nhạc nền các map của game. Sở dĩ họ làm vậy là để cho các game thủ tự đưa nhạc mình thích vào để không nghe hoài một âm thanh chưa chắc gì là hay mấy. Cũng có game cho phép game thủ đưa nhạc riêng vào mà không cần thay đổi gì cả, nhắc đến việc này mới nhớ game Hiệp Khách Giang Hồ là game cho phép làm điều này một cách tự do.

Hầu hết trong client game đều có một file mà chúng ta nên quan tâm đó là file Config bạn có thể dùng word mở lên xem bên trong có gì. File này chứa hầu hết các khả năng chỉnh sửa trong game như góc nhìn, khoảng cách…v…v…v…Một số game 2D bạn không phóng xa hơn được vì do góc nhìn bị hạn chế bạn chỉ cần chỉnh số to hơn là có thể nhìn từ góc trên trời xuống. Một số game vì ý đồ cho một số class đánh xa vượt tầm nhìn thông thường nên giấu luôn không cho bạn chỉnh, nhưng nếu mày mò chỉnh được thì bạn cũng sẽ có một lợi thế rất lớn trong việc PK.

Ngày trước các game thường mắc một số sai lầm chính là cho client tự xử lý một số vấn đề trong đó thường là vấn đề thời gian hồi máu, skill. Do đó game thủ chỉ cần dùng chương trình thông dụng là đã có thể chỉnh như ý làm cho game bị hack không thể đỡ nổi. Trong vấn đề thể hiện thì game Đột Kích cũng rơi vào thảm cảnh khi file để làm đối phương tàng hình lại nằm bên ngoài server khiến gamer dễ tìm ra và xử lý.


Một game online RPG

Nguồn: I4VN.com


Kiến Thức MMO Phần 2: Server Webgame

Trên cơ bản, server Webgame không có gì khác với game client bởi mọi thứ cũng được xây dựng như nhau là: Hệ thống server, cơ sở dữ liệu (database)…v…v…v…Tuy nhiên webgame thì không cần phải làm đồng bộ giữa server và client vì hầu như mọi thứ sẽ được server xử lý hết bao gồm cả hình ảnh. Bạn sẽ nghĩ trình duyệt sẽ thay thế client? Nhưng bạn có nghĩ là trình duyệt làm gì có hình ảnh của game để mà hiển thị, do đó giống như chúng ta lướt web thì trình duyệt sẽ tải hết những gì cần thể hiện từ server về. Nói là nói thế chứ webgame có cách để trị tình trạng này bởi cứ mỗi lần vào mà phải load lại từ đầu thì nguy to.

Không khác gì quá trình vận hành MMO có client thì ở webgame mọi thứ đều được server xử lý sau đó mới đưa thông tin về các trình duyệt hiển thị lên cho game thủ thấy tại màn hình. Bạn có nhận ra gì bất thường không? Đó chính là dung lượng mà server phải truyền tải, chẳng lẻ phải trao đổi liên tục thông tin hình ảnh này nọ thì băng thông của server làm sao mà chịu nổi. Chẳng hạn lấy 1 webgame thời kì đầu chính là NeoPet thì việc bạn load liên tục và thời điểm đó mạng internet Việt Nam đúng là rất chậm vì vẫn còn xài dial-up, đương nhiên là load rất lâu. Sau này nền tảng flash ra đời việc chơi game chỉ phải load một lần cho đến khi ta tắt nó đi, nhưng nền tảng này cũng không phải là tốt nhất cho game bởi chẳng phải vô cớ mà Apple không chịu “chơi” với flash là vì nó nặng nề. Do đó đa số các webgame hiện nay xây dựng trên nền tảng Java. Vì sao dùng nền tảng này thì lý do là webgame có thể chơi trên bất kì thể loại nào có kết nối internet: Laptop, điện thoại, máy tính bản…v…v…v…và mỗi cái thì là một hệ điều hành khác nhau, nhưng với Java thì có thể bê nguyên từ PC sang điện thoại dễ dàng.

Để giảm tải việc truyền dữ liệu nhất là những hình ảnh luôn dùng lặp đi lặp lại, do đó webgame đòi hỏi mình phải tải một phần của game vào lúc ban đầu. Phần này sẽ không mất đi mỗi khi bạn tắt trình duyệt mà nó lưu vào trình duyệt mà nói ngắn gọn là Cookies, để chúng ta không tốn thời gian vô ích. Tuy nhiên, do vấn đề bảo mật hoặc làm nhẹ máy chẳng hạn như bạn chơi ngoài tiệm game thì hiện nay đa số đều “đóng băng” ổ C – nói dễ hiểu là phong tỏa ổ C và mỗi khi reset máy lại là ổ C sẽ quay lại trạng thái như cũ. Nghĩa là bạn ra tiệm chơi thấy máy mở sẵn thì hãy reset máy cho chắc ăn và bạn vào webgame sẽ lại chờ load. Bởi vậy đừng thắc mắc là có lúc vào nhanh có lúc vào chậm, vào chậm là do bạn mất Cookies vì lý do gì đó, máy bạn tự xóa, hay server yêu cầu load lại…v…v…v…

Một số webgame cho bạn thay đổi 1 tí hình ảnh trong game bằng việc sửa đổi hình ảnh hiển thị, đương nhiên là can thiệp vào Cookies. Thật ra cũng không hẳn là vậy, bởi có webgame yêu cầu chúng ta nếu muốn load game nhanh thì hãy lưu phần hình ảnh game vào nơi nào đó. Travian chắc ai yêu thích webgame cũng đã từng chơi qua, game có cho làm việc này nên hình ảnh load cực lẹ.

Trình duyệt

Không phải chỉ có một mà có rất nhiều trìn h duyệt khác nhau và bạn lướt web cũng đã được các trang web thông báo là xem bằng Chrome, Firefox, IE là tốt nhất…v…v…v…Webgame cũng thế thôi nhưng do sử dụng Java nên ít có game khuyến cáo điều này. Việc sử dụng trình duyệt nào tốt nhất thì bạn hãy dùng theo ý thích của mình. 2 trình duyệt khá tốt hiện nay là Chrome và FireFox, FireFox chiếm Ram nhiều hơn nhưng thường được hỗ trợ tốt hơn.


Một ứng dụng Auto (Bot)

Nguồn: I4VN.com


Kiến Thức MMO Phần 3: Auto và Bot

Auto và bot là điều không còn xa lạ gì đối với các game thủ Việt Nam, nhưng không biết rằng bạn có biết nó được cấu tạo thế nào? và câu chuyện của nó tại Làng MMO Việt Nam.

Packet

Trước khi nói về auto và bot thì chúng ta hãy nói về Packet một chút để hiểu rõ cách hoạt động của auto và bot. Không cần hiểu quá sâu vào nó mà chúng ta hãy hiểu đơn giản nó là một gói dữ liệu đường truyền qua lại giữa client và server. Tại sao phải là một gói dữ liệu? Bởi chỉ những thông tin đơn lẻ thì không thể xử lý được, giống như ra một mệnh lệnh đi về phía trước nhưng muốn client và server hiểu thì thông tin phải trao đổi kiểu như: Mệnh lệnh Đi (hay chạy) + vị trí trên map.

Máy móc xử lý khác chúng ta không phải kiểu chúng ta nói đi về trước mấy bước mà phải theo trình tự phía trên. Vì thế gói dữ liệu này sẽ càng nhiều hơn khi mệnh lệnh phức tạp hơn chẳng hạn như đánh skill:Mệnh lệnh sử dụng skill + Skill gì + Tọa độ + Hiệu ứng + Mục tiêu.

Bạn có hỏi là tại sao phải có hiệu ứng không? Đó là server phải gửi thông tin này đến client để thể hiện hình ảnh của skill nó như thế nào, chẳng hạn như đánh lửa thì có hiệu ứng cháy lửa bừng bừng trên mặt đất. Tôi có thể can thiệp vào phần này nên hiệu ứng muốn sửa đổi thế nào cũng được, chẳng hạn như một buff nào đó tôi sửa thành một buff tăng tốc độ chạy. Nhìn thấy nhân vật chạy đúng kiểu có buff tăng tốc nhưng sẽ luôn bị khựng lại lý do rất đơn giản. Vì mặc dù client thể hiện như thế nhưng trên server vẫn ghi nhận tốc độ cũ, nên khi vừa đến điểm chỉ định nó sẽ khựng lại hay giựt lùi lại để khớp với server. Tóm lại bạn có thể thay đổi nhiều thứ trong một gói dữ liệu (packet) nhưng cũng chỉ vô ích vì server nó khác client.

Bạn đang suy nghĩ là nếu mình gửi thông tin lên server thì sao? Như đã nói ở bài trước dù bạn gửi rất giống client hay có thể nói là hoàn toàn thay thế client cũng vô ích. Server nó làm việc rất có logic nghĩa là phải hội đủ mọi yếu tố thì nó mới xác nhận là thật, ví dụ bạn gửi rằng con quái đó đã bị chết, nhưng server ghi nhận làm gì có ai đánh nó mà chết thì cũng vô ích. Bạn muốn server nghe lệnh vô lý của bạn, nếu có xảy ra thì server đó quá dỏm.

Auto

Bạn thường nghe nhà phát hành dùng từ “phần mềm thứ ba” để nói về auto và bot. Theo cách nhà phát hành gọi thì ngoài client, server ra thì bất kì thứ gì khác đều gọi là phần mềm thứ ba. Do đó sẽ có phần mềm được phép xử dụng và có phần mềm bị cấm, auto thường bị cấm nhưng tại Việt Nam thì mọi thứ dường như đã khác. Auto hiện nay không khuyến khích nhưng cũng không hề cấm, đặc biệt là auto tích hợp sẵn trong game thì lại càng không cấm vì nó không phải là phần mềm thứ 3. Bởi theo cách nói nhà phát hành thì đó vẫn chỉ là client được tích hợp chức năng auto.

Như đã nói ở trên thì Packet là thành phần trao đổi thông tin với server, tuy nhiên auto khác bot ở chỗ không thay thế cho client mà vẫn phải dựa vào client mà chạy. Auto cũng có nhiều cách để tạo ra không phải là cần lập trình để nhận Packet rồi Send Packet về cho server. Có nhiều cách để tạo ra Aato từ đơn giản đến phức tạp như:

– Auto Macro đó chính là những chương trình cho phép tự động một phím hay nhiều phím trong một vòng tùy theo ta quy định. Khuyết điểm của loại này chính là không thể chuẩn theo game và đặc biệt bị chiếm quyền sử dụng máy.

– Auto Click chương trình này hoạt động theo điểm trên màn hình nghĩa là Pixel, bạn sẽ quy định tại điểm nào đó trên màn hình và nó sẽ tự click giùm mình. Khuyết điểm cũng là không chuẩn theo game và cũng bị chiếm quyền sử dụng máy.

– Auto theo màu là những auto đơn giản. Nghĩa là làm theo màu sắc, khác với auto click chút xíu là nó ghi nhận theo màu sắc mà làm. Khuyết điểm rất rất không chuẩn theo game một sự thay đổi màu sắc là xem như tiêu luôn, thường chỉ dùng để đo thanh máu và Mana.

– Auto game đây mới đúng nghĩa là auto của game, bởi mọi hành động đều chuẩn xác với game và đặc biệt không chiếm quyền sử dụng. Có nhiều cách để làm chuẩn theo game nhưng hầu hết để đạt mức hoàn hảo đều liên quan đến packet.

Hiện nay chả còn ai dùng mấy thứ như auto click, auto macro bởi chẳng giúp ích gì nhiều. Riêng auto game thì vấn đề hơi phức tạo bởi ít ai rảnh rỗi tung auto cho mình xài và đặc biệt kiếm được auto sử dụng an toàn cũng là vấn đề nan giải. Bởi những chương trình này rất dễ bị cài thêm keyloger (ghi nhận lại những gì trên bàn phím) bạn có thể sẽ bị mất tài khoản. Hiện nay tội phạm mạng đã bị để ý nhưng chỉ những thứ gì dính đến tiền thật, còn trong game chưa có ai xử lý cả ngoài nhà phát hành.

Bot

Đỉnh cao của auto sẽ là gì? Đó chính là Bot. Bot khác rất nhiều với auto, bởi nếu auto có những thứ không làm được thì Bot làm được tất cả mọi chuyện trong game. Có người từng chơi 1 game từ đầu đến max level của game cũng chưa từng 1 lần đăng nhập vào game, kinh điển chưa?! Vì trên cơ bản cứ phân biệt là auto cần chạy song song với client còn bot thì sẽ thay thế client.

Bot vì sao ghê như thế? Server và client truyền dữ liệu qua lại nhưng việc hiển thị của client còn được quy định thêm nữa. Lấy ví dụ như việc lượm đồ mặc dù đồ rớt ra đã được server truyền tin đến, nhưng bạn lại phải đợi đồ rớt xuống đất mới lượm được. Auto có thể bắt tín hiệu từ client mà phát lại liền là tôi đã lượm nên khi bạn dùng auto thì sẽ lượm ngay trên không. Có điều vẫn không bằng bot vì nó nhận tín hiệu thì ngay lập tức và trả lại liền nên bạn sẽ chẳng kịp nhìn là từ trên không chứ đừng nói là thấy dưới đất.

Bot thường rất nhỏ gọn bởi nó cũng giống như server là gồm những file text chứa những thông tin chẳng hạn như: Quái A sẽ là 8024 hay item B là 2211 chẳng hạn. Vì sao là những con số như thế thì như đã nói chúng sẽ được ghép lại với những mệnh lệnh khác như tôi đang đánh Quái A công thức sẽ là “Số mà lệnh đánh + quái A (8024)…v…v…v…rồi nhận được item B là 2211″ chẳng hạn như thế.

Khó khăn khi viết bot là bạn phải am hiểu và có thể nói là một người lập trình có tay nghề, bởi bạn phải ngồi phân tích Packet của game. Sau đó phải giả lập làm sao để bot qua mặt cả server không đơn giản như auto là phần này đã được client xử lý. Bởi vậy ta có thể thấy nhiều auto chứ bot thì khá ít, nhưng auto chạy 2-3 cái thì bot đã có thể chạy đến 10-15 cái. Do không cần mở client mà nên chấp game có nặng cỡ nào thì bot vẫn chỉ là như thế chiếm dụng máy rất ít. Với một máy mạnh, đường truyền tốc độ cao như hiện nay thì mở 100 bot cũng chả phải là vấn đề gì nan giải.

Bot hoàn toàn có thể hack speed hay hack một số thứ khác nhưng thường chẳng ai viết ra mà để làm những chuyện vô bổ như thế. Vì server hoàn toàn có thể chém ngay mà không cần thông qua GM. Trong khi bot đã được chỉnh một cách pro thì chỉ có GM tự tay đi săn lùng thì may ra, còn việc chặn từ bên ngoài…đã hàng ngàn lần cố gắng nhưng đến nay vẫn chưa chặn được. Trừ khi cộng đồng hay ít nhất là tác giả không còn hỗ trợ nữa.

Có ai từng dùng con bot open-kore của Ragnarok chưa nhỉ? Nếu dùng rồi bạn sẽ thấy nó lợi hại đến mức nào và đến nay nó vẫn là nổi ám ảnh của tất cả các server Ragnarok. Nó có thể làm tất cả mọi việc kể cả làm quest, train, săn item, giết boss…v…v…v…chỉ cần bạn chỉnh đúng thì mọi thứ sẽ trong tầm tay.

Nói về bot khủng cũng có thể nhắc đến Võ Lâm Bá Chủ con bot từng làm cho Võ Lâm Truyền Kỳ 1 điên đảo, bởi vì nó hay quá mức nên bị nhà phát hành chém thẳng tay vì nếu không chỉ một thời gian nữa thôi Võ Lâm Truyền Kỳ 1 sẽ lung lay. Điểm khác biệt của bot Võ lâm 1 và open-kore chính là khả năng tự chỉnh. Võ Lâm Bá Chủ mặc dù có thể tự làm rất nhiều việc nhưng phải do người viết chỉnh cho chúng ta, còn open-kore thì mình sẽ tự chỉnh tất cả nếu không tự chỉnh được thì có thể tìm phần đã có người chỉnh sẵn.



Nguồn: I4VN.com

18 tháng 2, 2014

Cài đặt flashplugin trên Ubuntu thông qua Proxy

Khi đặt một máy chạy Ubuntu trong một môi trường có sử dụng Proxy, người dùng sẽ không thể cài đặt được FlashPlugin cho hệ điều hành này. Đây có thể là lỗi do bộ cài đặt của plugin này.
Để khắc phục lỗi này ta làm như sau:
- Thêm nội dung sau vào trong tập tin /etc/enviroment
no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
HTTP_PROXY="http://xxx.xxx.xxx.xxx:8080/"
HTTPS_PROXY="http://xxx.xxx.xxx.xxx:8080/"
FTP_PROXY="http://xxx.xxx.xxx.xxx:8080/"
NO_PROXY="localhost,127.0.0.1,localaddress,.localdomain.com
Trong đó xxx.xxx.xxx.xxx là địa chỉ máy chủ proxy của bạn
- Thêm nội dung sau vào trong tập tin /etc/wgetrc:
https_proxy = http://xxx.xxx.xxx.xxx:8080/
http_proxy = http://xxx.xxx.xxx.xxx:8080/
ftp_proxy = http://xxx.xxx.xxx.xxx:8080/
Trong đó xxx.xxx.xxx.xxx là địa chỉ máy chủ proxy của bạn
- Tiến hành cài đặt như binh thường lần lượt các tập tin sau:
  • sudo apt-get install policykit-1
  • sudo apt-get install ttf-mscorefonts-installer
  • sudo apt-get --reinstall install flashplugin-installer

16 tháng 2, 2014

Loại bỏ Ads by sense

Gần đây khi sử dụng trình duyệt tôi hay thấy xuất hiện các quảng cáo lạ, kiểu như này:
Hiện tượng này xuất hiện trên cả Chrome, IE. Đặc biệt bạn nào hay xem trang haivl.com sẽ thấy cứ xem được mấy cái ảnh thì lại có một quảng cáo của Google chèn vào giữa rất khó chịu. Như vậy là bạn cũng giống tôi, máy đã bị nhiễm một loại malware có tên là Sense.
Tôi sẽ không đi sâu vào phân tích xem nó là cái gì, nó hoạt động như nào. Ở đây tôi sẽ chỉ hướng dẫn các bạn cách làm thế nào để loại bỏ phiền toái này thôi.
1 - Loại bỏ ứng dụng Sense đã cài vào máy
- Trên Windows, bạn vào Control Panel và chọn Programs and Features (với Windows 8) hoặc Uninstall Programs (với Windows 7)

- Trong cửa sổ hiện ra bạn tìm ứng dụng có tên Sense và gỡ nó ra khỏi máy.
2 - Loại bỏ ứng dụng khỏi Firefox.
- Bạn mở Firefox
- Trong Menu chọn Adds-on
- Trong tab Extensions, hãy tìm Adds-on có tên là sense và loại bỏ nó đi
- Khởi động lại Firefox.
3 - Loại bỏ ứng dụng khỏi Chrome
- Bạn mở Chrome ra
- Chọn Tool --> Extension
- Trong cửa sổ hiện ra, bạn gỡ bỏ tất cả các Extensions có tên là: Sense, LyricsViewer, LyricXeeker, Plus-HD 1.3, LyricsGet, BetterSurf, Downloadkepper, SurfEnchance, Feven 1.7, LyricsWoofer, LyricsFan, SimpleLyrics
- Đóng cửa sổ lại và khởi động lại Chrome
4 - Gỡ bỏ khỏi Internet Explore
- Bạn mở Internet Explore ra.
- Bấm vào biểu tượng


 - Chọn Internet Options
- Trong cửa sổ hiện ra chọn Tab Advanced và bấm nút Reset.
- Một cửa sổ hiện ra, bạn bấm lại nút Reset để xác nhận
- Đóng các cửa sổ lại và khởi động lại Internet Explore


Bài viết tham khảo hướng dẫn từ trang http://malwaretips.com