khanhnnvn

Perl: Bài 1 – làm quen với Perl

 Perl, Programing  Comments Off on Perl: Bài 1 – làm quen với Perl
Sep 142015
 
  1. Giới thiệu:

Perl viết tắt của từ Partical Extration and Report Language tạm hiểu là ngôn ngữ kết xuất và báo cáo thực dụng. Perl được Larry Wall xây dựng từ năm 1987. Mục đích chính của nó là tạo ra một ngôn ngữ lập trình có khả năng chắt một lượng dữ liệu và cho phép xử lý dữ liệu nhằm thu được kết quả cần tìm.

Perl là một ngôn ngữ thông dụng trong lĩnh vực quản trị hệ thống và xử lý các trang web do có các ưu điểm sau:

+ Có các thao tác quản lý tập tin, xử lý thông tin thuận tiện.

+ Thao tác với các chuỗi ký tự rất tốt.

+ Đã có một thư viện mã lệnh lớn do cộng đồng sử dụng Perl đóng góp (CPAN).

Cú pháp của Perl khá giống với C, từ các ký tự đến tên hàm, do đó, nhiều người đã có kinh nghiệm với C thấy Perl dễ học. Perl khá linh hoạt và cho phép người sử dụng giải quyết cùng một số vấn đề được đặt ra theo nhiều cách khác nhau.

2. Cài đặt Perl

Bước 1:

Bạn truy cập vào địa chỉ http://www.activestate.com/activeperl/downloads và tải bản phù hợp với HĐH của mình.

Bước 2: Thực hiện cài đặt, nếu bạn cài đặt thành công bạn chạy câu lệnh:

perl -v

màn hình sẽ tương tự như sau:

Bước 3: Viết chương trình đầu tiên sử dụng ngôn ngữ Perl

mã nguồn như sau:

thực hiện chay chương trình và kết quả nhu sau:

Vậy là chúng ta đã thực hiện xong các bước đầu tiên.

Mời bạn tham khảo code tại: https://github.com/khanhnnvn/Perl-Basic

Chúc bạn thành công!

Hướng dẫn cài Redmine

 Solution  Comments Off on Hướng dẫn cài Redmine
Sep 122015
 
Redmine là phần mềm nguồn mở hữu ích cho việc quản trị dự án. Redmine có các chức năng: Lập kế hoạch (schedule, estimated effort, assign) Nhập actual effort, tiến độ công việc Tùy biến một số các report để quản lý và theo dõi tiến độ công việc, tạo các reminder để nhắc nhở mình. Trong bài viết này tôi sẽ hướng dẫn cài đặt Redmine trên môi trường máy chủ Ubuntu Server.

 

Bước 1: Cài đặt các gói phần mềm liên quan
– Cài đặt MySQL:

apt-get install mysql-server

– Cài đặt Redmine

apt-get install redmine

– Cài đặt gói hỗ trợ:

apt-get install libapache2-mod-passenger

Bước 2: Cấu hình webserver

ln -s /usr/share/redmine/public /var/www/redmine

chown -R www-data:www-data /var/www/redmine
echo "RailsBaseURI /redmine" > /etc/apache2/sites-available/redmine
a2ensite redmine
/etc/init.d/apache2 reload
/etc/init.d/apache2 restart

Bước 4: Cấu hình thêm module cho Apache

vim /etc/apache2/mods-available/passenger.conf

Thay đổi nội dung như sau:

<IfModule mod_passenger.c>
  PassengerRoot /usr
  PassengerRuby /usr/bin/ruby
  PassengerDefaultUser www-data
</IfModule>

Tạo link

ln -s /var/cache/redmine/default/plugin_assets /usr/share/redmine/public/

Tạo file cấu hình cơ sở dữ liệu:

production:
adapter: mysql
database: redmine
host: localhost
username: root
password: admin123
encoding: utf8

Bước 5: Thực hiện các lệnh sau:

$ rake generate_session_store
$ RAILS_ENV=production rake db:migrate
$ RAILS_ENV=production rake redmine:load_default_data

Bước 6: Chạy lệnh sau:

$ ruby script/server webrick -e production

Chúc mừng bạn đã cài đặt thành công!

Cấu hình sử dụng SSL cho nhiều website sử dụng một địa chỉ IP

 Linux  Comments Off on Cấu hình sử dụng SSL cho nhiều website sử dụng một địa chỉ IP
Sep 122015
 
