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é.
mình cài centos 6.7 lên con server sau khi format cài lại bị báo lỗi như thế này là sao vậy 😕
Invalid magic number 0 or unrecognized and unsupported file format error on boot
Bạn biết cách sửa lỗi inbox mình email namdqvt@gmail.com
cho mình hỏi lỗi này sữa thế nào với
service iptables restart
Redirecting to bin/systemctl restart iptables.service
bạn dùng lệnh này để restart iptables nhé
systemctl restart iptables
Vậy thôi để em chờ support bên Linode mà cái khoản support bên Linode sao lâu dữ, gần 3 tiếng rồi chưa thấy reply
Bạn đợi chút xem bên đó support ok lắm. Khi chuyển sang vps bạn có update theme không
Hi, không liên quan mà em sửa lại hostname trên VPS thì lại OK.
Cám ơn anh nhiều à tiện đây cho em hỏi làm sao kiểm tra được firewall có được enable hay không trên vps ?
bạn dùng hệ điều hành gì phiên bản bao nhiêu ?
centos 7: systemctl status firewalld
Ubuntu 15/16: systemctl status ufw
Em đang sài con VPS tại Linode và bị lỗi Googlebot can not access .
Http response 200 OK nhưng googlebot lại không truy cập được site.Không biết có phải do thằng firewall của Linode chặn không anh
không phải bạn ạ, mình cài nhiều site trên linode mà không bao giờ bị tình trạng đó, bạn kiểm tra trên VPS của mình xem
Kiểm tra sao ạ ? Em không biết tại sao VPS lại bị block Googlebot @@
sao bạn biết là chặn google bot
Em thử fetch trên Google webmaster nó báo ‘Temporarily unreachable’, với lại bình thường em post bài thì khoảng 1 phút sau là nó lên Google rồi giờ post xong cả tiếng chả thấy đâu nữa 🙁
google index chạm là bình thường mà bạn