Beberapa aspek manajemen server VDS di Linux

VDS (Virtual Dedicated Server) adalah layanan di mana pengguna menerima server khusus virtual dengan hak maksimum. Ini adalah emulasi dari server fisik yang nyata, memiliki akses root, kemampuan untuk menginstal sistem operasi yang sewenang-wenang dan perangkat lunak apa pun. Pada saat yang sama, ini jauh lebih murah daripada menyewa server fisik yang sebanding dengan kapasitasnya.



Anda dapat meletakkan OS di server dari gambar Anda atau menggunakan gambar yang sudah jadi di panel kontrol.







Mari kita asumsikan kita menginstal Debian 10 dan server web Nginx, yang ada di repositori standar ( apt install nginx). Mari kita lihat utilitas dan perintah berguna apa yang akan membantu Anda mengelola server Linux Anda. Mari kita pertimbangkan Nginx secara terpisah dan server VDS itu sendiri secara keseluruhan.



Kandungan





Pertama, sangat disarankan untuk memahami web server itu sendiri. Nginx dimulai saat penginstalan selesai. Kami memeriksa fakta ini:



systemctl status nginx


Penerbitan:



● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-08-17 08:52:54 UTC; 4min 23s ago
Docs: man:nginx(8)
Main PID: 3942 (nginx)
Tasks: 3 (limit: 4719)
Memory: 6.1M
CGroup: /system.slice/nginx.service
├─3942 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
├─3943 nginx: worker process
└─3944 nginx: worker process


Atau cukup masukkan alamat IP server di browser:



http://your_server_ip


Jika kita belum menyalin file situs kita ke server, maka halaman header standar Nginx akan ditampilkan.







Perintah Dasar untuk Mengelola Nginx



Catatan. Jika pengguna tidak memiliki hak akses root, maka untuk setiap perintah yang akan dijalankan, ia harus mendapatkan hak akses root menggunakan perintah tersebut sudo.



Menghentikan server web:



sudo systemctl stop nginx


Jika dijalankan sebagai root, perintahnya adalah:



systemctl stop nginx


Mulai setelah berhenti:



systemctl start nginx


Hentikan dan mulai ulang (mulai ulang):



systemctl restart nginx


Jika Anda baru saja membuat beberapa perubahan konfigurasi, Nginx dapat melakukan boot ulang tanpa kehilangan koneksi saat ini. Ini dilakukan dengan perintah berikut:



systemctl reload nginx


Secara default, Nginx dikonfigurasi untuk memulai secara otomatis saat server melakukan booting. Perilaku ini dapat diubah dengan perintah berikut:



systemctl disable nginx


Aktifkan kembali autostart Nginx saat boot server:



systemctl enable nginx


Secara default, Nginx memiliki satu set aturan blok server yang dikonfigurasi untuk satu domain. Diasumsikan bahwa Anda hanya meng-host satu situs di server Anda. Secara default, ini harus ditempatkan di direktori /var/www/html.



Misalkan Anda ingin membuat beberapa set blok server untuk beberapa situs di Nginx, atau memindahkan file dari situs saat ini ke direktori yang berbeda /var/www/your_domain.



Ini dilakukan dengan perintah berikut.



Pertama, kami membuat direktori yang diperlukan di server.



mkdir -p /var/www/your_domain/html


Kemudian kami menetapkan pemilik direktori ini menggunakan variabel $USERyang harus sesuai dengan pengguna saat ini:



chown -R $USER:$USER /var/www/your_domain/html


Kami menempatkan halaman utama di direktori yang ditentukan index.html.



Kemudian Anda perlu membuat seperangkat aturan yang sesuai untuk Nginx. Di editor teks mana pun, buat file /etc/nginx/sites-available/your_domaindan salin konfigurasi dari file default di sana, hanya dengan alamat dan domain yang diubah:



server {
listen 80;
listen [::]:80;

root /var/www/your_domain/html;
index index.html index.htm index.nginx-debian.html;

server_name your_domain www.your_domain;

location / {
try_files $uri $uri/ =404;
}
}


Terakhir, kami mengaktifkan konfigurasi ini dengan menulis symlink ke file konfigurasi baru di direktori sites-enabledyang dibaca Nginx saat boot:



ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/


