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.