SSL là viết tắt của từ Secure Sockets Layer. Đây là một tiêu chuẩn an ninh công nghệ toàn cầu tạo ra một liên kết được mã hóa giữa máy chủ web và trình duyệt. Liên kết này đảm bảo tất cả các dữ liệu trao đổi giữa máy chủ web và trình duyệt luôn được bảo mật và an toàn. SSL đảm bảo rằng tất cả các dữ liệu được truyền giữa các máy chủ web và các trình duyệt được mang tính riêng tư, tách rời. SSL là một chuẩn công nghiệp được sử dụng bởi hàng triệu trang web trong việc bảo vệ các giao dịch trực tuyến với khách hàng của họ.

Bước 1: Bạn tiến hành cài đặt các phần mềm liên quan:

apt-get install libapache2-mod-gnutls
a2dismod ssl
a2enmod gnutls
Bước 2: Mở cổng 443 cho giao thức SSL bằng cách cấu hình:
vim /etc/apache2/ports.conf
Chỉnh sửa với nội dung như sau:

<IfModule mod_ssl.c>   
# SSL name based virtual hosts are not yet supported, therefore no   
# NameVirtualHost statement here  
Listen 443</IfModule>

Bước 3:Tạo tập tin ssl.còn với nội dung như sau:

vim /etc/apache2/ssl.conf

NameVirtualHost IP_Address/Domain:443
<VirtualHost IP_Address/Domain:443>
ServerName khanhnn.com.com:443
GnuTLSEnable onGnuTLSCertificateFile /etc/apache2/ssl-certs/secure.khanhnn.com.crt
GnuTLSKeyFile /etc/apache2/ssl-certs/secure.khanhnn.com.key
GnuTLSPriorities NORMAL
DocumentRoot /web/www1</VirtualHost>

Bước 4:
Thêm nội dung sau đây vào file
/etc/apache2/apache2.conf

Include "/etc/apache2/ssl.conf"

Bước 5: Khởi động lại apache và thưởng thức.

 

How to install Zimbra Opensource Collaboration 8 on CentOS 7

 Solution  Comments Off on How to install Zimbra Opensource Collaboration 8 on CentOS 7
Sep 112015
 

1. System Requirements for Zimbra Collaboration

Evaluation and Testing
• Intel/AMD 64-bit CPU 1.5 GHz
• RAM requirements:
• For single server installations, a minimum of 8GB of RAM is required.
• For multi-server installations, contact Zimbra sales for recommendations.
• 5 GB free disk space for software and logs
• Temp file space for installs and upgrades*
• Additional disk space for mail storage Production environments
• Intel/AMD 2.0 GHZ+ 64-bit CPU
• RAM requirements:
• For single server installations, a minimum of 8GB of RAM is required.
• For multi-server installations, contact Zimbra sales for recommendations.
• Temp file space for installs and upgrades*
• 10 GB free disk space for software and logs (SATAor SCSI for performance, and RAID/Mirroring for redundancy)
• Additional disk space for mail storage
*Temp files space: The zimbra-store requires 5GB for / opt/zimbra, plus additional space for mail storage. Theother nodes require 100MB. General Requirements
• Firewall Configuration should be set to “No firewall”.
• RAID-5 is not recommended for installations with more than 100 accounts.

2. Install zimbra

a. Install some pack pre-requisites, we using command:

and remove postfix if it installed.

b. Now we must change hostname, warming we must reboot server after change hostname.

c. Download zimbra from home page, we using command:

then download complete, we extra using command for example

d. Install Zimbra using command:

if you see error on this picture

we install perl-core

Press Yes for confirm install zimbra on your system.

This picture is during install zimbra on centos 7

You should change domain, for example your email is [email protected], you press sysadmin.com.vn

After install, you must config zimbra, one important is password for user admin

Press ‘a’ to next

 

System automatic set default value

And install finish.

You can access webclient from web browse

And this is user interface

Good luck for you 🙂

Linux Server See the Historical and Statistical Uptime of System With tuptime Utility

 Linux  Comments Off on Linux Server See the Historical and Statistical Uptime of System With tuptime Utility
Sep 112015
 

Bạn có thể dùng các công cụ sau trên Linux để kiểm tra các thông tin về hệ thống của mình. Cụ thể các câu lệnh:

  • uptime: Cho ta biết hệ thống đã chạy được bao nhiêu lâu.
  • last: hiển thị thời gian khởi động lại và tắt máy tính.
  • tuptime: Câu lệnh như uptime nhưng cho kết quả rõ ràng hơn.

Các bạn tham khảo hình dưới đây:

Công cụ tuptime

Để cài đặt, bạn có thể dùng các lệnh sau hoặc làm như hình dưới
$ cd /tmp
$ git clone https://github.com/rfrail3/tuptime.git
$ ls
$ cd tuptime
$ ls

