Thứ Hai, 1 tháng 11, 2010

Step-by-step how to display or view routing table on Linux Fedora Core machine.

Using Linux 'netstat' command to display or view kernel IP routing table.



[root@linux hack]# netstat -r

Kernel IP routing table

Destination Gateway Genmask Flags MSS Window irtt Iface

203.106.93.64 * 255.255.255.224 U 0 0 0 eth0

10.2.0.0 * 255.255.0.0 U 0 0 0 eth1

10.3.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

10.6.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

10.7.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

10.4.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

10.5.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

10.10.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

10.8.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

169.254.0.0 * 255.255.0.0 U 0 0 0 eth1

10.9.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

default 203.106.93.93 0.0.0.0 UG 0 0 0 eth0

[root@linux hack]# netstat -nr

Kernel IP routing table

Destination Gateway Genmask Flags MSS Window irtt Iface

203.106.93.64 0.0.0.0 255.255.255.224 U 0 0 0 eth0

10.2.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1

10.3.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

10.6.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

10.7.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

10.4.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

10.5.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

10.10.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

10.8.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1

10.9.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

0.0.0.0 203.106.93.93 0.0.0.0 UG 0 0 0 eth0



Using Linux 'route' command to display kernel IP routing table.



[root@linux hack]# /sbin/route

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

203.106.93.64 * 255.255.255.224 U 0 0 0 eth0

10.2.0.0 * 255.255.0.0 U 0 0 0 eth1

10.3.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

10.6.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

10.7.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

10.4.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

10.5.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

10.10.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

10.8.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

169.254.0.0 * 255.255.0.0 U 0 0 0 eth1

10.9.0.0 10.2.0.2 255.255.0.0 UG 0 0 0 eth1

default 203.106.93.93 0.0.0.0 UG 0 0 0 eth0



Step-by-step how to add/change default route on Linux Fedora Core machine.



You can add default route on your Linux machine by using route command.



[root@linux hack]# route add default gw 10.10.0.1 eth0



Add or edit the default gateway on /etc/sysconfig/network file, to make sure your default is preserve after your system boot.



Configuration example on network file:



NETWORKING=yes

HOSTNAME=fedora.hacking.com

GATEWAY=203.106.93.93



