Posted on Leave a comment

Site-to-Site VPN between AWS VPC and Customer Site using Linux

In this tutorial, we will use the previous scenario on AWS side for the creation of site-to-site vpn between AWS VPC and Local site. On Amazon side, we’ll use Ubuntu 14.04 LTS, which will act as gateway for private subnet(s) plus the vpn gateway, while on the Local site, we’ll use the CentOS 6.5, which will perform the same tasks as of Ubuntu on AWS side (gateway for LAN plus vpn gateway).

modify vpc

Note: Please don’t waste your time in hacking, all these public devices and IP(s) are Temporary, I have destroyed them after finished this tutorial.

VPN Configuration on AWS VPC:

Please add the udp ports 500 & 4500 on NAT instance security group:

1

Also allow the ICMP packet on internal subnet security group from the remote LAN for testing purpose:

2

Now, install the desired package(s) for ipsec:

apt-get install iptables openswan

1

Edit the sysctl.conf file:

vi /etc/sysctl.conf

2

Add the following parameters inside it:

net.ipv4.ip_forward=1

net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0

net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.conf.default.log_martians = 0
net.ipv4.conf.all.log_martians = 0

net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0

net.ipv4.neigh.default.gc_thresh1 = 1024
net.ipv4.neigh.default.gc_thresh2 = 2048
net.ipv4.neigh.default.gc_thresh3 = 4096

3

Modify the rc.local file:

vi /etc/rc.local

4

Modify the MASQUERADE rule that we had added in the previous tutorial (Please adjust it according to your scenario):

iptables -t nat  -A POSTROUTING -s 10.100.0.0/16 ! -d 172.16.10.0/24 -o eth0 -j MASQUERADE

5Note: Please Reboot your machine once, so that changes will take effect.

Edit the ipsec.conf file:

vi /etc/ipsec.conf

6

Here is mine working ipsec.conf file, please adjust your’s as per your requirement:

version 2.0

config setup
 nat_traversal=yes
 protostack=netkey
 force_keepalive=yes
 keep_alive=60
 oe=off
 nhelpers=0

conn AWS2LocalConnection
 left=10.100.10.10
 leftsubnets=10.100.0.0/16
 leftid=54.219.146.242
 leftsourceip=10.100.10.10
 right=25.109.210.76
 rightsubnets=172.16.10.0/24
 rightid=25.109.210.76
 pfs=no
 forceencaps=yes
 authby=secret
 auto=start

7

Edit the shared secret file:

vi /etc/ipsec.secrets

8

Mine ipsec.secrets file as an example:

9

VPN Configuration on Local Site:

Before beginning the configuration, please verify that the selinux is disabled:

sestatus

2a

Install the openswan on CentOS, along with the desired packages:

yum install wget bind-utils openswan lsof

3

Configure the Openswan to start at boot time:

chkconfig ipsec on

4

Edit the sysctl.conf file on CentOS:

vi /etc/sysctl.conf

5

Add/Edit the following parameters:

net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0

6

Edit the iptables rule file:

vi /etc/sysconfig/iptables

7

Modify your iptables file according to your scenario, here are the desired iptables rules, please adjust them accordingly:

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 172.16.10.0/24 ! -d 10.100.0.0/16 -o eth0 -j MASQUERADE
COMMIT
###########
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i eth1 -p udp -m udp --sport 67:68 --dport 67:68 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p udp -m udp --dport 500 -j ACCEPT
-A INPUT -p udp -m udp --dport 4500 -j ACCEPT
-A INPUT -i eth0 -p esp -j ACCEPT
-A INPUT -p tcp -m tcp --dport 4500 -j ACCEPT
-A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -o eth0 -j ACCEPT
COMMIT

8Note: Please Reboot your machine once, so that changes will take effect.

Edit the ipsec.conf file:

vi /etc/ipsec.conf

9

Here is mine working ipsec.conf file on Local site, please adjust your’s as per your requirement:

version 2.0

config setup
 nat_traversal=yes
 protostack=netkey
 force_keepalive=yes
 keep_alive=60
 oe=off
 nhelpers=0

conn Local2AWSConnection
 type=tunnel
 left=172.16.10.10
 leftsubnets=172.16.10.0/24
 leftid=25.109.210.76
 leftsourceip=172.16.10.10
 right=54.219.146.242
 rightsubnets=10.100.0.0/16
 rightid=54.219.146.242
 pfs=no
 forceencaps=yes
 authby=secret
 auto=start

10

Edit the shared secret file:

vi /etc/ipsec.secrets

11

Mine ipsec.secrets file as an example on Local Site:

12

Restart the IPSec Service & verify its status on both Sides:

Restart the IPSec service on Ubuntu at AWS VPC:

service ipsec restart

10

Restart the IPSec service on CentOS at Local Site:

service ipsec restart

13

Verify the status of IPSec service on Ubuntu at AWS VPC:

service ipsec status

11

Verify the status of IPSec service on CentOS at Local Site:

service ipsec status

14

Verify the IPSec Tunnel status on both servers:

ipsec whack --status | grep -i established 

11a

14aNote: established means that tunnel is up and traffic will traverse through it

Verify the Route Table on both servers:

route -n

12

15

Verify that the Traffic is passing through the Tunnel:

Ping from the AWS vpn gateway to the machine on Local LAN (I have Win XP machine on local LAN with an ip 172.16.10.100).

14

Ping from AWS VPC private Subnet to Local LAN for verification:

15

Ping from the Local vpn gateway to the machine on VPC Private subnet (I have Webserver on private subnet with an ip 10.100.20.20).

16

Ping from Local LAN  to AWS VPC private Subnet for verification:

17

Testing Without Ping (Using the following reference)

If you don’t have a box to target that should respond to ping, you can try running a port scan to see if you can at least reach the machine.