Bạn hãy chắc chắn Python đã được cài đặt để chạy các thư viện:

$ sudo tuptime-install.sh

Hoặc bạn có thể chạy các lệnh bằng tay:
$ sudo cp /tmp/tuptime/latest/cron.d/tuptime /etc/cron.d/tuptime
Sao chép dịch vụ mặc định và cho chúng khởi động.
$ sudo cp /tmp/tuptime/latest/systemd/tuptime.service /lib/systemd/system/
$ sudo systemctl enable tuptime.service

$ sudo cp /tmp/tuptime/latest/init.d/tuptime.init.d-debian7 /etc/init.d/tuptime
$ sudo update-rc.d tuptime defaults

Chạy:

Bạn có thể dùng cách chạy đơn giản sau:
$ sudo tuptime
Kết quả sẽ là

Fig.03: tuptime in action

$ sudo tuptime
System startups:	2   since   03:52:16 PM 08/21/2015
System shutdowns:	1 ok   -   0 bad
Average uptime: 	7 days, 16 hours, 48 minutes and 3 seconds
Average downtime: 	2 hours, 30 minutes and 5 seconds
Current uptime: 	5 minutes and 28 seconds   since   06:23:06 AM 09/06/2015
Uptime rate: 		98.66 %
Downtime rate: 		1.34 %
System uptime: 		15 days, 9 hours, 36 minutes and 7 seconds
System downtime: 	5 hours, 0 minutes and 11 seconds
System life: 		15 days, 14 hours, 36 minutes and 18 seconds

Bạn có thể đưa định dạng về ngày tháng năm
$ sudo tuptime -d '%H:%M:%S %m-%d-%Y'

System startups:	1   since   15:52:16 08-21-2015
System shutdowns:	0 ok   -   0 bad
Average uptime: 	15 days, 9 hours, 21 minutes and 19 seconds
Average downtime: 	0 seconds
Current uptime: 	15 days, 9 hours, 21 minutes and 19 seconds   since   15:52:16 08-21-2015
Uptime rate: 		100.0 %
Downtime rate: 		0.0 %
System uptime: 		15 days, 9 hours, 21 minutes and 19 seconds
System downtime: 	0 seconds
System life: 		15 days, 9 hours, 21 minutes and 19 seconds

$ sudo tuptime -e
Kết quả:

Startup:  1  at  03:52:16 PM 08/21/2015
Uptime:   15 days, 9 hours, 22 minutes and 33 seconds
 
System startups:	1   since   03:52:16 PM 08/21/2015
System shutdowns:	0 ok   -   0 bad
Average uptime: 	15 days, 9 hours, 22 minutes and 33 seconds
Average downtime: 	0 seconds
Current uptime: 	15 days, 9 hours, 22 minutes and 33 seconds   since   03:52:16 PM 08/21/2015
Uptime rate: 		100.0 %
Downtime rate: 		0.0 %
System uptime: 		15 days, 9 hours, 22 minutes and 33 seconds
System downtime: 	0 seconds
System life: 		15 days, 9 hours, 22 minutes and 33 seconds

Chúc các bạn thành công !

SET: SOCIAL ENGINEERING TOOLKIT – PHISHING AND E-MAIL HACKING

 Pentest  Comments Off on SET: SOCIAL ENGINEERING TOOLKIT – PHISHING AND E-MAIL HACKING
Sep 112015
 

Như chúng ta đã biết phishing là hình thức gửi những email có nôi dung lừa đảo đến người dùng trong hệ thống. Thực tế cho thấy rằng việc tấn công vào các hệ thống đa số đều từ người dùng cuối. Chúng ta có thể hiểu rằng thay vì tìm ra hay tấn công vào các máy chủ, các tài khoản của người quản trị thì chúng ta tấn công vào những người dùng văn phòng ít bảo mật hơn sau đó dùng các biện pháp leo thang đặc quyền để do thám đánh cắp những thông tin nhậy cảm. Trong bài viết này tôi nói đến việc giả mạo gửi mail khác lỗ hổng bảo mật từ những tài liệu văn bản hay còn gọi là File Format. Bài lab sẽ demo hình thứ giả mạo email, tấn công vào lỗ hổng Word 2007 cho phép hacker gán quyền meterpreter shell và chiếm đoạt hệ thống.

Bước 1: quay trở lại màn hình đầu tiên của “SET”. Nhập vào 1 “Social-Engineering Attacks”

 Bước 2: nhập vào 1 “Spear-Phishing Attack Vectors”

Bước 3: nhập vào 2 “Create a FileFormat Payload” . Tạo payload dưới dạng files văn bản

