Showing posts with label CentOS. Show all posts
Showing posts with label CentOS. Show all posts

June 29, 2015

TỔNG HỢP CÁC LỆNH CHỈNH GIỜ TRÊN CENTOS

[​IMG]

Xem ngày trên Centos
#date
Cách set time zone qua GTM+7 (Asia/Ho_Chi_Minh):
# ln -f -s /usr/share/zoneinfo/Asia/Ho_Chi_Minh /etc/localtime
Đồng bộ giờ về NTP server Viet Nam (ICT)
# ntpdate vn.pool.ntp.org (Muốn đồng bộ chính xác phải set timezone thành GMT+7 (Asia/Ho_Chi_Minh) )
(nếu xất hiện ntpdate not found thì cài ntpdate

# yum install -y ntpdate
)
Chỉnh ngày giờ cho hệ thống Centos

# date -s “2015-06-25 4:2:30″
Trong đó : cú pháp theo thứ tự : date -s “năm-tháng-ngày giờ:phút:giây”
Xem giờ bios:
# hwclock -r
Set giờ system linux qua bios:
# hwclock -w
Set giờ bios qua system linux:
# hwclock -s
Khởi động dịch vụ đồng bộ giờ
# sh /etc/rc.d/rc.ntpd start
Chúc các bạn thành công.

June 26, 2015

Kiểm tra các cổng kết nối (port) đang hoạt động trên máy chủ CentOS.

1. Giới thiệu:
Việc kiểm tra, theo dõi hoạt động của một hay nhiều cổng kết nối trên hệ thống sẽ giúp ích rất nhiều trong công việc quản lý máy chủ. Dưới đây là các cách kiểm tra các cổng kết nối đang mở trên Linux (Centos). Hi vọng những cách kiểm tra sau sẽ giúp Quý khách quản lý tốt hơn máy chủ của mình.

 
2. Kiểm tra tập tin /etc/services.
 
Mỗi chương trình kết nối mạng được liệt kê trong tập tin này có số cổng riêng (và giao thức) cho dịch vụ của chính nó. Các port phổ thông, được biết đến từ 0 đến 1023, các port đăng ký tiếp theo thì từ 1024 đến 49151 . Tập tin này sẽ bao gồm: tên dịch vụ, cổng/giao thức, bí danh và phần ghi chú.
Các port được liệt kê trong file /etc/services ở đây không có nghĩa là nó bị khoá, hay không bị khoá bởi firewall.
 
Câu lệnh như sau: 
 
#cat  /etc/services | grep xxx (Trong đó xxx là số cổng kết nối)
 
Sau khi thực hiện câu lệnh mà kết quả hiển thị trả về thì có cổng kết nối đó, ngược lại thì dịch vụ, cổng kết nối đó không có trong file này. 
 
Ví dụ:
 
Thực hiện 2 câu lệnh sau:
 
#cat /etc/services | grep ssh

#cat /etc/services | grep 80 | grep http
3. Sử dụng lệnh netstat.
 
Netstat là một công cụ hữu ích của Linux cho phép bạn kiểm tra những dịch vào nào đang kết nối đến hệ thống của Quý khách. Nó rất hữu ích trong việc phân tích những gì đang xảy ra trên hệ thống.
 
Câu lệnh: 
 
#netstat -lntp
 
Với câu lệnh này sẽ cho phép Quý khách liệt kê các dịch vụ với các cổng kết nối đang hoạt động trên máy chủ. 

4. Sử dụng lệnh nmap.
 
Nmap là một tool scan port rất mạnh, một công cụ kiểm tra mạng và rà soát bảo mật.
 
Cài đặt nmap bằng lệnh sau:
 
#yum install nmap
 
 Thực hiện câu lệnh sau để xem các cổng kết nối hiện đang mở là những port nào. 
 
 #nmap [IP máy chủ]
5. Sử dụng lệnh telnet.
 
Có thể sử dụng lệnh telnet kiểm tra port có đang được bật trên máy chủ hay không.
 
Các câu lệnh thường gặp khi sử dụng lệnh này bao gồm:
 
# telnet [IP máy chủ] xx (Trong đó xx là port cần kiểm tra)
 