# nmap -PN <something_on_right_subnet>

Monitoring traffic

While you’re running your ping or nmap, you can view the traffic with tcpdump.

# tcpdump -n host <RIGHT_PUBLIC_IP>

If you don’t see ESP packets in tcpdump, then they aren’t being tunneled. Try:

# tcpdump -n host <something_on_right_subnet>

If that shows ICMP (or other if using nmap) packets, then you’re sending packets around the tunnel.

VERY Useful Tip:

If the Tunnel didn’t come up after the configuration, just restart the server and also start the ping from your LAN host to other side LAN host.

Please Remember me in your prayers!

Enjoy 🙂

References:

1) http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenario2.html
2) https://gist.github.com/winhamwr/2871257
3) http://stackoverflow.com/questions/21761830/site-to-site-openswan-vpn-tunnel-issues-with-aws
4) http://clauseriksen.net/2011/02/02/ipsec-on-debianubuntu/
5) http://blog.earth-works.com/2013/02/22/how-to-set-up-openswan-l2tp-vpn-server-on-centos-6/
6)https://raymii.org/s/tutorials/IPSEC_L2TP_vpn_on_CentOS_-_Red_Hat_Enterprise_Linux_or_Scientific_-_Linux_6.html
7)http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch35_:_Configuring_Linux_VPNs#.U1tZZ-aSwuj
8) http://www.whiteboardcoder.com/2012/12/amazon-aws-vpc-iptables-and-nat-route.html

Posted on Leave a comment

Xây dựng hệ thống Raid hoàn chỉnh

Xây dựng hệ thống raid cho Server là một trong những công việc rất quan trọng của những IT quản trị các hệ thống mạng máy tính. Tùy vào quy mô và ứng dụng của mỗi Server mà ta xây dựng hệ thống Raid cho phù hợp và ổn định dựa trên các yếu tố tốc độ, an toàn dữ liệu, tính linh hoạt trong thay thế bảo trì….
Tôi đã đọc qua rất nhiều các bài viết của nhiều diễn đàn diễn giải về hệ thống RAID tuy nhiên tôi cảm thấy rất khó hiểu cho các bạn mới vào nghề quản trị, trong bài viết này tôi sẽ cố gắng dùng những từ ngữ thật đơn giản cho các bạn hiểu đầy đũ hơn.

1. Phân biệt RAID:

Lúc tôi còn là sinh viên, vì cơ sở vật chất nhà trường còn ” khiêm tốn ” nên các bài LAB thường làm trên máy ảo và chỉ làm Raid ” mềm ” trên WinDows, vô cùng đơn giản vì máy ảo muốn tạo bao nhiêu ổ cứng mà chẳng được. Từ đó tôi có hai suy nghĩ thế nào là Raid cứng và thế nào là Raid mềm mà các tài liệu hay đọc họ thường nói đến. Vậy là tôi suy nghĩ liền Raid mềm là Raid thông qua hệ điều hành hoặc phần mềm chạy raid, còn Raid cứng là có thiết bị phần cứng hỗ trợ -> điều này đúng hay sai ?????

Xin thưa: hoàn toàn sai …….. tôi vẫn chưa nhận ra điều này cho đến khi thực sự nghiên cứu về raid.

Raid đươc viết tắc từ: Redundant Array of Independent Disks

Raid cứng là Raid dùng phần cứng điều khiển và ta có thể vào giao diện giao diện phần mềm của card Riad để tạo các mảng Raid mà không phải dùng bất kỳ phần mềm nào như Windows , Linux ,……

Raid Onboard cũng là Raid cứng nếu nó dùng chip điều khiển Raid, Raid CPU ( chíp )tích hợp trên mainboard, nó là một tùy chọn rẻ tiền kiểu add- in . Nó có những tính năng như những card raid. Tuy nhiên, những Card Raid chuyên dụng cung cấp nhiều tính năng nâng cao, mở rộng cao hơn nhiều so với Raid onboard, cung cấp chia mảng cực lớn hàng trăm TB, vận hành tốt hơn rất nhiều.

Tóm lại :

Raid cứng phải hội tụ các yếu tố sau :
– on-board I / O cho bộ vi xử lý (CPU)
– on-board XOR off-load engine
– Cache memory

Ngoài ra, nó còn có chức năng cấu hình Raid, bảo vệ dữ liệu khi boot hệ thống.
Một số Card Raid cứng rẻ tiền sử dụng Cache Memory hệ thống ( không dùng trên Card ) vẫn gọi là Raid cứng.

Raid Mềm: là các trường hợp còn lại của raid cứng, với một thông tin duy nhất ” nếu card raid đó hoặc mainboard đó hỗ trợ raid nhưng lại không có CPU riêng để xử lý raid thì nó là raid mềm “.

Giải thích cho câu nói trên là chúng ta có những card raid gắn rời, hoặc hỗ trợ trên mainboard nhưng lấy CPU và RAM của PC/Server đó để điều khiển hệ thống thì vẫn gọi là RAID mềm.

Các thành phần trên Mainboard của Server .


 

Các card raid mẫu ( cứng hay mềm thì các bạn tự phân biệt nhé :lol: )

2. Các dạng raid:

HOST RAID: là các dạng raid mà thiết bị hỗ trợ, ta sẽ tìm hiểu Host raid như sau:

Raid 0:

– Đây là dạng RAID cơ bản nhất, dữ liệu được ghi xen kẽ với mục đích để tăng cường tốc độ truy cập dữ liệu trong ổ cứng . Nó làm việc bằng cách chia những file ghi trên đĩa thành nhiều mẩu ( gọi là xen kẽ ) và ghi những mẫu này trên những ổ cứng khác nhau . Ví dụ nếu bạn có file với dung lượng 200KB và 02 ổ đĩa cứng , nó sẽ cắt thành hai mẩu 100KB mỗi một mẩu ghi trên ổ cứng khác nhau. Bạn hãy so sánh khi chép 2 GB dữ liệu lên 1 ổ cứng và 2 gb dữ liệu lên 2 ổ cứng thì thời gian sẽ như thế nào ? từ đó hình dung cho 2 TB.