Bước 4: chọn payload. Ở đây tôi chọn 5. Tấn công vào lỗ hổng bảo mật nguy hiểmMS10-087 trên Micsosoft Office 2003 – 2010

Chọn tiếp 2 để tạo meterpreter reverse_shell

Gõ tiếp địa chỉ IP Attacker , port listener

Bước 5: chọn 2 đổi tên files . Ở đây tôi sẽ đổi tên files gửi cho nạn nhân là daily.doc

Bước 6: trong bước này để tấn công hàng loạt email chọn 2. Nhưng tôi chỉ demo 1email nên chọn 1.

Bước 7:1 chọn mẫu template đã có sẵn. Tôi chọn mẫu status reports

chọn 10. Status Report

Bước 8: thiết lập các giá trị gửi, người nhận, smtp.

Chọn 2: gửi bằng SMTP replay . Option 1 hiện nay khó hoạt động vì Gmail đã chặn.

Listener chọn yes để “SET” tự động khởi động MSF lắng nghe kết nối

Bước 9: Qua máy victim kiểm tra email. Download và Open văn bản

Windows 7-2014-09-06-14-06-30

 

Email đã được gửi đến hòm mail của victim

Windows 7-2014-09-06-14-06-48

 

Download tập tin đính kèm và mở bằng Word 2007 mặc định

Windows 7-2014-09-06-14-07-10

Sau khi mở thấy Word ở trạng thái treo

Windows 7-2014-09-06-14-07-16

 

Quay trờ lại máy của Attacker đã thấy có meterpreter shell.

Kết nối vào session meterpreter . Migrate sang process explorer.exe tránh trường hợp victim tắt Word thì mất kết nối.

Lúc nào Word trên máy nạn nhận  tự động tắt đi và trên máy tính của Attacker đã có meterpreter shell cho phép khai thác tất cả thông tin trên máy nạn nhân. Qua bài viết này các bạn đã thấy được sự nguy hiểm liên quan đến việc tấn công phishing cũng như sự nguy hiểm của những files tài liệu văn bản sử dụng hàng ngày.

Cài đặt Kali Linux Tools sử dụng “Katoolin” trên Ubuntu/Debian

 Linux, Pentest  Comments Off on Cài đặt Kali Linux Tools sử dụng “Katoolin” trên Ubuntu/Debian
Sep 112015
 

Katoolin là một đoạn kịch bản cài đặt các công cụ trên Kali Linux trên hệ điều hành của bạn. Kali Linux là một hệ điều hành nổi tiếng cho việc kiểm tra bảo mật các phần mềm hệ thống.

Trong bài viết này, chúng ta sẽ thực hiện cài đặt trên HĐH Ubuntu Desktop 14.03

Các chức năng chính của Katoolin:

  • Thêm kho phần mềm của Kali Linux
  • Xóa kho phần mềm của Kali Linux
  • Cài đặt Kali Linux Tools

Yêu cầu:

  • Hệ điều hành Ubuntu
  • Python => 2.7.x

Các bước cài đặt:

Bước 1: Cài đặt git và download gói phần mềm Katoolin

# apt-get install git
# git clone https://github.com/LionSec/katoolin.git  && cp katoolin/katoolin.py /usr/bin/katoolin

Kết quả sẽ như sau:

Thực hiện trao quyền cho katoolin có thể thực thi, bạn gõ lệnh sau:

# chmod +x  /usr/bin/katoolin

Kết thúc, bạn có thể chạy bằng câu lệnh:

# katoolin

Kết quả hiện thị sẽ như sau:

Bạn cũng có thể cài đặt bằng cách tải trực tiếp gói cài đặt về:

# wget https://github.com/LionSec/katoolin/archive/master.zip

# unzip master.zip

Bạn chạy bằng cách thực thi katoolin.py như sau:

# cd katoolin-master/
# chmod 755 katoolin.py
#  ./katoolin.py

Chọn 1 để thực hiện cài đặt  hoặc cập nhật

1) Add Kali repositories & Update
2) View Categories
3) Install classicmenu indicator
4) Install Kali menu
5) Help


kat > 1

1) Add kali linux repositories
2) Update
3) Remove all kali linux repositories
4) View the contents of sources.list file


What do you want to do ?> 1
Kết quả
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.DC9QzwECdM --no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver pgp.mit.edu --recv-keys ED444FF07D8D0BF6
gpg: requesting key 7D8D0BF6 from hkp server pgp.mit.edu
gpg: key 7D8D0BF6: public key "Kali Linux Repository <[email protected]>" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

 