Việc telnet tới cổng 22 đã hoàn tất.
Việc telnet tới cổng 22 thất bại.
6. Sử dụng các website scan port trực tuyến.
Hiện có nhiều website cho phép scan port trực tuyến, ở đây Quý khách có thể dùng website sau:
 
 
Tiến hành điền IP hoặc tên  máy chủ vào sau đó nhấn Port Scan sẽ ra các cổng kết nối hiện đang được connect.

June 22, 2015

Reset mật khẩu CentOS thật đơn giản

Một ngày đẹp trời nào đó, bạn bỗng quên mất mật khẩu CentOS của mình. Cũng bình thường thôi vì trong đầu bạn đang có quá nhiều password. Vậy cần làm gì để reset password tài khoản quản trị này ???
Việc này cũng khá đơn giản, tuy nhiên bạn sẽ không thể reset password centOS của mình thông qua telnet được. Điều này đồng nghĩa với việc bạn phải truy cập trực tiếp vào server CentOS. Nếu trong tình huống máy chủ đặt tại trung tâm dữ liệu, bạn có thể sử dụng tới KVM Switch để có thể truy cập và reset password từ xa.
Đầu tiên, bạn cần khởi động lại server CentOS của mình. Tại tùy chọn khởi động đầu tiên, nhấn một phím bất kỳ để thay đổi:
nhấn một phím bất kỳ để bắt đầu
nhấn một phím bất kỳ để bắt đầu
Tiếp theo nhấn phím “e” (edit) để sửa đổi tùy chọn khởi động:
Nhấn phím e để thay đổi tùy chọn khởi động
Nhấn phím e để thay đổi tùy chọn khởi động
Tại màn hình tiếp theo, lựa chọn dòng “kernel ……….” và bấm phím “e” để thay đổi chế độ khởi động:
Thay đổi chế độ khởi động
Thay đổi chế độ khởi động
Tiếp tục nhấn phím “1” hoặc “S”
Nhấn phím 1 hoặc S để tiếp tục
Nhấn phím 1 hoặc S để tiếp tục
Sau đó, nhấn “Enter” để boot vào server mà không cần phải nhập mật khẩu:
Nhấn enter để vào chế độ không yêu cầu mật khẩu
Nhấn enter để vào chế độ không yêu cầu mật khẩu
Cuối cùng, thay đổi mật khẩu, và khởi động lại server để tiếp tục sử dụng như bình thường:
Hoàn tất quá trình reset password centos
Hoàn tất quá trình reset password centos

June 19, 2015

[Tutorial] Đồng bộ thời gian trên CentOS bằng dòng lệnh

Xin chào các bạn, đối với các bạn hay test các cài đặt trên CentOS với máy ảo thường gặp một lỗi là thời gian bị sai lệch. Hôm nay mình sẽ giới thiệu cách đồng bộ thời gian trên CentOS bằng dòng lệnh đơn giản và hiệu quả.
Các bạn mở terminal và gõ lệnh:
# yum install ntp
# chkconfig ntpd on
# ntpdate pool.ntp.org
# service ntpd start
Thời gian trên máy tính sẽ được tự động đồng b qua service ntpd.

June 12, 2015

Cách thiết lập card mạng trong CentOS 6

Cấu hình IP cho VPS
Bạn hãy chạy câu lệnh dưới đây để chỉnh sửa file cấu hình mạng:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
Trong phần nội dung, bạn chú ý phần IPADDR chính là địa chỉ IP của VPS bạn muốn cấu hình.
DEVICE="eth0"
NM_CONTROLLED="yes"
ONBOOT=yes
HWADDR=A4:BA:DB:37:F1:04
TYPE=Ethernet
BOOTPROTO=static
NAME="System eth0"
UUID=5fb06bd0−0bb0−7ffb−45f1−d6edd65f3e03
IPADDR=192.168.1.44
NETMASK=255.255.255.0
2. Cấu hình Gateway
Bạn chạy câu lệnh dưới đây:
vi /etc/sysconfig/network
Chỉnh sửa lại cấu hình tương tự như dưới đây, trong đó GATEWAY bạn sửa lại địa chỉ GATEWAY tương thích với mạng của VPS bạn dùng:
NETWORKING=yes

HOSTNAME=centos6