– Dung lượng tổng cộng của ổ cứng trong hệ thống raid 0 bằng tổng dung lượng của hai ổ đĩa . Nếu chúng ta dùng 02 ổ cứng 80GB thì hệ thống đĩa của chúng ta là 160GB . Do đó nếu bạn muốn tăng hiệu suất làm việc của hệ thống thì bạn có thể xem xét việc mua 02 ổ cứng dung lượng nhỏ và thiết lập cấu hình hệ thống dùng RAID0 thay thế cho việc mua 01 ổ cứng có dung lượng lớn .

Raid 1 :

– Đây cũng là dạng RAID cơ bản nhất có khả năng đảm bảo an toàn dữ liệu. RAID 1 đòi hỏi ít nhất hai đĩa cứng để làm việc. Dữ liệu được ghi vào 2 ổ giống hệt nhau (Mirroring). Trong trường hợp một ổ bị trục trặc, ổ còn lại sẽ tiếp tục hoạt động bình thường. Bạn có thể thay thế ổ đĩa bị hỏng mà không phải lo lắng đến vấn đề thông tin thất lạc.

– Đối với RAID 1, hiệu năng không phải là yếu tố hàng đầu như raid 0. Tuy nhiên đối với quản trị mạng hoặc những ai phải quản lý nhiều thông tin quan trọng thì hệ thống RAID 1 là thứ không thể thiếu. Dung lượng cuối cùng của hệ thống RAID 1 bằng dung lượng của ổ đơn (hai ổ 250GB chạy RAID 1 sẽ cho hệ thống nhìn thấy duy nhất một ổ RAID 250GB).

Các dạng Raid khác:

– Khi các bạn hiểu rõ hai dạng raid 0 và raid 1 rồi thì các dạng khác cũng tương tự trên nguyên lý này nhưng có sự thay đổi ở đây là ghi và lưu trên nhiều ổ đĩa, tôi giả dụ raid 5 với 4 ổ đĩa sẽ được ghi và lưu theo nguyên lý sau:

Theo hình chúng ta thấy hai vấn đề là ghi dữ liệu lên nhiều ổ cứng và lưu chúng vào 1 nơi và luân phiên diễn ra liên tục.


3.Hướng dẫn xây dựng hệ thống RAID:

Để có hệ thống RAID trong máy tính , ta cần hai điều :

– Có phần điều khiển RAID .
– Ít nhất hai ổ cứng trở lên.

Phần Điều khiển RAID (Raid Controller):

Đầu tiên chúng ta kiểm tra xem trên Mainboard có tích hợp phần điều khiển RAID hay không . Để làm được điều này tốt hơn hết chúng ta nên đọc sách hướng dẫn đi kèm theo Maiboard . Hoặc cũng có thể xem Chipset của Mainboard – loại South Bridge ( hay được gọi là ICH , I/O Controller Hub đối với Chipset của Intel ) có chữ R thì có nghĩa là hỗ trợ RAID . Ví dụ Chip ICH7 thì không có nhưng ICH7R thì có tính năng này . Tương tự như thế đối với những nhà sản xuất khác . Ví dụ VIA VT8237R thì có RAID , những VT8237 thì không có.

Có một vài nhà sản xuất gọi RAID theo tên gọi do họ đặt ra như “Intel Matrix Storage” hoặc “nVidia MediaShield Storage” hoặc đại loại như vậy .

Nhiều Mainboard có những Chip thêm vào cung cấp nhiều cổng dùng cho ổ cứng của các hãng như : SiliconImage, JMicron, Marvell, Promise và HighPoint . Thông thường những Chip thêm vào này có tích hợp với phần điều khiển RAID . Do đó nếu những Chipset của Mainboard không hỗ trợ RAID nhưng những Chip thêm vào thì lại có , lúc đó thì bạn phải cài ổ cứng vào cổng gắn với Chip này mà không dùng cổng ổ cứng từ Chipset South Bridge.

Chúng ta xem chi tiết Mainboard Intel D975XBX2, Mainboard này có 08 cổng SATA II trong đó : 04 cổng được điều khiển bởi Chipset (Intel 975XBX, dùng ICH7R SouthBridge) và 04 cổng được điều khiển bởi Chip Marvell 88SE6145 . Cả hai Chip này đều có tích hợp điều khiển RAID , nhưng nếu Chipset dùng loại SouthBridge khác ( ví dụ ICH7 ) thì chúng ta dùng RAID ở 04 cổng SATA II phụ từ Marvell 88SE6145 .

Trong tình huống trên chúng ta có 02 Chip cho phép dùng RAID nên những ổ cứng phải được lắp theo nhóm cổng . Intel dùng màu đen trên cổng SATA nối với Chipset và màu xanh nước biển trên cổng SATA nối với Chip thêm vào . Do đó 02 ổ cứng của chúng ta phải cắm trên cổng cùng một màu . Đối với Mainboard mà Chipset có sẵn RAID thì chúng ta hay thích sử dụng những cổng này để nối với ổ cứng ( trong hình trên là cổng màu đen ) .

Lắp đặt phần cứng

Quá trình lắp cài đặt RAID được chia thành 03 phần :

– Lắp đặt phần cứng , lúc đó chúng ta cắm ổ cứng vào máy tính của mình vào những chỗ mà sẽ hỗ trợ cho hệ thống RAID .
– Cấu hình RAID chúng ta thiết lập hệ thống để dùng 02, hoặc nhiều ổ cứng như là một mảng RAID .
– Cài đặt hệ điều hành , chúng ta cần hệ điều hành tải Driver riêng biệt để nhận ra mảng RAID.

