Lỗi thường gặp khi cài đặt server mới

Trong quá trình setup server mới, mình thường gặp một số lỗi cơ bản nhưng lại mất rất nhiều thời gian để tìm và check lỗi. Để giúp các bạn mới quản trị server tránh lỗi cài đặt, nhanh chóng tiếp cận việc cấu hình dịch vụ, mình sẽ hướng dẫn các bạn disable và fix những bug này.

Trên linux muốn thực hiện một lệnh thay đổi cấu hình nào đó bạn phải có quyền, muốn đơn giản bạn phải đăng nhập vào VPS với user root. Tuy nhiên khi dùng tài khoản có quyền quản trị cao nhất này bạn phải thận trọng, chỉ một cái Enter một là cuộc đời nở hoa hai là cuộc sống bế tắc luôn đấy. Linux không hỏi han rườm rà như Windows, nó thực hiện lệnh ngay mà không thấy có thông báo gì.

Trong thực tế khi dùng VPS thì một số nhà cung cấp cho bạn dùng user root như: Vultr, Linode, DigitalOcean. Còn một số khác lại không cho dùng như Google Cloud, Amazon AWS, nên để thực thi một lệnh nào đó bạn phải dùng quyền sudo trước mỗi câu lệnh.

Vidu, lệnh update phần mềm trên Ubuntu

sudo apt-get update

Một số chú ý trước khi vào bài, giờ đi vào nội thôi.

UPDATE lỗi:

1. SELinux và AppArmor

Mình đánh giá đây là lỗi khó tìm khi mới làm quen với mã nguồn mở. Có 2 services trên linux bạn cần để ý là SELinux của CentOS, và AppArmor của Ubuntu, đây là các dịch vụ mở rộng được các nhà phát triển tích hợp vào để tăng cường an ninh hệ thống nhưng nó gây ra nhiều vấn đề hơn là hiệu quả, làm một số packet không cài được hay các services không hoạt động đúng.

Cá nhân mình khuyên bạn disable các services này đi để setup server cho thuận tiện.

1.1 Disable AppArmor trên Ubuntu Server 10/12/14/16.

Để kiểm tra AppArmor hoạt động hay không bạn dùng lệnh sudo aa-status hoặc sudo /etc/init.d/apparmor status

apparmor module is loaded.
4 profiles are loaded.
4 profiles are in enforce mode.
   /sbin/dhclient
   /usr/lib/NetworkManager/nm-dhcp-client.action
   /usr/lib/connman/scripts/dhclient-script
   /usr/sbin/tcpdump
0 profiles are in complain mode.
1 processes have profiles defined.
1 processes are in enforce mode.
   /sbin/dhclient (712)
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.

Để tắt service AppArmor

sudo service apparmor stop

Không cho tự động cùng OS

sudo update-rc.d -f apparmor remove

Xóa dịch vụ AppArmor và các packet liên quan

sudo apt-get remove apparmor apparmor-utils

1.2 Disable SELinux trên CentOS Server 5/6/7

Kiểm tra SELinux đã được kích hoạt hay chưa dùng lệnh:

sestatus

Đang được kích hoạt bạn sẽ nhận được thông báo như này.

SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted

Muốn disable SELinux gõ lệnh vi /etc/selinux/config và sửa file config như bên dưới

SELINUX=enforcing 

Thành

SELINUX=disabled

2 Kiểm tra thiết lập Firewall

Nhiều khi bạn thắc mắc làm đúng theo hướng dẫn mà nó không chạy, kiểm tra services trên máy chủ hoạt động tốt nhưng từ bên ngoài không thể kết nối được, bạn cần kiểm tra firewall ngay.

Ubuntu 10/12/14

ufw status đối với Ubuntu và

CentOS 5/6

service iptables status

Nếu đang được kích hoạt bạn tạm thời stop nó lại cho rảnh tay cấu hình. Với các phiên bản mới hơn Ubuntu 15/16 hay CentOS 7 bạn có thể dùng lệnh.

systemctl status ufw
systemctl status iptables

2.1 Cách tắt Firewall trên linux

Ubuntu 10/12/14

sudo ufw disable.

CentOS 5/6

service iptables stop

Không muốn iptables start khi khởi động lại server bạn dùng lệnh sau

chkconfig iptables off 
chkconfig ip6tables off 

Còn riêng với Ubuntu 15/16 hay CentOS 7 dùng lệnh

systemctl stop iptables

2.2 Cách mở port trên Firewall

Để bảo mật máy chủ, cá nhân mình khuyên không nên tắt Firewall đi, có thể dùng các lệnh cơ bản sau để cấu hình tường lửa mở port cho services chạy mà vẫn đảm bảo an toàn cho hệ thống.

Dưới đây là danh sách các port thông dụng nhất trên Linux.

21: FTP Server
22: SSH Server
80: Web Server – http
443: SSL – https
3306: Database MySql
25: SMTP Server
110: POP3

Open port trên UFW firewall, Ubuntu 10/12/14/15/16

ufw allow 22/tcp

Muốn mở port cho Apache2 (Webserver) bạn chỉ cần thay 22/tcp thành 80/tcp sau đó khởi động lại UFW sudo ufw reset

Open port trên iptables firewall, CentOS 5/6/7

Giả sử bạn muốn mở port cho SSH Server bạn tìm đến file cấu hình sudo vi /etc/sysconfig/iptables add thêm rule vào

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

Khởi động lại iptables để cập nhật cấu hình service iptables restart.

3. Kết bài

Sau bài viết này hy vọng các bạn sẽ không gặp phải các lỗi tương tự nữa.

Mình sẽ update thêm các lỗi thường gặp vào bài viết trong thời gian tới, trong quá trình setup máy chủ hay cấu hình VPS nếu gặp các lỗi khác các bạn hãy post lên đây để mọi người cùng biết nhé.

13 Comments

  1. nam October 10, 2016 Reply
  2. han June 14, 2016 Reply
    • admin June 14, 2016 Reply
  3. Thành Đạt May 12, 2016 Reply
    • admin May 12, 2016 Reply
      • Thành Đạt May 12, 2016 Reply
        • admin May 12, 2016 Reply
  4. Thành Đạt May 12, 2016 Reply
    • admin May 12, 2016 Reply
      • Thành Đạt May 12, 2016 Reply
        • admin May 12, 2016 Reply
          • Thành Đạt May 12, 2016
          • admin May 12, 2016

Leave a Reply