GATEWAY=192.168.1.1
3. Restart lại mạng:
Sau khi cấu hình xong, bạn chạy câu lệnh dưới đây để cấu hình lại mạng trên VPS:
/etc/init.d/network restart
4. Cấu hình DNS Server:
Bạn cũng có thể cấu hình DNS Server trên VPS bằng cách chạy câu lệnh dưới đây:
vi /etc/resolv.conf
Sau đó sửa lại nội dung file resolv.conf tương tự như dưới đây:
nameserver 8.8.8.8 # Replace with your nameserver ip
nameserver 192.168.1.1 # Replace with your nameserver ip

Hướng dẫn cài đặt LEMP (Linux, Nginx, MariaDB, PHP) trên CentOS

Trong bài viết này mình sẽ hướng dẫn các bạn cách cài đặt bộ webserver nổi tiếng LEMP bao gồm: Linux + Nginx + MariaDB + PHP (PHP-FPM) trên CentOS 7/6.5/6.4/6.3/6.2/6.1/6/5.10.
– Nginx (đọc là Engine x) là một webserver nhỏ gọn, ít tốn RAM, mạnh mẽ và có hiệu suất hoạt động cao.
– MariaDB là phiên bản mã nguồn mở của MySQL, hoạt động giống hệt MySQL. Bắt đầu từ CentOS 7 mặc định đã bắt đầu hỗ trợ MariaDB, các bạn nên sử dụng thay cho MySQL ngay từ bây giờ.

I. Cài đặt Nginx và PHP trên CentOS 7/6.5/5.10

Đầu tiên bạn cần chuẩn bị một server CentOS mới tinh chưa cài gì cả. Kiểm tra lại xem hostname và file host đã chính xác chưa trước khi bắt đầu.
Các thao tác thực hiện bằng dòng lệnh, sử dụng tool ZOC Terminal và nano.

1. Thêm repo cần thiết

CentOS 7/6.5/5.10 Remi repository
## CentOS 7 ##
rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

## CentOS 6 ##
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

## CentOS 5 ##
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
Nếu bạn gặp thông báo lỗi File Not Found, có thể phiên bản RPM đã thay đổi. Bạn có thể lấy link phiên bản mới nhất ở trang wiki Fedora EPEL
CentOS 7/6.5/5.10 Nginx repository
## CentOS 7 ##
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

## CentOS 6 ##
rpm -Uvh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

## CentOS 5 ##
rpm -Uvh http://nginx.org/packages/centos/5/noarch/RPMS/nginx-release-centos-5-0.el5.ngx.noarch.rpm

2. Cài đặt Nginx, PHP

CentOS 7/6.5/5.10
yum --enablerepo=remi,remi-php56 install -y nginx php-fpm php-common

3. Cài đặt PHP module

Một số module PHP thông dụng:
  • OPcache (php-opcache) – The Zend OPcache provides faster PHP execution through opcode caching and optimization.
  • APCu (php-pecl-apc) – APCu userland caching
  • CLI (php-cli) – Command-line interface for PHP
  • PEAR (php-pear) – PHP Extension and Application Repository framework
  • PDO (php-pdo) – A database access abstraction module for PHP applications
  • MySQL (php-mysqlnd) – A module for PHP applications that use MySQL databases
  • PostgreSQL (php-pgsql) – A PostgreSQL database module for PHP
  • MongoDB (php-pecl-mongo) – PHP MongoDB database driver
  • SQLite (php-pecl-sqlite) – Extension for the SQLite Embeddable SQL Database Engine
  • Memcache (php-pecl-memcache) – Extension to work with the Memcached caching daemon
  • Memcached (php-pecl-memcached) – Extension to work with the Memcached caching daemon
  • GD (php-gd) – A module for PHP applications for using the gd graphics library
  • XML (php-xml) – A module for PHP applications which use XML
  • MBString (php-mbstring) – A module for PHP applications which need multi-byte string handling
  • MCrypt (php-mcrypt) – Standard PHP module provides mcrypt library support
Để cài đặt bạn hãy sử dụng lệnh yum --enablerepo=remi,remi-php56 install ten_module. Ví dụ:
yum --enablerepo=remi,remi-php56 install -y php-opcache php-pecl-apcu php-cli php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongo php-pecl-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml

4. Stop httpd (Apache) server, Start Nginx và PHP-FPM

Stop httpd (Apache)
## CentOS 7 ##
systemctl stop httpd.service

## CentOS 6.5/5.10 ##
service httpd stop
Start Nginx
## CentOS 7 ##
systemctl start nginx.service
 
## CentOS 6.5/5.10 ##
service nginx start
Start PHP-FPM
## CentOS 7 ##
systemctl start php-fpm.service

## CentOS 6.5/5.10 ##
service php-fpm start

5. Tự động khởi động Nginx, PHP-FPM và tắt httpd

Tắt httpd (Apache) khi boot
## CentOS 7 ##
systemctl disable httpd.service
 
## CentOS 6.5/5.10 ##
chkconfig httpd off
Autostart Nginx
## CentOS 7 ##
systemctl enable nginx.service
 
## CentOS 6.5/5.10 ##
chkconfig --add nginx
chkconfig --levels 235 nginx on
Autostart PHP-FPM
## CentOS 7 ##
systemctl enable php-fpm.service
 
## CentOS 6.5/5.10 ##
chkconfig --add php-fpm
chkconfig --levels 235 php-fpm on

6. Cấu hình Nginx và PHP-FPM

Cấu hình Nginx
– Thay đổi worker_processes
nano /etc/nginx/nginx.conf
Chỉnh worker_processes bằng với số processor VPS của bạn
– Cấu hình nginx virtual hosts
nano /etc/nginx/conf.d/default.conf
Bạn thay đổi thông tin như bên dưới:
#
# The default server
#
server {
    listen       80;
    server_name example.com;

    location / {
        root   /usr/share/nginx/html;
        index index.php index.html index.htm;
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }

    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}
Các đoạn bôi đỏ là cần phải thay đổi.
– Restart Nginx
## CentOS 7 ##
systemctl restart nginx.service
 
## CentOS 6.5/5.10 ##
service nginx restart
Cấu hình PHP-FPM
– Chỉnh user và group
nano /etc/php-fpm.d/www.conf
Thay user và group = apache sang nginx
 [...]
 ; Unix user/group of processes
 ; Note: The user is mandatory. If the group is not set, the default user's group
 ; will be used.
 ; RPM: apache Choosed to be able to access some dir as httpd
 user = nginx
 ; RPM: Keep a group allowed to write in log dir.
 group = nginx
 [...]
– Restart PHP-FPM
## CentOS 7 ##
systemctl restart php-fpm.service

## CentOS 6.5/5.10 ##
service php-fpm restart

7. Test cấu hình Nginx và PHP-FPM

nano /usr/share/nginx/html/info.php
Thêm đoạn sau vào
<?php
phpinfo();
?>
Test thử bằng link: http://<ip-address>/info.php. Nếu bạn thấy thông tin về PHP hiện ra thì đã cài đặt thành công.
Lưu ý: bản CentOS 7 có thể bị block port 80, nếu bạn truy cập thẳng vào IP mà báo lỗi không kết nối được thì hãy open port http:
service iptables start
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
service iptables save
service iptables restart

II. Cài đặt MariaDB trên CentOS 7/6.5/5.10

 1. Thêm MariaDB repo

Lưu ý: Không cần thực hiện trên CentOS 7. Phiên bản MariaDB trên CentOS 7 hiện nay là 5.5.37
## CentOS 6/5 MariaDB 5.5 ##
wget -O /etc/yum.repos.d/MariaDB.repo http://mariadb.if-not-true-then-false.com/centos/$(rpm -E %centos)/$(uname -i)/5

## CentOS 6/5 MariaDB 10.0 ##
wget -O /etc/yum.repos.d/MariaDB.repo http://mariadb.if-not-true-then-false.com/centos/$(rpm -E %centos)/$(uname -i)/10

2. Cài đặt hoặc update MariaDB

## CentOS 7 ##
yum install -y mariadb mariadb-server

## CentOS 6.5/5.10 ##
yum install -y MariaDB MariaDB-server

3. Khởi động MariaDB và tự động chạy khi boot

## CentOS 7 ##
systemctl start mariadb.service
systemctl enable mariadb.service