Một điều cần chú ý , nếu có dữ liệu quan trọng trên ổ đĩa thì phải Backup trước vì trong quá trình cài đặt hệ thống RAID mọi dữ liệu trên ổ cứng trước kia sẽ bị xoá hoàn toàn .

Việc cắm ổ cứng là điều vô cùng đơn giản : cài ổ cứng vào máy , nối dây nguồn vào mỗi ổ cứng , cắm cable tín hiệu của ổ cứng vào cổng ổ cứng tương ứng trên Mainboard ( nếu Mainboard không hỗ trợ RAID thì phải mua Card điều khiển RAID và nối cable tín hiệu ổ cứng vào Card đó ) . Tất nhiên tất cả công việc trên thực hiện trong lúc máy tính tắt.

Một điều quan trọng để dùng những cổng mà có thể mang lại hiệu quả cao nhất là ổ cứng của chúng ta cũng phải đạt được đúng tính năng kỹ thuật của nó . Có hai chuẩn ổ cứng chính hiện nay là PATA ( hay còn gọi là IDE ) và SATA . Cổng PATA ngày nay ít được sử dụng và cổng SATA là chuẩn đang được thông dụng . Nếu lắp ráp hệ thống mới chúng ta không nên dùng ổ đĩa chuẩn PATA .

PATA có thể còn hai tốc độ ATA100 và ATA133 . Hiển nhiên tốt nhất chúng ta nếu dùng loại ổ cứng này thì dùng ổ ATA133 cùng với cổng ATA133 . Để tăng hiệu suất cao nhất không nên hai ổ cứng dùng chung một Cable ở chế độ Master và Slave và nên mỗi ổ dùng Cable riêng với chế độ Master . Thật không may mắn những Mainboard mới không có nhiều hơn hai kênh IDE trên Mainboard nên việc lựa chọn dùng những ổ cứng PATA là điều bất khả kháng.

Chúng ta cũng không nên quên rằng cổng PATA cũng có thể hỗ trợ RAID

Ở hình trên cổng PATA không được điều khiển bằng Chipset mà được điều khiển bởi Chip thêm vào để hỗ trợ RAID là GigaRAID.

Do PATA dần dần bị loại bỏ khỏi hệ thống nên chúng ta tập trung và SATA .

SATA có thể có hai tốc độ : SATA I ( 1.5Gbps) và SATA II ( 3 Gbps) . Tốt nhất là ổ cứng SATA II nối với cổng SATA II trên Mainboard .

Việc cài đặt rất dễ dàng . Nối một Cable SATA, cable nguồn SATA và ổ cứng.

Đầu còn lại của Cable SATA cắm tới cổng SATA trên Mainboard . Cách tổ chức tốt nhất là dùng những cổng có số nhỏ trước . Ví dụ nếu cổng trên Mainboard dùng Chipset SouthBridge ICH6 có ghi SATA0, SATA1, SATA2 và SATA3 . Chúng ta sẽ dùng cổng SATA0 và SATA1 . Nên nhớ rằng bạn phải cắm Cable vào cổng mà hỗ trợ RAID trên Mainboard ( hoặc trên Card điều khiển RAID cắm thêm )

Cấu hình RAID

Nếu dùng những cổng điều khiển ổ cứng bằng Chipset hỗ trợ RAID , đầu tiên chúng ta vào Setup của Mainboard và cấu hình chúng thành RAID để thay thế IDE .
Đối với cấu hình khi chọn IDE thì chúng làm việc như cổng IDE thông thường , nếu chọn cấu hình là RAID là cho phép chúng làm việc như kiểu hệ thống RAID.
Trên thực tế nếu chúng ta không thay đổi cấu hình thành RAID thì hệ thống của chúng ta không xuất hiện cấu hình RAID này trong quá trình POST , bởi vì ngăn chặn chúng ta thiết lập cấu hình lung tung trong hệ thống .

Do đó vào Setup của Mainboard ( bằng cách bấm phím Del sau khi bật máy tính ) để thay đổi sự lựa chọn này . Trong lựa chọn của Mainboard chọn Advanced , Drive Configuration, “Configure SATA As” . Phần lựa chọn này tuỳ thuộc vào nhà sản xuất.

Sau khi thay đổi cấu hình này , bạn cần lưu lại sự thay đổi và thoát ra ngoài

Cấu hình RAID bằng cách bấm phím trong quá trình POST (Power-On Self Test) . Dùng tổ hợp phím nào để vào phần đặt cấu hình cho RAID sẽ xuất hiện trên màn hình trong quá trình POST và phụ thuộc tuỳ theo nhà sản xuất Chip như :
Marvell là Control – M,
SiliconImage là Control – S,
JMicron là Control – J
……..
Trong trường hợp Mainboard dùng 02 Chip để hỗ trợ RAID sẽ có hai ví dụ như một RAID dùng cho Chipset và một RAID khác dùng Chip Marvell 88SE6145 , thì sẽ xuất hiện hai hiển thị cho việc lựa chọn này .
Khi nối hai ổ cứng với phần điều khiển RAID bằng Chipset theo hình dưới đây và bấm Ctrl-I để vào cấu hình hệ thống RAID

Trên màn hình sẽ xuất hiện khác nếu khi cắm ổ cứng vào Chip Marvell để điều khiển RAID , để vào cấu hình hệ thống RAID bấm Ctrl-M

Đối với hệ thống RAID dùng Chipset Intel sau khi bấm Ctrl-I trên màn hình sẽ xuất hiện như sau

M��i tiện ích rất đơn giản và dễ sử dụng . Trong ví dụ của chúng ta trên màn hình xuất hiện những thông tin về những ổ cứng cắm trong máy tính .