Or you can place the (# route add default gw 10.10.0.1 eth0) command to the rc.local script file. This rc.local script file is located under /etc/rc.d/rc.local. This rc.local script file are design to run at the end of each boot time.

Thứ Năm, 30 tháng 9, 2010

PING

Ping là một chương trình cho phép bạn xác định một host còn hoạt động(alive) hay không?
Nếu bạn nhận được thông báo "Host Alive", điều này có nghĩa là host không còn hoạt động!

Ping hoạt động ra sao?

Ping gởi một ICMP message "echo request" đến host. Nếu nhận được một ICMP message "echo reply" của host, ping sẽ thông báo host còn hoạt động. Nếu không nhận được ICMP message "echo reply" của host, ping sẽ thông báo host này đã ngừng hoạt động!

Format của ICMP "echo request" và "echo reply" có dạng như sau:

Bất cứ lúc nào host nhận được một ICMP request message, nó sẽ phản hồi trở lại với một identifier và số sequence number. Trong hầu hết các hệ thống Unix, trường indentifier được đặt số Process ID của tiến trình gởi gói packet đi. Vì vậy, nếu bạn ping cùng một lúc nhiều lần đến một hệ thống Unix, giá trị indentifier mà bạn nhận được trong mỗi lần ping sẽ khác nhau!

Trường sequence number có giá trị mặc định là 0. Giá trị này sẽ được tăng một sau mỗi lần hệ thống phản hồi ICMP request message của chương trình ping. Ping sẽ in ra giá trị sequence number của mỗi lần nhận packet, điều này cho chúng ta biết được các gói packet có gặp lỗi hay không?!

(Để biết chi tiết về các trường khác, bạn hãy tham khảo các bài viết về giao thức TCP-IP!)

Thứ Năm, 23 tháng 9, 2010

Cơ bản về SSH

SSH (tiếng Anh: Secure Shell) là một giao thức mạng dùng để thiết lập kết nối mạng một cách bảo mật. SSH hoạt động ở lớp trên trong mô hình phân lớp TCP/IP. Các công cụ SSH (như là OpenSSH, …) cung cấp cho người dùng cách thức để thiết lập kết nối mạng được mã hoá để tạo một kênh kết nối riêng tư. Hơn nữa tính năng tunneling của các công cụ này cho phép chuyển tải các giao vận theo các giao thức khác. Do vậy có thể thấy khi xây dựng một hệ thống mạng dựa trên , chúng ta sẽ có một hệ thống mạng riêng ảo VPN đơn giản.

SSH là gì?

SSH là một chương trình tương tác giữa máy chủ và máy khách có sử dụng cơ chế mã hoá đủ mạnh nhằm ngăn chặn các hiện tượng nghe trộm, đánh cắp thông tin trên đường truyền. Các chương trình trước đây: telnet, rlogin không sử dụng phương pháp mã hoá. Vì thế bất cứ ai cũng có thể nghe trộm thậm chí đọc được toàn bộ nội dung của phiên làm việc bằng cách sử dụng một số công cụ đơn giản. Sử dụng SSH là biện pháp hữu hiệu bảo mật dữ liệu trên đường truyền từ hệ thống này đến hệ thống khác.

Cách thức làm việc của SSH

SSH làm việc thông qua 3 bước đơn giản:

* Định danh host – xác định định danh của hệ thống tham gia phiên làm việc SSH.
* Mã hoá – thiết lập kênh làm việc mã hoá.
* Chứng thực – xác thực người sử dụng có quyền đăng nhập hệ thống.

Định danh host

Việc định danh host được thực hiện qua việc trao đổi khoá. Mỗi máy tính có hỗ trợ kiểu truyền thông SSH có một khoá định danh duy nhất. Khoá này gồm hai thành phần: khoá riêng và khoá công cộng. Khoá công cộng được sử dụng khi cần trao đổi giữa các máy chủ với nhau trong phiên làm việc SSH, dữ liệu sẽ được mã hoá bằng khoá công khai và chỉ có thể giải mã bằng khoá riêng. Khi có sự thay đổi về cấu hình trên máy chủ: thay đổi chương trình SSH, thay đổi cơ bản trong hệ điều hành, khoá định danh cũng sẽ thay đổi. Khi đó mọi người sử dụng SSH để đăng nhập vào máy chủ này đều được cảnh báo về sự thay đổi này. Khi hai hệ thống bắt đầu một phiên làm việc SSH, máy chủ sẽ gửi khoá công cộng của nó cho máy khách. Máy khách sinh ra một khoá phiên ngẫu nhiên và mã hoá khoá này bằng khoá công cộng của máy chủ, sau đó gửi lại cho máy chủ. Máy chủ sẽ giải mã khoá phiên này bằng khoá riêng của mình và nhận được khoá phiên. Khoá phiên này sẽ là khoá sử dụng để trao đổi dữ liệu giữa hai máy. Quá trình này được xem như các bước nhận diện máy chủ và máy khách.

Mã hoá

Sau khi hoàn tất việc thiết lập phiên làm việc bảo mật (trao đổi khoá, định danh), quá trình trao đổi dữ liệu diễn ra thông qua một bước trung gian đó là mã hoá/giải mã. Điều đó có nghĩa là dữ liệu gửi/nhận trên đường truyền đều được mã hoá và giải mã theo cơ chế đã thoả thuận trước giữa máy chủ và máy khách. Việc lựa chọn cơ chế mã hoá thường do máy khách quyết định. Các cơ chế mã hoá thường được chọn bao gồm: 3DES, IDEA, và Blowfish. Khi cơ chế mã hoá được lựa chọn, máy chủ và máy khách trao đổi khoá mã hoá cho nhau. Việc trao đổi này cũng được bảo mật dựa trên đinh danh bí mật của các máy. Kẻ tấn công khó có thể nghe trộm thông tin trao đổi trên đường truyền vì không biết được khoá mã hoá. Các thuật toán mã hoá khác nhau và các ưu, nhược điểm của từng loại:

* 3DES (cũng được biết như triple-DES) — phương pháp mã hoá mặc định cho SSH.
* IDEA — Nhanh hơn 3DES, nhưng chậm hơn Arcfour và Blowfish.
* Arcfour — Nhanh, nhưng các vấn đề bảo mật đã được phát hiện.
* Blowfish — Nhanh và bảo mật, nhưng các phương pháp mã hoá đang được cải tiến.

Chứng thực

Việc chứng thực là bước cuối cùng trong ba bước, và là bước đa dạng nhất. Tại thời điểm này, kênh trao đổi bản thân nó đã được bảo mật. Mỗi định danh và truy nhập của người sử dụng có thể được cung cấp theo rất nhiều cách khác nhau. Chẳng hạn, kiểu chứng thực rhosts có thể được sử dụng, nhưng không phải là mặc định; nó đơn giản chỉ kiểm tra định danh của máy khách được liệt kê trong file rhost (theo DNS và địa chỉ IP). Việc chứng thực mật khẩu là một cách rất thông dụng để định danh người sử dụng, nhưng ngoài ra cũng có các cách khác: chứng thực RSA, sử dụng ssh-keygen và ssh-agent để chứng thực các cặp khoá.

Theo vinazoom

Nguyên tắc cơ bản của TCP Syn Flood

Kiểu tấn công TCP SYN flood là một kiểu tấn công trực tiếp vào máy chủ bằng cách tạo ra một số lượng lớn các kết nối TCP nhưng không hoàn thành các kết nối này.

Phía kẻ tấn công sẽ khởi tạo nhiều TCP, trong mỗi kết nối chỉ để cờ TCP SYN. Máy chủ sẽ gửi lại trả lời vớI TCP SYN và ACK. Nhưng sau đó máy tấn công đơn giản là không trả lời thông điệp thứ ba như mong đợi của server theo tiến trình bắt tay ba chiều. Server lúc này sẽ tốn bộ nhớ và tài nguyên trong khi chờ các phiên TCP timeouts hoặc trước khi các kết nối đang thiết lập dang dở được dọn dẹp. Máy server lúc này có thể từ chối các kết nối TCP khác và các thiết bị cân bằng tải trong các server farm lúc này có thể chia tải không cân bằng. Các firewall có hỗ trợ cơ chế stateful có thể ngăn ngừa kiểu tấn công TCP SYN attack này.

Một cách để ngăn ngừa kiểu tấn công SYN attack là đơn giản loại bỏ các gói TCP header trong đó chỉ có cờ SYN được thiết lập. Nói cách khác, loại bỏ tất cả các gói tin đầu tiên trong một kết nối TCP mới. Trong nhiều trường hợp, một router không nên cho phép các kết nối TCP được thiết lập bởi client. Trong trường hợp này, việc lọc các TCP segment ban đầu giúp ngăn ngừa SYN attack.

Công cụ Cisco IOS ACLs không thể match trực tiếp cờ TCP SYN trong một gói tin. Tuy nhiên một ACL có thể dùng từ khóa establised để tìm ra những tcp segment có cờ ACK được thiết lập. Từ khóa established có thể match tất cả các TCP segment ngoại trừ TCP segment đầu tiên trong một kết nối mới. Cấu hình dưới đây sẽ dùng trên R1 để từ chối những yêu cầu kết nối mới từ Internet đi vào mạng bên trong ASN1.

Dòng ACE đầu tiên sẽ lựa ra các phân đoạn TCP không phảI là segment đầu tiên và cho phép các segment này. Dòng ACE thứ hai sẽ lựa ra tất cả các TCP segment, nhưng vì tất các các segment không phảilà đầu tiên đã dính vớI dòng đầu tiên, dòng thứ hai này sẽ chỉ so trùng vớI các segment đầu tiên.

ip access-list extended prevent-syn
permit tcp any 1.0.0.0 0.255.255.255 established
deny tcp any 1.0.0.0 0.255.255.255
permit (whatever)
!
interface s0/0
ip access-group prevent-syn in

ACL hoạt động tốt khi client nằm bên ngoài mạng không được phép tạo kết nối TCP vào mạng bên trong. Tuy nhiên trong những trường hợp các kết nối TCP vào bên trong là được phép, ACL này không thể được dùng.

Một đặc điểm khác của CiscoIOS được gọi là TCP intercept cho phép các kết nối TCP đi vào mạng nhưng giám sát các kết nối này để chống kiểu tấn công TCP SYN. TCP Intercept hoạt động trong hai chế độ. Trong chế độ watch, nó theo dõi thông tin trạng thái của kết nốI TCP match với một ACL. Nếu kết nối TCP không hoàn bắt tay hai chiều trong một khoảng thời gian, TCP intercepts sẽ gửi một thông điệp TCP reset đến máy server, dọn dẹp kết nối. Nó cũng sẽ đến số kết nối mới trong một khoảng thời gian và nếu có một số lớn kết nối trong một giây (“lớn” có giá trị mặc định là 1100), router sẽ tạm thời lọc các yêu cầu thiết lập TCP mới.

Trong chế độ intercept, router sẽ trả lời đến các yêu cầu thiết lập TCP thay vì chuyển các yêu cầu này về server. Sau đó, nếu quá trình bắt tay 3 lần hoàn thành, router sẽ tạo ra một kết nối giữa nó và server. Ở thời điểm này, router đã nối chặt hai kết nối với nhau. Chế độ này làm tốn nhiều tải nhưng bảo vệ tốt hơn cho server.

Các lệnh dưới đây sẽ bật cơ chế TCP intercept cho những gói tin so trùng với ACL match-tcp-from-internet. Ngoài ra, chế độ được thiết lập là chế độ watch, còn chế độ mặc định là intercept. Cuối cùng, lệnh watch timeout đã được đưa về chế độ mặc định là 30 giây. Nếu kết nối TCP vẫn trong tình trạng không hoàn tất, cơ chế TCP intercept sẽ khởi động kết nối.

ip tcp intercept-list match-tcp-from-internet
ip tcp intercept mode watch
ip tcp intercept watch-timeout 20

ACL sẽ lựa ra tất cả các gói tin gửi đến địa chỉ 1.0.0.0/8 và dùng TCP. ACL này sẽ tham chiếu đến các lệnh ip tcp intercept-list ở trên.

ip access-list extended match-tcp-from-internet
permit tcp any 1.0.0.0 0.255.255.255

Chú ý rằng ACL không được áp dụng vào bất kỳ cổng nào.

Thứ Tư, 22 tháng 9, 2010

Các Lệnh Linux dành cho Sysadmin

- netstat
Dùng để xem các "kết nối" tới server của mình. Các kết nối này có thể ở trong các trạng thái establish, time_wait, closed_wait, fin_wait, ... chi tiết xem bài " Bảo mật ứng dụng phần mềm mã nguồn mở của anh mrro )

vd: netstat
netstat | grep 80 : xem những kết nối đến port 80
netstat | grep 80 | wc -l : tổng số kết nối đến port 80
netstat -p | grep 0.0.0.0:80 | grep LISTENING : xem pid của dịch vụ httpd.

- uptime
Hệ thống đã chạy được bao lâu và tải trung bình ( load average )

- top
Theo dõi các process trên hệ thống cùng với CPU, memory sử dụng( process nào đang chạy, process nào đang free); đồng thời xem lượng CPU, memory, swap sử dụng, còn free.

Để xem help, gõ "top", rồi ấn "h".

- ps
ps giúp bạn hiển thị các tiến trình hiện tại đang chạy ( currently running process ) trên hệ thống. Nó cũng tương tự như "Task_manager' bên Windows. Bên cạnh các process, ps cũng hiển thị các "process id" tương ứng, từ các id này bạn có thể stop một process bất kì thông qua lệnh kill ( kill , chi tiết gõ "man kill" )

vd: ps -aux : hiển thị tất cả các process cùng với thông tin chi tiết về nó
ps -U : hiển thị các process được khởi động bởi người dùng username

- /sbin/service
/sbin/service giúp bạn quản trị các dịch vụ đã cài đặt trong hệ thống, vd vsftpd, httpd, snmpd, postfix, iptables, smb ... các dịch vụ này được liệt kê trong /etc/rc.d/init.d.

Cấu trúc ( phổ biến ): /sbin/service start | stop | restart | status ( status để xem dịch vụ này đang ở trạng thái gì, start, hay stop )

vd: /sbin/service httpd status
/sbin/service iptables start

Note: xem thêm "chkconfig"

- kill
Công cụ này dùng để kill ( diệt ) tiến trình dựa vào "process id" của nó ( process id dựa vào netstat -p hay ps -aux ở trên ). Kill có nhiều mức, mức 9 là mạnh nhất ( tôi sẽ ko đi sau về nó, chi tiết bạn xem man )

vd: kill 19345
kill -9 19345

- /sbin/setup
Đây là tiện ích cho phép bạn setup một số thao tác quản trị qua giao diện menu rất trực quan và dễ dàng, bao gồm: thiết lập địa chỉ IP ( subnet mask, default gateway, dns, ... ), thiết lập firewall, thiết lập các xác thực ...

- ifconfig
Đây là tool cho phép bạn cấu hình hay hiển thị cấu hình các địa chỉ IP cho các interface ( giao diện mạng ). Hẳn các bạn đã biết bên Windows có lệnh ipconfig, thì ở bên Linux, chúng ta lại có ifconfig, nhưng ifconfig còn làm được nhiều việc hơn.

vd: ifconfig cho phép bạn gán nhiều địa chỉ IP lên một interface. Lệnh sau sẽ gán thêm IP 66.193.175.173 vào giao tiếp eth0
#ifconfig eth0:1 66.193.175.173 netmask 255.255.254.0
- route
Cho phép bạn quản lý bảng định tuyến, bảng định tuyến là gì ? Nói ngắn gọn là khi các packets từ máy bạn muốn ra ngoài, thì nó phải dựa vào bảng định tuyến này để tìm đường đi "đầu tiên" cho mình, tương tự như cái "cửa" vậy. Tuy nhiên sau khi ra ngoài thì nó phải thực hiện một quá trình định tuyến ( routing ) để đi đến đích, đây cũng là một vấn đề lớn , ko thể trình bày chi tiết ở đây được.

vd: route --> nó sẽ hiện thị routing table .

- cron
Trình này cho phép bạn thiết lập các schedular job ( công việc theo lịch ), lưu ý là daemon crond phải được chạy, bạn có thể tìm hiểu rõ thêm ở đây http://www.unixgeeks.org/security/ne...ix/cron-1.html, đây tôi xin nêu một ví dụ nhỏ:
Mục đích của tôi là cứ 2h sáng 0 phút mỗi ngày máy sẽ thực hiện tự động file backup.pl trong /home/linet/script
#crontab -e : dùng để edit file cron
Thêm vào dòng sau:
00 2 * * * linet /home/linet/script/backup.pl
- chmod, chown, chcon

chmod: thiết lập các thuộc tính read, write, execute của file, thư mục đối với từng người dùng
vd: chmod 777 myfile.php --> cho phép tất cả người dùng có quyền ghi, đọc, thực thi với file này

chown: thiết lập chủ sở hữu của file, thư mục
vd: chown linet:admin myfile.php ---> chủ sở hữu của myfile.php là linet ( thuộc nhóm admin )

chcon: thay đổi security context, lệnh này tôi cũng chưa hiểu rõ lắm, nên mời mọi người chỉ giúp.

- ping, traceroute
Đây là hai lệnh khá phổ biến với mọi người, tôi cũng xin nêu ngắn gọn về chúng

ping: là lệnh gửi các ICMP echo-request đến máy khác và đợi các ICMP echo-reply gửi về, nó thường được dùng để kiểm tra xem một host có đang chạy hay không, dựa vào sự tồn tại của echo-reply.
Nhiều người đã sử dụng ping với ứng dụng là ping flood, tức là gửi đi gói tin request với kích thước rất lớn trong thời gian rất nhanh để cho máy kia luôn phải " trả lời", tiêu tốn tài nguyên của hệ thống.

traceroute: ( trong Windows có 'tracert' ) là lệnh dò tìm đường đi từ máy hiện tại đến máy đích. Lệnh này hiện thị ra các router mà packets phải đi qua để đến được đích.

vd: ping hvaonline.net
traceroute hvaonline.net

- df, du
Hiện thị không gian sử dụng filesystem
vd: df -h

- ls, cat, vi
Đây là những lệnh cơ bản nhất cho người dùng Linux, nhưng cũng là những lệnh thường dùng nhất, ls tương tự như dir, cat dùng để xem nội dung file, vi là trình soạn thảo.

- more, grep, awk
Lệnh trong Linux console có một tính năng rất mạnh là nó có thể kết hợp nhiều lệnh để tạo ra kết quả.

grep: lọc thông tin
vd: ps -aux | grep httpd -> hiển thị các tiến trình phục vụ cho dịch vụ httpd ( bình thường ps -aux sẽ hiển thị tất cả tiến trình )

more: giúp cho việc hiển thị kết quả stdout được phân từng trang, tiện cho việc theo dõi khi kết quả quá dài
vd: cat error_log | more

awk hay gawk : tôi được biết đây là một command rất hay, đang nghiên cứu, dịp sau tôi sẽ trình bày cho các bạn.

- mc
Các bạn dùng bên Windows có NC thì bên Linux có MC, chức năng và cách dùng cũng tương tự nhau.

Tìm Hiểu và Chỉnh Sửa file /etc/fstab

Trong Linux có 1 file fstab nằm tại /etc. Bài viết này sẽ cùng bạn tìm hiểu nội dung và cách chỉnh sửa thông tin trong file này và ngụ ý rằng bạn đã biết cơ bản về lệnh mount

File /etc/fstab ?

File cấu hình /etc/fstab chứa thông tin về tất cả các phân vùng, USB, ổ DVD… (mình gọi chung là thiết bị) trên máy tính bao gồm: các thiết bị được mount ở đâu (tên mount point gắn với thiết bị là gì?) và được mount như thế nào (các tùy chọn khi mount là gì?)...

Nếu bạn không thể truy cập các phân vùng dành cho Windows (NTFS, FAT), hoặc không thể mount ổ DVD, ghi dữ liệu vào USB, đọc file từ ổ mềm… thì có thể chip nhớ trên thiết bị bị lỗi hoặc cũng có thể bạn đã cấu hình file fstab không đúng cách!

fstab là file dạng plain text, vì thế bạn có thể mở và chỉnh sửa với bất kỳ công cụ text editor nào với điều kiện bạn phải có đặc quyền root để lưu lại những thay đổi (login với root user hoặc chạy lệnh su, an toàn hơn nữa là tiện ích sudo)

Cấu trúc của file /etc/fstab ?

Vì mỗi hệ thống có các thiết bị khác nhau nên thông tin trong file fstab ở mỗi máy cũng khác nhau chút ít. Nhưng về cơ bản, bạn nắm được định dạng chung của fstab thì không có gì khó khăn khi làm việc với các hệ thống khác. Khi lệnh mount được thực thi, hệ thống sẽ đọc thông tin trong file fstab để đưa ra hành xử lý thích hợp. Đây là 1 ví dụ nội dung của file /etc/fstab
/dev/hda2 / ext2 defaults 1 1
/dev/hdb1 /home ext2 defaults 1 2
/dev/cdrom /media/cdrom auto ro,noauto,user,exec 0 0
/dev/fd0 /media/floppy auto rw,noauto,user,sync 0 0
proc /proc proc defaults 0 0
/dev/hda1 swap swap pri=42 0 0
Như bạn thấy, mỗi dòng (hàng) trong file chứa thông tin về 1 thiết bị. Các cột ở mỗi hàng được phân cách bởi các khoảng trắng. Thứ tự các dòng là không quan trọng. Sau đây mình sẽ giải thích kỹ hơn ý nghĩa của từng cột

+ Cột 1: mô tả về thiết bị (Partition, CD/DVD-ROM, USB, ISO...).
Đồng thời củng cho biết đường dẫn tới device file (trong Linux, mọi tài nguyên đều được coi là file, vị trí của các device file thường là /dev/device_filename).

+ Cột 2: là mount point (đường dẫn tới 1 thư mục trống trong cây thư mục).
Nếu bạn không chỉ định mount point khi gõ lệnh mount thì đây là mount point mặc định cho thiết bị ở cột 1. Thư mục chứa mount point thường là /mnt hay /media (mặc dù bạn có thể mount thiết bị vào bất cứ thư mục trống nào nhưng

+ Cột 3: là loại filesystem của thiết bị.
Hiểu đơn giản thì filesystem là phương thức nhằm cấp phát không gian lưu trữ cho file, quản lý thuộc tính của file; cách tổ chức, sắp xếp dữ liệu trên thiết bị sao cho việc tìm kiếm, truy cập tới dữ liệu được mau chóng và thuận tiện.
Linux hỗ trợ nhiều kiểu filesystem, dưới đây là 1 số filesystem phổ biến

- Ext2 và Ext3: điểm khác biệt lớn nhất giữa 2 loại filesystem này là ext3 hỗ trợ tính năng journaling, tức là khi bạn tắt máy không đúng cách (do cúp điện đột ngột, hệ thống bị treo nên phải nhấn nút reset…) thì khả năng mất mát dữ liệu ở mức rất thấp, đồng thời hệ thống sẽ không phải tốn thời gian để kiểm tra, tìm lỗi trên filesystem trong lần khởi động kế tiếp.

- ReiserFS: cũng hỗ trợ tính năng jouraling nhưng có thêm nhiều tính năng nổi trội hơn so với ext3. Ngày nay ext3, ReiserFS được chọn là filesystem mặc định trên nhiều Linux Distro.

- swap: phân vùng làm không gian bộ nhớ ảo, giúp gia tăng bộ nhớ khi hệ thống sử dụng hết dung lượng của RAM.

- Vfat (FAT16, FAT32) và NTFS: đây là các filesystem được Windows hỗ trợ

- auto: đây không phải là 1 filesytem. Nó có nghĩa là hệ thống sẽ tự động nhận diện loại filesystem khi mount thiết bị

+ Cột 4: là các tùy chọn khi mount.
Nếu có nhiều tùy chọn thì chúng được phân cách bởi dấu phẩy. Dưới đây là 1 số tùy chọn đáng chú ý, gõ man mount để xem thêm các tùy chọn khác

- auto: thiết bị sẽ được mount tự động lúc khởi động hệ thống.
- noauto: thiết bị không được tự động mount, nếu muốn sử dụng thiết bị thì sau khi khởi động vào hệ thống bạn cần chạy lệnh mount.

- user: cho phép user thông thường được quyền mount thiết bị
- nouser: chỉ có root user mới có quyền mount thiết bị

- exec: cho phép chạy các binary file trên thiết bị
- noexec: không cho phép chạy các binary file trên thiết bị

- ro (read-only): chỉ cho phép quyền đọc trên thiết bị được mount
- rw (read-write): cho phép quyền đọc-ghi trên thiết bị được mount

- sync: thao tác nhập xuất (I/O) trên filesystem được đồng bộ hóa
- async: thao tác nhập xuất (I/O) trên filesystem diễn ra không đồng bộ
(->cái này mình chịu, không hiểu rõ!)

- defaults: tương đương với tập các tùy chọn rw, suid, dev, exec, auto, nouser, async

+ Cột 5 tùy chọn cho dump
Dump là tiện ích để backup filesystem. Điền 0 -> dump bỏ qua việc backup, 1-> thực hện backup

+ Cột 6 tùy chọn cho fsck
fsck là tiện ích để check , tìm lỗi trên filesystem. Điền 0-> bỏ qua việc check, 1-> thực hện check

Thứ Ba, 21 tháng 9, 2010

Ứng dụng hệ thống IP- PBX sử dụng mã nguồn mở ASTERISK

VoIP (Voice over Internet Protocol) là một trong các ứng dụng truyền thoại dựa trên nền IP. VoIP ra đời và được phát triển mạnh mẽ do các tính năng, tiện ích mà nó đem lại và giảm chi phí đầu tư ban đầu, khó khăn và cứng nhắc trong việc mở rộng và nâng cấp hệ thống... so với thoại chuyển mạch kênh.

1- Mở đầu

Cùng với sự phát triển về công nghệ thông tin, công nghệ IP (Internet protocol) đã cung cấp cho người sử dụng các dịch vụ và tiện ích ngày càng phong phú và đa dạng. Với giao thức IP, mạng Internet là sự phát triển vượt bậc kết nối các mạng máy tính trên phạm vi toàn cầu. Thông qua mạng Internet, người sử dụng có thể sử dụng rất nhiều dịch vụ và ứng dụng như web, mail, FTP, text chat, voice chat, video ….

VoIP (Voice over Internet Protocol) là một trong các ứng dụng truyền thoại dựa trên nền IP. VoIP ra đời và được phát triển mạnh mẽ do các tính năng, tiện ích mà nó đem lại và giảm chi phí đầu tư ban đầu, khó khăn và cứng nhắc trong việc mở rộng và nâng cấp hệ thống... so với thoại chuyển mạch kênh.

Asterisk là một sản phẩm phần mềm mã nguồn mở cung cấp miễn phí cho người sử dụng để xây dựng các ứng dụng VoIP hữu hiệu, tiết kiệm tối đa chi chí chi cho dịch vụ giao dịch, trao đổi thông tin, hai trong số các mối quan tâm hàng đầu mà bất cứ một người sử dụng nào cũng đều mong muốn đạt được.

2- Vài nét về ASTERISK

Asterisk là phần mềm thực hiện chức năng tổng đài điện thoại nội bộ (PBX), cho phép các máy điện thoại nội bộ (extension) thực hiện cuộc gọi với nhau và kết nối với các hệ thống điện thoại khác bao gồm cả mạng điện thoại thông thường (PSTN) và mạng VoIP, tính năng của tổng đài PBX thương mại: hộp thư thoại, hội đàm, hệ thống tương tác thoại, hỗ trợ nhiều giao thức VoIP như SIP, Gateway kết nối giữa các điện thoại IP và mạng PSTN.

Asterisk là phần mềm nguồn mở được viết bằng ngôn ngữ C chạy trên hệ điều hành Linux ra đời vào năm 1999 do Mark Spencer (Mỹ) phát triển. Nó thực hiện kết nối truyền thông bằng phần mềm thay vì phần cứng. Điều này cho phép các tính năng mới được thêm vào một cách nhanh chóng .

Phần mềm Asterisk được thiết kế dạng module .Các thành phần chức năng được thiết kế thành từng module riêng biệt và tách rời với phần chuyển mạch lõi. Một trong những điểm mạnh nổi bật của Asterisk là quản lý các máy nội bộ .Từng bước của cuộc gọi được định nghĩa như là một ứng dụng như quay số, trả lời, phát lại, hộp thư thoại… Ngoài ra việc tích hợp vào các ứng dụng như quản lý quan hệ khách hàng CRM (Customer Relationship Management) và hệ thống Outlook làm cho khả năng ứng dụng của Asterisk linh hoạt hơn, đáp ứng nhu cầu cần thiết cho người sử dụng điện thoại.
Các chức năng của Asterisk

Với chức năng chuyển mạch của một tổng đài IP PBX (hình 1), việc thực hiện chuyển mạch cuộc gọi giữa các máy điện thoại nội bộ với nhau và chuyển cuộc gọi (ra/vào) với các máy điện thoại bên ngoài thông qua đường trung kế. Ngoài ra còn có nhiều tính năng sử dụng cho nhiều mục đích khác nhau của khách hàng, các tính năng như tương tác thoại (IVR- Interactive Voice Response), Voicemail, phân phối cuộc gọi tự động (ACD-Automatic Call Distribution). Asterisk có thể chạy trên được nhiều hệ điều hành Unix khác nhau như Linux, Mac OS X, OpenBSD, FreeBSD, Sun Solaris…và cung cấp nhiều tiện ích và các tính năng mới của một tổng đài IP PBX. Kiến trúc Asterisk được thiết kế rất linh động, hỗ trợ nhiều giao thức VoIP khác nhau. Asterisk là một gateway, kết nối giữa các mạng PSTN với mạng IP, có chức năng chuyển đổi tương thích giữa các giao thức và mã hoá của các mạng khác nhau. Sau cùng Asterisk còn là một feature/media server và là hệ thống Call center với các tính năng linh động và mềm dẻo

Các tính năng của Asterisk
- Voicemail (Hộp thư thoại): cho phép nhận và lưu các tin nhắn thoại extension trong hệ thống, định hướng các cuộc gọi đến hộp thư thoại tương ứng đã khai báo trước mỗi khi đang bận, không trả lời hoặc không online; cho phép khai báo việc truy xuất vào hộp thư thoại bằng cách xác nhận mật khẩu hoặc được thông báo có thư mới qua email.
- Call Transferring (Chuyển cuộc gọi): cho phép thực hiện chuyển cuộc gọi sang một thiết bị đầu cuối khác như: một máy lẻ khác trong cùng hệ thống hoặc số điện thoại di động, cố định của mạng khác trong khi đang đàm thoại.
- Call Forwarding (Chuyển tiếp cuộc gọi): cho phép thực hiện chuyển tiếp cuộc gọi từ máy lẻ này đến 1 thiết bị đầu cuối khác như: máy lẻ trong cùng hệ thống hoặc số điện thoại di động, cố định của mạng khác trong các trường hợp: khi bận, khi không trả lời, khi không online, chuyển tức thời không điều kiện hoặc theo thời gian định trước.
- Time and Date: cho phép định hướng cuộc gọi đến một số điện thoại khác hoặc một chức năng cụ thể khác tuỳ theo từng thời điểm cụ thể đã được khai báo trước.
- Ngoài ra còn các chức năng: Call Parking; Interactive Voice Response (Chức năng tương tác thoại), Fax Transmit and Receive (Gửi, nhận fax), Conference Bridging (Cuộc gọi hội nghị), Caller ID (Hiển thị số gọi)…
Cấu trúc hệ thống Asterisk

Vì Asterisk được thiết kế dưới dạng module nên các thành phần chức năng được thiết kế theo từng module riêng biệt và tách rời với phần chuyển mạch lõi, điều này tạo khả năng dễ dàng điều chỉnh và mở rộng.
Cấu trúc hệ thống Asterisk bao gồm các khối chức năng:
- Chức năng Dynamic Module Loader (DML) thực hiện nạp driver của các thiết bị, nạp các kênh giao tiếp, các dạng format, code và các ứng dụng liên quan, đồng thời các hàm API cũng được liên kết nạp vào hệ thống;
- Chức năng PBX Switching Core; thực hiện chuyển cuộc gọi. Các cuộc gọi được chuyển mạch tuỳ theo kịch bản trong kế hoạch quay số (Dialplan) được cấu hình trong file extension.conf;
- Chức năng Application Launcher (AP): thực hiện cung cấp âm mời quay số, hồi âm chuông, định hướng cuộc gọi, kết nối đến hộp thư thoại;
- Chức năng Code Translator: hỗ trợ với nhiều chuẩn mã hoá khác nhau.
Ngoài ra còn nhiều chức năng khác.
Giao thức báo hiệu IAX (Inter-Asterisk Exchange):

Trong mạng IP, ngoài các giao thức báo hiệu thông dụng SIP, H323 còn có giao thức báo hiệu cho VoIP đó là IAX - Inter-Asterisk Exchange, thực hiện các chức năng kết nối các server Asterisk với nhau một cách dễ dàng và đơn giản.

Nếu SIP chuyển tải thoại và báo hiệu trên hai kênh khác nhau (out of band), thì IAX chuyển tải thoại và dữ liệu trên cùng một kênh (in band). IAX thông suốt với NAT (Network Address Translation) để cấp địa chỉ IP cho các máy con trong mạng LAN; Sử dụng băng thông hiệu quả với cơ chế trung kế (trunk). IAX cho phép nhiều gói dữ liệu thoại trên cùng một IP header, do đó tiết kiệm băng thông

Tóm lại, IAX tuy mục tiêu ban đầu được xây dựng để kết nối các máy chủ Astersik với nhau, chưa được chuẩn hoá và phổ biến rộng rãi nhưng đã khắc phục được các hạn chế của các giao thức khác với một số tính năng nượt trội như: Sử dụng băng thông hiệu quả; thông suốt với cơ chế NAT; dễ triển khai và mở rộng sau này.
Mô hình triển khai Asterisk: Tuỳ theo nhu cầu, Asterisk có thể được sử dụng dưới nhiều mô hình kết nối khác nhau. Dưới đây là một số mô hình kết nối của Asterisk:
- Tổng đài IP PBX: kết nối giữa các đầu cuối với nhau, có thể là các máy tính trong mạng LAN có cài đặt softphone, các IP phone kết nối với mạng LAN qua giao tiếp Ethernet RJ45 hoặc các điện thoại analog kết nối đến mạng LAN qua bộ chuyển tiếp ATA và kết nối đến server Asterisk trong cùng mạng LAN. Hoặc kết nối với mạng điện thoại PSTN bên ngoài thông qua card giao tiếp TDM. Một số giao tiếp TDM do Digium sản xuất thường có dạng TDMxyB, trong đó x biểu diễn cho số lượng port FXS và y thể hiện cho số lượng port FXO như card TDM22B có 2 port giao tiếp FXS và 2 port giao tiếp FXO.

Với mô hình này, IP PBX Asterisk biến một máy tính chạy hệ điều hành Linux gọn nhẹ thành một tổng đài PBX và thường được ứng dụng trong các môi trường đã có sẵn mạng nội bộ LAN.

Các thiết bị đầu cuối được kết nối đến server Asterisk thông qua mạng LAN, không phải kéo đường dây riêng cho các máy nội bộ như tổng đài PBX truyền thống, tiết kiệm chi phí đáng kể cho hệ thống điện thoại nội bộ. Đối với các máy tính đã có sẵn trong mạng LAN, chỉ cần cài đặt softphone cùng với sound card và headphone, micro (hầu như đều có sẵn trên các máy tính hiện nay). Đối với các IP phone có hỗ trợ sẵn giao tiếp Ethernet với 2 cổng RJ45, một kết nối với mạng LAN, một kết nối với máy tính PC, do đó dễ dàng kết nối vào mạng LAN bằng cáp mạng. Trường hợp không có cổng mạng thì IP phone được đấu nối trực tiếp với mạng LAN thông qua port RJ45 và máy tính được nối với mạng LAN thông qua IP phone với cổng RJ 45 to PC , tiết kiệm rất nhiều chi phí kéo cáp.

Ngoài ra, IP PBX Asterisk còn có khả năng mở rộng các số nội bộ, không chỉ giới hạn trong một mạng LAN mà có thể kết nối rộng rãi ra bên ngoài thông qua Internet hoặc VPN (Vitual Private Network)

Như vậy, với IP PBX Asterisk, khái niệm mạng nội bộ không còn là mạng LAN mà là mạng nội bộ bên trong của một IP PBX Asterisk không phân biệt vị trí địa lý, các số nội bộ có thể nằm tại nhiều vị trí khác nhau và có thể liên lạc nội bộ miễn phí với nhau. Đây là một trong những ưu điểm quan trọng của Asterisk giúp tiết kiệm chi phí điện thoại nội bộ giữa các văn phòng với nhau.

- Kết nối IP PBX với PBX: Đối với trường hợp đã có hệ thống tổng đài PBX và đã hết dung lượng nhưng muốn mở rộng thêm các số nội bộ thì IP PBX Asterisk là một giải pháp phù hợp giúp tiết kiệm chi phí đầu tư tổng đài PBX mới, giảm thiểu chi phí và nhân công kéo cáp. IP PBX Asterisk sẽ kết nối hệ thống mạng nội bộ mới với tổng đài PBX hiện có.
- Kết nối giữa các server Asterisk: Mô hình kết nối các server Asterisk này phù hợp với các công ty có nhiều chi nhánh đặt tại nhiều nơi, giúp tiết kiệm chi phí liên lạc đường dài giữa các văn phòng với nhau.
- Các ứng dụng IVR, voicemail, điện thoại hội nghị:

Một trong các ứng dụng quan trọng của Asterisk là ngoài việc thực hiện chức năng một tổng đài IP PBX, Asterisk còn cung cấp các ứng dụng như:

- IVR Server cho phép thực hiện các cuộc gọi rẽ nhánh tuỳ theo tương tác của người gọi, tương tự như hệ thống dịch vụ 1800 và 1900 của mạng NGN cung cấp.

- Conference Server tạo các phòng hội nghị cho phép nhiều người dùng cùng tham gia vào 1 cuộc gọi hội nghị;

- Voice Mail: tạo hộp thư thoại, cho phép khách hàng lựa chọn hộp thư thoại tuỳ theo tương tác của người gọi;

- Ứng dụng phân phối cuộc gọi tự động ACD: phân phối cuộc gọi tự động ACD (Automatic Call Distribution), dành cho các nhu cầu chăm sóc, hỗ trợ khách hàng hay tiếp nhận phản hồi từ khách hàng. (giống dịch vụ 18001091 của các đài hỗ trợ khách hàng của Vinaphone hoặc 1080, 116 của Viễn thông tỉnh, thành phố).

2- XÂY DỰNG HỆ THỐNG ĐIỆN THOẠI VoIP NỘI BỘ DỰA TRÊN MÃ NGUỒN MỞ ASTERISK
Mô hình hệ thống IP PBX sử dụng Asterisk: ứng dụng Asterisk xây dựng thành một tổng đài IP nội bộ với mô hình kết nối như sau:

Trong đó:

Server Asterisk: Là một máy tính PC có cài đặt hệ điều hành Linux, cài đặt phầm mềm Asterisk, card mạng giao tiếp Ethernet RJ45, card TDM giao tiếp RJ11.

Thiết bị đầu cuối: Có thể là các máy tính có kết nối với mạng LAN, sound card, headphone, micro và được cài đặt softphone (như phần mềm miễn phí X-Lite 3.0), hoặc các máy điện thoại IP phone có giao tiếp RJ45 kết nối với mạng LAN thông qua cáp mạng các máy điện thọai tương tự kết nối với mạng LAN thông qua bộ phối hợp ATA (Analog Telephone Adapter)
Cấu hình Asterisk

Để Asterisk hoạt động và cung cấp các tính năng như đã mô tả trong các phần trên, sau khi được cài đặt xong, Asterisk cần được cấu hình các thông số để thực hiện tuỳ theo nhu cầu của người sử dụng. Việc cấu hình hệ thống Asterisk được thực hiện bằng các khai báo, cài đặt các thông số trong các file cấu hình (các file .conf) được đặt trong thư mục /etc/asterisk, ngoại trừ file zapata.conf (file cấu hình các phần cứng TDM giao tiếp giữa hệ thống Asterisk với mạng điện thoại PTSN bên ngoài) được đặt trong thư mục /etc.

Khái quát một số file cấu hình chính của Asterisk như sau:

+ zaptel.conf : Các tham số cấu hình cho trình điều khiển card giao tiếp

+ zapata.conf : Cấu hình cho asterisk giao tiếp với phần cứng

+ extensions.conf : Thiết lập các kịch bản cuộc gọi

+ sip.conf : Thông tin cấu hình người dùng và giao thức báo hiệu SIP

+ iax.conf : Thông tin cấu hình người dùng và cuộc gọi theo kênh IAX

Chú ý khi thay đổi các tham số trong các file cấu hình trên, cần khởi động lại Asterisk server để dịch vụ hoạt động với các tham số mới.
3 Đánh giá hệ thống IP PBX sử dụng Asterisk: Việc ứng dụng Asteris để xây dựng một hệ thống tổng đài nội bộ IP PBX có một số thành công và hạn chế như sau:
Các ưu điểm của IP PBX được xây dựng bằng Asterisk: So với một tổng đài nội bộ thông thường, Asterisk có các lợi thế như sau:

- Tiết kiệm chi phí đầu tư thiết bị ban đầu:

+ Về server: Chi phí đầu tư cho 1 máy tính cài đặt hệ điều hành Linux và phần mềm Asterisk hoàn toàn miễn phí rẻ hơn nhiều so với 1 tổng đài nội bộ PBX như của Panasonic, Siemens…;

+ Về thiết bị đầu cuối: Thay vì phải mua mới các máy điện thoại, có thể cài đặt softphone trên các máy tính có sẵn trong mạng LAN, đồng thời không phải chạy thêm dây cáp trong mạng nội bộ như phải có đối với các tổng đài PBX. Ngoài ra, trường hợp sử dụng IP phone cũng không cần phải đấu nối thêm cáp mạng riêng cho IP phone mà có thể dùng chung sợi cáp mạng sẵn có của máy tính bằng cách đấu nối máy tính vào LAN thông qua 2 port giao tiếp Ethernet-RJ45 của IP phone

- Dễ dàng mở rộng hệ thống: Đối với các tổng đài PBX, giá mua thiết bị phụ thuộc rất nhiều vào dung lượng của tổng đài và mỗi tổng đài PBX đều có 1 dung lượng nhất định, việc mở rộng dung lượng buộc phải trang bị thêm card giao tiếp và bị giới hạn hoàn toàn trong dung lượng tối đa mà nhà sản xuất đã qui định, trong khi đó, đối với tổng đài IP PBX dùng Asterisk hoàn toàn không bị giới hạn về dung lượng, có thể tạo account mới mà không cần phải trang bị thêm bất cứ thiết bị phần cứng nào.

- Cung cấp nhiều tính năng, tiện ích mới hoàn toán miễn phí: Ngoài các chức năng cơ bản như một tổng đài nội bộ, Asterisk còn cung cấp thêm rất nhiều tính năng, tiện ích trong các gói phầm mềm sử dụng mã nguồn mở, miễn phí, cho phép người sử dụng có thể chủ động khai báo, cài đặt theo nhu cầu như voicemail, điện thoại hội nghị, các dịch vụ tương tác (IVR) hoặc phân phối cuộc gọi tự động (ACD), nhạc chuông linh động và phong phú với nhiều dạng file khác nhau, trong khi đó, các tổng đài PBX chỉ cung cấp các dịch vụ cơ bản cho việc chuyển mạch, kết nối các thuê bao hoặc nếu muốn có thêm dịch vụ thì phải trang bị thêm các thiết bị phần cứng hoặc bản quyền phần mềm.
Các hạn chế của IP PBX được xây dựng bằng Asterisk

Bên cạnh các ưu điểm như trên, Asterisk vẫn còn một số mặt hạn chế so với một tổng đài PBX thông thường như:

- Asterisk chỉ chạy trên các hệ điều hành Unix nên việc triển khai thực hiện và sử dụng còn nhiều khó khăn do các hệ điều hành này chưa được sử dụng rộng rãi và phổ biến như hệ điều hành Windows.

- Cài đặt, khai báo và cấu hình hệ thống server, các máy con phức tạp hơn so các tổng đài PBX thông thường.

- Server Asterisk được xây dựng trên một máy tính do đó độ an toàn của hệ thống không cao, cần phải có các cơ chế bảo vệ chặt chẽ nhằm tránh các trường hợp tấn công từ bên ngoài hoặc các phá hỏng do virút, các sự cố do nguồn điện bị ngắt đột ngột làm ảnh hưởng đến hoạt động của máy tính, các thao tác cần phải thực hiện cài đặt, khai báo lại hệ thống khi máy tính bị sự cố không khôi phục được.

4- Kết luận

Hệ thống tổng đài IP nội bộ - IP PBX sử dụng Asterisk đã được triển khai ứng dụng rộng rãi trong thực tế và đang ngày càng phát triển đã chứng minh phần nào các tác động của VoIP nói chung và Asterisk nó riêng đối với người sử dụng.

Bên cạnh các tiện ích mà Asterisk mang lại cho người sử dụng, đặc biệt là về yếu tố giả cả, chi phí và tiện ích cung cấp cho người sử dụng, Asterisk vẫn còn gặp phải một số khó khăn khi triển khai trong thực tế, tuy nhiên, các khó khăn này là do các yếu tố khách quan từ bên ngoài, từ người sử dụng chứ không phải do công nghệ, giải pháp mà Asterisk mắc phải nên về tương lai, các khó khăn này hoàn toàn có thể khắc phục được.

Cộng đồng mã nguồn mở Asdterisk phát triển rất mạnh mẽ , mọi thông tin cần tham khảo đều có sẵn , diễn đàn trao đổi kinh nghiệm hết sức phong phú.

Hơn nữa , Asterisk đã được triển khai ứng dụng rất phổ biến trong thực tế chính là minh chứng rõ ràng nhất về ưu điểm của hệ thống mã nguồn mở miễn phí mà mạnh mẽ này

Nguồn: http://www.tapchibcvt.gov.vn/vi-vn/congnghetruyenthong/2009/4/20146.bcvt