Cài đặt DirectAdmin trên Amazon AWS A-Z ( EC2)

Hướng dẫn này chỉ cho bạn cách cài đặt và định cấu hình DirectAdmin trên Amazon EC2.

Điều kiện tiên quyết
Tài khoản AWS hoạt động.
AWS Security Group mở trên các cổng 80.995.143.465,53,2222,443,35000-35999,110,1194,993,22,21,25,53,587
Kiến thức cơ bản về linux
Giấy phép DirectAdmin

Lunch EC2 instance


Đăng nhập vào Bảng điều khiển AWS.
Chuyển đến Bảng điều khiển EC2 và nhấp vào nút "Lunch Instance":

  1. :
    Lunch EC2 instance
  2. Chọn một CentOS 7 (AMI):
    CentOS AIMChọn bất kỳ Loại trường hợp nào phù hợp với nhu cầu của bạn, thêm dung lượng lưu trữ, định cấu hình Nhóm bảo mật sau đó ăn trưa máy chủ của bạn:
    Configure Instance
    Add SSDEC2 key

Cài đặt


Để bắt đầu, đăng nhập vào serevr AWS EC2 của bạn thông qua SSH

1. Cập nhật CentOS của bạn và cài đặt một số chương trình cơ bản

sudo yum -y update
sudo yum -y install nano wget perl

2. Enable SSH for root account

sudo nano /etc/ssh/sshd_config

Set PermitRootLogin yes 
Set AllowTcpForwarding no

Chỉnh sửa điều này ủy quyền để cho phép đăng nhập thông qua tài khoản root

sudo nano /root/.ssh/authorized_keys

Sau đó xóa các dòng ở đầu tập tin có nội dung cho đến khi bạn nhận được các từ ssh-rsa

Khởi động lại SSH

sudo service sshd restart

3. Đặt tên máy chủ của bạn

Giả sử rằng tôi đang sử dụng tên miền hosting.xyz và bạn muốn tên máy chủ của mình được đặt thành server1.hosting.xyz

hostnamectl set-hostname server1.hosting.xyz

Check if the /etc/hostname shows the hostname

nano /etc/hostname

We also edit /etc/hosts to make the hostname point to the server IP

nano /etc/hosts

then add xxx.xxx.xxx.xxx server1.hosting.xyz at the end where xxx.xxx.xxx.xxx is your server public IP

AWS sẽ đặt lại tên máy chủ mỗi khi máy chủ khởi động lại, vì vậy chúng tôi cần khắc phục điều này.

nano /etc/cloud/cloud.cfg 

and add preserve_hostname: true below the syslog_fix_perms

Sau đó khởi động lại máy chủ

reboot

4. Activate Quotas

Trên CentOS 7, xfs được sử dụng theo mặc định và Quotas không được kích hoạt, vì vậy bạn cần kích hoạt chúng theo cách thủ công

nano /etc/default/grub

add quota options rootflags=usrquota,grpquota into the end of  GRUB_CMDLINE_LINUX line, it will look like this

GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 ... rootflags=usrquota,grpquota"

Make a backup

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.back 

Generate a new configuration file:

grub2-mkconfig -o /boot/grub2/grub.cfg

Khởi động lại máy chủ, thư mục gốc sẽ được gắn với các tùy chọn cần thiết. Chúng ta có thể kiểm tra bằng cách chạy lệnh này

mount | grep '/'
/dev/xvda1 on / type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)

5. Add network eth0:0
By default, AWS EC2 use private IP for eth0, to install DirectAdmin, we need to use the public IP

nano /etc/sysconfig/network-scripts/ifcfg-eth0:0

Nhập nội dung sau

DEVICE=eth0:0
BOOTPROTO=none
ONPARENT=yes
IPADDR=xxx.xxx.xxx.xxx
NETMASK=255.255.255.0
ONBOOT=yes

trong đó xxx.xxx.xxx.xxx là IP công cộng AWS của bạn, sau đó khởi động lại mạng

/etc/init.d/network restart

Nếu bạn muốn IPv6, hãy đặt eth0 trực tiếp bên dưới:

IPV6INIT="yes"
IPV6ADDR=2600:1f16:xxxxxxxxxxxx

6. Setup DirectAdmin

echo 1  /root/.lan
wget http://www.directadmin.com/setup.sh
chmod 755 setup.sh
./setup.sh

Và làm theo hướng dẫn. Lưu ý khi bạn yêu cầu mạng, enter eth0:0

Cấu hình

Vì EC2 chạy trên LAN / NAT và phía sau tường lửa, chúng tôi cần thực hiện một số cấu hình.

Kích hoạt mạng LAN

nano /usr/local/directadmin/conf/directadmin.conf

Thêm giá trị này lan_ip = yyy.yyy.yyy.yyy trong đó yyy.yyy.yyy.yyy là IP riêng AWS của bạn
Liên kết IP riêng với IP công cộng của bạn bằng tính năng DA được liên kết IP

  • Thêm IP LAN vào trình quản lý IP của DA. Đừng gán nó cho bất kỳ Người dùng hoặc Miền nào.
  • Xem chi tiết về IP bên ngoài: Cấp quản trị - Trình quản lý IP - Nhấp vào IP công cộng / bên ngoài.
  • Liên kết IP bên trong với IP bên ngoài: Chọn IP LAN từ trình đơn thả xuống.
  • Chỉ chọn Apache, không chọn DNS

  • Khởi động lại DirectAdmin

 

Mở cổng cho FTP

Nếu bạn sử dụng ProFTPD, hãy chỉnh sửa tệp cấu hình của nó:

nano /etc/proftpd.conf

Thêm sau Cổng thông tin thụ động: masageAddress xxx.xxx.xxx.xxx trong đó xxx.xxx.xxx.xxx là IP công cộng AWS của bạnAdd rule to the iptables

iptables -I INPUT -p tcp --dport 35000:35999 -j ACCEPT
nano /usr/libexec/iptables/iptables.init

add $IPTABLES -A INPUT -p tcp --dport 35000:35999 -j ACCEPT below the ftp section, like this

#########################
# ftp
$IPTABLES -A INPUT -p tcp --dport 21 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 35000:35999 -j ACCEPT

Để tối ưu hóa hiệu suất và cải thiện bảo mật, xem hướng dẫn này. guide.


Tuấn Nguyễn

587 Blog posts

Comments
Tuấn Nguyễn 3 yrs

Trong quá trình sử dụng VPS, đôi lúc bạn sẽ gặp thông báo sau khi truy cập vào phpMyAdmin:

phpMyAdmin – Error

Error during session start; please check your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser.

Nguyên nhân ở đây do webserver không có quyền đọc ghi ở PHP sessions folder, thường xảy ra khi update PHP. Nếu bạn đang dùng Nginx thì chạy lệnh sau để phân quyền lại:

chown -R nginx:nginx /var/lib/php/session
service php-fpm restart
service nginx restart

 
 
Tuấn Nguyễn 3 yrs

sudo nano /etc/ssh/sshd_config

tìm thuộc tính PermitRootLogin no, bạn sửa lại là yes

và phần PasswordAuthentication no, bạn sửa lại là yes

Sau đó bấm Ctrl+O và Ctrl+X để save và exit.

Gõ tiếp lệnh sau để khởi động lại ssh:

sudo service sshd restart

Nếu báo lỗi “sshd: unrecognized service” thì bạn gõ lệnh sau:

sudo reboot