Đầu tiên chọn Create RAID Volume , để thiết lập hệ thống RAID theo hình dưới đây

Ở đây chúng ta sẽ phải cấu hình như sau :

Volume Name : hệ điều hành sẽ truy cập vào RAID thông qua tên này .
RAID Level : kiểu RAID mà bạn muốn , RAID0 , RAID1 , hoặc những kiểu RAID khác phụ thuộc vào Chip điều khiển RAID .
Disks : chọn những đĩa mà bạn muốn trong mảng RAID
Strip size : kích thước của mẩu dữ liệu mà hệ thống RAID sẽ sử dụng .
Capacity : có thể cấu hình dung lượng thấp hơn nếu như chúng ta tạo nhiều RAID Volume ( giống như khái niệm “partition”trong mảng RAID , có nghĩa là có thể tạo hai hoặc nhiều ổ RAID ) .

Ví dụ nếu mảng có dung lượng 160GB , chúng ta cấu hình 100GB cho RAID còn 60GB còn lại làm việc như một ổ cứng độc lập tách rời .
Sau khi bấm “Create Volume” , trên màn hình xuất hiện hỏi việc khẳng định cho công việc này và thông báo dữ liệu trên ổ cứng sẽ bị xoá . Bấm “Y” và RAID được thiết lập

Sau đó trên màn hình xuất hiện về việc tạo xong hệ thống RAID

Cài đặt hệ điều hành

Bây giờ bạn cần cài hệ điều hành sau khi khai báo xong cấu hình RAID của phần cứng . Chúng ta sẽ cài hệ điều hành Windows XP.

Cho đĩa CD cài đặt Windows XP vào ổ CDROM , khởi động máy tính cho phép ổ CD khởi động trước. Có một vấn đề là Windows XP không tự động nhận ra hệ thống RAID , do đó nó nghĩ rằng máy tính không có ổ cứng cài đặt như thông báo theo hình dưới đây

Lúc này bạn cần phải có đĩa mềm mà chứa phần Driver của RAID . Phần Driver của RAID được chứa trong đĩa CD-ROM đi kèm theo Mainboard khi mua , hoặc theo Card kèm thêm điều khiển RAID . Ứng dụng này được nằm theo thư mục gọi là RAID hoặc tương tự như vậy .

Thông thường thì chúng là file nén nên chúng ta phải giải nén và chạy File có phần mở rộng là .exe , nó sẽ yêu cầu chèn đĩa mềm trắng vào ổ mềm và tạo thành đĩa cần thiết để sử dụng .

Nếu bạn không có đĩa CD này thì cần tải trên trang Web của nhà sản xuất Mainboard hoặc Chipset .

Khi Windows XP bắt đầu khởi động việc cài đặt, quá trình LOAD bắt đầu xảy ra, chúng ta sẽ theo dõi khi có dòng thông báo “Press F6 if you need to install a third party SCSI or RAID driver…” thì bấm ngay phím F6 và chèn đĩa mềm vừa tạo vào ổ mềm .

Tự bản thân Windows không xác định được vị trí của Driver RAID như hình dưới đây

Khi màn hình xuất hiện như trên bạn bấm phím “S” để chọn từ ổ mềm Driver mà Windows sẽ tải, như hình dưới :

Trong trường hợp ví dụ trên , hãy chọn “Intel (R) 82801GR/GH SATA RAID Controller (Desktop ICH7R/DH)” – do chúng ta dùng Chip ICH7R.

Sau khi chọn Driver trên màn hình sẽ hiển thị Driver sẽ được cài đặt như hình dưới

Từ bây giờ Windows sẽ nhận ra mảng RAID chính xác của nó . Chúng ta dùng hệ thống RAID0 với 02 ổ cứng 80 GB và Windows sẽ nhận dạng 160 GB như hình dưới đây

Chúng ta nên lưu ý số hiển thị trên màn hình nhiều khi sẽ thấp hơn một chút . Ví dụ ổ cứng dung lượng 80GB thông thường nhận 74.53GB , đó là nguyên nhân tại sao nhìn thấy 150GB mà không phải là 160GB .

Bây giờ cho phép quá trình cài đặt Windows như bình thường , cài đặt các Driver phần cứng đi kèm theo và cài những chương trình phần mềm ứng dụng cần thiết để sử dụng .

Như tôi đã nói ở trên phần mềm điều khiển RAID đi kèm với thiết bị nên có thể cài chương trình theo dõi hệ thống RAID.

Phần mềm quản lý của tôi có tên là Intel Matrix Storage Manager, nó cho phép bạn xem tổng quát hệ thống RAID và kiểm tra trạng thái RAID nếu chúng ta dùng nhiều ổ cứng trong hệ thống

Chúc các bạn thành công với hệ thống RAID của mình.

Bài viết được tổng hợp từ nhiều nguồn thông tin và chỉnh sửa theo ý kiến chủ quan của tác giả

Nguyễn Thượng Triều

Posted on Leave a comment

How to map Google Drive on CentOS

I am learning around with grive, a third party Google Drive client.  It’s pretty cool, but the instructions are based on an Ubuntu install.  I had an interesting time setting it up on CentOS 6.3 64bit, so I decided to share what I learned.

First, get connected EPEL and all repositories,

#yum update
#yum install json-c* expat* curl* 
# rpm -i http://www.mirrorservice.org/sites/dl.atrpms.net/el6.3-x86_64/atrpms/testing/cmake-2.8.4-1.el6.x86_64.rpm
# git clone git://github.com/Grive/grive.git
# cd grive
# cmake .
# make

If there are errors, just install new Boost version follow:

http://thoaimedia.com/install-boost-1-55-0-version-on-centos/

after that you give build again:

#cd ./grive  # grive repo is already checked out here
#git clean -fdx  
#cmake .
#make
[root@mrcool]# cp ./grive/grive /home/mrcool/GoogleDrive/
[root@mrcool]# cd /home/mrcool/GoogleDrive/
[root@mrcool GoogleDrive]# ./grive -a

Please go to this URL and get an authentication code:

https://accounts.google.com/o/oauth2/auth?……..


Please input the authentication code here: 
xxxxxx
Reading local directories
Synchronizing folders
Reading remote server file list
Synchronizing files
sync ./grive doesn't exist in server, uploading

Finished!

Posted on Leave a comment

Install Boost 1.55.0 version on CentOS

Boost

Issue the following commands in the shell (don’t type $; that represents the shell’s prompt):

$ cd path/to/boost_1_55_0
$ ./bootstrap.sh --help

Select your configuration options and invoke ./bootstrap.sh again without the --help option. Unless you have write permission in your system’s /usr/local/ directory, you’ll probably want to at least use

$ ./bootstrap.sh --prefix=path/to/installation/prefix

to install somewhere else. Also, consider using the --show-libraries and --with-libraries=library-name-list options to limit the long wait you’ll experience if you build everything. Finally,

$ ./b2 install

will leave Boost binaries in the lib/ subdirectory of your installation prefix. You will also find a copy of the Boost headers in the include/ subdirectory of the installation prefix, so you can henceforth use that directory as an #include path in place of the Boost root directory.

 

My complete commands:

wget http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.gz/download
tar -xvzf boost_1_55_0.tar.gz
cd boost_1_55_0/
./bootstrap.sh --with-libraries=atomic,date_time,exception,filesystem,iostreams,locale,program_options,regex,signals,system,test,thread,timer,log
./b2 install
Posted on Leave a comment

Install qmake on CentOS

CentOS 6.4

cd /etc/yum.repos.d
nano qk.repo

# Place this in a file in your /etc/yum.repos.d/ directory with a qt.repo extension 

[epel-qt48] name=Software Collection for Qt 4.8 baseurl=http://repos.fedorapeople.org/repos/sic/qt48/epel-$releasever/$basearch/ enabled=1 skip_if_unavailable=1 gpgcheck=0 [epel-qt48-source] name=Software Collection for Qt 4.8 - Source baseurl=http://repos.fedorapeople.org/repos/sic/qt48/epel-$releasever/SRPMS enabled=0 skip_if_unavailable=1 gpgcheck=0 
yum install qt48-qt-webkit-devel
ln -s /opt/rh/qt48/root/usr/include/QtCore/qconfig-64.h  /opt/rh/qt48/root/usr/include/QtCore/qconfig-x86_64.h
source /opt/rh/qt48/enable
export PATH=/opt/rh/qt48/root/usr/lib64/qt4/bin/${PATH:+:${PATH}}
Posted on Leave a comment

How To Install Tomcat 7.0.52 Server on CentOS & RedHat 5/6

Apache Tomcat is an opensource webserver product of Apache Foundation like Apache HTTP server. It is used to deploying Java Servlet and JSP applications. To deploy any application in Tomcat we can simply create a war file and deploy them. For more details about you can visit apache official site http://tomcat.apache.org/ .

tomcat-apache-software-foundation

This article will help you to install Apache Tomcat 7 on CentOS/RHEL servers. We are using CentOS 6.5 and installing Apache tomcat 7. To read more about this release read Tomcat Release Notes.

Step 1: Check JAVA

JAVA is the first requirement of tomcat installation. Use following command to check if you have java installed already on your system.

# java -version

If you do not have java installed, Use this guide to install Java.

Step 2: Download and Extract Tomcat Archive

Download Apache tomcat archive file from Apache tomcat official site using below download url
Download URL: http://tomcat.apache.org/download-70.cgi

# cd /opt
# wget http://www.eu.apache.org/dist/tomcat/tomcat-7/v7.0.52/bin/apache-tomcat-7.0.52.tar.gz

After competed download extract archive file in /opt directory. You may change this location as per your setup.

# tar xzf apache-tomcat-7.0.52.tar.gz
Step 3: Start Tomcat Service

Tomcat is very easy to use, There are no need to compile its source. You simple extract the archive and start the tomcat server. Tomcat by default start on port 8080, So make sure no other application using the same port.

# cd apache-tomcat-7.0.52
# ./bin/startup.sh

[Sample Output]

Using CATALINA_BASE:   /opt/apache-tomcat-7.0.52
Using CATALINA_HOME:   /opt/apache-tomcat-7.0.52
Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.52/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /opt/apache-tomcat-7.0.52/bin/bootstrap.jar:/opt/apache-tomcat-7.0.52/bin/tomcat-juli.jar
Step 4: Access Tomcat in Browser

Tomcat server works on port 8080 default. Access tomcat on web browser by connecting your server on port 8080.

http://svr2.tecadmin.net:8080

apache-tomcat-setup

Step 5: Setup User Accounts

Finally we need to create user accounts to secure and access admin/manager pages. Edit conf/tomcat-users.xml file in your editor and paste inside <tomcat-users> </tomcat-users> tags.

# user manager can access only manager section.
<role rolename="manager-gui" />
<user username="manager" password="_SECRET_PASSWORD_" roles="manager-gui" />

# user admin can access manager and admin section both.
<role rolename="admin-gui" />
<user username="admin" password="_SECRET_PASSWORD_" roles="manager-gui,admin-gui" />

I hope above steps will help you to setup tomcat on your server.

Thanks

Posted on Leave a comment

How to Resize the Root Partition in Linux on Amazon EC2

Check the Root Partition size before resize:

df -h

1The current root partition size is ~8 GB.

After that, stop your instance:

sudo poweroff

2

Go to Volumes on the left-hand EC2 navigation control panel.Right-click on the volume you want to resize and select Create Snapshot.

3Note: Make sure you also check the availability zone.

Fill out the details of the snapshot you are creating.