## CentOS 6.5/5.10 ##
service mysql start
chkconfig --levels 235 mysql on

4. Cấu hình MariaDB

  • Set (Change) root password
  • Remove anonymous users
  • Disallow root login remotely
  • Remove test database and access to it
  • Reload privilege tables
– Bắt đầu cài đặt
/usr/bin/mysql_secure_installation
Ngay bước đầu tiên bạn sẽ bị hỏi root password, do mới cài đặt nên tất nhiên chưa có password, nhấn Enter để tiếp tục.
– Output tương tự như sau:
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we\'ll need the current
password for the root user. If you\'ve just installed MariaDB, and
you haven\'t set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
... Success!

Normally, root should only be allowed to connect from \'localhost\'. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
... Success!

By default, MariaDB comes with a database named \'test\' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
... Success!

Cleaning up...

All done! If you\'ve completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!
Như vậy là bạn đã hoàn thành việc cài đặt LEMP stack trên CentOS rồi đó. Trong trường hợp bạn muốn cài đặt một cách tự động bộ LEMP này, hãy tham khảo HocVPS Script do mình biên soạn.

Một số thủ thuật tối ưu LEMP server trên CentOS

Sau khi cài đặt xong LEMP trên CentOS, bạn sẽ cần thực hiện một số tùy chỉnh để đảm bảo hệ thống hoạt động nhanh hơn, tăng tốc website. Bên dưới là một số thao tác mình thực hiện mỗi khi cài đặt server.
1. Kích hoạt Gzip Compression
Mở file cài đặt nginx
sudo nano /etc/nginx/nginx.conf
Chỉnh phần cài đặt gzip
...
http {
...

# enable gzip compression
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
# end gzip configuration
}
...
Reload nginx
sudo /etc/init.d/nginx reload
2. Make Browsers Cache Static Files On nginx
Mở file virtual host mặc định hoặc file custom của bạn
sudo nano /etc/nginx/conf.d/default.conf
Thay đổi cài đặt như bên dưới.
[...]
server {
        [...]
        location ~*  \.(jpg|jpeg|png|gif|ico|css|js)$  {
              expires 365d;
        }
        [...]
}
[...]
Reload nginx
sudo /etc/init.d/nginx reload

Cấu hình sendmail trên CentOS để gửi mail từ server

Nếu chỉ đơn giản bạn muốn server có thể gửi mail ra bên ngoài thì có thể sử dụng ứng dụng sendmail. Sau khi cài đặt và cấu hình xong thì bạn có thể sử dụng hàm mail() của PHP để gửi mail.
Cài đặt sendmail
sudo yum install sendmail sendmail-cf
Cấu hình sendmail
nano /etc/mail/sendmail.mc
Chú ý không sửa file sendmail.cf vì file này sẽ được tự động sinh ra từ file sendmail.mc
Cấu hình DAEMON_OPTIONS để cho phép gửi mail từ localhost/smtp
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
Chỉnh lại LOCAL_DOMAIN thành hostname
LOCAL_DOMAIN(`example.com')dnl
Update cấu hình sendmail
sudo make -C /etc/mail
Khởi động lại
sudo service sendmail restart
Kiểm tra sendmail
echo "Subject: test" | /usr/lib/sendmail -v admin@hocvps.com
(Nhớ thay bằng địa chỉ email của bạn)
Để việc gửi mail được thuận lợi, bạn cần chú ý cài đặt hostname trong CentOS chính xác nữa.

Kiểm tra và mở port VPS trên CentOS

Nếu bạn muốn mở hoặc đóng port cho VPS thì phải chỉnh sửa file cấu hình của iptables. Mặc định thì file này có đường dẫn là /etc/sysconfig/iptables

Mở port VPS

Ví dụ để mở port xxx, bạn hãy thực hiện lệnh sau:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport xxx -j ACCEPT
Sau đó lưu lại cấu hình và khởi động lại iptables
service iptables save
service iptables restart

Đóng port VPS

Để đóng port bất kỳ, bạn chỉnh sửa trực tiếp file /etc/sysconfig/iptables, comment những dòng có port cần đóng.
Sau đó lưu lại cấu hình và khởi động lại iptables
service iptables save
service iptables restart

Kiểm tra lại port đang mở

iptables -L -n