What do you want to do ?> 2
Ign http://in.archive.ubuntu.com vivid InRelease
Ign http://security.ubuntu.com vivid-security InRelease
Ign http://in.archive.ubuntu.com vivid-updates InRelease
Get:1 http://security.ubuntu.com vivid-security Release.gpg [933B]
Ign http://in.archive.ubuntu.com vivid-backports InRelease
Get:2 http://repo.kali.org kali-bleeding-edge InRelease [11.9 kB]
Get:3 http://security.ubuntu.com vivid-security Release [63.5 kB]
Hit http://in.archive.ubuntu.com vivid Release.gpg
Get:4 http://repo.kali.org kali-bleeding-edge/main amd64 Packages [8,164 B]
Get:5 http://in.archive.ubuntu.com vivid-updates Release.gpg [933 B]
Get:6 http://repo.kali.org kali-bleeding-edge/main i386 Packages [8,162 B]
Hit http://in.archive.ubuntu.com vivid-backports Release.gpg
...

Nếu muốn xóa bạn chọn tùy chọn 3

What do you want to do ?> 3

All kali linux repositories have been deleted !

Kho của Kali Linux sẽ xóa khỏi /etc/apt/sources.list

Để thực hiện xem bạn chọn tùy chọn 4

What do you want to do ?> 4

#deb cdrom:[Ubuntu 15.04 _Vivid Vervet_ - Release amd64 (20150422)]/ vivid main restricted

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://in.archive.ubuntu.com/ubuntu/ vivid main restricted
deb-src http://in.archive.ubuntu.com/ubuntu/ vivid main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://in.archive.ubuntu.com/ubuntu/ vivid-updates main restricted
deb-src http://in.archive.ubuntu.com/ubuntu/ vivid-updates main restricted
...

Để quay lại bạn gõ lệnh:

What do you want to do ?> back

1) Add Kali repositories & Update
2) View Categories
3) Install classicmenu indicator
4) Install Kali menu
5) Help


kat >

Để quay lại Menu chính bạn gõ lệnh như sau:

kat > gohome

1) Add Kali repositories & Update
2) View Categories
3) Install classicmenu indicator
4) Install Kali menu
5) Help


kat >

 

Bạn cũng có thể sử dụng các chức năng

kat > 2

**************************** All Categories *****************************

1) Information Gathering			8) Exploitation Tools
2) Vulnerability Analysis			9) Forensics Tools
3) Wireless Attacks				10) Stress Testing
4) Web Applications				11) Password Attacks
5) Sniffing & Spoofing				12) Reverse Engineering
6) Maintaining Access				13) Hardware Hacking
7) Reporting Tools 				14) Extra

0) All


Cài đặt Yum Repository Server cho Red Hat và CentOS

 Linux  Comments Off on Cài đặt Yum Repository Server cho Red Hat và CentOS
Sep 092015
 

Trong thực tế, khi cài đặt hoặc cấu hình mới một máy chủ quản trị viên cần kết nối ra Internet để thực hiện chạy câu lệnh Yum. Việc kết nói ra ngoài Internet đôi khi không cần thiết. Bài viết sẽ trình bày các bước thiết lập một máy chủ Yum để thực hiện cài đặt dễ dàng hơn.

Bước 1: Cài đặt phần mềm createrepo

yum install createrepo

Bước 2: Bạn thực hiện tạo thư mục chưa gói cài đặt

mkdir -p /repos/CentOS/6/5/Packages

Bước 3: Tạo kho repo với thư mục đó

createrepo /repos/CentOS/6/5

Bạn cũng có thể thực hiện copy gói mới và cập nhật lại bằng câu lệnh

createrepo --update /repos/CentOS/6/5

Bước 4: Cập nhật gói tin bằng cách copy