4

Go to Snapshots on the left-hand EC2 navigation control panel.Right-click on the snapshot you created and select Create Volume from Snapshot.

5

Enter the new size of the partition that you would like to be, select the same availability zone in which your instance is running and click Yes,Create.

6

Go back to the Volumes in the EC2 control panel. Select the old root volume, right click on it and select Detach Volume.

7

Now right click on the new volume that we have just created and select Attach Volume.

8

Please make sure that the volume should be attached as /dev/sda1:

9

Now turn on your instance. Make a note of your partition name, in my case it is /dev/xvda1. Type the resize2fs /dev/xvda1 command.

sudo resize2fs /dev/xvda1

10

After that view the new root partition size.

df -h

11

Yes, it’s work

Hope this will help you!

Please Remember me in your prayers!

Posted on Leave a comment

OpenVPN server on CentOS 6.4 behind NAT

This tutorial describes that how to configure the OpenVPN Server in CentOS 6.4 and clients in Windows XP/7.

I am taking the scenario of SOHO network, which is protected by Firewall, we’ll implement the OpenVPN on internal CentOS 6.4 server to access the internal SOHO network (Server and PCs) through the internet from anywhere securely.

openvpn

Before starting this tutorial, we need to install the RPMforge and EPEL repositories:

RPMforge Installation:

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm -K rpmforge-release-0.5.2-2.el6.rf.*.rpm
rpm -i rpmforge-release-0.5.2-2.el6.rf.*.rpm
yum repolist

EPEL Installation:

wget http://ftp.riken.jp/Linux/fedora/epel/RPM-GPG-KEY-EPEL-6
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm --import RPM-GPG-KEY-EPEL-6
rpm -ivh epel-release-6-8.noarch.rpm
yum repolist
OpenVPN Server Installation:

Install the openvpn package using the following command:

yum install openvpn easy-rsa

1

Make the openvpn service to start automatically on boot:

chkconfig openvpn on

1a

Make an easy-rsa/keys directory inside /etc/openvpn:

mkdir -p /etc/openvpn/easy-rsa/keys

2

Copy the default easy-rsa into /etc/openvpn for setting up Certificate Authority (CA), certificates and keys generation for OpenVPN server and clients:

cp -rf /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa

3

Edit /etc/openvpn/easy-rsa/vars:

cd /etc/openvpn/easy-rsa/
vi vars

4

Edit these parameters according to your need:

export KEY_COUNTRY="US"
export KEY_PROVINCE="NC"
export KEY_CITY="Winston-Salem"
export KEY_ORG="Example Company"
export KEY_EMAIL="me@example.com"

5

Move to the /etc/openvpn/easy-rsa/ and enter these commands:

cd /etc/openvpn/easy-rsa/
cp openssl-1.0.0.cnf openssl.cnf
source vars
./clean-all

6

Now, generate the CA certificate and key:

./build-ca

7

Next, generate a server certificate and private key:

./build-key-server tendo

8Note: tendo is my server name in above command, you can use your server name here.

For OpenVPN server,Diffie Hellman parameters are must:

./build-dh

9

Copy all the certificates and keys into /etc/openvpn/ from /etc/openvpn/easy-rsa/key/ subdirecotory:

cd keys/
cp ca.crt tendo.crt tendo.key dh1024.pem /etc/openvpn/

10

Create a /etc/openvpn/server.conf file and enter the certificates and keys information that we have created above:

vi /etc/openvpn/server.conf

11

Here is my server.conf file as an example, you can change it according to your requirement:

port 1194
proto udp
dev tun
ca ca.crt
cert tendo.crt
key tendo.key # This file should be kept secret
dh dh1024.pem
#VPN subnet for OpenVPN to draw client addresses from.
server 172.16.10.0 255.255.255.0
ifconfig-pool-persist ipp.txt
#Push routes to the client to allow it to reach other 
#private subnets behind the server.
push "route 10.10.10.0 255.255.255.0"
#If you want that all of your Internet traffic pass 
#through the VPN server then enable this
;push "redirect-gateway def1 bypass-dhcp"
# For name resolution, enable this
;push "dhcp-option DNS 10.10.10.254"
client-to-client
keepalive 10 120
comp-lzo
max-clients 10
persist-key
persist-tun
status openvpn-status.log
verb 5
mute 20

12

Now, start the OpenVPN server:

service openvpn start

13Note: Forward udp port 1194 to your internal OpenVPN server on edge firewall.

Client Certificates:

VPN client also need a certificate to authenticate itself to the server. Using the root user, create the different certificate for each client:

cd /etc/openvpn/easy-rsa/
./build-key rblaptop

14Note: rblaptop is my vpn client name in above command, you can use your client name here.

Copy these files to the client machine using winscp or any other method:

1) /etc/openvpn/ca.crt
2) /etc/openvpn/easy-rsa/keys/rblaptop.crt
3) /etc/openvpn/easy-rsa/keys/rblaptop.key

Your files name will be differ, so adjust them as per your need.

OpenVPN Client Configuration on Windows Machine:

Download free OpenVPN client for windows from here, and install it. Below is the step by step procedure to configure this OpenVPN client in order to connect to the OpenVPN server that we have configured above:

1

2

3

4

5

6

7

8

9

10

11

Check the routing table on client machine:

netstat -r

12

Ping to the OpenVPN internal ip:

13

For internal host, the ping will be failed because internal host doesn’t know about this vpn pool. To overcome this problem, we need to configure NAT on OpenVPN server:

Edit the /etc/sysctl.conf file:

vi /etc/sysctl.conf

15

Enable IP forwarding by changing “net.ipv4.ip_forward” line to 1:

net.ipv4.ip_forward=1

16

Create an iptables rule to allow the proper routing of VPN subnet.