Setelah reboot, Nginx akan menampilkan halaman yang sesuai untuk permintaan your_domaindan www.your_domain.



Manajemen server



Pertanyaan apa yang paling sering dimiliki pengguna saat mengelola server Linux? Alat apa yang dapat Anda rekomendasikan bahkan untuk administrator yang tidak berpengalaman?



Menginstal supervisor



Supervisor adalah sistem klien / server di mana administrator mengontrol proses di server. Alat tersebut membuat proses sebagai sub-proses atas namanya sendiri.



Menginstal supervisord di Debian atau Ubuntu sangat sederhana:



apt-get install supervisor


Setelah itu, daemon supervisor sudah berjalan dan akan mulai di setiap boot sistem.



Program baru diteruskan ke supervisor melalui file konfigurasi di direktori /etc/supervisor/conf.d. Misalnya, untuk skrip, long.shfile konfigurasinya mungkin terlihat seperti ini:



[program:long_script]
command=/usr/local/bin/long.sh
autostart=true
autorestart=true
stderr_logfile=/var/log/long.err.log
stdout_logfile=/var/log/long.out.log


Karenanya, skrip akan diluncurkan secara otomatis di setiap boot sistem dan secara otomatis dimulai ulang jika keluar. Nilai ini bisa 'false' (jangan restart) atau 'tidak terduga' (restart hanya jika keluar dengan kode kesalahan yang tidak terduga, secara default, kode apa pun selain 0 atau 2).



Dua baris terakhir adalah alamat majalah. Ini adalah template konfigurasi minimum untuk program supervisor.



Setelah membuat file konfigurasi untuk program tertentu, kami menjalankan dua perintah sehingga supervisor membaca ulang dan menerapkan konfigurasi baru:



supervisorctl reread


supervisorctl update


Pada tahap ini, program atau script kita seharusnya sudah berjalan, yang bisa diperiksa dengan log.



Utilitas ini supervisorctlmemiliki mode interaktif yang dijalankan tanpa argumen:



$ supervisorctl
long_script RUNNING pid 12614, uptime 1:49:37
supervisor>


Dalam mode ini, supervisorctl awalnya menampilkan status dan waktu berjalan semua program di bawah pengawasan supervisor, dan kemudian baris perintahnya. Di sana Anda dapat masuk help- dan melihat daftar perintah yang tersedia:



supervisor> help

default commands (type help ):
=====================================
add clear fg open quit remove restart start stop update
avail exit maintail pid reload reread shutdown status tail version


Seperti yang Anda lihat, Anda dapat memulai, menghentikan, dan memulai ulang program dari baris perintah menggunakan perintah start, stop, dan restart.



Untuk keluar dari supervisor, gunakan Ctrl-C atau perintah keluar:



supervisor> quit


Analisis ruang disk kosong



Utilitas standar untuk melihat informasi tentang partisi yang dipasang adalah df. Ini menampilkan daftar perangkat yang terhubung dan informasi tentang ruang yang ditempati.



df  


Opsi -h memungkinkan keluaran yang dapat dibaca manusia (yaitu, dalam megabyte atau gigabyte):



$ df -h
     % C 
devtmpfs 925M 0 925M 0% /dev
tmpfs 936M 56K 936M 1% /dev/shm
tmpfs 936M 1,9M 934M 1% /run
tmpfs 936M 0 936M 0% /sys/fs/cgroup
/dev/sda3 15G 11G 4,2G 71% /
tmpfs 936M 192K 936M 1% /tmp
/dev/sdb4 133G 126G 974M 100% /home
tmpfs 188M 20K 188M 1% /run/user/42
tmpfs 188M 7,1M 181M 4% /run/user/1000


Informasi tentang direktori tertentu (mis. / Home):



df -h /home


Informasi tentang partisi dengan sistem file tertentu:



df -h -t ext4


Cari file dengan perintah find



Cari berdasarkan nama file:



find -name "query"


Telusuri berdasarkan nama case-insensitive:



find -iname "query"


Pencarian "terbalik" untuk file yang tidak cocok dengan pola yang ditentukan:



find -not -name "query_to_avoid"


atau



find \! -name "query_to_avoid"


Cari berdasarkan jenis file



find -type _ 


Beberapa deskriptor umum adalah:



  • f - file biasa

  • d - direktori

  • l - tautan simbolis

  • c - file perangkat I / O karakter

  • b - memblokir file perangkat I / O