cp -arv /media/CentOS/Packages/* /repos/CentOS/6/5/

Bước 5: Tạo kho khi thực hiện copy

createrepo /repos/CentOS/6/5

Bước 6: Bạn cũng có thể thực hiện đồng bộ online

/usr/bin/rsync -avrt rsync://ftp.rezopole.net/centos/6.7/os/x86_64/Packages/ --exclude=debug /var/www/html/centos/6/base/

Bước 7: Thực hiện cài đặt Apache

yum install httpd
ln -s /var/www/html/CentOS /repos/CentOS

Bước 8: Thực hiện cài đặt vsftpd

yum install vsftpd
ln -s /var/ftp/public/CentOS /repos/CentOS

Bước 9:Cấu hình trên máy trạm

[onlinelabrepo]
 name=Local CentOS Repo
 baseurl=http://onlinelab.info/CentOS/6/5
 gpgcheck=0

Chúc bạn thành công.

Manage KVM (QEMU) with Kimchi (web interface)

 Solution  Comments Off on Manage KVM (QEMU) with Kimchi (web interface)
Sep 072015
 

Kimchi Logo

Kimchi is a HTML5 based web interface for KVM. It is provides easy and flexible interface to create and manage a guest virtual machines. Kimchi is installed and runs as a daemon on the KVM host. It manages KVM guests with the help of libvirt. Kimchi interface supports all latest version of the browsers with -1 version, it also supports mobile browsers.

Kimchi can be installed on latest version of RHEL, Fedora, openSUSE and Ubuntu. In this guide, i used Ubuntu 14.10 as a KVM host.

Before configuring kimchi, you must install the following dependent packages.

$ sudo apt-get install gcc make autoconf automake gettext git python-cherrypy3 python-cheetah python-libvirt  libvirt-bin python-imaging python-pam python-m2crypto python-jsonschema qemu-kvm libtool python-psutil python-ethtool  sosreport python-ipaddr python-ldap python-lxml nfs-common open-iscsi lvm2 xsltproc  python-parted nginx firewalld python-guestfs libguestfs-tools python-requests websockify novnc spice-html5 wget

System would ask you the following details during the installation of packages.

1. OK on Postfix configuration.

2. Select Internet Site on general type of mail configuration.

3. Type your FQDN and then select OK.

Once installed, download the latest version of kimchi from github.

 $ wget https://github.com/kimchi-project/kimchi/archive/master.zip

Unzip the downloaded file.

$ unzip master.zip
$ cd kimchi-master/

Build kimchi using the following command.

$ ./autogen.sh --system

Install.

$ make
$ sudo make install   # Optional if running from the source tree

Run kimchi.

 $ sudo kimchid --host=0.0.0.0

Access kimchi using web browser, https://localhost:8001. You would be asked to login, use your system credential which you normally use for login to system.

Kimchi Login Page
Kimchi Login Page

Once you logged in, you will get a page like below. This show the list of running guest virtual machines on current host, you have buttons to perform shutdown, restart and connect to console by clicking on action.

Kimchi guest virtual machines
Kimchi guest virtual machines

To create a new guest machine, click on the + sign in the right corner. If you use this option to create a machine, it will be done through templates.

Kimchi Creating Virtual Machine
Kimchi Creating Virtual Machine

You can manage templates by visiting templates menu. To create a new template, click on the + sign in the right corner. You can create a template using ISO images, you can place iso images on /var/lib/kimchi/isos or use remote one.

Kimchi Creating Template
Kimchi Creating Template

You can manage storage pool by going to storage menu, there you can add a new storage by clicking on + sign. It supports adding NFS, iSCSI and SCSI fibre channel storage.

Kimchi Storage Management
Kimchi Storage Management

Network can be managed by going to network menu, you can create a new network with isolated, NAT and bridged networking.

Kimchi Networking
Kimchi Networking

That’s All.

 

How to install Elasticsearch, Logstash and Kibana 4 on Ubuntu 14.04 / 15.04

 Solution  Comments Off on How to install Elasticsearch, Logstash and Kibana 4 on Ubuntu 14.04 / 15.04
Sep 072015
 
ELK Stack
ELK Stack

In this post, will look how to install Elasticsearch, Logstash and Kibana 4 on Ubuntu 14.04 / 15.04. This ELK stack help us to store and manage the logs in a centralized location. ELK stack consists of four vital components that makes a wonderful stack to analyze the problems by correlating the events on a particular time.

Centralizing logs will make a system admin life easier to analyze the problems and issues without going to each machine for logs, and visualize those logs to management for business requirements.

Components:

Logstash – It does the processing (Collect, parse and send it to Elasticsearch) of incoming logs.

Elasticsearch – Stores the logs coming from Logstash.

Kibana 4 – Web interface for visualizing the logs (has an own interface). The above three are installed on server.

Logstash-forwarder – Installed on client machines, sends log to Logstash through lumberjack protocol.

Application versions:

This article uses below version of softwares for ELK stack.

Elastisearch 1.7.0

logstash-1.5.3

Kibana 4.1.1

logstash-forwarder-0.4.0

Prerequisites:

1. We would require to install either openJDK or Oracle JDK, It is recommended to install Oracle JDK.Verify the java version by using the following command.

$ java -version

java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)

2. Install wget.

$ sudo su -
# apt-get update
# apt-get install wget

Install Elasticsearch:

Elasticsearch is an open source search server, it offers a realtime distributed search and analytics with RESTful web interface. Elasticsearch stores all the logs sent by the logstash server and displays the messages when the kibana4 requests for full filling user request over the web interface.

This topic covers configuration settings that is required for ELK, you can also take a look on Install Elasticsearch on CentOS 7 / Ubuntu 14.10 / Linux Mint 17.1 for detailed instruction.

Let’s install the Elasticsearch, it can be downloaded from official website. Setup repository and install the latest version of Elasticsearch.

# wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

# echo "deb http://packages.elastic.co/elasticsearch/1.7/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-1.7.list

# apt-get update && apt-get install elasticsearch

Configure Elasticsearch to start during system startup.

# systemctl daemon-reload
# systemctl enable elasticsearch.service
# systemctl start elasticsearch.service

Wait, at least a minute to let the Elasticsearch get fully restarted, otherwise testing will fail. Elastisearch should be now listen on 9200 for processing HTTP request, we can use CURL to get the response.

# curl -X GET http://localhost:9200
{
  "status" : 200,
  "name" : "Thermo",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "1.7.0",
    "build_hash" : "929b9739cae115e73c346cb5f9a6f24ba735a743",
    "build_timestamp" : "2015-07-16T14:31:07Z",
    "build_snapshot" : false,
    "lucene_version" : "4.10.4"
  },
  "tagline" : "You Know, for Search"
}

Install Logstash:

Logstash is an open source tool, used for collecting logs, parsing and storing them searching. Yes, logstash comes with a web interface (kibana3 is built-in) for visualizing logs which we are not going to discuss here instead we use kibana4. Processing of various types of events can be extended by adding plugins to it, over 160 plugins are available as of now. Lets will go directly to the installation.

# echo "deb http://packages.elasticsearch.org/logstash/1.5/debian stable main" | sudo tee -a /etc/apt/sources.list

# apt-get update && apt-get install logstash

Once the logstash server is installed, lets move on to next section

Create SSL certificate:

Logstash-forwarder which will be installed on client-server to ship the logs requires SSL certificate to validate identity of logstash server. We have a two options to create a SSL certificate and it depends on logstash-forwarder configuration; if you use hostname ( “servers”: [ “server.itzgeek.local:5050″ ]), subject name of SSL should match “server.itzgeek.local”. If you use ( “servers”: [ “192.168.12.10:5050″ ]) an ip address, you must create a SSL certificate with IP SAN with value 192.168.12.10.

Follow any one of the method to create a SSL certificate.

Option 1: (Hostname FQDN)

Before creating a certificate, make sure you have A record for logstash server; ensure that client servers are able to resolve the hostname of the logstash server. If you do not have DNS, kindly add the host entry for logstash server; where 192.168.12.10 is the ip address of logstash server and itzgeek is the hostname of your logstash server.

# vi /etc/hosts

192.168.12.10 server.itzgeek.local

Lets create a SSl certificate. Go to OpenSSL directory.

# cd /etc/ssl/

Execute the following command to create a SSL certificate, replace “red” one in with your real logstash server.

# openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout logstash-forwarder.key -out logstash-forwarder.crt -subj /CN=server.itzgeek.local

Option 2: (IP Address)

Before creating a SSL certificate, we would require to an add ip address of logstash server to SubjectAltName in the OpenSSL config file.

# vi /etc/pki/tls/openssl.cnf

Goto “[ v3_ca ]” section and replace “red” one with your logstash server ip.

subjectAltName = IP:192.168.12.10

Goto OpenSSL directory.

# cd /etc/ssl/

Execute the following command to create a SSL certificate.

# openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout logstash-forwarder.key -out logstash-forwarder.crt

This logstash-forwarder.crt should be copied to all client servers those who send logs to logstash server.

Configure Logstash:

Logstash configuration files can be found in /etc/logstash/conf.d/, just an empty folder. We would need to create a file, logstash configuration files consist of three section input, filter and output; all three section can be found either in single file or each section will have separate file ends with .conf.

Here we will use a single file to place an input, filter and output sections.

# vi /etc/logstash/conf.d/logstash.conf

In the first section, we will put an entry for input configuration. The following configuration sets lumberjack to listen on port 5050 for incoming logs from the logstash-forwarder that sits in client servers, also it will use the SSL certificate that we created earlier.

input {
lumberjack {
port => 5050
type => "logs"
ssl_certificate => "/etc/ssl/logstash-forwarder.crt"
ssl_key => "/etc/ssl/logstash-forwarder.key"
}
}

In the second section, we will put an entry for filter configuration. Grok is a filter in logstash, which does parsing of logs before sending it to Elasticsearch for storing. The following grok filter will look for the logs that are labeled as ‘syslog” and tries to parse them to make a structured index.

filter {
if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGLINE}" }
    }

    date {
match => [ "timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
  }

}

Consider visiting grokdebugger for filter patterns.

In the third section, we will put an entry of output configuration. This section defines location where the logs get stored; obviously it should be Elasticsearch.

output {
elasticsearch { host => localhost index => "logstash-%{+YYYY.MM.dd}" }
stdout { codec => rubydebug }
}

Now start the logstash service.

# systemctl start logstash.service

Logstash server logs are stored in the following file, will help us to troubleshoot the issues.

# cat /var/log/logstash/logstash.log

Next we will configure a logstash-forwarder to ship logs to logstash server.

Configure Logstash-forwarder.

Logstash-forwarder is a client software which ship logs to a logstash server, it should be installed on all client servers. Logstash-forwarder can be downloaded from official website or you can use the following command to download it in terminal and install it.

# wget https://download.elastic.co/logstash-forwarder/binaries/logstash-forwarder_0.4.0_amd64.deb

# dpkg -i logstash-forwarder_0.4.0_amd64.deb

Logstash-forwader uses SSL certificate for validating logstash server identity, so copy the logstash-forwarder.crt that we created earlier from the logstash server to the client.

# scp -pr [email protected]://etc/ssl/logstash-forwarder.crt /etc/ssl

Open up the configuration file.

# vi /etc/logstash-forwarder.conf

In the “network” section, mention the logstash server with port number and path to the logstash-forwarder certificate that you copied from logstash server.

This section defines the logstash-forwarder to send a logs to logstash server “server.itzgeek.local” on port 5050 and client validates the server identity with the help of SSL certificate. Note: Replace “server.itzgeek.local” with ip address incase if you are using IP SAN.

"servers": [ "server.itzgeek.local:5050" ],

"ssl ca": "/etc/ssl/logstash-forwarder.crt",

"timeout": 15

In the “files” section, configures what all are files to be shipped. In this article we will configure a logstash-forwarder to send a logs (/var/log/syslog) to logstash server with “syslog” as type.

{
"paths": [
"/var/log/syslog"
],

"fields": { "type": "syslog" }
}

Restart the service.

# systemctl start logstash-forwarder.service

You can look at a log file in case of any issue.

# cat /var/log/logstash-forwarder/logstash-forwarder.err

Configure Kibana 4:

Kidbana provides visualization of logs, download it from official website. Use following command to download it in terminal.

# wget https://download.elastic.co/kibana/kibana/kibana-4.1.1-linux-x64.tar.gz

Extract and move it to /opt/

# tar -zxvf kibana-4.1.1-linux-x64.tar.gz

# mv kibana-4.1.1-linux-x64 /opt/kibana4

Enable PID file for Kibana, this is required to create a systemd init file.

# sed -i 's/#pid_file/pid_file/g' /opt/kibana4/config/kibana.yml

Kibana can be started by running /opt/kibana4/bin/kibana, to run kibana as a server we will create a systemd file.

# vi /etc/systemd/system/kibana4.service

[Unit]
Description=Kibana 4 Web Interface
After=elasticsearch.service
After=logstash.service
[Service]
ExecStartPre=/bin/rm -rf /var/run/kibana.pid
ExecStart=/opt/kibana4/bin/kibana
ExecReload=/bin/kill -9 $(cat /var/run/kibana.pid) && /bin/rm -rf /var/run/kibana.pid && /opt/kibana4/bin/kibana
ExecStop=/bin/kill -9 $(cat /var/run/kibana.pid)
[Install]
WantedBy=multi-user.target

Start and enable kibana to start automatically at system startup.

# systemctl start kibana4.service

# systemctl enable kibana4.service

Access your kibana portal by visiting the following link

http://your-ip-address:5601/

You will get a following page where you have to map logstash index to use kibana. Scroll down on Time-field name and select

@timestamp
Install Elasticsearch, Logstash and Kibana 4 on Ubuntu 14.04 - Index Pattern
Install Elasticsearch, Logstash and Kibana 4 on Ubuntu 14.04 – Index Pattern

Once you selected, it will redirect you to kibana main page.

 

Install Elasticsearch, Logstash and Kibana 4 on Ubuntu 14.04 - Kibana Discover the Logs
Install Elasticsearch, Logstash and Kibana 4 on Ubuntu 14.04 – Kibana Discover the Logs

Kibana does not comes with any kind of password protected access to portal. With Nginx, we can configure in such a way that the user should fulfill authentication mechanism before entering to portal.

That’s All, you have successfully configured ELK stack for centralized log management.