iptables -t nat -A POSTROUTING -s 172.16.10.0/24 -o eth0 -j MASQUERADE
service iptables save
service iptables restart

17

Reboot the server or issue this command to load the change:

sysctl -p

Ping to the internal host again:

14

Success 
Hope this will help you!

Please Remember me in your prayers

Posted on Leave a comment

Backup to Amazon S3 Bucket from CentOS 6.4

In this tutorial I’ll make mysql db backup and then upload it to AMAZON S3 Bucket using S3CMD tool and bash script. The script will also create the separate folder automatically for each day inside the bucket.

Before starting this tutorial, we need to install the EPEL for s3cmd tools:

wget http://ftp.riken.jp/Linux/fedora/epel/RPM-GPG-KEY-EPEL-6 
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm --import RPM-GPG-KEY-EPEL-6
rpm -ivh epel-release-6-8.noarch.rpm
yum repolist

Switch to the root user:

sudo su -

1

Install the s3cmd tools:

yum install s3cmd

2

After installation, run the following command in order to configure the s3cmd tools using your AMAZON ACCESS KEY and SECRET KEY.

s3cmd --configure

3

It is always a good practice to create a separate scripts directory:

mkdir /script
cd /script
nano mysqlbackuptos3.sh

4

Paste the below code into the script (Please modify the following script to suit your purposes):

#!/bin/bash
#############################################################
# Created by: Thoai Nguyen (thoai.nguyenanh{at}gmail(dot)com) #
#                                                           #                                                                                                                    #
#############################################################
## Specify the name of the database that you want to backup
DATABASE="tendodb"

## USERNAME and PASSWORD to take the backup
USER="arbab"
PASSWORD="PASSWORD"
## Defination of some necessary variables
S3_BUCKET=tendodbbackup
DATE=`date +%A-"(%d.%m.%Y)".%H`
BACKUP_LOC=/tmp/backups
S3BDIR=`date +%d.%A-"(%d.%m.%Y)"`
mysql_backup(){
/usr/bin/mysqldump -u $USER -p$PASSWORD --databases $DATABASE | gzip -9 > $BACKUP_LOC/tendodb_$DATE.sql.gz
 s3cmd ls s3://$S3_BUCKET/$S3BDIR > /tmp/log.txt
 grep -lr "$S3BDIR" /tmp/log.txt
 if [ $? -ne 0 ]
 then
 mkdir /tmp/$S3BDIR
 s3cmd put -r /tmp/$S3BDIR s3://$S3_BUCKET/
s3cmd sync -r $BACKUP_LOC/ s3://$S3_BUCKET/$S3BDIR/
else
 s3cmd sync -r $BACKUP_LOC/ s3://$S3_BUCKET/$S3BDIR/
fi
}
mysql_backup
echo "----------------------------------------------------------------------------------------------" >> /scripts/dbbackup.log
echo "Backup Successfully uploading to the S3 Bucket at `date +%A.%Y%m%d-%H.%M`" >> /script/dbbackup.log
echo "##############################################END#############################################" >> /scripts/dbbackup.log
rm -rf $BACKUP_LOC/* /tmp/$S3BDIR
exit 0

5

Create the backups directory inside the tmp directory (or anywhere else, as per your desire) to hold the mysql backup temporarily before uploading it to the s3 bucket:

mkdir /tmp/backups
chmod 0777 /tmp/backups

6

Verify the access to the bucket, where you want to upload the backup using the following command:

s3cmd ls

7

Give the execute right to the script and run it:

cd /script
chmod +x mysqlbackuptos3.sh
ls
./mysqlbackuptos3.sh

8

This bash script also creates a log file inside the /script directory:

cd /script
ls
cat dbbackup.log

9

Inside the S3 Bucket, it will create the mysql backup like this:

10

To automate this process using the cronjob, enter crontab -e at the shell prompt:

crontab -e

11

Add this line to run the script at midnight every day:

0 * * * * /script/mysqlbackuptos3.sh > /dev/null

12

Enjoy :-)

Hope this will help you!

Please Remember me in your prayers!

Posted on Leave a comment

Install Transmission Daemon on CentOS / Fedora / Ubuntu

Transmission is Torrent / Magnet link client vastly used on Linux, its available for almost all distros.
If you are willing to use it as headless / VM to download torrents with minimal installationon your CentOS / Fedora / RHEL distro following is the packages needs to be installed & configuration required to access transmission as web service.

here 192.168.1.1 is machine transmission daemon
192.168.1.0/24 is lan

CentOS
Install epel repo

rpm -ivh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm
yum -y install transmission-daemon transmission-cli

Fedora

yum -y install transmission-daemon transmission-cli

Ubuntu

apt-get install transmission-daemon transmission-cli

Configure your machine ip / network to allow access to transmission daemon.

Make sure daemon is already stopped, otherwise changes may not work on start / restart.
CentOS

/etc/init.d/transmission-daemon stop
vi /var/lib/transmission/.config/transmission/settings.json
#from
    "rpc-whitelist": "127.0.0.1",
#to
    "rpc-whitelist": "192.168.1.*",

/etc/init.d/transmission-daemon start

Fedora 16
Fedora does not install transmission-daemon as a service.

killall transmission-daemon
vi ~/.config/transmission-daemon/settings.json
#from
    "rpc-whitelist": "127.0.0.1",
#to
    "rpc-whitelist": "192.168.1.*",
transmission-daemon

Ubuntu 11.10

/etc/init.d/transmission-daemon stop
vi /etc/transmission-daemon/settings.json
#from
    "rpc-whitelist": "127.0.0.1",
#to
    "rpc-whitelist": "192.168.1.*",

/etc/init.d/transmission-daemon start

Now you can access transmission using http://192.168.1.1:9091/
Ubuntu may ask for username & password. which is transmission. Thats because of following entry in settings.json
"rpc-authentication-required": false,