Misalnya, perintah berikut akan mencantumkan semua karakter I / O perangkat yang diinstal pada sistem:



find / -type c
/dev/parport0
/dev/snd/seq
/dev/snd/timer
/dev/autofs
/dev/cpu/microcode
/dev/vcsa7
/dev/vcs7
/dev/vcsa6
/dev/vcs6
/dev/vcsa5
/dev/vcs5
/dev/vcsa4
. . .


Ada filter berdasarkan ukuran dan akses / perubahan waktu. Misalnya, berikut adalah perintah untuk menemukan semua file yang kurang dari 50 byte:



find / -size -50c


Cari semua file berukuran lebih dari 700 megabyte:



find / -size +700M


Untuk mencari berdasarkan waktu akses, modifikasi atau perubahan informasi meta file, parameter '-atime', '-mtime' dan '-ctime' digunakan dengan simbol plus dan minus untuk menunjukkan rentang yang lebih besar dan lebih kecil dari yang ditentukan.



Telusuri file yang diubah kurang dari sehari yang lalu:



find / -mtime -1


File dengan waktu akses lebih dari tiga hari yang lalu:



find / -atime +3


File yang berubah dalam beberapa menit terakhir:



find / -mmin -1


File yang lebih baru dari file yang ditentukan:



find / -newer myfile


Cari berdasarkan pemilik ('-user', '-group') dan file dengan izin khusus ('-perm') tersedia. Pada semua file yang ditemukan, Anda dapat langsung melakukan beberapa tindakan ('-exec').



Menguji Koneksi TCP dan UDP



Linux hadir dengan sejumlah besar utilitas yang bermanfaat. Beberapa administrator sistem dapat melakukan sebagian besar tugas hanya dengan menggunakan alat bawaan, tanpa menginstal perangkat lunak tambahan. Pisau Swiss sejati dari alat Linux tertanam adalah utilitas jaringan netcat. Sintaks umum:



netcat [options] host port


Perintah ini memulai koneksi TCP ke host yang ditentukan pada port yang ditentukan. Jika alih-alih TCP Anda perlu menguji koneksi UDP, tentukan opsinya -u:



netcat -u host port


Rentang port:



netcat host startport-endport


Di kebanyakan sistem, Anda dapat menulis netcatdan nc.



Pemindaian port



Salah satu kegunaan umum netcat adalah pemindaian port, sebuah opsi -zberarti memindai alih-alih membuat koneksi. Kami menggunakannya bersama dengan opsi -vuntuk menampilkan informasi yang lebih detail saat memindai porta dari 1 hingga 1000:



netcat -z -v domain.com 1-1000


Outputnya akan terlihat seperti ini:



nc: koneksi ke domain.com port 1 (tcp) gagal: Koneksi ditolak
nc: koneksi ke domain.com port 2 (tcp) gagal: Koneksi ditolak
nc: koneksi ke domain.com port 3 (tcp) gagal: Koneksi ditolak
nc: koneksi ke domain.com port 4 (tcp) gagal: Koneksi ditolak
nc: koneksi ke domain.com port 5 (tcp) gagal: Koneksi ditolak
nc: koneksi ke domain.com port 6 (tcp) gagal: Koneksi ditolak
nc: sambungkan ke domain.com port 7 (tcp) gagal: Sambungan ditolak
... ... ...
Koneksi ke domain.com 22 port [tcp / ssh] berhasil!
... ... ...


Namun, ada program khusus yang lebih maju untuk tugas ini nmap. Instal itu:



apt-get update
apt-get install nmap


Utilitas ini memberikan informasi lebih rinci tentang port. Daftar port yang diketahui /usr/share/nmap/nmap-servicesberisi lebih dari 20 ribu baris, termasuk bidang tambahan, seperti frekuensi rata-rata membuka port tertentu pada server di Internet (kolom ketiga):



... ... ...
tcpmux 1 / tcp 0.001995 # TCP Port Service Multiplexer [rfc-1078]
tcpmux 1 / udp 0.001236 # TCP Port Service Multiplexer
compressnet 2 / tcp 0.000013 # Utilitas Manajemen
compressnet 2 / udp 0.001845 # Utilitas Manajemen
Compressnet 3 / tcp 0.001242 # Proses Kompresi
compressnet 3 / udp 0.001532 # Proses Kompresi
tidak diketahui 4 / tcp 0,000477
rje 5 / udp 0.000593 # Entri Pekerjaan Jarak Jauh
tidak diketahui 6 / tcp 0,000502
echo 7 / tcp 0,004855
echo 7 / udp 0,024679
echo 7 / sctp 0,000000
... ... ...


Tidak disarankan untuk menjalankan pemindaian port pada server asing, karena administrator sistem dapat mengacaukan tindakan seperti bermusuhan. Nmap dirancang untuk menjelajahi servernya sendiri, dan Anda dapat bereksperimen pada server khusus untuk tujuan pengujian scanme.nmap.org.



Beberapa perintah membutuhkan waktu lama untuk dijalankan.



Memindai sistem operasi pada host:



nmap -O 


Pindai rentang host dari xxx.xxx.xxx.xxx hingga yyy.yyy.yyy.yyy:



nmap -PN xxx.xxx.xxx.xxx-yyy.yyy.yyy.yyy


Memindai jangkauan jaringan untuk mencari layanan yang tersedia:



nmap -sP _


Memindai port tertentu:



nmap -p _ 


Memindai semua port TCP dan UDP yang terbuka:



nmap -n -PN -sT -sU -p- 


Mempelajari versi perangkat lunak yang berjalan di host:



nmap -PN -p _ 


Ada banyak perintah, opsi, dan kasus penggunaan lain untuk nmap. Memindai port server VDS Anda memungkinkan Anda untuk mengidentifikasi vektor dan kerentanan serangan potensial, karena penyerang akan memulai tindakannya dengan pemindaian.



Meneruskan pesan dan file



Dengan menggunakan kunci tersebut, -lAnda dapat mendengarkan pada port tertentu di server:



netcat -l 5438


Di komputer lain, kami menentukan untuk terhubung ke mesin di port ini:



netcat domain.com 5438


Saluran komunikasi sekarang telah dibuat antara kedua sistem. Ini dapat digunakan untuk mengirim pesan teks.



Anda bahkan dapat mentransfer file dengan cara ini. Untuk melakukan ini, kirim perintah mendengarkan langsung ke file:



netcat -l 5438 > _


Di komputer lain, sebagai ganti pesan teks, kami mengirimkan file asli ke input:



netcat domain.com 5438 < _


Demikian pula, Anda dapat mentransfer berbagai hal, misalnya, isi direktori, yang diarsipkan dengan cepat di tarball:



tar -czf - * | netcat domain.com 4444


Dengan cara yang sama, Anda dapat membuat image disk di satu sisi ( dd), mengirimkannya ke port tertentu melalui koneksi TCP yang dibuat - dan menerimanya di sistem lain.



Menambah dan menghapus pengguna



Untuk menambah, menghapus pengguna, dan memberi mereka hak istimewa, sudoAnda harus terhubung ke server sebagai root terlebih dahulu:



ssh root@ip__


Setelah itu, tambahkan pengguna:



adduser newuser


Awalnya, dia tidak punya hak istimewa. Tetapi jika ini adalah pengguna utama sistem, maka kita dapat memberinya hak akses administratif sehingga dia dapat melakukan tugas rutin untuk memelihara dan memelihara server.



Untuk menetapkan hak administratif, Anda perlu menambahkan pengguna ke grup sudo. Pengguna di grup ini diizinkan untuk menjalankan perintah sudodengan hak istimewa mereka yang diangkat ke administratif.



usermod -aG sudo user1


Sebagai gantinya, kami user1menunjukkan nama pengguna yang ditambahkan sebelumnya. Sekarang dia dapat menjalankan perintah apa pun melalui sudo:



sudo 


Dengan hak ini, pengguna ini dapat menghapus pengguna lain:



sudo deluser --remove-home username


Opsi ini --remove-homejuga menghapus direktori home pengguna.



Root sendiri berhak menjalankan perintah delusertanpa sudo.



Tentu saja, ini bukan daftar lengkap alat yang berguna untuk mengelola server VDS. Tetapi pertanyaan ini sering muncul untuk administrator sistem pemula yang menyiapkan server pertama mereka, menginstal OS, dan mulai memahami dunia administrasi Linux.









All Articles