Admin Linux - Panduan Cepat

Unik di antara distribusi Linux kelas bisnis, CentOS tetap setia pada sifat sumber terbuka tempat Linux didirikan. Kernel Linux pertama dikembangkan oleh seorang mahasiswa di Universitas Helsinki (Linus Torvalds) dan dikombinasikan dengan utilitas GNU yang didirikan dan dipromosikan oleh Richard Stallman. CentOS telah terbukti, lisensi sumber terbuka yang dapat menggerakkan dunia bisnis saat ini.

CentOS dengan cepat menjadi salah satu platform server paling produktif di dunia. Setiap Administrator Linux, ketika mencari pekerjaan, pasti akan menemukan kata-kata: "CentOS Linux Experience Preferred". Dari startup hingga raksasa teknologi Fortune 10 , CentOS telah menempatkan dirinya di antara eselon sistem operasi server yang lebih tinggi di seluruh dunia.

Apa yang membuat CentOS menonjol dari distribusi Linux lainnya adalah kombinasi yang hebat dari -

  • Lisensi sumber terbuka

  • Basis pengguna profesional Linux yang berdedikasi

  • Dukungan perangkat keras yang bagus

  • Stabilitas dan keandalan yang kokoh

  • Fokus pada keamanan dan pembaruan

  • Kepatuhan yang ketat terhadap standar pengemasan perangkat lunak yang diperlukan di lingkungan perusahaan

Sebelum memulai pelajaran, kami berasumsi bahwa pembaca memiliki pengetahuan dasar tentang Linux dan dasar-dasar Administrasi seperti -

  • Apa pengguna root itu?

  • Kekuatan pengguna root

  • Konsep dasar grup keamanan dan pengguna

  • Pengalaman menggunakan emulator terminal Linux

  • Konsep jaringan dasar

  • Pemahaman dasar bahasa pemrograman yang diinterpretasikan (Perl, Python, Ruby)

  • Protokol jaringan seperti HTTP, LDAP, FTP, IMAP, SMTP

  • Core yang menyusun sistem operasi komputer: sistem file, driver, dan kerne

Sebelum mempelajari alat-alat dari Administrator CentOS Linux, penting untuk diperhatikan filosofi di balik baris perintah administrasi Linux.

Linux dirancang berdasarkan filosofi Unix "alat kecil dan presisi yang digabungkan bersama menyederhanakan tugas yang lebih besar". Linux, pada akarnya, tidak memiliki aplikasi tujuan tunggal yang besar untuk satu penggunaan tertentu sepanjang waktu. Sebaliknya, ada ratusan utilitas dasar yang bila digabungkan menawarkan kekuatan besar untuk menyelesaikan tugas-tugas besar dengan efisiensi.

Contoh Filsafat Linux

Misalnya, jika administrator menginginkan daftar semua pengguna saat ini di sistem, perintah berantai berikut dapat digunakan untuk mendapatkan daftar semua pengguna sistem. Saat menjalankan perintah, pengguna di sistem terdaftar dalam urutan abjad.

[root@centosLocal centos]# cut /etc/passwd -d":" -f1 | sort 
abrt 
adm 
avahi 
bin 
centos 
chrony 
colord 
daemon 
dbus

Sangat mudah untuk mengekspor daftar ini menjadi file teks menggunakan perintah berikut.

[root@localhost /]# cut /etc/passwd -d ":" -f1 > system_users.txt        
[root@localhost /]# cat ./system_users.txt | sort | wc –l 
40       
[root@localhost /]#

Dimungkinkan juga untuk membandingkan daftar pengguna dengan ekspor di kemudian hari.

[root@centosLocal centos]#  cut /etc/passwd -d ":" -f1 > system_users002.txt && 
   cat system_users002.txt | sort | wc -l 
41 
[root@centosLocal centos]# diff ./system_users.txt ./system_users002.txt  
evilBackdoor [root@centosLocal centos]#

Dengan pendekatan alat kecil yang dirangkai untuk menyelesaikan tugas yang lebih besar, lebih mudah membuat skrip yang menjalankan perintah ini, daripada secara otomatis mengirimkan hasil email pada interval waktu yang teratur.

Perintah Dasar yang harus dimiliki setiap Administrator Linux adalah -

  • vim
  • grep
  • kurang lebih
  • tail
  • head
  • wc
  • sort
  • uniq
  • tee
  • cat
  • cut
  • sed
  • tr
  • paste

Di dunia Linux, Administrator menggunakan filteringperintah setiap hari untuk mengurai log, memfilter keluaran perintah, dan melakukan tindakan dengan skrip shell interaktif. Seperti yang telah disebutkan, kekuatan dari perintah-perintah ini datang dari kemampuannya untuk mengubah satu sama lain melalui proses yang disebutpiping.

Perintah berikut menunjukkan berapa banyak kata yang dimulai dengan huruf a dari kamus pengguna utama CentOS.

[root@centosLocal ~]# egrep '^a.*$' /usr/share/dict/words | wc -l 
25192 
[root@centosLocal ~]#

Untuk memperkenalkan izin yang berlaku untuk direktori dan file di CentOS Linux, mari kita lihat output perintah berikut.

[centos@centosLocal etc]$ ls -ld /etc/yum* 
drwxr-xr-x. 6 root root 100 Dec  5 06:59 /etc/yum 
-rw-r--r--. 1 root root 970 Nov 15 08:30 /etc/yum.conf 
drwxr-xr-x. 2 root root 187 Nov 15 08:30 /etc/yum.repos.d

Note - Tiga jenis objek utama yang akan Anda lihat adalah

  • "-" - tanda hubung untuk file biasa

  • "d" - untuk direktori

  • "l" - untuk tautan simbolis

Kami akan fokus pada tiga blok output untuk setiap direktori dan file -

  • drwxr-xr-x: root: root
  • -rw-r - r--: root: root
  • drwxr-xr-x: root: root

Sekarang mari kita uraikan ini, untuk lebih memahami baris-baris ini -

d Berarti tipe objeknya adalah direktori
rwx Menunjukkan izin direktori diterapkan ke pemilik
rx Menunjukkan izin direktori diterapkan ke grup
rx Menunjukkan izin direktori yang diterapkan ke dunia
akar Contoh pertama, menunjukkan pemilik direktori
akar Contoh kedua, menunjukkan grup yang izin grup diterapkan

Penting untuk memahami perbedaan antara pemilik , kelompok , dan dunia . Tidak memahami hal ini dapat berdampak besar pada server yang menghosting layanan ke Internet.

Sebelum kami memberikan contoh dunia nyata, pertama-tama mari kita pahami izin yang berlaku untuk direktori dan file .

Silakan lihat tabel berikut, lalu lanjutkan dengan instruksinya.

Oktal Simbolis Perm. Direktori
1 x Menjalankan Masuk ke direktori dan akses file
2 w Menulis Hapus atau ubah file dalam direktori
4 r Baca Buat daftar file di dalam direktori

Note- Ketika file harus dapat diakses untuk dibaca di direktori, itu umum untuk menerapkan izin baca dan eksekusi . Jika tidak, pengguna akan kesulitan mengerjakan file. Membiarkan tulis dinonaktifkan akan memastikan file tidak dapat: diganti namanya, dihapus, disalin, atau izinnya diubah.

Menerapkan Izin ke Direktori dan File

Saat menerapkan izin, ada dua konsep yang perlu dipahami -

  • Izin Simbolis
  • Izin Oktal

Intinya, masing-masing sama tetapi cara yang berbeda untuk merujuk, dan menetapkan izin file. Untuk panduan cepat, harap pelajari dan lihat tabel berikut -

Baca Menulis Menjalankan
Octal 4 2 1
Symbolic r w x

Saat menetapkan izin menggunakan octalmetode, gunakan angka 3 byte seperti: 760. Angka 760 diterjemahkan menjadi: Pemilik: rwx; Grup: rw; Lainnya (atau dunia) tidak ada izin.

Skenario lain: 733 akan diterjemahkan menjadi: Pemilik: rwx; Kelompok: wx; Lainnya: wx.

Ada satu kelemahan pada izin menggunakan metode Oktal. Set izin yang sudah ada tidak dapat diubah. Ini hanya mungkin untuk menetapkan ulang seluruh set izin suatu objek.

Sekarang Anda mungkin bertanya-tanya, apa yang salah dengan selalu menetapkan ulang izin? Bayangkan struktur direktori besar, misalnya / var / www / di server web produksi. Kami ingin secara rekursif menghapus bit w atau write pada semua direktori untuk Other. Jadi, memaksanya untuk ditambahkan secara proaktif hanya jika diperlukan untuk tindakan keamanan. Jika kami menetapkan ulang seluruh set izin, kami menghapus semua izin khusus lainnya yang ditetapkan ke setiap sub-direktori.

Oleh karena itu, ini akan menimbulkan masalah bagi administrator dan pengguna sistem. Pada titik tertentu, seseorang (atau beberapa orang) perlu menetapkan kembali semua izin khusus yang dihapus dengan menetapkan ulang seluruh izin yang ditetapkan untuk setiap direktori dan objek.

Dalam hal ini, kami ingin menggunakan metode Simbolik untuk mengubah izin -

chmod -R o-w /var/www/

Perintah di atas tidak akan "menimpa izin" tetapi mengubah set izin saat ini. Jadi biasakan menggunakan praktik terbaik

  • Oktal hanya untuk memberikan izin
  • Simbolis untuk mengubah perizinan

Penting bagi Administrator CentOS untuk mahir dengan izin Oktal dan Simbolik karena izin penting untuk integritas data dan seluruh sistem operasi. Jika izin salah, hasil akhirnya adalah data sensitif dan seluruh sistem operasi akan dikompromikan.

Dengan itu, mari kita lihat beberapa perintah untuk mengubah izin dan pemilik / anggota objek -

  • chmod
  • chown
  • chgrp
  • umask

chmod: Ubah Bit Izin Mode File

Perintah Tindakan
-c Seperti verbose, tetapi hanya akan melaporkan perubahan yang dibuat
-v Verbose, keluarkan diagnostik untuk setiap permintaan yang dibuat
-R Menerapkan operasi secara rekursif pada file dan direktori

chmod akan mengizinkan kita untuk mengubah hak akses direktori dan file menggunakan set izin oktal atau simbolik . Kami akan menggunakan ini untuk mengubah tugas kami dan mengunggah direktori.

chown: Ubah Pemilik File dan Grup

Perintah Tindakan
-c Seperti verbose, tetapi hanya akan melaporkan perubahan yang dibuat
-v Verbose, keluarkan diagnostik untuk setiap permintaan yang dibuat
-R Menerapkan operasi secara rekursif pada file dan direktori

chown dapat mengubah kepemilikan pengguna dan grup objek. Namun, kecuali perlu memodifikasi keduanya pada saat yang sama, menggunakan chgrp biasanya digunakan untuk grup.

chgrp: Ubah Kepemilikan Grup File atau Direktori

Perintah Tindakan
-c Seperti verbose, tetapi hanya akan melaporkan perubahannya
-v Verbose, mengeluarkan diagnostik untuk setiap permintaan yang dibuat
-R Secara rekursif, menerapkan operasi pada file dan direktori

chgrp akan mengubah pemilik grup menjadi yang disediakan.

Praktek dunia nyata

Mari kita ubah semua tugas subdirektori di / var / www / students / jadi grup pemiliknya adalah grup pelajar . Kemudian tugasi akar siswa ke kelompok profesor. Kemudian, jadikan Dr. Terry Thomas sebagai pemilik direktori siswa , karena dia ditugaskan sebagai penanggung jawab semua akademisi Ilmu Komputer di sekolah tersebut.

Seperti yang bisa kita lihat, saat dibuat, direktori dibiarkan mentah.

[root@centosLocal ~]# ls -ld /var/www/students/ 
drwxr-xr-x. 4 root root 40 Jan  9 22:03 /var/www/students/

[root@centosLocal ~]# ls -l /var/www/students/ 
total 0 
drwxr-xr-x. 2 root root 6 Jan  9 22:03 assignments 
drwxr-xr-x. 2 root root 6 Jan  9 22:03 uploads 

[root@centosLocal ~]#

Sebagai Administrator, kami tidak pernah ingin memberikan kredensial root kami kepada siapa pun. Namun pada saat yang sama, kami perlu memberikan kemampuan kepada pengguna untuk melakukan pekerjaan mereka. Jadi, izinkan Dr. Terry Thomas untuk lebih mengontrol struktur file dan membatasi apa yang dapat dilakukan siswa.

[root@centosLocal ~]# chown -R drterryt:professors /var/www/students/ 
[root@centosLocal ~]# ls -ld /var/www/students/ 
drwxr-xr-x. 4 drterryt professors 40 Jan  9 22:03 /var/www/students/

[root@centosLocal ~]# ls -ls /var/www/students/ 
total 0 
0 drwxr-xr-x. 2 drterryt professors 6 Jan  9 22:03 assignments 
0 drwxr-xr-x. 2 drterryt professors 6 Jan  9 22:03 uploads

[root@centosLocal ~]#

Sekarang, setiap direktori dan subdirektori memiliki pemilik drterryt dan grup pemiliknya adalah profesor . Karena direktori tugas adalah tempat siswa menyerahkan tugasnya, mari kita hilangkan kemampuan untuk membuat daftar dan mengubah file dari kelompok siswa .

[root@centosLocal ~]# chgrp students /var/www/students/assignments/ && chmod 
736 /var/www/students/assignments/

[root@centosLocal assignments]# ls -ld /var/www/students/assignments/ 
drwx-wxrw-. 2 drterryt students 44 Jan  9 23:14 /var/www/students/assignments/

[root@centosLocal assignments]#

Siswa dapat menyalin tugas ke direktori tugas . Tetapi mereka tidak dapat membuat daftar isi direktori, menyalin file saat ini, atau mengubah file dalam direktori tugas . Dengan demikian, itu hanya memungkinkan siswa untuk menyerahkan tugas yang telah diselesaikan. Sistem file CentOS akan memberikan cap tanggal kapan tugas diserahkan.

Sebagai pemilik direktori tugas -

[drterryt@centosLocal assignments]$ whoami drterryt [drterryt@centosLocal assignments]$ ls -ld /var/www/students/assignment 
drwx-wxrw-. 2 drterryt students 44 Jan  9 23:14 /var/www/students/assignments/

[drterryt@centosLocal assignments]$ ls -l /var/www/students/assignments/ total 4 -rw-r--r--. 1 adama students 0 Jan 9 23:14 myassign.txt -rw-r--r--. 1 tammyr students 16 Jan 9 23:18 terryt.txt [drterryt@centosLocal assignments]$

Kita dapat melihat, pemilik direktori dapat membuat daftar file serta mengubah dan menghapus file.

Perintah umask: Menyediakan Mode Default untuk Izin File dan Direktori Saat Dibuat

umask adalah perintah penting yang menyediakan mode default untuk Izin File dan Direktori saat dibuat.

izin umask menggunakan logika unary, negasi.

Izin Operasi
0 Baca, tulis, jalankan
1 Baca dan tulis
2 Baca dan jalankan
3 Baca saja
4 Baca dan jalankan
5 Tulis saja
6 Jalankan saja
7 tidak ada izin
[adama@centosLocal umask_tests]$ ls -l ./ -rw-r--r--. 1 adama students 0 Jan 10 00:27 myDir -rw-r--r--. 1 adama students 0 Jan 10 00:27 myFile.txt [adama@centosLocal umask_tests]$ whoami 
adama

[adama@centosLocal umask_tests]$ umask 0022 [adama@centosLocal umask_tests]$

Sekarang, mari kita ubah umask untuk pengguna kita saat ini, dan buat file dan direktori baru.

[adama@centosLocal umask_tests]$ umask 077 [adama@centosLocal umask_tests]$ touch mynewfile.txt

[adama@centosLocal umask_tests]$ mkdir myNewDir [adama@centosLocal umask_tests]$ ls -l 
total 0 
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myDir 
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myFile.txt 
drwx------. 2 adama students 6 Jan 10 00:35 myNewDir 
-rw-------. 1 adama students 0 Jan 10 00:35 mynewfile.txt

Seperti yang bisa kita lihat, file yang baru dibuat sedikit lebih ketat dari sebelumnya.

umask untuk pengguna harus diubah baik -

  • /etc/profile
  • ~/bashrc
[root@centosLocal centos]# su adama 
[adama@centosLocal centos]$ umask 0022 [adama@centosLocal centos]$

Umumnya, umask default di CentOS akan baik-baik saja. Ketika kami mengalami masalah dengan default 0022 , biasanya ketika departemen yang berbeda milik grup yang berbeda perlu berkolaborasi dalam proyek.

Di sinilah peran administrator sistem masuk, untuk menyeimbangkan operasi dan desain sistem operasi CentOS.

Saat membahas manajemen pengguna , kami memiliki tiga istilah penting untuk dipahami -

  • Users
  • Groups
  • Permissions

Kami telah membahas izin mendalam seperti yang diterapkan pada file dan folder. Dalam bab ini, mari kita bahas tentang pengguna dan grup.

Pengguna CentOS

Di CentOS, ada dua jenis akun -

  • System accounts - Digunakan untuk daemon atau perangkat lunak lainnya.

  • Interactive accounts - Biasanya ditugaskan ke pengguna untuk mengakses sumber daya sistem.

Perbedaan utama antara kedua jenis pengguna ini adalah -

  • System accountsdigunakan oleh daemon untuk mengakses file dan direktori. Ini biasanya akan dilarang dari login interaktif melalui shell atau login konsol fisik.

  • Interactive accounts digunakan oleh pengguna akhir untuk mengakses sumber daya komputasi baik dari shell atau login konsol fisik.

Dengan pemahaman dasar pengguna, sekarang mari buat pengguna baru untuk Bob Jones di Departemen Akuntansi. Pengguna baru ditambahkan denganadduser perintah.

Berikut ini beberapa adduser sakelar umum -

Beralih Tindakan
-c Menambahkan komentar ke akun pengguna
-m Membuat direktori beranda pengguna di lokasi default, jika tidak ada
-g Grup default untuk menetapkan pengguna
-n Tidak membuat grup pribadi untuk pengguna, biasanya grup dengan nama pengguna
-M Tidak membuat direktori home
-s Shell default selain / bin / bash
-u Menentukan UID (jika tidak ditetapkan oleh sistem)
-G Grup tambahan untuk menetapkan pengguna

Saat membuat pengguna baru, gunakan sakelar -c, -m, -g, -n sebagai berikut -

[root@localhost Downloads]# useradd -c "Bob Jones  Accounting Dept Manager" 
-m -g accounting -n bjones

Sekarang mari kita lihat apakah pengguna baru kita telah dibuat -

[root@localhost Downloads]# id bjones 
(bjones) gid = 1001(accounting) groups = 1001(accounting)

[root@localhost Downloads]# grep bjones /etc/passwd 
bjones:x:1001:1001:Bob Jones  Accounting Dept Manager:/home/bjones:/bin/bash

[root@localhost Downloads]#

Sekarang kita perlu mengaktifkan akun baru menggunakan perintah passwd -

[root@localhost Downloads]# passwd bjones 
Changing password for user bjones. 
New password:  
Retype new password:  
passwd: all authentication tokens updated successfully.

[root@localhost Downloads]#

Akun pengguna tidak diaktifkan memungkinkan pengguna untuk masuk ke sistem.

Menonaktifkan Akun Pengguna

Ada beberapa metode untuk menonaktifkan akun di sistem. Mulai dari mengedit file / etc / passwd dengan tangan. Atau bahkan menggunakan perintah passwd dengan-lberalih. Kedua metode ini memiliki satu kelemahan besar: jika pengguna memiliki akses ssh dan menggunakan kunci RSA untuk autentikasi, mereka masih dapat masuk menggunakan metode ini.

Sekarang mari kita gunakan perintah chage , mengubah tanggal kedaluwarsa kata sandi ke tanggal sebelumnya. Selain itu, mungkin baik untuk membuat catatan di akun tersebut tentang mengapa kami menonaktifkannya.

[root@localhost Downloads]# chage -E 2005-10-01 bjones
 
[root@localhost Downloads]# usermod  -c "Disabled Account while Bob out of the country 
for five months" bjones

[root@localhost Downloads]# grep bjones /etc/passwd 
bjones:x:1001:1001:Disabled Account while Bob out of the country for four 
months:/home/bjones:/bin/bash

[root@localhost Downloads]#

Kelola Grup

Mengelola grup di Linux memudahkan administrator untuk menggabungkan pengguna dalam penampung yang menerapkan perizinan yang berlaku untuk semua anggota grup. Misalnya, semua pengguna Akuntansi mungkin memerlukan akses ke file yang sama. Jadi, kami membuat grup akuntansi, menambahkan pengguna Akuntansi.

Sebagian besar, apa pun yang memerlukan izin khusus harus dilakukan dalam kelompok. Pendekatan ini biasanya akan menghemat waktu dalam menerapkan izin khusus hanya untuk satu pengguna. Contoh, Sally bertanggung jawab atas laporan dan hanya Sally yang memerlukan akses ke file tertentu untuk pelaporan. Namun, bagaimana jika Sally suatu hari sakit dan Bob melapor? Atau kebutuhan untuk pelaporan tumbuh? Saat grup dibuat, Administrator hanya perlu melakukannya sekali. Tambahkan pengguna diterapkan saat kebutuhan berubah atau meluas.

Berikut adalah beberapa perintah umum yang digunakan untuk mengelola grup -

  • chgrp
  • groupadd
  • groups
  • usermod

chgrp - Mengubah kepemilikan grup untuk file atau direktori.

Mari buat direktori untuk orang-orang dalam grup akuntansi untuk menyimpan file dan membuat direktori untuk file.

[root@localhost Downloads]# mkdir /home/accounting

[root@localhost Downloads]# ls -ld /home/accounting
drwxr-xr-x. 2 root root 6 Jan 13 10:18 /home/accounting

[root@localhost Downloads]#

Selanjutnya, mari berikan kepemilikan grup kepada grup akuntansi .

[root@localhost Downloads]# chgrp -v  accounting /home/accounting/ 
changed group of ‘/home/accounting/’ from root to accounting

[root@localhost Downloads]# ls -ld /home/accounting/ 
drwxr-xr-x. 2 root accounting 6 Jan 13 10:18 /home/accounting/

[root@localhost Downloads]#

Sekarang, setiap orang di grup akuntansi telah membaca dan menjalankan izin ke / home / accounting . Mereka juga membutuhkan izin menulis.

[root@localhost Downloads]# chmod g+w /home/accounting/

[root@localhost Downloads]# ls -ld /home/accounting/ 
drwxrwxr-x. 2 root accounting 6 Jan 13 10:18 /home/accounting/

[root@localhost Downloads]#

Karena grup akuntansi dapat menangani dokumen sensitif, kami perlu menerapkan beberapa izin terbatas untuk dunia lain atau dunia lain .

[root@localhost Downloads]# chmod o-rx /home/accounting/

[root@localhost Downloads]# ls -ld /home/accounting/ 
drwxrwx---. 2 root accounting 6 Jan 13 10:18 /home/accounting/

[root@localhost Downloads]#

groupadd - Digunakan untuk membuat grup baru.

Beralih Tindakan
-g Menentukan GID untuk grup
-K Mengganti spesifikasi untuk GID di /etc/login.defs
-Hai Mengizinkan penggantian pelarangan ID grup non-unik
-p Kata sandi grup, memungkinkan pengguna untuk mengaktifkan diri mereka sendiri

Ayo buat grup baru bernama rahasia. Kami akan menambahkan kata sandi ke grup, memungkinkan pengguna untuk menambahkan diri mereka sendiri dengan kata sandi yang dikenal.

[root@localhost]# groupadd secret

[root@localhost]# gpasswd secret 
Changing the password for group secret 
New Password:  
Re-enter new password:

[root@localhost]# exit 
exit

[centos@localhost ~]$ newgrp secret Password: [centos@localhost ~]$ groups 
secret wheel rdc

[centos@localhost ~]$

Dalam praktiknya, kata sandi untuk grup tidak sering digunakan. Grup sekunder memadai dan berbagi kata sandi di antara pengguna lain bukanlah praktik keamanan yang baik.

Itu groupsperintah digunakan untuk menunjukkan di grup mana pengguna berada. Kami akan menggunakan ini, setelah melakukan beberapa perubahan pada pengguna kami saat ini.

usermod digunakan untuk memperbarui atribut akun.

Berikut adalah sakelar mode pengguna yang umum .

Beralih Tindakan
-Sebuah Menambahkan, menambahkan pengguna ke grup tambahan, hanya dengan opsi -G
-c Komentar, perbarui nilai komentar pengguna
-d Direktori home, memperbarui direktori home pengguna
-G Grup, menambah atau menghapus grup pengguna sekunder
-g Grup, grup utama default pengguna
[root@localhost]# groups centos 
centos : accounting secret

[root@localhost]#

[root@localhost]# usermod -a -G wheel centos

[root@localhost]# groups centos
centos : accounting wheel secret

[root@localhost]#

Kuota disk CentOS dapat diaktifkan keduanya; memperingatkan administrator sistem dan menolak akses penyimpanan-disk lebih lanjut ke pengguna sebelum kapasitas disk terlampaui. Saat disk penuh, bergantung pada apa yang ada di disk, seluruh sistem dapat berhenti menderu hingga pulih.

Mengaktifkan Manajemen Kuota di CentOS Linux pada dasarnya adalah proses 4 langkah -

  • Step 1 - Aktifkan manajemen kuota untuk grup dan pengguna di / etc / fstab.

  • Step 2 - Pasang kembali sistem file.

  • Step 3 - Buat database Kuota dan buat tabel penggunaan disk.

  • Step 4 - Tetapkan kebijakan kuota.

Aktifkan Manajemen Kuota di / etc / fstab

Pertama, kami ingin membuat cadangan file / etc / fstab kami -

[root@centosLocal centos]# cp -r /etc/fstab ./

Kami sekarang memiliki salinan / etc / fstab kerja kami yang diketahui di direktori kerja saat ini.

# 
# /etc/fstab 
# Created by anaconda on Sat Dec 17 02:44:51 2016 
# 
# Accessible filesystems, by reference, are maintained under '/dev/disk' 
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
# 
/dev/mapper/cl-root        /         xfs     defaults                      0 0
UUID = 4b9a40bc-9480-4     /boot     xfs     defaults                      0 0

/dev/mapper/cl-home        /home     xfs     defaults,usrquota,grpquota    0 0

/dev/mapper/cl-swap        swap      swap    defaults                      0 0

Kami membuat perubahan berikut di bagian opsi / etc / fstab untuk volume atau Label di mana kuota akan diterapkan untuk pengguna dan grup.

  • usrquota
  • grpquota

Seperti yang Anda lihat, kami menggunakan xfsberkas sistem. Saat menggunakan xfs ada langkah manual tambahan yang terlibat./homeada di disk yang sama dengan /. Penyelidikan lebih lanjut menunjukkan / disetel untuk noquota , yang merupakan opsi pemasangan tingkat kernel. Kita harus mengkonfigurasi ulang opsi boot kernel kita.

root@localhost rdc]# mount | grep ' / ' 
/dev/mapper/cl-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

[root@localhost rdc]#

Konfigurasi Ulang Opsi Boot Kernel untuk Sistem File XFS

Langkah ini hanya diperlukan dalam dua kondisi -

  • Saat disk / partisi tempat kami mengaktifkan kuota, menggunakan sistem file xfs
  • Ketika kernel mengirimkan parameter noquota ke / etc / fstab saat boot

Step 1 - Buat cadangan / etc / default / grub.

cp /etc/default/grub ~/

Step 2- Modifikasi / etc / default / grub .

Ini adalah file defaultnya.

GRUB_TIMEOUT=5 
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" 
GRUB_DEFAULT=saved 
GRUB_DISABLE_SUBMENU=true 
GRUB_TERMINAL_OUTPUT="console" 
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet" 
GRUB_DISABLE_RECOVERY="true"

Kami ingin mengubah baris berikut -

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet"

untuk

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv 
=cl/swap rhgb quiet rootflags=usrquota,grpquota"

Note- Penting untuk menyalin perubahan ini secara verbatim. Setelah kami mengkonfigurasi ulang grub.cfg, sistem kami akan gagal untuk boot jika ada kesalahan yang dibuat dalam konfigurasi. Silakan, coba bagian tutorial ini pada sistem non-produksi.

Step 3 - Cadangkan grub.cfg kerja Anda

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak

Buat grub.cfg baru

[root@localhost rdc]# grub2-mkconfig -o /boot/grub2/grub.cfg 
Generating grub configuration file ... 
Found linux image: /boot/vmlinuz-3.10.0-514.el7.x86_64 
Found initrd image: /boot/initramfs-3.10.0-514.el7.x86_64.img 
Found linux image: /boot/vmlinuz-0-rescue-dbba7fa47f73457b96628ba8f3959bfd 
Found initrd image: /boot/initramfs-0-rescuedbba7fa47f73457b96628ba8f3959bfd.img 
done

[root@localhost rdc]#

Mulai ulang

[root@localhost rdc]#reboot

Jika semua modifikasi tepat, kita seharusnya tidak memiliki ketersediaan untuk menambahkan kuota ke sistem file xfs .

[rdc@localhost ~]$ mount | grep ' / ' 
/dev/mapper/cl-root on / type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
 
[rdc@localhost ~]$

Kami telah melewati parameter usrquota dan grpquota melalui grub.

Sekarang, edit lagi / etc / fstab untuk memasukkan / sejak / home pada disk fisik yang sama.

/dev/mapper/cl-root/xfs
defaults,usrquota,grpquota        0 0

Sekarang mari aktifkan database kuota.

[root@localhost rdc]# quotacheck -acfvugM

Pastikan Kuota diaktifkan.

[root@localhost rdc]# quotaon -ap 
group quota on / (/dev/mapper/cl-root) is on 
user quota on / (/dev/mapper/cl-root) is on 
group quota on /home (/dev/mapper/cl-home) is on 
user quota on /home (/dev/mapper/cl-home) is on 
[root@localhost rdc]#

Pasang kembali Sistem File

Jika partisi atau disk terpisah dari partisi yang di-boot secara aktif, kita dapat memasang ulang tanpa perlu melakukan boot ulang. Jika kuota telah dikonfigurasi pada disk / partisi yang di-boot di direktori root /, kami mungkin perlu melakukan boot ulang sistem operasi. Memaksa remount dan menerapkan perubahan, kebutuhan untuk memasang kembali filesystem mungkin berbeda-beda.

[rdc@localhost ~]$ df 
Filesystem              1K-blocks     Used      Available      Use%     Mounted on
/dev/mapper/cl-root     22447404      4081860   18365544       19%         /
devtmpfs                903448        0         903448         0%          /dev
tmpfs                   919308        100       919208         1%          /dev/shm
tmpfs                   919308        9180      910128         1%          /run
tmpfs                   919308        0         919308         0%          /sys/fs/cgroup
/dev/sda2               1268736       176612    1092124        14%         /boot
/dev/mapper/cl-var      4872192       158024    4714168        4%          /var
/dev/mapper/cl-home     18475008      37284     18437724       1%          /home
tmpfs                   183864        8         183856         1%          /run/user/1000

[rdc@localhost ~]$

Seperti yang bisa kita lihat, volume LVM sedang digunakan. Jadi mudah untuk hanya reboot. Ini akan memasang kembali / home dan memuat perubahan konfigurasi / etc / fstab ke dalam konfigurasi aktif.

Buat File Database Kuota

CentOS sekarang mampu bekerja dengan kuota disk di / home. Untuk mengaktifkan dukungan kuota penuh, kita harus menjalankanquotacheck perintah.

quotacheck akan membuat dua file -

  • aquota.user
  • aquota.group

Ini digunakan untuk menyimpan informasi kuota untuk disk / partisi yang mendukung kuota.

Berikut ini adalah sakelar cek-kuot yang umum.

Beralih Tindakan
-u Memeriksa kuota pengguna
-g Memeriksa kuota grup
-c Kuota harus diaktifkan untuk setiap sistem file dengan mengaktifkan kuota
-v Menampilkan keluaran verbose

Tambahkan Batas Kuota Per Pengguna

Untuk ini, kami akan menggunakan perintah edquota, diikuti dengan nama pengguna -

[root@localhost rdc]# edquota centos

Disk quotas for user centos (uid 1000):  
Filesystem                   blocks       soft       hard     inodes     soft     hard 
/dev/mapper/cl-root              12          0          0         13        0        0  
/dev/mapper/cl-home            4084          0          0        140        0        0

Mari kita lihat setiap kolom.

  • Filesystem - Ini adalah kuota sistem file untuk pengguna yang diterapkan

  • blocks - Berapa banyak blok yang saat ini digunakan pengguna di setiap sistem file

  • soft- Atur blok untuk batas lunak. Batas lunak memungkinkan pengguna untuk membawa kuota untuk jangka waktu tertentu

  • hard- Atur blok untuk batas keras. Batas keras adalah total kuota yang diperbolehkan

  • inodes - Berapa banyak inode yang sedang digunakan pengguna

  • soft - Batas inode lunak

  • hard - Batas inode yang keras

Untuk memeriksa kuota kami saat ini sebagai pengguna -

[centos@localhost ~]$ quota 
Disk quotas for user centos (uid 1000):  
Filesystem             blocks     quota      limit grace    files   quota   limit   grace 
/dev/mapper/cl-home    6052604    56123456   61234568       475     0       0       [centos@localhost ~]$

Berikut adalah kesalahan yang diberikan kepada pengguna ketika batas kuota telah terlampaui.

[centos@localhost Downloads]$ cp CentOS-7-x86_64-LiveKDE-1611.iso.part ../Desktop/

cp: cannot create regular file ‘../Desktop/CentOS-7-x86_64-LiveKDE-
1611.iso.part’: Disk quota exceeded

[centos@localhost Downloads]$

Seperti yang bisa kita lihat, kita hampir mencapai kuota disk pengguna ini. Mari kita setel peringatan batas lunak. Dengan cara ini, pengguna akan mendapatkan pemberitahuan terlebih dahulu sebelum batas kuota berakhir. Dari pengalaman, Anda akan mendapatkan keluhan pengguna akhir saat mereka mulai bekerja dan perlu menghabiskan 45 menit untuk membersihkan file agar benar-benar mulai bekerja.

Sebagai Administrator, kami dapat memeriksa penggunaan kuota dengan file repquota perintah.

[root@localhost Downloads]# repquota  /home  
                    Block limits                            File limits  
User            used     soft     hard     grace       used     soft     hard     grace 
----------------------------------------------------------------------------------------
root      --       0         0        0                   3        0        0        
centos    -+ 6189824  56123456 61234568                 541      520      540      6days 

[root@localhost Downloads]#

Seperti yang bisa kita lihat, centos pengguna telah melebihi kuota hard block mereka dan tidak dapat lagi menggunakan ruang disk di / home .

- + menunjukkan bahwa hard quota telah terlampaui pada sistem file.

Saat merencanakan kuota, perlu dilakukan sedikit penghitungan. Apa yang perlu diketahui oleh Administrator adalah: Berapa banyak pengguna di sistem? Berapa banyak ruang kosong untuk dialokasikan di antara pengguna / grup? Berapa banyak byte yang membentuk satu blok pada sistem file?

Tentukan kuota dalam hal blok sebagai terkait dengan ruang disk kosong. Direkomendasikan untuk meninggalkan buffer "aman" dari ruang kosong di sistem file yang akan tetap berada dalam skenario kasus terburuk: semua kuota terlampaui secara bersamaan. Ini terutama pada partisi yang digunakan oleh sistem untuk menulis log.

systemdadalah cara baru menjalankan layanan di Linux. systemd memiliki sysvinit yang digantikan . systemd membawa waktu boot yang lebih cepat ke Linux dan sekarang, cara standar untuk mengelola layanan Linux. Meskipun stabil, systemd masih berkembang.

systemd sebagai sistem init, digunakan untuk mengelola layanan dan daemon yang memerlukan perubahan status setelah kernel Linux di-boot. Dengan perubahan status mulai, menghentikan, memuat ulang, dan menyesuaikan status layanan diterapkan.

Pertama, mari kita periksa versi systemd yang saat ini berjalan di server kita.

[centos@localhost ~]$ systemctl --version 
systemd 219 
+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP 
+GCRYPT +GNUTLS +ACL     +XZ -LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN

[centos@localhost ~]$

Pada CentOS versi 7, sepenuhnya diperbarui pada saat penulisan ini systemd versi 219 adalah versi stabil saat ini.

Kami juga dapat menganalisis waktu boot server terakhir dengan analisis systemd

[centos@localhost ~]$ systemd-analyze    
Startup finished in 1.580s (kernel) + 908ms (initrd) + 53.225s (userspace) = 55.713s 
[centos@localhost ~]$

Jika waktu boot sistem lebih lambat, kita dapat menggunakan perintah kesalahan analisis sistem .

[centos@localhost ~]$ systemd-analyze blame 
   40.882s kdump.service 
   5.775s NetworkManager-wait-online.service 
   4.701s plymouth-quit-wait.service 
   3.586s postfix.service 
   3.121s systemd-udev-settle.service 
   2.649s tuned.service 
   1.848s libvirtd.service 
   1.437s network.service 
   875ms packagekit.service 
   855ms gdm.service 
   514ms firewalld.service 
   438ms rsyslog.service
   436ms udisks2.service 
   398ms sshd.service 
   360ms boot.mount 
   336ms polkit.service 
   321ms accounts-daemon.service

Saat bekerja dengan systemd , penting untuk memahami konsep unit .UnitsApakah resource systemd tahu bagaimana menafsirkannya. Unit dikategorikan menjadi 12 jenis sebagai berikut -

  • .service
  • .socket
  • .device
  • .mount
  • .automount
  • .swap
  • .target
  • .path
  • .timer
  • .snapshot
  • .slice
  • .scope

Untuk sebagian besar, kita akan bekerja dengan .service sebagai target unit. Disarankan untuk dilakukan penelitian lebih lanjut terhadap jenis lainnya. Karena hanya unit .service yang akan berlaku untuk memulai dan menghentikan layanan systemd .

Setiap unit didefinisikan dalam file yang terletak di -

  • /lib/systemd/system - file unit dasar

  • /etc/systemd/system - file unit yang dimodifikasi dimulai saat run-time

Kelola Layanan dengan systemctl

Untuk bekerja dengan systemd , kita harus terbiasa dengan perintah systemctl . Berikut ini adalah saklar baris perintah yang paling umum untuk systemctl .

Beralih Tindakan
-t Nilai yang dipisahkan koma untuk jenis unit seperti layanan atau soket
-Sebuah Menunjukkan semua unit yang dimuat
--negara Menunjukkan semua unit dalam keadaan yang ditentukan, baik: memuat, sub, aktif, tidak aktif, dll ..
-H Menjalankan operasi dari jarak jauh. Tentukan nama Host atau host dan pengguna dipisahkan oleh @.

Penggunaan systemctl dasar

systemctl [operation]
example: systemctl --state [servicename.service]

Untuk melihat sekilas semua layanan yang berjalan di kotak kami.

[root@localhost rdc]# systemctl -t service 
UNIT                       LOAD     ACTIVE      SUB     DESCRIPTION

abrt-ccpp.service          loaded   active   exited     Install ABRT coredump   hook 
abrt-oops.service          loaded   active   running    ABRT kernel log watcher 
abrt-xorg.service          loaded   active   running    ABRT Xorg log watcher 
abrtd.service              loaded   active   running    ABRT Automated Bug  Reporting Tool 
accounts-daemon.service    loaded   active   running    Accounts Service 
alsa-state.service         loaded   active   running    Manage Sound Card State (restore and store) 
atd.service                loaded   active   running    Job spooling tools 
auditd.service             loaded   active   running    Security Auditing Service 
avahi-daemon.service       loaded   active   running    Avahi mDNS/DNS-SD Stack 
blk-availability.service   loaded   active   exited     Availability of block devices 
bluetooth.service          loaded   active   running    Bluetooth service 
chronyd.service            loaded   active   running    NTP client/server

Menghentikan Layanan

Mari kita hentikan dulu layanan bluetoothnya.

[root@localhost]# systemctl stop bluetooth

[root@localhost]# systemctl --all -t service | grep bluetooth      
bluetooth.service   loaded    inactive dead    Bluetooth service

[root@localhost]#

Seperti yang bisa kita lihat, layanan bluetooth sekarang tidak aktif.

Untuk memulai layanan bluetooth lagi.

[root@localhost]# systemctl start bluetooth

[root@localhost]# systemctl --all -t service | grep bluetooth 
bluetooth.service  loaded    active   running Bluetooth     service

[root@localhost]#

Note- Kami tidak menentukan bluetooth.service, karena .service sudah tersirat. Ini adalah praktik yang baik untuk memikirkan tipe unit yang menambahkan layanan yang kita hadapi. Jadi, mulai sekarang, kami akan menggunakan ekstensi .service untuk mengklarifikasi bahwa kami sedang mengerjakan operasi unit layanan.

Tindakan utama yang dapat dilakukan pada layanan adalah -

Mulailah Memulai layanan
Berhenti Menghentikan layanan
Muat ulang Memuat ulang konfigurasi aktif layanan tanpa menghentikannya (seperti kill -HUP di sistem v init)
Mengulang kembali Memulai, lalu menghentikan layanan
Memungkinkan Memulai layanan pada saat boot
Nonaktifkan Menghentikan layanan agar tidak mulai secara otomatis saat dijalankan

Tindakan di atas terutama digunakan dalam skenario berikut -

Mulailah Untuk memunculkan layanan yang telah dimasukkan ke dalam status berhenti.
Berhenti Untuk mematikan sementara layanan (misalnya ketika layanan harus dihentikan untuk mengakses file yang dikunci oleh layanan, seperti ketika meningkatkan layanan)
Muat ulang Ketika file konfigurasi telah diedit dan kami ingin menerapkan perubahan baru tanpa menghentikan layanan.
Mengulang kembali Dalam skenario yang sama seperti reload, tapi layanan tidak mendukung reload .
Memungkinkan Ketika kami ingin layanan yang dinonaktifkan dijalankan pada saat boot.
Nonaktifkan Digunakan terutama saat ada kebutuhan untuk menghentikan layanan, tetapi layanan dimulai saat boot.

Untuk memeriksa status layanan -

[root@localhost]# systemctl status network.service 
network.service - LSB: Bring up/down networking 
Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled) 
Active: active (exited) since Sat 2017-01-14 04:43:48 EST; 1min 31s ago 
Docs: man:systemd-sysv-generator(8)

Process: 923 ExecStart = /etc/rc.d/init.d/network start (code=exited, status = 0/SUCCESS)

localhost.localdomain systemd[1]: Starting LSB: Bring up/down networking... 
localhost.localdomain network[923]: Bringing up loopback interface:  [  OK  ] 
localhost.localdomain systemd[1]: Started LSB: Bring up/down networking.

[root@localhost]#

Tunjukkan kepada kami status layanan jaringan saat ini . Jika kita ingin melihat semua layanan yang berhubungan dengan jaringan, kita dapat menggunakan -

[root@localhost]# systemctl --all -t service | grep -i network 
network.service                       loaded    active    exited    LSB: Bring up/ 
NetworkManager-wait-online.service    loaded    active    exited    Network Manager  
NetworkManager.service                loaded    active    running   Network Manager 
ntpd.service                          loaded    inactive  dead      Network Time  
rhel-import-state.service             loaded    active    exited    Import network      

[root@localhost]#

Bagi mereka yang akrab dengan sysinitmetode pengelolaan layanan, penting untuk melakukan transisi ke systemd . systemd adalah cara baru untuk memulai dan menghentikan layanan daemon di Linux.

systemctladalah utilitas yang digunakan untuk mengontrol systemd. systemctl memberi administrator CentOS kemampuan untuk melakukan banyak operasi pada systemd termasuk -

  • Konfigurasikan unit systemd
  • Dapatkan status systemd untis
  • Memulai dan menghentikan layanan
  • Mengaktifkan / menonaktifkan layanan systemd untuk runtime, dll.

Sintaks perintah untuk systemctl cukup mendasar, tetapi dapat berbelit - belit dengan sakelar dan opsi. Kami akan menyajikan fungsi paling penting dari systemctl yang diperlukan untuk mengelola CentOS Linux.

Basic systemctl syntax: 
systemctl [OPTIONS] COMMAND [NAME]

Berikut adalah perintah umum yang digunakan dengan systemctl -

  • start
  • stop
  • restart
  • reload
  • status
  • is-active
  • list-units
  • enable
  • disable
  • cat
  • show

Kita telah membahas start , stop , reload , restart , enable dan disable dengan systemctl. Jadi mari kita bahas sisa perintah yang umum digunakan.

status

Dalam bentuknya yang paling sederhana, perintah status dapat digunakan untuk melihat status sistem secara keseluruhan -

[root@localhost rdc]# systemctl status 
 ● localhost.localdomain 
  State: running 
  Jobs: 0 queued
  Failed: 0 units 
  Since: Thu 2017-01-19 19:14:37 EST; 4h 5min ago 
CGroup: / 
       ├─1 /usr/lib/systemd/systemd --switched-root --system --deserialize 21 
       ├─user.slice 
       │ └─user-1002.slice 
       │   └─session-1.scope 
       │     ├─2869 gdm-session-worker [pam/gdm-password] 
       │     ├─2881 /usr/bin/gnome-keyring-daemon --daemonize --login 
       │     ├─2888 gnome-session --session gnome-classic 
       │     ├─2895 dbus-launch --sh-syntax --exit-with-session

Output di atas telah dipadatkan. Dalam status systemctl dunia nyata akan menghasilkan sekitar 100 baris status proses terselubung.

Katakanlah kita ingin memeriksa status layanan firewall kita -

[root@localhost rdc]# systemctl status firewalld 
● firewalld.service - firewalld - dynamic firewall daemon 
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) 
Active: active (running) since Thu 2017-01-19 19:14:55 EST; 4h 12min ago 
 Docs: man:firewalld(1) 
Main PID: 825 (firewalld) 
CGroup: /system.slice/firewalld.service 
       └─825 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Seperti yang Anda lihat, layanan firewall kami saat ini aktif dan telah berlangsung selama lebih dari 4 jam.

unit daftar

Perintah list-units memungkinkan kita untuk membuat daftar semua unit dari tipe tertentu. Mari kita periksa soket yang dikelola oleh systemd -

[root@localhost]# systemctl list-units --type=socket 
UNIT                         LOAD     ACTIVE     SUB     DESCRIPTION     
avahi-daemon.socket          loaded   active  running    Avahi mDNS/DNS-SD Stack Activation Socket 
cups.socket                  loaded   active  running    CUPS Printing Service Sockets 
dbus.socket                  loaded   active  running    D-Bus System Message Bus Socket 
dm-event.socket              loaded   active  listening  Device-mapper event daemon FIFOs 
iscsid.socket                loaded   active  listening  Open-iSCSI iscsid Socket
iscsiuio.socket              loaded   active  listening  Open-iSCSI iscsiuio Socket 
lvm2-lvmetad.socket          loaded   active  running    LVM2 metadata daemon socket 
lvm2-lvmpolld.socket         loaded   active  listening  LVM2 poll daemon socket 
rpcbind.socket               loaded   active  listening  RPCbind Server Activation Socket 
systemd-initctl.socket       loaded   active  listening  /dev/initctl Compatibility Named Pipe 
systemd-journald.socket      loaded   active  running    Journal Socket 
systemd-shutdownd.socket     loaded   active  listening  Delayed Shutdown Socket 
systemd-udevd-control.socket loaded   active  running    udev Control Socket 
systemd-udevd-kernel.socket  loaded   active  running    udev Kernel Socket 
virtlockd.socket             loaded   active  listening  Virtual machine lock manager socket 
virtlogd.socket              loaded   active  listening  Virtual machine log manager socket

Sekarang mari kita periksa layanan yang sedang berjalan -

[root@localhost rdc]# systemctl list-units --type=service 
UNIT                      LOAD     ACTIVE     SUB     DESCRIPTION 
abrt-ccpp.service         loaded   active   exited    Install ABRT coredump hook 
abrt-oops.service         loaded   active   running   ABRT kernel log watcher 
abrt-xorg.service         loaded   active   running   ABRT Xorg log watcher 
abrtd.service             loaded   active   running   ABRT Automated Bug Reporting Tool 
accounts-daemon.service   loaded   active   running   Accounts Service 
alsa-state.service        loaded   active   running   Manage Sound Card State (restore and store) 
atd.service               loaded   active   running   Job spooling tools 
auditd.service            loaded   active   running   Security Auditing Service

aktif

Perintah is-active adalah contoh perintah systemctl yang dirancang untuk mengembalikan informasi status suatu unit.

[root@localhost rdc]# systemctl is-active ksm.service 
active

kucing

cat adalah salah satu perintah yang jarang digunakan. Alih-alih menggunakan cat di shell dan mengetikkan jalur ke file unit, cukup gunakan cat systemctl .

[root@localhost]# systemctl cat firewalld 
# /usr/lib/systemd/system/firewalld.service
[Unit] 
Description=firewalld - dynamic firewall daemon 
Before=network.target 
Before=libvirtd.service 
Before = NetworkManager.service 
After=dbus.service 
After=polkit.service 
Conflicts=iptables.service ip6tables.service ebtables.service ipset.service 
Documentation=man:firewalld(1)

[Service] 
EnvironmentFile = -/etc/sysconfig/firewalld 
ExecStart = /usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS ExecReload = /bin/kill -HUP $MAINPID 
# supress to log debug and error output also to /var/log/messages 
StandardOutput = null 
StandardError = null

Type = dbus 
BusName = org.fedoraproject.FirewallD1

[Install] 
WantedBy = basic.target 
Alias = dbus-org.fedoraproject.FirewallD1.service

[root@localhost]#

Sekarang kita telah menjelajahi systemd dan systemctl secara lebih rinci, mari kita gunakan mereka untuk mengelola sumber daya di cgroup atau grup kontrol .

cgroups atau Control Groups adalah fitur kernel Linux yang memungkinkan administrator mengalokasikan atau membatasi sumber daya sistem untuk layanan dan juga grup.

Untuk membuat daftar grup kontrol aktif yang berjalan, kita dapat menggunakan perintah ps berikut -

[root@localhost]# ps xawf -eo pid,user,cgroup,args 
8362 root     -                            \_ [kworker/1:2] 
1 root        -                           /usr/lib/systemd/systemd --switched-
   root --system --    deserialize 21 
507 root     7:cpuacct,cpu:/system.slice  /usr/lib/systemd/systemd-journald 
527 root     7:cpuacct,cpu:/system.slice  /usr/sbin/lvmetad -f 
540 root     7:cpuacct,cpu:/system.slice  /usr/lib/systemd/systemd-udevd 
715 root     7:cpuacct,cpu:/system.slice  /sbin/auditd -n 
731 root     7:cpuacct,cpu:/system.slice   \_ /sbin/audispd 
734 root     7:cpuacct,cpu:/system.slice       \_ /usr/sbin/sedispatch 
737 polkitd  7:cpuacct,cpu:/system.slice  /usr/lib/polkit-1/polkitd --no-debug 
738 rtkit    6:memory:/system.slice/rtki  /usr/libexec/rtkit-daemon 
740 dbus     7:cpuacct,cpu:/system.slice  /bin/dbus-daemon --system --
   address=systemd: --nofork --nopidfile --systemd-activation

Manajemen Sumber Daya, pada CentOS 6.X, telah didefinisikan ulang dengan implementasi systemd init . Saat memikirkan Manajemen Sumber Daya untuk layanan, hal utama yang harus difokuskan adalah cgroup .cgroupstelah maju dengan systemd baik dalam fungsionalitas maupun kesederhanaan.

Tujuan dari cgroups dalam manajemen sumber daya adalah -tidak ada satu layanan yang dapat menurunkan sistem secara keseluruhan. Atau tidak ada proses layanan tunggal (mungkin skrip PHP yang ditulis dengan buruk) yang akan melumpuhkan fungsionalitas server dengan mengonsumsi terlalu banyak sumber daya.

cgroups memungkinkan kontrol sumber daya unit untuk sumber daya berikut -

  • CPU - Batasi tugas intensif cpu yang tidak penting seperti tugas lain yang kurang intensif

  • Memory - Batasi berapa banyak memori yang dapat dikonsumsi suatu layanan

  • Disks - Batasi i / o disk

** Waktu CPU: **

Tugas yang membutuhkan lebih sedikit prioritas CPU dapat memiliki CPU Slice yang dikonfigurasi khusus.

Mari kita lihat dua layanan berikut ini sebagai contoh.

Layanan CPU yang Sopan 1

[root@localhost]# systemctl cat polite.service 
# /etc/systemd/system/polite.service 
[Unit] 
Description = Polite service limits CPU Slice and Memory 
After=remote-fs.target nss-lookup.target

[Service] 
MemoryLimit = 1M 
ExecStart = /usr/bin/sha1sum /dev/zero 
ExecStop = /bin/kill -WINCH ${MAINPID} 
WantedBy=multi-user.target

# /etc/systemd/system/polite.service.d/50-CPUShares.conf 
[Service] 
CPUShares = 1024 
[root@localhost]#

Layanan CPU Jahat 2

[root@localhost]# systemctl cat evil.service 
# /etc/systemd/system/evil.service 
[Unit] 
Description = I Eat You CPU 
After=remote-fs.target nss-lookup.target

[Service] 
ExecStart = /usr/bin/md5sum /dev/zero 
ExecStop = /bin/kill -WINCH ${MAINPID} 
WantedBy=multi-user.target

# /etc/systemd/system/evil.service.d/50-CPUShares.conf 
[Service] 
CPUShares = 1024 
[root@localhost]#

Mari atur Polite Service menggunakan prioritas CPU yang lebih rendah -

systemctl set-property polite.service CPUShares = 20  
/system.slice/polite.service
1   70.5   124.0K        -        -  

/system.slice/evil.service
1   99.5   304.0K        -        -

Seperti yang bisa kita lihat, selama periode waktu idle sistem normal, kedua proses nakal tersebut masih menggunakan siklus CPU. Namun, satu set untuk memiliki lebih sedikit pembagian waktu adalah menggunakan lebih sedikit waktu CPU. Dengan pemikiran ini, kita dapat melihat bagaimana menggunakan pembagian waktu yang lebih singkat akan memungkinkan tugas-tugas penting mengakses sumber daya sistem dengan lebih baik.

Untuk menyetel layanan untuk setiap sumber daya, metode set-property mendefinisikan parameter berikut -

systemctl set-property name parameter=value

Irisan CPU CPUShares
Batas Memori MemoryLimit
Batas Memori Lunak MemorySoftLimit
Blokir Berat IO BlockIOWeight
Blokir Batas Perangkat (ditentukan di / volume / jalur)) BlockIODeviceWeight
Baca IO BlockIOReadBandwidth
Disk Write IO BlockIOReadBandwidth

Seringkali layanan akan dibatasi oleh penggunaan CPU , batas memori dan IO Baca / Tulis .

Setelah mengubah masing-masing, perlu memuat ulang systemd dan memulai ulang layanan -

systemctl set-property foo.service CPUShares = 250 
systemctl daemon-reload 
systemctl restart foo.service

Konfigurasi CGroups di CentOS Linux

Untuk membuat cgroup kustom di CentOS Linux, pertama-tama kita perlu menginstal layanan dan mengkonfigurasinya.

Step 1 - Instal libcgroup (jika belum diinstal).

[root@localhost]# yum install libcgroup 
Package libcgroup-0.41-11.el7.x86_64 already installed and latest version 
Nothing to do 
[root@localhost]#

Seperti yang bisa kita lihat, secara default CentOS 7 telah menginstal libcgroup dengan penginstal semuanya . Menggunakan penginstal minimal akan meminta kita menginstal utilitas libcgroup bersama dengan dependensi apa pun.

Step 2 - Mulai dan aktifkan layanan cgconfig.

[root@localhost]# systemctl enable cgconfig 
Created symlink from /etc/systemd/system/sysinit.target.wants/cgconfig.service to /usr/lib/systemd/system/cgconfig.service. 
[root@localhost]# systemctl start cgconfig 
[root@localhost]# systemctl status cgconfig 
● cgconfig.service - Control Group configuration service 
Loaded: loaded (/usr/lib/systemd/system/cgconfig.service; enabled; vendor preset: disabled) 
Active: active (exited) since Mon 2017-01-23 02:51:42 EST; 1min 21s ago 
Main PID: 4692 (code=exited, status = 0/SUCCESS) 
Memory: 0B 
CGroup: /system.slice/cgconfig.service  

Jan 23 02:51:42 localhost.localdomain systemd[1]: Starting Control Group configuration service... 
Jan 23 02:51:42 localhost.localdomain systemd[1]: Started Control Group configuration service. 
[root@localhost]#

Berikut ini adalah perintah umum yang digunakan dengan Manajemen Proses – bg, fg, nohup, ps, pstree, top, kill, killall, free, uptime, nice.

Bekerja dengan Proses

Quick Note: Process PID in Linux

Di Linux setiap proses yang berjalan diberi PID atau Nomor ID Proses. PID ini adalah bagaimana CentOS mengidentifikasi proses tertentu. Seperti yang telah kita diskusikan, systemd adalah proses pertama yang dimulai dan diberi PID 1 di CentOS.

Pgrep digunakan untuk mendapatkan PID Linux untuk nama proses tertentu.

[root@CentOS]# pgrep systemd 
1 
[root@CentOS]#

Seperti yang terlihat, perintah pgrep mengembalikan PID systemd saat ini.

Proses CentOS Dasar dan Manajemen Pekerjaan di CentOS

Saat bekerja dengan proses di Linux, penting untuk mengetahui bagaimana proses latar depan dan latar belakang dasar dilakukan pada baris perintah.

  • fg - Bawa proses ke latar depan

  • bg - Pindahkan proses ke latar belakang

  • jobs - Daftar proses saat ini yang terpasang ke shell

  • ctrl+z - Kontrol + kombinasi tombol z untuk menghentikan proses saat ini

  • & - Mulai proses di latar belakang

Mari mulai menggunakan perintah shell tidur .sleephanya akan melakukan seperti namanya, tidur untuk jangka waktu tertentu: tidur .

[root@CentOS ~]$ jobs [root@CentOS ~]$ sleep 10 & 
[1] 12454

[root@CentOS ~]$ sleep 20 & [2] 12479 [root@CentOS ~]$ jobs 
[1]-  Running                 sleep 10 & 
[2]+  Running                 sleep 20 &

[cnetos@CentOS ~]$

Sekarang, mari kita bawa pekerjaan pertama ke latar depan -

[root@CentOS ~]$ fg 1 
sleep 10

Jika Anda mengikuti, Anda akan melihat pekerjaan latar depan macet di shell Anda. Sekarang, mari kita alihkan proses ke mode sleep, lalu aktifkan kembali di latar belakang.

  • Tekan control + z
  • Ketik: bg 1, kirim pekerjaan pertama ke latar belakang dan memulainya.
[root@CentOS ~]$ fg 1 sleep 20 ^Z [1]+ Stopped sleep 20 [root@CentOS ~]$ bg 1 
[1]+ sleep 20 &

[root@CentOS ~]$

nohup

Saat bekerja dari shell atau terminal, perlu dicatat bahwa secara default semua proses dan pekerjaan yang dilampirkan ke shell akan berhenti ketika shell ditutup atau pengguna keluar. Saat menggunakan nohup , proses akan terus berjalan jika pengguna keluar atau menutup shell tempat proses dilampirkan.

[root@CentOS]# nohup ping www.google.com & 
[1] 27299 
nohup: ignoring input and appending output to ‘nohup.out’

[root@CentOS]# pgrep ping 
27299

[root@CentOS]# kill -KILL `pgrep ping` 
[1]+  Killed                  nohup ping www.google.com

[root@CentOS rdc]# cat nohup.out  
PING www.google.com (216.58.193.68) 56(84) bytes of data. 
64 bytes from sea15s07-in-f4.1e100.net (216.58.193.68): icmp_seq = 1 ttl = 128
time = 51.6 ms 
64 bytes from sea15s07-in-f4.1e100.net (216.58.193.68): icmp_seq = 2 ttl = 128
time = 54.2 ms 
64 bytes from sea15s07-in-f4.1e100.net (216.58.193.68): icmp_seq = 3 ttl = 128
time = 52.7 ms

Perintah ps

Itu psperintah biasanya digunakan oleh administrator untuk menyelidiki snapshot dari proses tertentu. ps biasanya digunakan dengan grep untuk menyaring proses tertentu untuk dianalisis.

[root@CentOS ~]$ ps axw | grep python 
762   ?        Ssl    0:01 /usr/bin/python -Es /usr/sbin/firewalld --nofork -nopid 
1296  ?        Ssl    0:00 /usr/bin/python -Es /usr/sbin/tuned -l -P 
15550 pts/0    S+     0:00 grep --color=auto python

Pada perintah di atas, kita melihat semua proses menggunakan interpreter python . Juga disertakan dengan hasil adalah perintah grep kami, mencari string python .

Berikut ini adalah saklar baris perintah yang paling umum digunakan dengan ps .

Beralih Tindakan
Sebuah Mengecualikan batasan hanya proses pelaporan untuk pengguna saat ini
x Menunjukkan proses yang tidak dilampirkan ke tty atau shell
w Memformat tampilan keluaran yang lebar
e Menunjukkan lingkungan setelah perintah
-e Memilih semua proses
-Hai Output berformat yang ditentukan pengguna
-u Menunjukkan semua proses oleh pengguna tertentu
-C Menunjukkan semua proses berdasarkan nama atau id proses
--menyortir Mengurutkan proses menurut definisi

Untuk melihat semua proses yang digunakan oleh pengguna siapa pun -

[root@CentOS ~]$ ps -u nobody PID TTY TIME CMD 1853 ? 00:00:00 dnsmasq [root@CentOS ~]$

Untuk melihat semua informasi tentang proses firewalld -

[root@CentOS ~]$ ps -wl -C firewalld F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S 0 762 1 0 80 0 - 81786 poll_s ? 00:00:01 firewalld [root@CentOS ~]$

Mari kita lihat proses mana yang menghabiskan paling banyak memori -

[root@CentOS ~]$ ps aux --sort=-pmem | head -10 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND cnetos 6130 0.7 5.7 1344512 108364 ? Sl 02:16 0:29 /usr/bin/gnome-shell cnetos 6449 0.0 3.4 1375872 64440 ? Sl 02:16 0:00 /usr/libexec/evolution-calendar-factory root 5404 0.6 2.1 190256 39920 tty1 Ssl+ 02:15 0:27 /usr/bin/Xorg :0 -background none -noreset -audit 4 -verbose -auth /run/gdm/auth-for-gdm-iDefCt/database -seat seat0 -nolisten tcp vt1 cnetos 6296 0.0 1.7 1081944 32136 ? Sl 02:16 0:00 /usr/libexec/evolution/3.12/evolution-alarm-notify cnetos 6350 0.0 1.5 560728 29844 ? Sl 02:16 0:01 /usr/bin/prlsga cnetos 6158 0.0 1.4 1026956 28004 ? Sl 02:16 0:00 /usr/libexec/gnome-shell-calendar-server cnetos 6169 0.0 1.4 1120028 27576 ? Sl 02:16 0:00 /usr/libexec/evolution-source-registry root 762 0.0 1.4 327144 26724 ? Ssl 02:09 0:01 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid cnetos 6026 0.0 1.4 1090832 26376 ? Sl 02:16 0:00 /usr/libexec/gnome-settings-daemon [root@CentOS ~]$

Lihat semua proses berdasarkan pusat pengguna dan format, menampilkan keluaran khusus -

[cnetos@CentOS ~]$ ps -u cnetos -o pid,uname,comm 
   PID    USER     COMMAND 
   5802  centos   gnome-keyring-d 
   5812  cnetos   gnome-session 
   5819  cnetos   dbus-launch 
   5820  cnetos   dbus-daemon 
   5888  cnetos   gvfsd 
   5893  cnetos   gvfsd-fuse 
   5980  cnetos   ssh-agent   
   5996  cnetos   at-spi-bus-laun

pstree Command

pstreemirip dengan ps tetapi tidak sering digunakan. Ini menampilkan proses dengan gaya pohon yang lebih rapi.

[centos@CentOS ~]$ pstree 
  systemd─┬─ModemManager───2*[{ModemManager}] 
          ├─NetworkManager─┬─dhclient 
          │                └─2*[{NetworkManager}] 
          ├─2*[abrt-watch-log] 
          ├─abrtd 
          ├─accounts-daemon───2*[{accounts-daemon}] 
          ├─alsactl 
          ├─at-spi-bus-laun─┬─dbus-daemon───{dbus-daemon} 
          │                 └─3*[{at-spi-bus-laun}] 
          ├─at-spi2-registr───2*[{at-spi2-registr}] 
          ├─atd 
          ├─auditd─┬─audispd─┬─sedispatch 
          │        │         └─{audispd} 
          │        └─{auditd} 
          ├─avahi-daemon───avahi-daemon 
          ├─caribou───2*[{caribou}] 
          ├─cgrulesengd 
          ├─chronyd 
          ├─colord───2*[{colord}] 
          ├─crond 
          ├─cupsd

Total keluaran dari pstree bisa melebihi 100 baris. Biasanya ps akan memberikan informasi yang lebih berguna.

Perintah atas

topadalah salah satu perintah yang paling sering digunakan saat memecahkan masalah kinerja di Linux. Ini berguna untuk statistik waktu nyata dan pemantauan proses di Linux. Berikut ini adalah keluaran default dari atas saat ditampilkan dari baris perintah.

Tasks: 170 total,   1 running, 169 sleeping,   0 stopped,   0 zombie 
%Cpu(s):  2.3 us,  2.0 sy,  0.0 ni, 95.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st 
KiB Mem :  1879668 total,   177020 free,   607544 used,  1095104 buff/cache 
KiB Swap:  3145724 total,  3145428 free,      296 used.  1034648 avail Mem 
 
PID    USER     PR   NI    VIRT     RES   SHR    S  %CPU  %MEM   TIME+   COMMAND
5404   root     20   0    197832   48024  6744   S   1.3   2.6  1:13.22   Xorg
8013   centos   20   0    555316   23104  13140  S   1.0   1.2  0:14.89   gnome-terminal-
6339   centos   20   0    332336   6016   3248   S   0.3   0.3  0:23.71   prlcc
6351   centos   20   0    21044    1532   1292   S   0.3   0.1  0:02.66   prlshprof

Tombol pintas yang umum digunakan saat menjalankan bagian atas ( tombol pintas diakses dengan menekan tombol saat bagian atas berjalan di shell Anda)

Perintah Tindakan
b Mengaktifkan / menonaktifkan penyorotan tebal di menu atas
z Siklus skema warna
l Siklus beban rata-rata heading
m Siklus heading rata-rata memori
t Judul informasi tugas
h Menu bantuan
Shift + F Menyesuaikan bidang pengurutan dan tampilan

Berikut ini adalah saklar baris perintah umum untuk atas .

Perintah Tindakan
-Hai Mengurutkan menurut kolom (dapat ditambahkan dengan - atau + untuk mengurutkan naik atau turun)
-u Menampilkan hanya proses dari pengguna tertentu
-d Memperbarui waktu tunda teratas
-HAI Menampilkan daftar kolom yang paling atas dapat menerapkan pengurutan

Sorting layar pilihan di atas, disajikan dengan menggunakan Shift + F . Layar ini memungkinkan penyesuaian tampilan atas dan opsi pengurutan.

Fields Management for window 1:Def, whose current sort field is %MEM 
Navigate with Up/Dn, Right selects for move then <Enter> or Left commits, 
 'd' or <Space> toggles display, 's' sets sort.  Use 'q' or <Esc> to end!
 
* PID     = Process Id             TGID    = Thread Group Id      
* USER    = Effective User Name    ENVIRON = Environment vars     
* PR      = Priority               vMj     = Major Faults delta   
* NI      = Nice Value             vMn     = Minor Faults delta   
* VIRT    = Virtual Image (KiB)    USED    = Res+Swap Size (KiB)  
* RES     = Resident Size (KiB)    nsIPC   = IPC namespace Inode  
* SHR     = Shared Memory (KiB)    nsMNT   = MNT namespace Inode
* S       = Process Status         nsNET   = NET namespace Inode  
* %CPU    = CPU Usage              nsPID   = PID namespace Inode  
* %MEM    = Memory Usage (RES)     nsUSER  = USER namespace Inode 
* TIME+   = CPU Time, hundredths   nsUTS   = UTS namespace Inode  
* COMMAND = Command Name/Line 
PPID    = Parent Process pid
UID     = Effective User Id

atas , menunjukkan proses untuk pengguna rdc dan diurutkan berdasarkan penggunaan memori -

PID   USER  %MEM  PR  NI    VIRT    RES    SHR    S %CPU     TIME+    COMMAND
 6130  rdc    6.2  20   0  1349592  117160  33232  S  0.0   1:09.34    gnome-shell
 6449  rdc    3.4  20   0  1375872   64428  21400  S  0.0   0:00.43    evolution-calen
 6296  rdc    1.7  20   0  1081944   32140  22596  S  0.0   0:00.40    evolution-alarm
 6350  rdc    1.6  20   0   560728   29844   4256  S  0.0   0:10.16    prlsga
 6281  rdc    1.5  20   0  1027176   28808  17680  S  0.0   0:00.78    nautilus
 6158  rdc    1.5  20   0  1026956   28004  19072  S  0.0   0:00.20    gnome-shell-cal

Menampilkan bidang atas yang valid (dipadatkan) -

[centos@CentOS ~]$ top -O 
PID 
PPID 
UID 
USER 
RUID 
RUSER 
SUID 
SUSER 
GID 
GROUP 
PGRP 
TTY 
TPGID

bunuh Command

Itu killperintah digunakan untuk menghentikan proses dari shell perintah melalui PID-nya. Saat menghentikan proses, kita perlu menentukan sinyal untuk dikirim. Sinyal tersebut memberi tahu kernel bagaimana kita ingin mengakhiri proses. Sinyal yang paling umum digunakan adalah -

  • SIGTERMtersirat karena kernel memberi tahu sebuah proses bahwa ia harus segera berhenti karena aman untuk melakukannya. SIGTERM memberikan proses kesempatan untuk keluar dengan anggun dan melakukan operasi keluar yang aman.

  • SIGHUPkebanyakan daemon akan restart saat dikirim SIGHUP . Ini sering digunakan pada proses ketika perubahan telah dilakukan pada file konfigurasi.

  • SIGKILLkarena SIGTERM sama dengan meminta proses untuk ditutup. Kernel membutuhkan opsi untuk mengakhiri proses yang tidak akan memenuhi permintaan. Ketika sebuah proses digantung, opsi SIGKILL digunakan untuk menghentikan proses secara eksplisit.

Untuk daftar dari semua sinyal yang dapat dikirim dengan membunuh para l pilihan dapat digunakan -

[root@CentOS]# kill -l 
1) SIGHUP           2) SIGINT         3) SIGQUIT        4) SIGILL         5) SIGTRAP
6) SIGABRT          7) SIGBUS         8) SIGFPE         9) SIGKILL       10) SIGUSR1
11) SIGSEGV        12) SIGUSR2       13) SIGPIPE       14) SIGALRM       15) SIGTERM
16) SIGSTKFLT      17) SIGCHLD       18) SIGCONT       19) SIGSTOP       20) SIGTSTP
21) SIGTTIN        22) SIGTTOU       23) SIGURG        24) SIGXCPU       25) SIGXFSZ
26) SIGVTALRM      27) SIGPROF       28) SIGWINCH      29) SIGIO         30) SIGPWR
31) SIGSYS         34) SIGRTMIN      35) SIGRTMIN+1    36) SIGRTMIN+2    37) SIGRTMIN+3
38) SIGRTMIN+4     39) SIGRTMIN+5    40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8
43) SIGRTMIN+9     44) SIGRTMIN+10   45) SIGRTMIN+11   46) SIGRTMIN+12   47) SIGRTMIN+13 
48) SIGRTMIN+14    49) SIGRTMIN+15   50) SIGRTMAX-14   51) SIGRTMAX-13   52) SIGRTMAX-12 
53) SIGRTMAX-11    54) SIGRTMAX-10   55) SIGRTMAX-9    56) SIGRTMAX-8    57) SIGRTMAX-7
58) SIGRTMAX-6     59) SIGRTMAX-5    60) SIGRTMAX-4    61) SIGRTMAX-3    62) SIGRTMAX-2
63) SIGRTMAX-1     64) SIGRTMAX

[root@CentOS rdc]#

Menggunakan SIGHUP untuk memulai ulang sistem.

[root@CentOS]# pgrep systemd 
1 
464 
500 
643 
15071

[root@CentOS]# kill -HUP 1

[root@CentOS]# pgrep systemd
1 
464 
500 
643 
15196 
15197 
15198

[root@CentOS]#

pkillakan memungkinkan administrator untuk mengirim sinyal mematikan dengan nama proses.

[root@CentOS]# pgrep ping 
19450 
[root@CentOS]# pkill -9 ping 
[root@CentOS]# pgrep ping 
[root@CentOS]#

killallakan mematikan semua proses. Berhati-hatilah saat menggunakan killall sebagai root, karena akan mematikan semua proses untuk semua pengguna.

[root@CentOS]# killall chrome

Perintah gratis

freeadalah perintah sederhana yang sering digunakan untuk memeriksa memori sistem dengan cepat. Ini menampilkan jumlah total memori fisik dan swap yang digunakan.

[root@CentOS]# free 
             total       used      free      shared      buff/cache      available 
Mem:        1879668     526284    699796     10304        653588          1141412 
Swap:       3145724          0    3145724

[root@CentOS]#

Perintah yang bagus

niceakan memungkinkan administrator untuk mengatur prioritas penjadwalan suatu proses dalam hal penggunaan CPU. Keunggulannya adalah bagaimana kernel akan menjadwalkan potongan waktu CPU untuk suatu proses atau pekerjaan. Secara default, diasumsikan bahwa proses diberikan akses yang sama ke sumber daya CPU.

Pertama, mari gunakan top untuk memeriksa kebaikan dari proses yang sedang berjalan.

PID   USER   PR   NI    VIRT    RES    SHR   S  %CPU  %MEM     TIME+    COMMAND
28    root   39   19       0      0      0   S  0.0   0.0    0:00.17    khugepaged
690   root   39   19   16808   1396   1164   S  0.0   0.1    0:00.01    alsactl]
9598  rdc    39   19  980596  21904  10284   S  0.0   1.2    0:00.27    tracker-extract
9599  rdc    39   19  469876   9608   6980   S  0.0   0.5    0:00.04    tracker-miner-a
9609  rdc    39   19  636528  13172   8044   S  0.0   0.7    0:00.12    tracker-miner-f
9611  rdc    39   19  469620   8984   6496   S  0.0   0.5    0:00.02    tracker-miner-u
27    root   25    5       0      0      0   S  0.0   0.0    0:00.00    ksmd
637   rtkit  21    1  164648   1276   1068   S  0.0   0.1    0:00.11    rtkit-daemon
1     root   20    0  128096   6712   3964   S  0.3   0.4    0:03.57    systemd
2     root   20    0       0      0      0   S  0.0   0.0    0:00.01    kthreadd
3     root   20    0       0      0      0   S  0.0   0.0    0:00.50    ksoftirqd/0
7     root   20    0       0      0      0   S  0.0   0.0    0:00.00    migration/0
8     root   20    0       0      0      0   S  0.0   0.0    0:00.00    rcu_bh
9     root   20    0       0      0      0   S  0.0   0.0    0:02.07    rcu_sched

Kami ingin fokus pada kolom BAGUS yang digambarkan oleh NI . Kisaran keramahan bisa berkisar antara -20 hingga positif 19. -20 mewakili prioritas tertinggi yang diberikan.

nohup nice --20 ping www.google.com &

renice

renice memungkinkan kita untuk mengubah prioritas saat ini dari proses yang sudah berjalan.

renice 17 -p 30727

Perintah di atas akan menurunkan prioritas perintah proses ping kami .

firewalld adalah pengontrol front-end default untuk iptables di CentOS. The firewalld front-end memiliki dua keuntungan utama atas iptables baku -

  • Menggunakan rantai dan aturan abstraksi zona yang mudah dikonfigurasi dan diterapkan.

  • Ruleset bersifat dinamis, yang berarti koneksi stateful tidak akan terganggu saat pengaturan diubah dan / atau dimodifikasi.

Ingat, firewalld adalah pembungkus iptables - bukan pengganti. Meskipun perintah iptables khusus dapat digunakan dengan firewalld , disarankan untuk menggunakan firewalld agar tidak merusak fungsionalitas firewall.

Pertama, mari pastikan firewalld dimulai dan diaktifkan.

[root@CentOS rdc]# systemctl status firewalld 
● firewalld.service - firewalld - dynamic firewall daemon 
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) 
Active: active (running) since Thu 2017-01-26 21:42:05 MST; 3h 46min ago 
 Docs: man:firewalld(1) 
Main PID: 712 (firewalld) 
  Memory: 34.7M 
 CGroup: /system.slice/firewalld.service 
       └─712 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Kita dapat melihat, firewalld aktif (untuk memulai saat boot) dan sedang berjalan. Jika tidak aktif atau tidak dimulai kita dapat menggunakan -

systemctl start firewalld && systemctl enable firewalld

Sekarang kita telah mengkonfigurasi layanan firewalld kita, mari kita pastikan itu beroperasi.

[root@CentOS]# firewall-cmd --state 
running 
[root@CentOS]#

Kita bisa lihat, layanan firewalld berfungsi penuh.

Firewalld bekerja pada konsep zona . Zona diterapkan ke antarmuka jaringan melalui Manajer Jaringan. Kami akan membahas ini dalam mengkonfigurasi jaringan . Namun untuk saat ini, secara default, mengubah zona default akan mengubah semua adapter jaringan yang tersisa dalam status default "Zona Default".

Mari kita lihat sekilas setiap zona yang keluar-of-the-box dengan firewalld .

Sr.No. Zona & Deskripsi
1

drop

Tingkat kepercayaan rendah. Semua koneksi dan paket masuk terputus dan hanya koneksi keluar yang dimungkinkan melalui statefullness

2

block

Koneksi masuk akan dibalas dengan pesan icmp yang memberi tahu pemrakarsa bahwa permintaan dilarang

3

public

Semua jaringan dibatasi. Namun, koneksi masuk yang dipilih dapat diizinkan secara eksplisit

4

external

Mengonfigurasi firewalld untuk NAT. Jaringan internal tetap pribadi tetapi dapat dijangkau

5

dmz

Hanya koneksi masuk tertentu yang diperbolehkan. Digunakan untuk sistem dalam isolasi DMZ

6

work

Secara default, percayai lebih banyak komputer di jaringan dengan asumsi sistem berada dalam lingkungan kerja yang aman

7

hone

Secara default, lebih banyak layanan tidak difilter. Dengan asumsi sistem berada di jaringan rumah tempat layanan seperti NFS, SAMBA, dan SSDP akan digunakan

8

trusted

Semua mesin di jaringan dipercaya. Sebagian besar koneksi masuk diizinkan tanpa batasan.This is not meant for interfaces exposed to the Internet

Zona yang paling umum digunakan adalah: publik, drop, kantor, dan rumah.

Beberapa skenario di mana setiap zona umum akan digunakan adalah -

  • public- Ini adalah zona paling umum yang digunakan oleh administrator. Ini akan memungkinkan Anda menerapkan pengaturan khusus dan mematuhi spesifikasi RFC untuk operasi pada LAN.

  • drop- Contoh yang baik tentang kapan menggunakan drop adalah di konferensi keamanan, di WiFi publik, atau di antarmuka yang terhubung langsung ke Internet. drop menganggap semua permintaan yang tidak diminta berbahaya termasuk probe ICMP. Jadi setiap permintaan di luar negara bagian tidak akan menerima balasan. Kelemahan dari penurunan adalah dapat merusak fungsionalitas aplikasi dalam situasi tertentu yang membutuhkan kepatuhan RFC yang ketat.

  • work- Anda berada di LAN perusahaan yang semi-aman. Dimana semua lalu lintas dapat dianggap cukup aman. Ini berarti ini bukan WiFi dan kami mungkin memiliki IDS, IPS, dan keamanan fisik atau 802.1x. Kita juga harus mengenal orang-orang yang menggunakan LAN.

  • home- Anda menggunakan LAN rumah. Anda secara pribadi bertanggung jawab untuk setiap sistem dan pengguna di LAN. Anda tahu setiap mesin di LAN dan tidak ada yang dikompromikan. Seringkali layanan baru ditampilkan untuk berbagi media di antara individu tepercaya dan Anda tidak perlu meluangkan waktu ekstra demi keamanan.

Zona dan antarmuka jaringan bekerja pada level satu ke banyak. Satu antarmuka jaringan hanya dapat menerapkan satu zona pada satu waktu. Sementara, sebuah zona dapat diterapkan ke banyak antarmuka secara bersamaan.

Mari kita lihat zona apa yang tersedia dan zona apa yang saat ini diterapkan.

[root@CentOS]# firewall-cmd --get-zones 
 work drop internal external trusted home dmz public block

[root@CentOS]# firewall-cmd --get-default-zone 
public
[root@CentOS]#

Siap menambahkan beberapa aturan khusus di firewalld?

Pertama, mari kita lihat seperti apa tampilan kotak kita, ke portscanner dari luar.

bash-3.2# nmap -sS -p 1-1024 -T 5  10.211.55.1
 
Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-27 23:36 MST 
Nmap scan report for centos.shared (10.211.55.1) 
Host is up (0.00046s latency). 
Not shown: 1023 filtered ports 
PORT   STATE SERVICE 
22/tcp open  ssh


Nmap done: 1 IP address (1 host up) scanned in 3.71 seconds 
bash-3.2#

Biarkan permintaan masuk ke port 80.

Pertama, periksa untuk melihat zona apa yang diterapkan sebagai default.

[root@CentOs]# firewall-cmd --get-default-zone 
public
[root@CentOS]#

Kemudian, setel aturan yang mengizinkan port 80 ke zona default saat ini.

[root@CentOS]# firewall-cmd --zone=public --add-port = 80/tcp 
success
[root@CentOS]#

Sekarang, mari kita centang kotak kita setelah mengizinkan koneksi port 80.

bash-3.2# nmap -sS -p 1-1024 -T 5  10.211.55.1

Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-27 23:42 MST 
Nmap scan report for centos.shared (10.211.55.1) 
Host is up (0.00053s latency). 
Not shown: 1022 filtered ports 
PORT   STATE  SERVICE 
22/tcp open   ssh 
80/tcp closed http

Nmap done: 1 IP address (1 host up) scanned in 3.67 seconds 
bash-3.2#

Sekarang memungkinkan lalu lintas yang tidak diminta menjadi 80.

Mari kita letakkan zona default untuk dijatuhkan dan lihat apa yang terjadi pada pemindaian port.

[root@CentOS]# firewall-cmd --set-default-zone=drop 
success

[root@CentOS]# firewall-cmd --get-default-zone 
drop

[root@CentOs]#

Sekarang mari kita pindai host dengan antarmuka jaringan di zona yang lebih aman.

bash-3.2# nmap -sS -p 1-1024 -T 5  10.211.55.1 
Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-27 23:50 MST 
Nmap scan report for centos.shared (10.211.55.1) 
Host is up (0.00094s latency). 
All 1024 scanned ports on centos.shared (10.211.55.1) are filtered

Nmap done: 1 IP address (1 host up) scanned in 12.61 seconds 
bash-3.2#

Sekarang, semuanya disaring dari luar.

Seperti yang ditunjukkan di bawah ini, host bahkan tidak akan menanggapi permintaan ping ICMP saat drop .

bash-3.2# ping 10.211.55.1 
PING 10.211.55.1 (10.211.55.1): 56 data bytes 
Request timeout for icmp_seq 0 
Request timeout for icmp_seq 1 
Request timeout for icmp_seq 2

Mari kita setel zona default ke publik lagi.

[root@CentOs]# firewall-cmd --set-default-zone=public 
success

[root@CentOS]# firewall-cmd --get-default-zone 
public

[root@CentOS]#

Sekarang mari kita periksa kumpulan aturan pemfilteran kita saat ini di depan umum .

[root@CentOS]# firewall-cmd --zone=public --list-all 
public (active) 
target: default 
icmp-block-inversion: no 
interfaces: enp0s5 
sources:  
services: dhcpv6-client ssh 
ports: 80/tcp 
protocols:  
masquerade: no 
forward-ports:  
sourceports:  
icmp-blocks:  
rich rules:

[root@CentOS rdc]#

Sebagaimana telah dikonfigurasi, aturan filter port 80 kami hanya dalam konteks konfigurasi yang sedang berjalan. Ini berarti setelah sistem di-boot ulang atau layanan firewalld dimulai ulang, aturan kami akan dihapus.

Kami akan segera mengonfigurasi daemon httpd , jadi mari buat perubahan terus-menerus -

[root@CentOS]# firewall-cmd --zone=public --add-port=80/tcp --permanent 
success

[root@CentOS]# systemctl restart firewalld

[root@CentOS]#

Sekarang aturan port 80 kami di zona publik tetap ada saat boot ulang dan layanan dimulai ulang.

Berikut ini adalah perintah firewalld umum yang diterapkan dengan firewall-cmd .

Perintah Tindakan
firewall-cmd --get-zone Mencantumkan semua zona yang dapat diterapkan ke antarmuka
firewall-cmd —status Mengembalikan status saat ini dari layanan firewalld
firewall-cmd --get-default-zone Mendapat zona default saat ini
firewall-cmd --set-default-zone = <zone> Menetapkan zona default ke dalam konteks saat ini
firewall-cmd --get-active-zone Mendapat zona saat ini dalam konteks seperti yang diterapkan ke antarmuka
firewall-cmd --zone = <zone> --list-all Mencantumkan konfigurasi zona yang disediakan
firewall-cmd --zone = <zone> --addport = <port / transport protocol> Menerapkan aturan port ke filter zona
--permanen Membuat perubahan pada zona tetap ada. Bendera digunakan sejajar dengan perintah modifikasi

Ini adalah konsep dasar pengadministrasian dan konfigurasi firewalld .

Mengonfigurasi layanan firewall berbasis host di CentOS bisa menjadi tugas yang kompleks dalam skenario jaringan yang lebih canggih. Penggunaan lanjutan dan konfigurasi firewalld dan iptables di CentOS dapat mengambil seluruh tutorial. Namun, kami telah menyajikan dasar-dasar yang seharusnya cukup untuk menyelesaikan sebagian besar tugas harian.

PHP adalah salah satu bahasa web paling produktif yang digunakan saat ini. Menginstal LAMP Stack di CentOS adalah sesuatu yang harus dilakukan oleh setiap administrator sistem, kemungkinan besar lebih cepat daripada nanti.

LAMP Stack tradisional terdiri dari (L) inux (A) pache (M) ySQL (P) HP.

Ada tiga komponen utama untuk LAMP Stack di CentOS -

  • Server Web
  • Platform / Bahasa Pengembangan Web
  • Server Database

Note- Istilah LAMP Stack juga dapat mencakup teknologi berikut: PostgreSQL, MariaDB, Perl, Python, Ruby, NGINX Webserver.

Untuk tutorial ini, kita akan tetap menggunakan LAMP Stack tradisional CentOS GNU Linux: web server Apache, MySQL Database Server, dan PHP.

Kami sebenarnya akan menggunakan MariaDB. File konfigurasi MySQL, database, dan tabel transparan ke MariaDB. MariaDB sekarang termasuk dalam repositori CentOS standar, bukan MySQL. Ini karena keterbatasan lisensi dan kepatuhan sumber terbuka, karena Oracle telah mengambil alih pengembangan MySQL.

Hal pertama yang perlu kita lakukan adalah menginstal Apache.

[root@CentOS]# yum install httpd
Loaded plugins: fastestmirror, langpacks
base
| 3.6 kB  00:00:00
extras
| 3.4 kB  00:00:00
updates
| 3.4 kB  00:00:00
extras/7/x86_64/primary_d
| 121 kB  00:00:00
Loading mirror speeds from cached hostfile
* base: mirror.sigmanet.com
* extras: linux.mirrors.es.net
* updates: mirror.eboundhost.com
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-45.el7.centos will be installed
--> Processing Dependency: httpd-tools = 2.4.6-45.el7.centos for package:
httpd-2.4.6-45.el7.centos.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.4.645.el7.centos.x86_64
--> Running transaction check
---> Package httpd-tools.x86_64 0:2.4.6-45.el7.centos will be installed
---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
--> Finished Dependency Resolution
Installed:
httpd.x86_64 0:2.4.6-45.el7.centos

Dependency Installed:
httpd-tools.x86_64 0:2.4.6-45.el7.centos
mailcap.noarch 0:2.1.41-2.el7

Complete!
[root@CentOS]#

Mari konfigurasikan layanan httpd .

[root@CentOS]# systemctl start httpd && systemctl enable httpd

Sekarang, pastikan server web dapat diakses melalui firewalld.

bash-3.2# nmap -sS -p 1-1024 -T 5  -sV 10.211.55.1 
Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-28 02:00 MST 
Nmap scan report for centos.shared (10.211.55.1) 
Host is up (0.00054s latency). 
Not shown: 1022 filtered ports 
PORT   STATE SERVICE VERSION 
22/tcp open  ssh     OpenSSH 6.6.1 (protocol 2.0) 
80/tcp open  http    Apache httpd 2.4.6 ((CentOS))

Service detection performed. Please report any incorrect results at 
https://nmap.org/submit/ . 
Nmap done: 1 IP address (1 host up) scanned in 10.82 seconds bash-3.2#

Seperti yang Anda lihat dari probe layanan nmap, server web Apache sedang mendengarkan dan menanggapi permintaan pada host CentOS.

Instal Server Database MySQL

[root@CentOS rdc]# yum install mariadb-server.x86_64 && yum install mariadb-
devel.x86_64 && mariadb.x86_64 && mariadb-libs.x86_64

Kami sedang menginstal paket repositori berikut untuk MariaDB -

mariadb-server.x86_64

Paket daemon utama MariaDB Server.

mariadb-devel.x86_64

File perlu dikompilasi dari sumber dengan kompatibilitas MySQL / MariaDB.

mariadb.x86_64

Utilitas klien MariaDB untuk mengelola MariaDB Server dari baris perintah.

mariadb-libs.x86_64

Pustaka umum untuk MariaDB yang mungkin diperlukan untuk aplikasi lain yang dikompilasi dengan dukungan MySQL / MariaDB.

Sekarang, mari mulai dan aktifkan Layanan MariaDB.

[root@CentOS]# systemctl start mariadb 
[root@CentOS]# systemctl enable  mariadb

Note- Tidak seperti Apache, kami tidak akan mengaktifkan koneksi ke MariaDB melalui firewall berbasis host (firewalld). Saat menggunakan server database, dianggap praktik keamanan terbaik untuk hanya mengizinkan koneksi soket lokal, kecuali jika akses soket jarak jauh diperlukan secara khusus.

Mari pastikan Server MariaDB menerima koneksi.

[root@CentOS#] netstat -lnt 
Active Internet connections (only servers) 
Proto     Recv-Q     Send-Q     Local Address        Foreign Address      State       
tcp            0          0     0.0.0.0:3306         0.0.0.0:*            LISTEN      
tcp            0          0     0.0.0.0:111          0.0.0.0:*            LISTEN      
tcp            0          0     192.168.122.1:53     0.0.0.0:*            LISTEN      
tcp            0          0     0.0.0.0:22           0.0.0.0:*            LISTEN      
tcp            0          0     127.0.0.1:631        0.0.0.0:*            LISTEN      
tcp            0          0     127.0.0.1:25         0.0.0.0:*            LISTEN 
     
[root@CentOS rdc]#

Seperti yang bisa kita lihat, MariaDB sedang mendengarkan pada port 3306 tcp. Kami akan membiarkan firewall berbasis host (firewalld) memblokir koneksi masuk ke port 3306.

Instal dan Konfigurasi PHP

[root@CentOS#]  yum install php.x86_64 && php-common.x86_64 && php-mysql.x86_64 
&& php-mysqlnd.x86_64 && php-pdo.x86_64 && php-soap.x86_64 && php-xml.x86_64

Saya akan merekomendasikan menginstal paket php berikut untuk kompatibilitas umum -

  • php-common.x86_64
  • php-mysql.x86_64
  • php-mysqlnd.x86_64
  • php-pdo.x86_64
  • php-soap.x86_64
  • php-xml.x86_64
[root@CentOS]# yum install -y php-common.x86_64 php-mysql.x86_64 php-
mysqlnd.x86_64 php-pdo.x86_64 php-soap.x86_64 php-xml.x86_64

Ini adalah file php sederhana kami yang terletak di webroot Apache di / var / www / html /

[root@CentOS]# cat /var/www/html/index.php  
<html> 
   <head> 
      <title>PHP Test Page</title> 
   </head>
   
   <body> 
      PHP Install 
      <?php 
         echo "We are now running PHP on GNU Centos Linux!<br />" 
      ?> 
   </body> 
</html>

[root@CentOS]#

Mari kita ubah grup pemilik halaman kita menjadi pengguna sistem daemon http kita berjalan di bawah.

[root@CentOS]# chgrp httpd /var/www/html/index.php && chmod g+rx /var/www/html/index.php
---

Saat diminta secara manual melalui ncat.

bash-3.2# ncat 10.211.55.1 80 
   GET / index.php 
   HTTP/1.1 200 OK 
   Date: Sat, 28 Jan 2017 12:06:02 GMT 
   Server: Apache/2.4.6 (CentOS) PHP/5.4.16 
   X-Powered-By: PHP/5.4.16 
   Content-Length: 137 
   Connection: close 
   Content-Type: text/html; charset=UTF-8
   
<html> 
   <head> 
      <title>PHP Test Page</title> 
   </head>
   
   <body> 
      PHP Install 
      We are now running PHP on GNU Centos Linux!<br />
   </body> 
</html>

bash-3.2#

PHP dan LAMP adalah teknologi pemrograman web yang sangat populer. Instalasi dan konfigurasi LAMP pasti akan muncul di daftar kebutuhan Anda sebagai Administrator CentOS. Paket CentOS yang mudah digunakan telah mengambil banyak pekerjaan dari kompilasi Apache, MySQL, dan PHP dari kode sumber.

Python adalah bahasa interpretasi yang banyak digunakan yang telah membawa profesionalisme ke dunia pengkodean aplikasi skrip di Linux (dan sistem operasi lain). Dimana Perl pernah menjadi standar industri, Python telah melampaui Perl dalam banyak hal.

Beberapa kekuatan Python versus Perl adalah -

  • Kemajuan cepat dalam penyempurnaan

  • Perpustakaan yang standar untuk bahasa tersebut

  • Keterbacaan kode dipikirkan dalam definisi bahasa

  • Banyak kerangka kerja profesional untuk segala hal mulai dari dukungan GUI hingga pengembangan web

Python dapat melakukan apa saja yang dapat dilakukan Perl, dan dalam banyak kasus dengan cara yang lebih baik. Meskipun Perl masih memiliki tempatnya di antara kotak peralatan admin Linux, mempelajari Python adalah pilihan yang bagus sebagai seperangkat keahlian.

Kelemahan terbesar Python terkadang terkait dengan kekuatannya. Dalam sejarah, Python pada awalnya dirancang untuk mengajarkan pemrograman. Terkadang, fondasi intinya yaitu "mudah dibaca" dan "melakukan sesuatu dengan cara yang benar" dapat menyebabkan kerumitan yang tidak perlu saat menulis kode sederhana. Selain itu, pustaka standarnya telah menyebabkan masalah dalam transisi dari versi 2.X ke 3.X.

Skrip Python sebenarnya digunakan pada inti CentOS untuk fungsi-fungsi yang vital bagi fungsionalitas sistem operasi. Karena itu, penting untuk mengisolasi lingkungan Python pengembangan kita dari lingkungan inti Python CentOS.

Sebagai permulaan, saat ini ada dua versi Python: Python 2.X dan Python 3.X.

Kedua tahap tersebut masih dalam produksi aktif, meskipun versi 2.X dengan cepat mendekati depresiasi (dan telah berlangsung selama beberapa tahun). Alasan dari dua versi aktif Python pada dasarnya memperbaiki kekurangan versi 2.X. Ini memerlukan beberapa fungsionalitas inti versi 3.X untuk dikerjakan ulang dengan cara yang tidak dapat mendukung beberapa skrip versi 2.X.

Pada dasarnya, cara terbaik untuk mengatasi transisi ini adalah: Kembangkan untuk 3.X dan ikuti versi 2.X terbaru untuk skrip lama. Saat ini, CentOS 7.X mengandalkan revisi semi-terkini dari versi 2.X.

Pada tulisan ini, versi terbaru dari Python adalah: 3.4.6 dan 2.7.13.

Jangan biarkan ini membingungkan atau menarik kesimpulan apa pun tentang Python. Menyiapkan lingkungan Python sangat sederhana. Dengan framework dan library Python, tugas ini sebenarnya sangat mudah dilakukan.

Sebelum menyiapkan lingkungan Python kita, kita membutuhkan lingkungan yang waras. Untuk memulai, pastikan instalasi CentOS kami sepenuhnya diperbarui dan menginstal beberapa utilitas bangunan.

Step 1 - Perbarui CentOS.

[root@CentOS]# yum -y update

Step 2 - Instal utilitas build.

[root@CentOS]# yum -y groupinstall "development tools"

Step 3 - Instal beberapa paket yang dibutuhkan.

[root@CentOS]# yum install -y zlib-dev openssl-devel sqlite-devel bip2-devel

Sekarang kita perlu menginstal Python 2.X dan 3.X saat ini dari sumber.

  • Unduh arsip terkompresi
  • Ekstrak file
  • Kompilasi kode sumber

Mari kita mulai dengan membuat direktori build untuk setiap instalasi Python di / usr / src /

[root@CentOS]# mkdir -p /usr/src/pythonSource

Sekarang mari kita unduh tarbal sumber untuk masing-masing -

[root@CentOS]# wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tar.xz
[root@CentOS]# wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz

Sekarang kita perlu mengekstrak masing-masing dari arsip.

Step 1 - Instal xz-libs dan ekstrak tarball.

[root@CentOS]# yum install xz-libs
[root@CentOS python3]# xz -d ./*.xz
[root@CentOS python3]# ls
Python-2.7.13.tar  Python-3.6.0.tar
[root@CentOS python3]#

Step 2 - Hapus setiap installer dari tarball-nya.

[root@CentOS]# tar -xvf ./Python-2.7.13.tar
[root@CentOS]# tar -xvf ./Python-3.6.0.tar

Step 3 - Masuk ke setiap direktori dan jalankan skrip konfigurasi.

[root@CentOS]# ./configure --prefix=/usr/local 
root@CentOS]# make altinstall

Note - Pastikan untuk menggunakan altinstalldan tidak menginstal. Ini akan memisahkan CentOS dan versi pengembangan Python. Jika tidak, Anda dapat merusak fungsionalitas CentOS.

Anda sekarang akan melihat proses kompilasi dimulai. Ambil secangkir kopi dan istirahat 15 menit sampai selesai. Karena kami menginstal semua dependensi yang diperlukan untuk Python, proses kompilasi akan selesai tanpa kesalahan.

Mari pastikan kita telah menginstal Python versi 2.X terbaru.

[root@CentOS Python-2.7.13]# /usr/local/bin/python2.7 -V 
Python 2.7.13
[root@CentOS Python-2.7.13]#

Note - Anda akan ingin memberi awalan baris shebang yang menunjuk ke lingkungan pengembangan kami untuk Python 2.X.

[root@CentOS Python-2.7.13]# cat ver.py  
#!/usr/local/bin/python2.7 
import sys 
print(sys.version)

[root@CentOS Python-2.7.13]# ./ver.py 
2.7.13 (default, Jan 29 2017, 02:24:08)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]

Sama seperti itu, kami memiliki penginstalan Python terpisah untuk versi 2.X dan 3.X. Dari sini, kita dapat menggunakan masing-masing dan utilitas sepertipip dan virtualenv untuk lebih meringankan beban pengelolaan lingkungan Python dan instalasi paket.

Ruby adalah bahasa yang bagus untuk pengembangan web dan Administrasi Linux. Ruby memberikan banyak manfaat yang ditemukan dalam semua bahasa yang telah dibahas sebelumnya: PHP, Python, dan Perl.

Untuk menginstal Ruby, yang terbaik adalah melakukan bootstrap melalui rbenv yang memungkinkan administrator untuk menginstal dan mengelola Lingkungan Ruby dengan mudah.

Metode lain untuk menginstal Ruby adalah paket CentOS standar untuk Ruby. Dianjurkan untuk menggunakan metode rbenv dengan segala manfaatnya. Paket CentOS akan lebih mudah bagi mereka yang bukan ahli Ruby.

Pertama, mari kita dapatkan beberapa dependensi yang diperlukan untuk pemasang rbenv.

  • git-core
  • zlib
  • zlib-devel
  • gcc-c++
  • patch
  • readline
  • readline-devel
  • libyaml-devel
  • libffi-devel
  • openssl-devel
  • make
  • bzzip2
  • autoconf
  • automake
  • libtool
  • bison
  • curl
  • sqlite-devel

Sebagian besar paket ini mungkin sudah diinstal tergantung pada opsi dan peran yang dipilih saat menginstal CentOS. Sebaiknya instal semua yang kami tidak yakin karena hal ini dapat mengurangi sakit kepala saat menginstal paket yang membutuhkan dependensi.

[root@CentOS]# yum -y install git-core zlib zlib-devel gcc-c++ patch readline 
readline-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf 
automake libtool bison curl sqlite-devel

Metode 1: rbenv untuk Lingkungan Pengembangan Ruby Dinamis

Sekarang sebagai pengguna yang akan menggunakan Ruby -

[rdc@CentOS ~]$ git clone https://github.com/rbenv/rbenv.git
[rdc@CentOS ~]$  https://github.com/rbenv/ruby-build.git

ruby-build akan menyediakan fitur instalasi ke rbenv -

Note- Kita perlu beralih ke root atau pengguna administrasi sebelum menjalankan install.sh

[rdc@CentOS ruby-build]$ cd ~/ruby-build
[rdc@CentOS ruby-build]# ./install.sh

Mari atur shell kami untuk rbenv dan pastikan kami telah menginstal opsi yang benar.

[rdc@CentOS ~]$ source ~/rbenv/rbenv.d/exec/gem-rehash.bash [rdc@CentOS ruby-build]$ ~/rbenv/bin/rbenv  
rbenv 1.1.0-2-g4f8925a 
Usage: rbenv <command> [<args>]

Beberapa perintah rbenv yang berguna adalah -

Perintah Tindakan
lokal Menyetel atau menampilkan versi Ruby khusus aplikasi lokal
global Setel atau tampilkan versi Ruby global
kulit Menyetel atau menampilkan versi Ruby khusus shell
Install Instal versi Ruby menggunakan ruby-build
uninstall Uninstal versi Ruby tertentu
pengulangan Rehash rbenv shims (jalankan ini setelah menginstal file yang dapat dieksekusi)
Versi: kapan Menampilkan versi Ruby saat ini dan asalnya
versi Daftar semua versi Ruby yang tersedia untuk rbenv
yang Menampilkan jalur lengkap ke file yang dapat dieksekusi
darimana Mencantumkan semua versi Ruby yang berisi executable yang diberikan

Sekarang mari kita instal Ruby -

[rdc@CentOS bin]$ ~/rbenv/bin/rbenv install -v 2.2.1

Setelah kompilasi selesai -

[rdc@CentOS ~]$ ./ruby -v 
ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux] 
[rdc@CentOS ~]$

Kami sekarang memiliki lingkungan Ruby yang berfungsi dengan versi Ruby 2.X branch yang diperbarui dan berfungsi.

Metode 2: Instal Ruby dari Paket CentOS

Ini adalah metode yang paling sederhana. Namun, ini dapat dibatasi oleh versi dan permata yang dikemas dari CentOS. Untuk pekerjaan pengembangan yang serius, sangat disarankan untuk menggunakan metode rbenv untuk menginstal Ruby.

Instal Ruby, paket pengembangan yang dibutuhkan, dan beberapa permata umum.

[root@CentOS rdc]# yum install -y ruby.x86_64 ruby-devel.x86_64 ruby-
libs.x86_64 ruby-gem-json.x86_64 rubygem-rake.noarch

Sayangnya, kami memiliki versi Ruby yang agak ketinggalan jaman.

[root@CentOS rdc]# ruby -v 
ruby 2.0.0p648 (2015-12-16) [x86_64-linux]
[root@CentOS rdc]#

Perlsudah ada sejak lama. Ini pada awalnya dirancang sebagai bahasa pelaporan yang digunakan untuk mengurai file teks. Dengan popularitas yang meningkat, Perl telah menambahkan dukungan modul atau CPAN, soket, threading, dan fitur lain yang diperlukan dalam bahasa skrip yang kuat.

Keuntungan terbesar Perl dibandingkan PHP, Python, atau Ruby adalah: ia menyelesaikan berbagai hal dengan sedikit keributan. Filosofi Perl ini tidak selalu berarti menyelesaikan sesuatu dengan cara yang benar. Namun, untuk tugas administrasi di Linux, Perl dianggap sebagai pilihan masuk untuk bahasa skrip.

Beberapa keunggulan Perl dibandingkan Python atau Ruby adalah -

  • Pemrosesan teks yang kuat

  • Perl membuat penulisan skrip menjadi cepat dan kotor (biasanya skrip Perl akan lebih pendek beberapa lusin baris daripada yang setara di Python atau Ruby)

  • Perl dapat melakukan apa saja (hampir)

Beberapa kelemahan Perl adalah -

  • Sintaks bisa membingungkan

  • Gaya pengkodean di Perl bisa unik dan menghambat kolaborasi

  • Perl tidak benar-benar Berorientasi Objek

  • Biasanya, tidak banyak pemikiran yang dimasukkan ke dalam standardisasi dan praktik terbaik saat Perl digunakan.

Saat memutuskan apakah akan menggunakan Perl, Python atau PHP; pertanyaan berikut harus ditanyakan -

  • Akankah aplikasi ini membutuhkan versi?
  • Apakah orang lain perlu mengubah kode?
  • Apakah orang lain perlu menggunakan aplikasi ini?
  • Apakah aplikasi ini akan pernah digunakan di komputer lain atau arsitektur CPU?

Jika jawaban untuk semua hal di atas adalah "tidak", Perl adalah pilihan yang baik dan dapat mempercepat dalam hal hasil akhir.

Dengan ini, mari konfigurasikan server CentOS untuk menggunakan Perl versi terbaru.

Sebelum menginstal Perl, kita perlu memahami dukungan untuk Perl. Secara resmi, Perl hanya didukung sejak dua versi stabil terakhir. Jadi, kami ingin memastikan untuk menjaga lingkungan pengembangan kami terisolasi dari versi CentOS.

Alasan isolasi adalah: jika seseorang merilis alat di Perl ke komunitas CentOS, kemungkinan besar alat itu akan dimodifikasi untuk bekerja di Perl sebagaimana dikirimkan dengan CentOS. Namun, kami juga ingin menginstal versi terbaru untuk tujuan pengembangan. Seperti Python, CentOS mengirimkan Perl yang berfokus pada keandalan dan bukan yang terdepan.

Mari kita periksa versi Perl kita saat ini di CentOS 7.

[root@CentOS]# perl -v 
This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi

Kami sedang menjalankan Perl 5.16.3. Versi terbaru dari tulisan ini adalah: perl-5.24.0

Kami pasti ingin meningkatkan versi kami, dapat menggunakan modul Perl terbaru dalam kode kami. Untungnya, ada alat yang hebat untuk memelihara lingkungan Perl dan menjaga versi CentOS dari Perl kami terisolasi. Itu disebutperlbrew.

Mari instal Perl Brew.

[root@CentOS]# curl -L https://install.perlbrew.pl | bash 
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current 
                             Dload  Upload   Total   Spent    Left  Speed 
100   170  100   170    0     0    396      0 --:--:-- --:--:-- --:--:--   397 
100  1247  100  1247    0     0   1929      0 --:--:-- --:--:-- --:--:--  1929

Sekarang setelah Perl Brew terinstal, mari kita buat lingkungan untuk Perl versi terbaru.

Pertama, kita membutuhkan versi Perl yang saat ini terinstal untuk mem-bootstrap perlbrew install. Jadi, mari kita dapatkan beberapa modul Perl yang dibutuhkan dari repositori CentOS.

Note - Jika tersedia, kami selalu ingin menggunakan modul CentOS Perl versus CPAN dengan instalasi CentOS Perl kami.

Step 1 - Instal modul CentOS Perl Make :: Maker.

[root@CentOS]# yum -y install perl-ExtUtils-MakeMaker.noarch

Step 2 - Instal perl versi terbaru.

[root@CentOS build]# source ~/perl5/perlbrew/etc/bashrc
[root@CentOS build]# perlbrew install -n -j4 --threads perl-5.24.1

Opsi yang kami pilih untuk pemasangan Perl kami adalah -

  • n - Tidak ada tes

  • j4 - Jalankan 4 utas secara paralel untuk rutinitas instalasi (kami menggunakan CPU quadcore)

  • threads - Aktifkan dukungan threading untuk Perl

Setelah instalasi kita berhasil dilakukan, mari beralih ke lingkungan Perl terbaru kita.

[root@CentOS]# ~/perl5/perlbrew/bin/perlbrew use perl-5.24.1

A sub-shell is launched with perl-5.24.1 as the activated perl. Run 'exit' to finish it.

[root@CentOS]# perl -v

This is perl 5, version 24, subversion 1 (v5.24.1) built for x86_64-linuxthread-multi

(with 1 registered patch, see perl -V for more detail)

Copyright 1987-2017, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the GNU General
Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on this system 
using "man perl" or "perldoc perl".  If you have access to the Internet, point your 
browser at http://www.perl.org/, the Perl Home Page.

[root@CentOS]#

Percetakan skrip perl versi perl berjalan dalam konteks lingkungan perlbrew kita -

[root@CentOS]# cat ./ver.pl  
#!/usr/bin/perl
print $^V . "\n";

[root@CentOS]# perl ./ver.pl  
v5.24.1 
[root@CentOS]#

Setelah perl terinstal, kita dapat memuat modul cpan dengan cpanm perl brew -

[root@CentOS]# perl-brew install-cpanm

Sekarang mari gunakan penginstal cpanm untuk membuat modul LWP dengan versi Perl 5.24.1 di perl brew.

Step 1 - Beralih ke konteks versi Perl kami saat ini.

[root@CentOS ~]# ~/perl5/perlbrew/bin/perlbrew use perl-5.24.1

Sebuah sub-shell diluncurkan dengan perl-5.24.1 sebagai perl yang diaktifkan. Jalankan 'exit' untuk menyelesaikannya.

[root@CentOS ~]#

Step 2 - Instal Modul Perl Agen Pengguna LWP.

[root@CentOS ~]# ~/perl5/perlbrew/bin/cpanm -i LWP::UserAgent

Step 3 - Sekarang mari kita uji lingkungan Perl kita dengan modul CPAN yang baru.

[root@CentOS ~]# cat ./get_header.pl  
#!/usr/bin/perl 
use LWP; 
my $browser = LWP::UserAgent->new(); my $response = $browser->get("http://www.slcc.edu/"); unless(!$response->is_success) { 
   print $response->header("Server"); 
}

[root@CentOS ~]# perl ./get_header.pl  
Microsoft-IIS/8.5 [root@CentOS ~]#

Itu dia! Perl Brew membuat pengisolasian lingkungan perl menjadi cepat dan dapat dianggap sebagai praktik terbaik seiring berjalannya waktu dengan Perl.

LDAP dikenal sebagai Light Weight Directory Access Protocoladalah protokol yang digunakan untuk mengakses wadah layanan X.500 dalam perusahaan yang dikenal dari direktori. Mereka yang terbiasa dengan Administrasi Server Windows dapat menganggap LDAP sangat mirip dengan Active Directory. Ini bahkan merupakan konsep yang digunakan secara luas untuk menghubungkan workstation Windows ke dalam perusahaan OpenLDAP CentOS. Di spektrum lain, workstation CentOS Linux dapat berbagi sumber daya dan berpartisipasi dengan fungsionalitas dasar di Domain Windows.

Menyebarkan LDAP di CentOS sebagai Agen Server Direktori, Agen Sistem Direktori, atau DSA (semua akronim ini adalah satu dan sama) mirip dengan penginstalan Novell Netware yang lebih lama menggunakan struktur Pohon Direktori dengan NDS.

Sejarah Singkat LDAP

LDAP pada dasarnya dibuat sebagai cara yang efisien untuk mengakses direktori X.500 dengan sumber daya perusahaan. Baik X.500 dan LDAP memiliki karakteristik yang sama dan sangat mirip sehingga klien LDAP dapat mengakses direktori X.500 dengan beberapa pembantu. Sedangkan LDAP juga memiliki server direktorinya sendiri yang disebutslapd. Perbedaan utama antara LDAP dan DAP adalah, versi ringannya dirancang untuk beroperasi melalui TCP.

Sedangkan DAP menggunakan Model OSI penuh. Dengan munculnya Internet, TCP / IP, dan keunggulan Ethernet dalam jaringan saat ini, jarang sekali menemukan implantasi Layanan Direktori yang menggunakan direktori perusahaan DAP dan X.500 asli di luar model komputasi lawas tertentu.

Komponen utama yang digunakan dengan openldap untuk CentOS Linux adalah -

openldap Pustaka dukungan LDAP
openldap-server Server LDAP
openldap-clients Utilitas klien LDAP
openldap-devel Perpustakaan pengembangan untuk OpenLDAP
compay-openldap Perpustakaan bersama OpenLDAP
menampar Daemon server direktori OpenLDAP
menyeruput Digunakan untuk replikasi LDAP di seluruh domain perusahaan

Note - Saat menamai perusahaan Anda, praktik terbaiknya adalah menggunakan .localTLD. Menggunakan .net atau .com dapat menyebabkan kesulitan saat memisahkan infrastruktur domain online dan internal. Bayangkan pekerjaan ekstra untuk perusahaan secara internal menggunakan acme.com untuk operasi eksternal dan internal. Oleh karena itu, sebaiknya memiliki sumber daya Internet yang disebut acme.com atau acme.net . Kemudian, sumber daya perusahaan jaringan lokal digambarkan sebagai acme.local . Ini akan memerlukan konfigurasi catatan DNS, tetapi akan membayar dalam kesederhanaan, kefasihan, dan keamanan.

Instal Open LDAP di CentOS

Instal openldap, openldap-server, openldap-clients, dan perangkat migrasi dari YUM .

[root@localhost]# yum -y install openldap openldap-servers openldap-clients
migration tools
 Loaded plugins: fastestmirror, langpacks
 updates
 | 3.4 kB  00:00:00
 updates/7/x86_64/primary_db
 | 2.2 MB  00:00:05
 Determining fastest mirrors
 (1/2): extras/7/x86_64/primary_db
 | 121 kB  00:00:01
 (2/2): base/7/x86_64/primary_db
 | 5.6 MB  00:00:16
 Package openldap-2.4.40-13.el7.x86_64 already installed and latest version
 Resolving Dependencies
 --> Running transaction check
 ---> Package openldap-clients.x86_64 0:2.4.40-13.el7 will be installed
 ---> Package openldap-servers.x86_64 0:2.4.40-13.el7 will be installed
 --> Finished Dependency Resolution
 base/7/x86_64/group_gz
 | 155 kB  00:00:00
 
 Dependencies Resolved
 
=============================================================================== 
=============================================================================== 
Package                                Arch
Version                             Repository                        Size 
=============================================================================== 
=============================================================================== 
Installing: 
openldap-clients                    x86_64
2.4.40-13.el7                    base                                 188 k 
openldap-servers                    x86_64
2.4.40-13.el7                    base                                 2.1 M  

Transaction Summary 
=============================================================================== 
===============================================================================
Install  2 Packages

Total download size: 2.3 M 
Installed size: 5.3 M 
Downloading packages:

Installed: 
openldap-clients.x86_64 0:2.4.40-13.el7                                       
openldap-servers.x86_64 0:2.4.40-13.el7                                       
Complete! 
[root@localhost]#

Sekarang, mari mulai dan aktifkan layanan slapd -

[root@centos]# systemctl start slapd 
[root@centos]# systemctl enable  slapd

Pada titik ini, pastikan kita memiliki struktur openldap di / etc / openldap .

root@localhost]# ls /etc/openldap/ 
certs  check_password.conf  ldap.conf  schema  slapd.d
[root@localhost]#

Kemudian pastikan layanan slapd kami berjalan.

root@centos]# netstat -antup | grep slapd
tcp        0      0 0.0.0.0:389            0.0.0.0:*              LISTEN      1641/slapd
tcp6       0      0 :::389                 :::*                   LISTEN      1641/slapd
 
[root@centos]#

Selanjutnya, mari konfigurasikan penginstalan Open LDAP kita .

Pastikan pengguna ldap sistem kami telah dibuat.

[root@localhost]# id ldap 
uid=55(ldap) gid=55(ldap) groups=55(ldap)
[root@localhost]#

Buat kredensial LDAP kami.

[root@localhost]# slappasswd  
New password:  
Re-enter new password:  
{SSHA}20RSyjVv6S6r43DFPeJgASDLlLoSU8g.a10

[root@localhost]#

Kita perlu menyimpan keluaran dari slappasswd.

Konfigurasi Open LDAP

Step 1 - Konfigurasi LDAP untuk domain dan tambahkan pengguna administratif.

Pertama, kami ingin menyiapkan lingkungan openLDAP kami. Berikut adalah template yang akan digunakan dengan perintah ldapmodify .

dn: olcDatabase={2}hdb,cn=config 
changetype: modify 
replace: olcSuffix 
olcSuffix: dc=vmnet,dc=local 
dn: olcDatabase = {2}hdb,cn=config 
changetype: modify 
replace: olcRootDN 
olcRootDN: cn=ldapadm,dc=vmnet,dc=local 
dn: olcDatabase = {2}hdb,cn=config 
changetype: modify 
replace: olcRootPW 
olcRootPW: <output from slap

Lakukan perubahan pada: /etc/openldap/slapd.d/cn=config/olcDatabase = {1} monitor.ldif dengan perintah ldapmodify.

[root@localhost]# ldapmodify -Y EXTERNAL -H ldapi:/// -f /home/rdc/Documents/db.ldif  
SASL/EXTERNAL authentication started 
SASL username: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth 
SASL SSF: 0 
modifying entry "olcDatabase = {2}hdb,cn=config" 
modifying entry "olcDatabase = {2}hdb,cn=config" 
modifying entry "olcDatabase = {2}hdb,cn=config" 

[root@localhost cn=config]#

Mari kita periksa konfigurasi LDAP yang dimodifikasi.

root@linux1 ~]# vi /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif

[root@centos]# cat /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif
 # AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. 
 # CRC32 a163f14c
dn: olcDatabase = {2}hdb
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
structuralObjectClass: olcHdbConfig
entryUUID: 1bd9aa2a-8516-1036-934b-f7eac1189139
creatorsName: cn=config
createTimestamp: 20170212022422Z
olcSuffix: dc=vmnet,dc=local
olcRootDN: cn=ldapadm,dc=vmnet,dc=local
olcRootPW:: e1NTSEF1bUVyb1VzZTRjc2dkYVdGaDY0T0k = 
entryCSN: 20170215204423.726622Z#000000#000#000000 
modifiersName: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20170215204423Z

[root@centos]#

Seperti yang Anda lihat, modifikasi perusahaan LDAP kami berhasil.

Selanjutnya, kami ingin membuat sertifikat ssl yang ditandatangani sendiri untuk OpenLDAP. Ini akan mengamankan komunikasi antara server perusahaan dan klien.

Step 2 - Buat sertifikat yang ditandatangani sendiri untuk OpenLDAP.

Kami akan menggunakan openssl untuk membuat sertifikat ssl yang ditandatangani sendiri. Pergi ke bab berikutnya,Create LDAP SSL Certificate with openssluntuk instruksi untuk mengamankan komunikasi dengan OpenLDAP. Kemudian ketika sertifikat ssl dikonfigurasi, kami akan menyelesaikan konfigurasi perusahaan OpenLDAP kami.

Step 3 - Konfigurasi OpenLDAP untuk menggunakan komunikasi aman dengan sertifikat.

Buat file certs.ldif di vim dengan informasi berikut -

dn: cn=config
changetype: modify
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/openldap/certs/yourGeneratedCertFile.pem

dn: cn=config
changetype: modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/openldap/certs/youGeneratedKeyFile.pem

Selanjutnya, sekali lagi, gunakan perintah ldapmodify untuk menggabungkan perubahan ke dalam konfigurasi OpenLDAP.

[root@centos rdc]# ldapmodify -Y EXTERNAL  -H ldapi:/// -f certs.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"

[root@centos]#

Terakhir, mari kita uji konfigurasi OpenLADP kita.

[root@centos]# slaptest -u 
config file testing succeeded 
[root@centos]#

Step 4 - Siapkan database slapd.

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG && 
chown ldap:ldap /var/lib/ldap/*

Memperbarui Skema OpenLDAP.

Tambahkan skema LDAP cosinus dan nis.

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

Terakhir, buat skema perusahaan dan tambahkan ke konfigurasi OpenLDAP saat ini.

Berikut ini untuk domain bernama vmnet. lokal dengan Admin LDAP yang disebut ldapadm .

dn: dc=vmnet,dc=local
dc: vmnet
objectClass: top
objectClass: domain

dn: cn=ldapadm ,dc=vmnet,dc=local
objectClass: organizationalRole
cn: ldapadm
description: LDAP Manager

dn: ou = People,dc=vmnet,dc=local
objectClass: organizationalUnit
ou: People

dn: ou = Group,dc=vmnet,dc=local 
objectClass: organizationalUnit 
ou: Group

Terakhir, impor ini ke skema OpenLDAP saat ini.

[root@centos]# ldapadd -x -W -D "cn=ldapadm,dc=vmnet,dc=local" -f ./base.ldif
 Enter LDAP Password:
adding new entry "dc=vmnet,dc=local"

adding new entry "cn=ldapadm ,dc=vmnet,dc=local"

adding new entry "ou=People,dc=vmnet,dc=local"

adding new entry "ou=Group,dc=vmnet,dc=local"

[root@centos]#

Step 5 - Siapkan Pengguna Perusahaan OpenLDAP.

Buka vim atau editor teks favorit Anda dan salin format berikut. Ini disiapkan untuk pengguna bernama "entacct" di domain LDAP "vmnet.local".

dn: uid=entacct,ou=People,dc=vmnet,dc=local 
objectClass: top
objectClass: account 
objectClass: posixAccount 
objectClass: shadowAccount 
cn: entacct 
uid: entacct 
uidNumber: 9999 
gidNumber: 100 
homeDirectory: /home/enyacct 
loginShell: /bin/bash 
gecos: Enterprise User Account 001 
userPassword: {crypt}x 
shadowLastChange: 17058 
shadowMin: 0 
shadowMax: 99999 
shadowWarning: 7

Sekarang impor file di atas, seperti yang disimpan, ke dalam OpenLdap Schema.

[root@centos]# ldapadd -x -W -D "cn=ldapadm,dc=vmnet,dc=local" -f entuser.ldif 
 Enter LDAP Password:
adding new entry "uid=entacct,ou=People,dc=vmnet,dc=local" 

[root@centos]#

Sebelum pengguna dapat mengakses LDAP Enterprise, kami perlu menetapkan sandi sebagai berikut -

ldappasswd -s password123 -W -D "cn=ldapadm,dc=entacct,dc=local" -x "uid=entacct 
,ou=People,dc=vmnet,dc=local"

-s menentukan kata sandi untuk pengguna

-x adalah nama pengguna untuk penerapan pembaruan kata sandi

-D adalah * nama yang dibedakan "untuk mengautentikasi terhadap skema LDAP.

Terakhir, sebelum masuk ke akun Perusahaan, mari periksa entri OpenLDAP kami .

[root@centos rdc]# ldapsearch -x cn=entacct -b dc=vmnet,dc=local
 # extended LDIF
 #
 # LDAPv3
 # base <dc=vmnet,dc=local> with scope subtree
 # filter: cn=entacct
 # requesting: ALL 
 # 
 # entacct, People, vmnet.local 
dn: uid=entacct,ou=People,dc=vmnet,dc=local 
objectClass: top 
objectClass: account 
objectClass: posixAccount 
objectClass: shadowAccount 
cn: entacct 
uid: entacct 
uidNumber: 9999 
gidNumber: 100 
homeDirectory: /home/enyacct 
loginShell: /bin/bash 
gecos: Enterprise User Account 001 
userPassword:: e2NyeXB0fXg= 
shadowLastChange: 17058 
shadowMin: 0 
shadowMax: 99999 
shadowWarning: 7

Mengonversi hal-hal seperti / etc / passwd dan / etc / groups ke otentikasi OpenLDAP memerlukan penggunaan alat migrasi. Ini termasuk dalam paket alat migrasi . Kemudian, instal ke / usr / share / migrasitools .

[root@centos openldap-servers]# ls -l /usr/share/migrationtools/
total 128
-rwxr-xr-x. 1 root root  2652 Jun  9  2014 migrate_aliases.pl
-rwxr-xr-x. 1 root root  2950 Jun  9  2014 migrate_all_netinfo_offline.sh
-rwxr-xr-x. 1 root root  2946 Jun  9  2014 migrate_all_netinfo_online.sh
-rwxr-xr-x. 1 root root  3011 Jun  9  2014 migrate_all_nis_offline.sh
-rwxr-xr-x. 1 root root  3006 Jun  9  2014 migrate_all_nis_online.sh
-rwxr-xr-x. 1 root root  3164 Jun  9  2014 migrate_all_nisplus_offline.sh
-rwxr-xr-x. 1 root root  3146 Jun  9  2014 migrate_all_nisplus_online.sh
-rwxr-xr-x. 1 root root  5267 Jun  9  2014 migrate_all_offline.sh
-rwxr-xr-x. 1 root root  7468 Jun  9  2014 migrate_all_online.sh
-rwxr-xr-x. 1 root root  3278 Jun  9  2014 migrate_automount.pl
-rwxr-xr-x. 1 root root  2608 Jun  9  2014 migrate_base.pl

Step 6 - Terakhir, kita perlu mengizinkan akses ke layanan slapd sehingga dapat melayani permintaan.

firewall-cmd --permanent --add-service=ldap 
firewall-cmd --reload

Konfigurasikan Akses Klien LDAP

Mengonfigurasi akses klien LDAP memerlukan paket berikut pada klien: openldap, klien open-ldap, dan nss_ldap.

Mengonfigurasi otentikasi LDAP untuk sistem klien sedikit lebih mudah.

Step 1 - Instal paket dependen -

# yum install -y openldap-clients nss-pam-ldapd

Step 2- Konfigurasi otentikasi LDAP dengan authconfig .

authconfig --enableldap --enableldapauth --ldapserver=10.25.0.1 --
ldapbasedn="dc=vmnet,dc=local" --enablemkhomedir --update

Step 3 - Mulai ulang layanan nslcd.

systemctl restart  nslcd

TLS dan Latar Belakang SSL

TLS adalah standar baru untuk keamanan lapisan soket, melanjutkan SSL. TLS menawarkan standar enkripsi yang lebih baik dengan fitur keamanan dan pembungkus protokol lainnya yang meningkatkan SSL. Seringkali, istilah TLS dan SSL digunakan secara bergantian. Namun, sebagai Administrator CentOS profesional, penting untuk mencatat perbedaan dan riwayat yang memisahkan masing-masing.

SSL naik ke versi 3.0. SSL dikembangkan dan dipromosikan sebagai standar industri di bawah Netscape. Setelah Netscape dibeli oleh AOL (ISP yang populer di tahun 90-an atau dikenal sebagai America Online), AOL tidak pernah benar-benar mempromosikan perubahan yang diperlukan untuk peningkatan keamanan pada SSL.

Pada versi 3.1, teknologi SSL dipindahkan ke standar sistem terbuka dan diubah menjadi TLS . Karena hak cipta di SSL masih dimiliki oleh AOL, istilah baru diciptakan:TLS - Transport Layer Security. Jadi penting untuk diketahui bahwa TLS pada kenyataannya berbeda dari SSL . Terutama, karena teknologi SSL yang lebih lama telah mengetahui masalah keamanan dan beberapa dianggap usang saat ini.

Note- Tutorial ini akan menggunakan istilah TLS saat berbicara tentang teknologi 3.1 dan yang lebih tinggi. Kemudian SSL saat berkomentar khusus untuk teknologi SSL 3.0 dan yang lebih rendah.

Versi SSL vs TLS

Tabel berikut menunjukkan bagaimana TLS dan versi SSL akan berhubungan satu sama lain. Saya telah mendengar beberapa orang berbicara tentang SSL versi 3.2. Namun, mereka mungkin mendapat terminologi dari membaca blog. Sebagai administrator profesional, kami selalu ingin menggunakan terminologi standar. Karenanya, saat berbicara SSL harus menjadi referensi ke teknologi masa lalu. Hal-hal sederhana dapat membuat pencari kerja CentOS terlihat seperti CS Major yang berpengalaman.

TLS SSL
- 3.0
1.0 3.1
1.1 3.2
1.2 3.3

TLS melakukan dua fungsi utama yang penting bagi pengguna Internet saat ini: Satu, memverifikasi siapa pihak, yang dikenal sebagaiauthentication. Dua, ia menawarkanend-to-end encryption di lapisan transport untuk protokol tingkat atas yang tidak memiliki fitur asli ini (ftp, http, protokol email, dan lainnya).

Yang pertama, memverifikasi siapa pihak tersebut dan penting bagi keamanan sebagai enkripsi ujung-ke-ujung. Jika konsumen memiliki koneksi terenkripsi ke situs web yang tidak berwenang untuk mengambil pembayaran, data keuangan masih berisiko. Inilah yang gagal dimiliki setiap situs phishing:a properly signed TLS certificate verifying website operators are who they claim to be from a trusted CA.

Hanya ada dua metode untuk menghindari tidak memiliki sertifikat yang ditandatangani dengan benar: menipu pengguna agar mengizinkan kepercayaan browser web untuk sertifikat yang ditandatangani sendiri atau berharap pengguna tidak paham teknologi dan tidak akan tahu pentingnya Sertifikat tepercaya Otoritas (atau CA).

Dalam tutorial ini, kita akan menggunakan apa yang dikenal sebagai sertifikat yang ditandatangani sendiri. Artinya, tanpa secara eksplisit memberikan sertifikat ini status tepercaya di setiap browser web yang mengunjungi situs web, kesalahan akan ditampilkan sehingga membuat pengguna enggan mengunjungi situs tersebut. Kemudian, ini akan membuat pengguna melompat melalui beberapa tindakan sebelum mengakses situs dengan sertifikat yang ditandatangani sendiri. Ingat, demi keamanan, ini adalah hal yang baik.

Instal dan Konfigurasi openssl

openssl adalah standar untuk implementasi open-source TLS. openssl digunakan pada sistem seperti Linux, distribusi BSD, OS X, dan bahkan mendukung Windows.

openssl penting, karena menyediakan keamanan lapisan transport dan mengabstraksi pemrograman rinci dari Authentication dan enkripsi ujung-ke-ujung untuk pengembang. Inilah sebabnya mengapa openssl digunakan dengan hampir setiap aplikasi open-source menggunakan TLS. Itu juga diinstal secara default pada setiap versi Linux modern.

Secara default, openssl harus diinstal pada CentOS setidaknya dari versi 5 dan seterusnya. Sekadar memastikan, ayo coba install openssl via YUM. Jalankan saja instal, karena YUM cukup cerdas untuk memberi tahu kami jika paket sudah diinstal. Jika kami menjalankan CentOS versi lama karena alasan kompatibilitas, melakukan instalasi yum -y akan memastikan openssl diperbarui terhadap kerentanan yang semi-terbaru.

Saat menjalankan penginstal, ditemukan sebenarnya ada pembaruan untuk openssl .

[root@centos]# yum -y install openssl
Resolving Dependencies
--> Running transaction check
---> Package openssl.x86_64 1:1.0.1e-60.el7 will be updated
---> Package openssl.x86_64 1:1.0.1e-60.el7_3.1 will be an update
--> Processing Dependency: openssl-libs(x86-64) = 1:1.0.1e-60.el7_3.1 for 
package: 1:openssl-1.0.1e-60.el7_3.1.x86_64
--> Running transaction check
---> Package openssl-libs.x86_64 1:1.0.1e-60.el7 will be updated
---> Package openssl-libs.x86_64 1:1.0.1e-60.el7_3.1 will be an update
--> Finished Dependency Resolution 
Dependencies Resolved

===============================================================================
=============================================================================== 
 Package                               Arch
 Version                            Repository                        Size 
=============================================================================== 
=============================================================================== 
Updating: 
openssl                               x86_64                          
1:1.0.1e-60.el7_3.1                 updates                           713 k
Updating for dependencies:

Buat Sertifikat yang ditandatangani sendiri untuk OpenLDAP

Ini adalah metode untuk membuat tanda tangan sendiri untuk instalasi OpenLDAP kita sebelumnya .

Untuk membuat Sertifikat OpenLDAP yang ditandatangani sendiri.

openssl req -new -x509 -nodes -out /etc/openldap/certs/myldaplocal.pem -keyout
/etc/openldap/certs/myldaplocal.pem -days 365

[root@centos]# openssl req -new -x509 -nodes -out /etc/openldap/certs/vmnet.pem 
-keyout /etc/openldap/certs/vmnet.pem -days 365 
Generating a 2048 bit RSA private key
.............................................+++
................................................+++
writing new private key to '/etc/openldap/certs/vmnet.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:US
State or Province Name (full name) []:Califonia
Locality Name (eg, city) [Default City]:LA
Organization Name (eg, company) [Default Company Ltd]:vmnet
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:centos
Email Address []:[email protected]
[root@centos]#

Sekarang sertifikat OpenLDAP kami harus ditempatkan di / etc / openldap / certs /

[root@centos]# ls /etc/openldap/certs/*.pem 
/etc/openldap/certs/vmnetcert.pem  /etc/openldap/certs/vmnetkey.pem
[root@centos]#

Seperti yang Anda lihat, kami memiliki sertifikat dan kunci yang diinstal di direktori / etc / openldap / certs / . Terakhir, kita perlu mengubah hak akses untuk masing-masing, karena mereka saat ini dimiliki oleh pengguna root.

[root@centos]# chown -R  ldap:ldap /etc/openldap/certs/*.pem
[root@centos]# ls -ld /etc/openldap/certs/*.pem
-rw-r--r--. 1 ldap ldap 1395 Feb 20 10:00 /etc/openldap/certs/vmnetcert.pem 
-rw-r--r--. 1 ldap ldap 1704 Feb 20 10:00 /etc/openldap/certs/vmnetkey.pem
[root@centos]#

Buat Sertifikat yang Ditandatangani Sendiri untuk Server Web Apache

Dalam tutorial ini, kami menganggap Apache sudah diinstal. Kami menginstal Apache di tutorial lain (mengkonfigurasi CentOS Firewall) dan akan masuk ke instalasi Apache tingkat lanjut untuk tutorial selanjutnya. Jadi, jika Anda belum menginstal Apache, silakan ikuti.

Setelah Apache HTTPd dapat diinstal menggunakan langkah-langkah berikut -

Step 1 - Instal mod_ssl untuk server httpd Apache.

Pertama kita perlu mengkonfigurasi Apache dengan mod_ssl. Menggunakan pengelola paket YUM ini cukup sederhana -

[root@centos]# yum -y install mod_ssl

Kemudian muat ulang daemon Apache Anda untuk memastikan Apache menggunakan konfigurasi baru.

[root@centos]# systemctl reload httpd

Pada titik ini, Apache dikonfigurasi untuk mendukung koneksi TLS di host lokal.

Step 2 - Buat sertifikat ssl yang ditandatangani sendiri.

Pertama, mari konfigurasikan direktori kunci TLS pribadi kita.

[root@centos]# mkdir /etc/ssl/private 
[root@centos]# chmod 700 /etc/ssl/private/

Note- Pastikan hanya root yang memiliki akses baca / tulis ke direktori ini. Dengan akses baca / tulis dunia, kunci pribadi Anda dapat digunakan untuk mendekripsi lalu lintas yang diendus.

Menghasilkan sertifikat dan file kunci.

[root@centos]# sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout 
/etc/ssl/private/self-gen-apache.key -out /etc/ssl/certs/self-sign-apache.crt 
Generating a 2048 bit RSA private key
..........+++
....+++
-----
Country Name (2 letter code) [XX]:US
State or Province Name (full name) []:xx
Locality Name (eg, city) [Default City]:xxxx
Organization Name (eg, company) [Default Company Ltd]:VMNET
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:centos.vmnet.local
Email Address []:

[root@centos]#

Note - Anda dapat menggunakan Alamat IP publik server jika Anda tidak memiliki nama domain terdaftar.

Mari kita lihat sertifikat kami -

[root@centos]# openssl x509 -in self-sign-apache.crt -text -noout
Certificate:
   Data:
      Version: 3 (0x2)
      Serial Number: 17620849408802622302 (0xf489d52d94550b5e)
   Signature Algorithm: sha256WithRSAEncryption
   Issuer: C=US, ST=UT, L=xxxx, O=VMNET, CN=centos.vmnet.local
   Validity
      Not Before: Feb 24 07:07:55 2017 GMT
      Not After : Feb 24 07:07:55 2018 GMT
   Subject: C=US, ST=UT, L=xxxx, O=VMNET, CN=centos.vmnet.local
   Subject Public Key Info:
      Public Key Algorithm: rsaEncryption
         Public-Key: (2048 bit)
            Modulus:
               00:c1:74:3e:fc:03:ca:06:95:8d:3a:0b:7e:1a:56:
               f3:8d:de:c4:7e:ee:f9:fa:79:82:bf:db:a9:6d:2a:
               57:e5:4c:31:83:cf:92:c4:e7:16:57:59:02:9e:38:
               47:00:cd:b8:31:b8:34:55:1c:a3:5d:cd:b4:8c:b0:
               66:0c:0c:81:8b:7e:65:26:50:9d:b7:ab:78:95:a5:
               31:5e:87:81:cd:43:fc:4d:00:47:5e:06:d0:cb:71:
               9b:2a:ab:f0:90:ce:81:45:0d:ae:a8:84:80:c5:0e:
               79:8a:c1:9b:f4:38:5d:9e:94:4e:3a:3f:bd:cc:89:
               e5:96:4a:44:f5:3d:13:20:3d:6a:c6:4d:91:be:aa:
               ef:2e:d5:81:ea:82:c6:09:4f:40:74:c1:b1:37:6c:
               ff:50:08:dc:c8:f0:67:75:12:ab:cd:8d:3e:7b:59:
               e0:83:64:5d:0c:ab:93:e2:1c:78:f0:f4:80:9e:42: 
               7d:49:57:71:a2:96:c6:b8:44:16:93:6c:62:87:0f:
               5c:fe:df:29:89:03:6e:e5:6d:db:0a:65:b2:5e:1d:
               c8:07:3d:8a:f0:6c:7f:f3:b9:32:b4:97:f6:71:81:
               6b:97:e3:08:bd:d6:f8:19:40:f1:15:7e:f2:fd:a5:
               12:24:08:39:fa:b6:cc:69:4e:53:1d:7e:9a:be:4b:

Berikut adalah penjelasan untuk setiap opsi yang kami gunakan dengan perintah openssl -

Perintah Tindakan
req -X509 Gunakan standar PKI manajemen CSR X.509 untuk manajemen kunci.
-node Jangan amankan sertifikat kami dengan frasa sandi. Apache harus dapat menggunakan sertifikat tanpa gangguan frasa sandi.
-hari 2555 Memberitahukan keabsahan sertifikat sampai 7 tahun atau 2555 hari. Jangka waktu dapat diatur sesuai kebutuhan.
-newkey rsa: 2048 Ditentukan untuk menghasilkan kunci dan sertifikat menggunakan RSA dengan panjang 2048 bit.

Selanjutnya, kami ingin membuat grup Diffie-Heliman untuk menegosiasikan PFS dengan klien.

[centos#] openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Ini akan memakan waktu dari 5 hingga 15 menit.

Perfect Forward Secrecy- Digunakan untuk mengamankan data sesi jika kunci pribadi telah disusupi. Ini akan menghasilkan kunci yang digunakan antara klien dan server yang unik untuk setiap sesi.

Sekarang, tambahkan konfigurasi Perfect Forward Secrecy ke sertifikat kami.

[root@centos]# cat /etc/ssl/certs/dhparam.pem | tee -a /etc/ssl/certs/self-sign-apache.crt

Konfigurasikan Apache untuk Menggunakan File Kunci dan Sertifikat

Kami akan membuat perubahan pada /etc/httpd/conf.d/ssl.conf -

Kami akan membuat perubahan berikut ke ssl.conf . Namun, sebelum kita melakukannya kita harus membuat cadangan file asli. Saat membuat perubahan ke server produksi di editor teks lanjutan seperti vi atau emcas , praktik terbaiknya adalah selalu mencadangkan file konfigurasi sebelum mengedit.

[root@centos]# cp /etc/httpd/conf.d/ssl.conf ~/

Sekarang mari kita lanjutkan pengeditan kita setelah menyalin salinan ssl.conf yang diketahui berfungsi ke root folder rumah kita.

  • Locate
  • Edit DocumentRoot dan ServerName sebagai berikut.
\\# General setup for the virtual host, inherited from global configuration
DocumentRoot "/var/www/html"
ServerName centos.vmnet.local:443

DocumentRootini adalah jalur ke direktori apache default Anda. Dalam folder ini harus menjadi halaman default yang akan menampilkan permintaan HTTP yang menanyakan halaman default dari server web atau situs Anda.

ServerNameadalah nama server yang dapat berupa alamat ip atau nama host server. Untuk TLS, praktik terbaiknya adalah membuat sertifikat dengan nama host. Dari tutorial OpenLdap kami, kami membuat nama host centos di domain perusahaan lokal: vmnet.local

Sekarang kami ingin mengomentari baris berikut.

SSLProtocol

#   SSL Protocol support:
# List the enable protocol levels with which clients will be able to
# connect.  Disable SSLv2 access by default:
 ~~~~> #SSLProtocol all -SSLv2
 
#   SSL Cipher Suite:
#   List the ciphers that the client is permitted to negotiate.
#   See the mod_ssl documentation for a complete list.
 ~~~~> #SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA

Kemudian beri tahu Apache di mana menemukan sertifikat dan pasangan kunci pribadi / publik kami.

Tentukan jalur ke file sertifikat yang ditandatangani sendiri

#   Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate.  If
# the certificate is encrypted, then you will be prompted for a
# pass phrase.  Note that a kill -HUP will prompt again.  A new
# certificate can be generated using the genkey(1) command.
~~~~> SSLCertificateFile /etc/ssl/certs/self-sign-apache.crt
specify path to our private key file
#   Server Private Key:
#   If the key is not combined with the certificate, use this
#   directive to point at the key file.  Keep in mind that if
#   you've both a RSA and a DSA private key you can configure
#   both in parallel (to also allow the use of DSA ciphers, etc.)
~~~~> SSLCertificateKeyFile /etc/ssl/private/self-gen-apache.key

Terakhir, kami perlu mengizinkan koneksi masuk ke https melalui port 443.

Pada bab ini, kita akan belajar sedikit tentang latar belakang bagaimana Apache HTTP Server muncul dan kemudian menginstal versi stabil terbaru di CentOS Linux 7.

Sejarah Singkat Apache WebServer

Apache adalah web server yang sudah ada sejak lama. Nyatanya, hampir sepanjang keberadaan http itu sendiri!

Apache dimulai sebagai proyek yang agak kecil di National Center for Supercomputing Applications juga dikenal sebagai NCSA. Pada pertengahan 90-an, "httpd", demikian sebutannya, sejauh ini merupakan platform server web paling populer di Internet, memiliki sekitar 90% atau lebih pangsa pasar.

Saat ini, ini adalah proyek sederhana. Staf TI yang terampil yang dikenal sebagai webmaster bertanggung jawab untuk: memelihara platform server web dan perangkat lunak server web serta pengembangan situs front-end dan back-end. Inti dari httpd adalah kemampuannya untuk menggunakan modul khusus yang dikenal sebagai plugin atau ekstensi. Seorang webmaster juga cukup terampil untuk menulis tambalan ke perangkat lunak server inti.

Suatu saat di akhir pertengahan 90-an, pengembang senior dan manajer proyek untuk httpd meninggalkan NCSA untuk melakukan hal lain. Ini membuat web-daemon paling populer dalam keadaan stagnasi.

Karena penggunaan httpd tersebar luas, sekelompok webmaster httpd berpengalaman menyerukan pertemuan puncak yang menuntut masa depan httpd. Diputuskan untuk mengoordinasikan dan menerapkan ekstensi dan patch terbaik ke dalam rilis stabil saat ini. Kemudian, kakek dari server http lahir dan dinamai Apache HTTP Server.

Little Known Historical Fact- Apache tidak dinamai prajurit Suku Asli Amerika. Itu sebenarnya diciptakan dan dinamai dengan twist: dibuat dari banyak perbaikan (atau tambalan) dari banyak Ilmuwan Komputer berbakat: apatchy atau Apache.

Instal Versi Stabil Saat Ini di CentOS Linux 7

Step 1 - Instal httpd melalui yum.

yum -y install httpd

Pada titik ini Apache HTTP Server akan diinstal melalui yum.

Step 2 - Edit file httpd.conf khusus untuk kebutuhan httpd Anda.

Dengan instalasi Apache default, file konfigurasi untuk Apache bernama httpd.conf dan terletak di / etc / httpd / . Jadi, mari kita buka di vim .

Beberapa baris pertama httpd.conf dibuka di vim -

# 
# This is the main Apache HTTP server configuration file.  It contains the 
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information. 
# In particular, see  
# <URL:http://httpd.apache.org/docs/2.4/mod/directives.html> 
# for a discussion of each configuration directive.

Kami akan membuat perubahan berikut untuk memungkinkan instalasi CentOS kami melayani permintaan http dari http port 80.

Mendengarkan host dan port

# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 80

Dari sini, kami mengubah Apache untuk mendengarkan pada port atau Alamat IP tertentu. Misalnya, jika kita ingin menjalankan layanan httpd pada port alternatif seperti 8080. Atau jika server web kita dikonfigurasi dengan banyak antarmuka dengan alamat IP terpisah.

Mendengarkan

Mencegah Apache menempel ke setiap daemon yang mendengarkan ke setiap Alamat IP. Ini berguna untuk berhenti menentukan lalu lintas IPv6 atau IPv4 saja. Atau bahkan mengikat semua antarmuka jaringan pada host multi-homed.

#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
Listen 10.0.0.25:80
#Listen 80

DocumentRoot

"Document root" adalah direktori default tempat Apache mencari file indeks untuk melayani permintaan setelah mengunjungi server Anda: http://www.yoursite.com/ akan mengambil dan menyajikan file indeks dari root dokumen Anda.

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/var/www/html"

Step 3 - Mulai dan Aktifkan Layanan httpd.

[root@centos rdc]# systemctl start httpd && systemctl reload httpd 
[root@centos rdc]#

Step 4 - Konfigurasi firewall untuk mengizinkan akses ke permintaan port 80.

[root@centos]# firewall-cmd --add-service=http --permanent

Seperti yang disinggung secara singkat saat mengkonfigurasi CentOS untuk digunakan dengan Maria DB, tidak ada paket MySQL asli di repositori CentOS 7 yum . Untuk menjelaskan ini, kita perlu menambahkan repositori yang dihosting MySQL.

MariaDB vs MySQL Di CentOS Linux

Satu hal yang perlu diperhatikan adalah MySQL akan membutuhkan set dependensi basis yang berbeda dari MariaDB. Juga menggunakan MySQL akan mematahkan konsep dan filosofi CentOS: paket produksi yang dirancang untuk keandalan maksimum.

Jadi ketika memutuskan apakah akan menggunakan Maria atau MySQL, seseorang harus mempertimbangkan dua opsi: Apakah Skema DB saya saat ini berfungsi dengan Maria? Keuntungan apa yang didapat dari menginstal MySQL daripada Maria?

Komponen Maria 100% transparan untuk struktur MySQL, dengan beberapa efisiensi tambahan dengan lisensi yang lebih baik. Kecuali jika ada alasan kuat, disarankan untuk mengkonfigurasi CentOS untuk menggunakan MariaDB.

Alasan terbesar untuk memilih Maria di CentOS adalah -

  • Kebanyakan orang akan menggunakan MariaDB. Saat mengalami masalah, Anda akan mendapatkan lebih banyak bantuan dengan Maria.

  • CentOS dirancang untuk dijalankan dengan Maria. Karenanya, Maria akan menawarkan stabilitas yang lebih baik.

  • Maria secara resmi didukung untuk CentOS.

Unduh dan Tambahkan Repositori MySQL

Kami ingin mengunduh dan menginstal repositori MySQL dari -

http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

Step 1 - Unduh Repositori.

Repositori dikemas dengan nyaman dalam paket rpm untuk kemudahan instalasi. Itu dapat diunduh dengan wget -

[root@centos]# wget http://repo.mysql.com/mysql-community-release-el75.noarch.rpm
   --2017-02-26 03:18:36--  http://repo.mysql.com/mysql-community-release-el75.noarch.rpm
   Resolving repo.mysql.com (repo.mysql.com)... 104.86.98.130

Step 2 - Instal MySQL Dari YUM.

Sekarang kita dapat menggunakan pengelola paket yum untuk menginstal MySQL -

[root@centos]# yum -y install mysql-server

Step 3 - Mulai dan Aktifkan Layanan Daemon MySQL.

[root@centos]# systemctl start mysql 
[root@centos]# systemctl enable  mysql

Step 4 - Pastikan layanan MySQL kami aktif dan berjalan.

[root@centos]# netstat -antup | grep 3306 
tcp6       0       0 :::3306       :::*       LISTEN       6572/mysqld
[root@centos]#

Catatan - Kami tidak akan mengizinkan aturan firewall masuk. Biasanya MySQL telah dikonfigurasi untuk digunakanUnix Domain Sockets. Ini memastikan hanya server web dari tumpukan LAMP, secara lokal, yang dapat mengakses basis data MySQL, mengambil dimensi lengkap dalam vektor serangan pada perangkat lunak basis data.

Untuk mengirim email dari server CentOS 7 kami, kami memerlukan pengaturan untuk mengkonfigurasi Mail Transfer Agent (MTA) modern. Mail Transfer Agent adalah daemon yang bertanggung jawab mengirimkan email keluar untuk pengguna sistem atau Domain Internet perusahaan melalui SMTP.

Perlu diperhatikan, tutorial ini hanya mengajarkan proses pengaturan daemon untuk penggunaan lokal. Kami tidak membahas secara detail tentang konfigurasi lanjutan untuk menyiapkan MTA untuk operasi bisnis. Ini adalah kombinasi dari banyak keterampilan termasuk namun tidak terbatas pada: DNS, mendapatkan alamat IP statis yang dapat dirutekan yang tidak masuk daftar hitam, dan mengonfigurasi setelan keamanan dan layanan lanjutan. Singkatnya, tutorial ini dimaksudkan untuk membiasakan Anda dengan konfigurasi dasar. Jangan gunakan tutorial ini untuk konfigurasi MTA dari host yang menghadap ke Internet.

Dengan fokus gabungan pada keamanan dan kemudahan administrasi, kami telah memilih Postfixsebagai MTA untuk tutorial ini. MTA default yang diinstal di versi CentOS yang lebih lama adalah Sendmail .Sendmailadalah MTA yang bagus. Namun, dari opini penulis yang rendah hati, Postfix mencapai titik yang tepat ketika menangani catatan berikut untuk MTA. Dengan versi CentOS terbaru, Postfix telah menggantikan Sendmail sebagai MTA default.

Postfix adalah MTA yang banyak digunakan dan didokumentasikan dengan baik. Itu secara aktif dipelihara dan dikembangkan. Ini memerlukan konfigurasi minimal (ini hanya email) dan efisien dengan sumber daya sistem (sekali lagi, ini hanya email).

Step 1 - Instal Postfix dari YUM Package Manager.

[root@centos]# yum -y install postfix

Step 2 - Konfigurasikan file konfigurasi Postfix.

File konfigurasi Postfix terletak di: /etc/postfix/main.cf

Dalam konfigurasi Postfix sederhana, berikut ini harus dikonfigurasi untuk host tertentu: nama host, domain, asal, inet_interfaces, dan tujuan.

Configure the hostname- Nama host adalah nama domain yang sepenuhnya memenuhi syarat dari host Postfix. Di bab OpenLDAP, kami menamai kotak CentOS: centos di domain vmnet.local . Mari kita gunakan itu untuk bab ini.

# The myhostname parameter specifies the internet hostname of this
# mail system. The default is to use the fully-qualified domain name
# from gethostname(). $myhostname is used as a default value for many
# other configuration parameters.
#
myhostname = centos.vmnet.local

Configure the domain- Seperti yang dinyatakan di atas, domain yang akan kita gunakan dalam tutorial ini adalah vmnet.local

# The mydomain parameter specifies the local internet domain name.
# The default is to use $myhostname minus the first component. # $mydomain is used as a default value for many other configuration
# parameters.
#
mydomain = vmnet.local

Configure the origin - Untuk satu server dan pengaturan domain, kita hanya perlu menghapus komentar pada bagian berikut dan membiarkan variabel default Postfix.

# SENDING MAIL
#
# The myorigin parameter specifies the domain that locally-posted
# mail appears to come from. The default is to append $myhostname, # which is fine for small sites. If you run a domain with multiple # machines, you should (1) change this to $mydomain and (2) set up
# a domain-wide alias database that aliases each user to
# [email protected].
#
# For the sake of consistency between sender and recipient addresses,
# myorigin also specifies the default domain name that is appended
# to recipient addresses that have no @domain part. 
#
myorigin = $myhostname myorigin = $mydomain

Configure the network interfaces- Kami akan membiarkan Postfix mendengarkan di satu antarmuka jaringan kami dan semua protokol dan Alamat IP yang terkait dengan antarmuka itu. Ini dilakukan hanya dengan membiarkan pengaturan default diaktifkan untuk Postfix.

# The inet_interfaces parameter specifies the network interface
# addresses that this mail system receives mail on.  By default,
# the software claims all active interfaces on the machine. The
# parameter also controls delivery of mail to user@[ip.address].
#
# See also the proxy_interfaces parameter, for network addresses that
# are forwarded to us via a proxy or network address translator.
#
# Note: you need to stop/start Postfix when this parameter changes. 
#
#inet_interfaces = all
#inet_interfaces = $myhostname #inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost
# Enable IPv4, and IPv6 if supported
inet_protocols = all

Step 3 - Konfigurasi Dukungan SASL untuk Postfix.

Tanpa dukungan SASL Authentication, Postfix hanya akan mengizinkan pengiriman email dari pengguna lokal. Atau itu akan memberikan kesalahan ditolak relay ketika pengguna mengirim email keluar dari domain lokal.

Note - SASL atau Simple Application Security Layer Frameworkadalah kerangka kerja yang dirancang untuk otentikasi yang mendukung berbagai teknik di antara berbagai protokol Lapisan Aplikasi. Alih-alih menyerahkan mekanisme otentikasi ke protokol lapisan aplikasi, pengembang SASL (dan konsumen) memanfaatkan protokol otentikasi saat ini untuk protokol tingkat yang lebih tinggi yang mungkin tidak memiliki kenyamanan atau otentikasi yang lebih aman (ketika berbicara tentang akses ke layanan aman) bawaan.

Instal paket "cyrus-sasl *

[root@centos]# yum -y install  cyrus-sasl 
Loaded plugins: fastestmirror, langpacks 
Loading mirror speeds from cached hostfile 
 * base: repos.forethought.net 
 * extras: repos.dfw.quadranet.com 
 * updates: mirrors.tummy.com 
Package cyrus-sasl-2.1.26-20.el7_2.x86_64 already installed and latest version
Nothing to do

Konfigurasikan /etc/postfix/main.cf untuk SASL Auth

smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =
permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

Opsi SASL saya di main.conf

##Configure SASL Options Entries:
smtpd_sasl_auth_enable = yes
smptd_recipient_restrictions =
permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
smtp_sasl_type = dovecot
smtp_sasl_path = private/auth/etc

Step 4 - Konfigurasi FirewallD untuk mengizinkan Layanan SMTP masuk.

[root@centos]# firewall-cmd --permanent --add-service=smtp 
success

[root@centos]# firewall-cmd --reload 
success

[root@centos]#

Sekarang mari kita periksa untuk memastikan host CentOS kami mengizinkan dan menanggapi permintaan pada port 25 (SMTP).

Nmap scan report for 172.16.223.132 
Host is up (0.00035s latency). 
Not shown: 993 filtered ports 
PORT    STATE  SERVICE 
   20/tcp  closed ftp-data 
   21/tcp  open   ftp 
   22/tcp  open   ssh 
   25/tcp  open   smtp 
   80/tcp  open   http 
   389/tcp open   ldap 
   443/tcp open   https 
MAC Address: 00:0C:29:BE:DF:5F (VMware)

Seperti yang Anda lihat, SMTP sedang mendengarkan dan daemon menanggapi permintaan dari LAN internal kita.

Instal Dovecot IMAP dan POP3 Server

Dovecot adalah Server IMAP dan POP3 aman yang dirancang untuk menangani kebutuhan email masuk dari organisasi yang lebih kecil hingga yang lebih besar. Karena penggunaannya yang produktif dengan CentOS, kami akan menggunakan Dovecot sebagai contoh menginstal dan mengkonfigurasi server email masuk untuk Penyedia CentOS dan MTA SASL.

Seperti disebutkan sebelumnya, kami tidak akan mengonfigurasi data MX untuk DNS atau membuat aturan aman yang memungkinkan layanan kami menangani email untuk suatu domain. Oleh karena itu, hanya mengatur layanan ini pada host yang menghadap ke Internet dapat meninggalkan ruang leverage untuk lubang keamanan tanpa SPF Records.

Step 1 - Pasang Dovecot.

[root@centos]# yum -y install dovecot

Step 2 - Konfigurasi dovecot.

File konfigurasi utama untuk dovecot terletak di: /etc/dovecot.conf . Kami pertama-tama akan mencadangkan file konfigurasi utama. Merupakan praktik yang baik untuk selalu membuat cadangan file konfigurasi sebelum mengedit. Dengan cara ini id (misalnya) jeda baris dihancurkan oleh editor teks, dan tahun perubahan hilang. Mengembalikan semudah menyalin cadangan saat ini ke dalam produksi.

Aktifkan protokol dan layanan daemon untuk dovecot

# Protocols we want to be serving. 
protocols = imap imaps pop3 pop3s

Sekarang, kita perlu mengaktifkan daemon dovecot untuk mendengarkan saat startup -

[root@localhost]# systemctl start  dovecot 
[root@localhost]# systemctl enable dovecot

Mari pastikan Dovecot mendengarkan secara lokal pada port yang ditentukan untuk: imap, pop3, imap secure, dan pop3 secure.

[root@localhost]# netstat -antup | grep dovecot 
 tcp        0        0 0.0.0.0:110        0.0.0.0:*        LISTEN        4368/dovecot
 tcp        0        0 0.0.0.0:143        0.0.0.0:*        LISTEN        4368/dovecot
 tcp        0        0 0.0.0.0:993        0.0.0.0:*        LISTEN        4368/dovecot
 tcp        0        0 0.0.0.0:995        0.0.0.0:*        LISTEN        4368/dovecot
 tcp6       0        0 :::110                :::*          LISTEN        4368/dovecot
 tcp6       0        0 :::143                :::*          LISTEN        4368/dovecot
 tcp6       0        0 :::993                :::*          LISTEN        4368/dovecot
 tcp6       0        0 :::995                :::*          LISTEN        4368/dovecot

[root@localhost]#

Seperti yang terlihat, dovecot sedang mendengarkan pada port tertentu untuk IPv4 dan IPv4.

POP3 110
POP3 995
IMAP 143
IMAP 993

Sekarang, kita perlu membuat beberapa aturan firewall.

[root@localhost]# firewall-cmd --permanent --add-port=110/tcp 
success
 
[root@localhost]# firewall-cmd --permanent --add-port=143/tcp 
success
 
[root@localhost]# firewall-cmd --permanent --add-port=995/tcp 
success
 
[root@localhost]# firewall-cmd --permanent --add-port=993/tcp 
success
 
[root@localhost]# firewall-cmd --reload 
success
 
[root@localhost]#

Email memutuskan masuk kami menerima permintaan untuk POP3 , pop3s , IMAP , dan imaps untuk host pada LAN.

Port Scanning host: 192.168.1.143

   Open TCP Port:   21          ftp 
   Open TCP Port:   22          ssh 
   Open TCP Port:   25          smtp 
   Open TCP Port:   80          http 
   Open TCP Port:   110         pop3 
   Open TCP Port:   143         imap 
   Open TCP Port:   443         https 
   Open TCP Port:   993         imaps 
   Open TCP Port:   995         pop3s

Sebelum mempelajari cara menginstal FTP di CentOS, kita perlu mempelajari sedikit tentang penggunaan dan keamanannya. FTPadalah protokol yang sangat efisien dan sangat baik untuk mentransfer file antar sistem komputer. FTP telah digunakan dan disempurnakan selama beberapa dekade sekarang. Untuk mentransfer file secara efisien melalui jaringan dengan latensi atau kecepatan, FTP adalah pilihan yang bagus. Lebih dari SAMBA atau SMB.

Namun, FTP memang memiliki beberapa masalah keamanan. Sebenarnya, beberapa masalah keamanan serius. FTP menggunakan metode otentikasi teks biasa yang sangat lemah. Karena alasan inilah sesi yang diautentikasi harus bergantung pada sFTP atau FTPS, di mana TLS digunakan untuk enkripsi ujung-ke-ujung sesi login dan transfer.

Dengan peringatan di atas, FTP biasa yang lama masih dapat digunakan di lingkungan bisnis saat ini. Penggunaan utamanya adalah, repositori file FTP anonim. Ini adalah situasi di mana tidak ada otentikasi yang dijamin untuk mengunduh atau mengunggah file. Beberapa contoh penggunaan FTP anonim adalah -

  • Perusahaan perangkat lunak besar masih menggunakan repositori ftp anonim yang memungkinkan pengguna Internet mengunduh shareware dan patch.

  • Mengizinkan pengguna internet untuk mengunggah dan mengunduh dokumen publik.

  • Beberapa aplikasi akan secara otomatis mengirim log yang dienkripsi dan diarsipkan untuk atau file konfigurasi ke repositori melalui FTP.

Oleh karena itu, sebagai Administrator CentOS, dapat menginstal dan mengkonfigurasi FTP masih merupakan keterampilan yang dirancang.

Kami akan menggunakan daemon FTP yang disebut vsFTP, atau Daemon FTP Sangat Aman. vsFTP telah digunakan dalam pengembangan untuk sementara waktu. Ia memiliki reputasi sebagai yang aman, mudah dipasang dan dikonfigurasi, dan dapat diandalkan.

Step 1 - Instal vsFTPd dengan YUM Package Manager.

[root@centos]# yum -y install vsftpd.x86_64

Step 2 - Konfigurasi vsFTP untuk Memulai Boot dengan systemctl.

[root@centos]# systemctl start vsftpd 
[root@centos]# systemctl enable vsftpd 
Created symlink from /etc/systemd/system/multi-
user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

Step 3 - Konfigurasi FirewallD untuk mengizinkan kontrol FTP dan sesi transfer.

[root@centos]# firewall-cmd --add-service=ftp --permanent 
success 
[root@centos]#

Pastikan daemon FTP kami sedang berjalan.

[root@centos]# netstat -antup | grep vsftp 
tcp6       0       0 :::21       :::*       LISTEN       13906/vsftpd         
[root@centos]#

Step 4 - Konfigurasi vsFTPD Untuk Akses Anonim.

Buat direktori root FTP

[root@centos]# mkdir /ftp

Ubah pemilik dan grup root FTP ke ftp

[root@centos]# chown ftp:ftp /ftp
Set minimal permissions for FTP root:

[root@centos]# chmod -R 666 /ftp/

[root@centos]# ls -ld /ftp/
drw-rw-rw-. 2 ftp ftp 6 Feb 27 02:01 /ftp/

[root@centos]#

Dalam kasus ini, kami memberi pengguna akses baca / tulis ke seluruh akar pohon FTP.

Konfigurasikan /etc/vsftpd/vsftpd.conf "

[root@centos]# vim /etc/vsftpd/vsftpd.conf
# Example config file /etc/vsftpd/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.

Kami ingin mengubah arahan berikut di file vsftp.conf .

  • Aktifkan pengunggahan Anonim dengan menghapus komentar anon_mkdir_write_enable = YES

  • chown upload file ke dimiliki oleh sistem ftp pengguna

    chown_uploads = YA

    chown_username = ftp

  • Ubah pengguna sistem yang digunakan oleh vsftp menjadi pengguna ftp: nopriv_user = ftp

  • Setel spanduk khusus untuk dibaca pengguna sebelum masuk.

    ftpd_banner = Selamat datang di Repo FTP Anonim kami. Semua koneksi dipantau dan dicatat.

  • Mari kita atur koneksi IPv4 saja -

    dengar = YA

    Listen_ipv6 = TIDAK

Sekarang, kita perlu memulai ulang atau HUP layanan vsftp untuk menerapkan perubahan kita.

[root@centos]# systemctl restart vsftpd

Mari hubungkan ke host FTP kita dan pastikan daemon FTP kita merespons.

[root@centos rdc]# ftp 10.0.4.34 
Connected to localhost (10.0.4.34). 
220 Welcome to our Anonymous FTP Repo. All connections are monitored and logged. 
Name (localhost:root): anonymous 
331 Please specify the password. 
Password: 
'230 Login successful. 
Remote system type is UNIX. 
Using binary mode to transfer files. 
ftp>

Ketika berbicara tentang manajemen jarak jauh di CentOS sebagai Administrator, kami akan menjelajahi dua metode -

  • Manajemen Konsol
  • Manajemen GUI

Manajemen Konsol Jarak Jauh

Manajemen Konsol Jarak Jauh berarti melakukan tugas administrasi dari baris perintah melalui layanan seperti ssh. Untuk menggunakan CentOS Linux secara efektif, sebagai Administrator, Anda harus mahir dengan baris perintah. Linux pada intinya dirancang untuk digunakan dari konsol. Bahkan saat ini, beberapa administrator sistem lebih memilih kekuatan perintah dan menghemat uang untuk perangkat keras dengan menjalankan kotak Linux tanpa tulang tanpa terminal fisik dan tidak ada GUI yang terpasang.

Manajemen GUI Jarak Jauh

Manajemen GUI Jarak Jauh biasanya dilakukan dengan dua cara: Sesi X jarak jauh atau protokol lapisan aplikasi GUI seperti VNC. Masing-masing memiliki kelebihan dan kekurangan. Namun, untuk sebagian besar, VNC adalah pilihan terbaik untuk Administrasi. Ini memungkinkan kontrol grafis dari sistem operasi lain seperti Windows atau OS X yang tidak secara native mendukung protokol X Windows.

Menggunakan Sesi X jarak jauh adalah bawaan dari Manajer Jendela dan Manajer Desktop X-Window yang berjalan di X. Namun, seluruh arsitektur Sesi X sebagian besar digunakan dengan Linux. Tidak semua Administrator Sistem memiliki Laptop Linux untuk membuat Sesi X jarak jauh. Oleh karena itu, yang paling umum adalah menggunakan versi Server VNC yang telah disesuaikan.

Kelemahan terbesar VNC adalah: VNC tidak secara native mendukung lingkungan multi-pengguna seperti X-Sessions jarak jauh. Karenanya, untuk akses GUI ke pengguna akhir XSessions jarak jauh akan menjadi pilihan terbaik. Namun, kami terutama berurusan dengan administrasi server CentOS dari jarak jauh.

Kami akan membahas konfigurasi VNC untuk beberapa administrator versus beberapa ratus pengguna akhir dengan Sesi X jarak jauh.

Meletakkan Fondasi Keamanan dengan SSH untuk Akses Konsol Jarak Jauh

ssh atau Secure Shellsekarang menjadi standar untuk mengelola server Linux dari jarak jauh. SSH tidak seperti telnet menggunakan TLS untuk keaslian dan enkripsi komunikasi ujung ke ujung. Ketika dikonfigurasi dengan benar, administrator dapat yakin bahwa kata sandi dan server mereka dipercaya dari jarak jauh.

Sebelum mengonfigurasi SSH, mari kita bahas sedikit tentang keamanan dasar dan akses paling tidak umum. Saat SSH berjalan pada port default 22; lebih cepat daripada nanti, Anda akan mendapatkan serangan kamus secara brute force terhadap nama pengguna dan sandi umum. Ini hanya datang dengan wilayahnya. Tidak peduli berapa banyak host yang Anda tambahkan ke file deny Anda, mereka hanya akan masuk dari alamat IP yang berbeda setiap hari.

Dengan beberapa aturan umum, Anda cukup mengambil beberapa langkah proaktif dan membiarkan orang jahat membuang waktu mereka. Berikut adalah beberapa aturan keamanan yang harus diikuti dengan menggunakan SSH untuk administrasi jarak jauh di server produksi -

  • Jangan pernah menggunakan nama pengguna atau kata sandi yang umum. Nama pengguna di sistem tidak boleh default sistem, atau dikaitkan dengan alamat email perusahaan seperti:[email protected]

  • Akses root atau akses administrasi tidak boleh diizinkan melalui SSH. Gunakan nama pengguna unik dan su untuk root atau akun administrasi setelah diautentikasi melalui SSH.

  • Kebijakan kata sandi adalah suatu keharusan: Kata sandi pengguna SSH yang rumit seperti: "This & IS & a & GUD & P @ ssW0rd & 24 & me". Ubah sandi setiap beberapa bulan untuk menghilangkan kerentanan terhadap serangan brute force tambahan.

  • Nonaktifkan akun yang ditinggalkan atau tidak digunakan untuk waktu yang lama. Jika manajer perekrutan memiliki pesan suara yang menyatakan bahwa mereka tidak akan melakukan wawancara selama sebulan; yang dapat mengarah pada individu yang paham teknologi dengan banyak waktu luang, misalnya.

  • Perhatikan log Anda setiap hari. Sebagai Administrator Sistem, luangkan setidaknya 30-40 menit setiap pagi untuk meninjau sistem dan log keamanan. Jika ditanya, beri tahu semua orang bahwa Anda tidak punya waktu untuk tidak proaktif. Praktik ini akan membantu mengisolasi tanda-tanda peringatan sebelum masalah muncul dengan sendirinya kepada pengguna akhir dan keuntungan perusahaan.

Note On Linux Security- Siapa pun yang tertarik dengan Administrasi Linux harus secara aktif mencari berita dan teknologi Keamanan Cyber ​​terkini. Meskipun kebanyakan kami mendengar tentang sistem operasi lain yang sedang disusupi, kotak Linux yang tidak aman adalah harta yang dicari oleh penjahat dunia maya. Dengan kekuatan Linux pada koneksi internet berkecepatan tinggi, penjahat dunia maya yang terampil dapat menggunakan Linux untuk memanfaatkan serangan pada sistem operasi lain.

Instal dan Konfigurasi SSH untuk Akses Jarak Jauh

Step 1 - Instal SSH Server dan semua paket dependen.

[root@localhost]# yum -y install openssh-server 
'Loaded plugins: fastestmirror, langpacks 
Loading mirror speeds from cached hostfile 
* base: repos.centos.net 
* extras: repos.dfw.centos.com 
* updates: centos.centos.com 
Resolving Dependencies 
   --> Running transaction check 
   ---> Package openssh-server.x86_64 0:6.6.1p1-33.el7_3 will be installed 
   --> Finished Dependency Resolution 
Dependencies Resolved

Step 2 - Gunakan penggunaan reguler yang aman untuk menambah akses shell.

[root@localhost ~]# useradd choozer 
[root@localhost ~]# usermod -c "Remote Access" -d /home/choozer -g users -G 
wheel -a choozer

Note- Kami menambahkan pengguna baru ke roda kelompok memungkinkan kemampuan untuk su ke akar sekali akses SSH telah dikonfirmasi. Kami juga menggunakan nama pengguna yang tidak dapat ditemukan dalam daftar kata umum. Dengan cara ini, akun kami tidak akan terkunci saat SSH diserang.

File yang menyimpan pengaturan konfigurasi untuk server sshd adalah / etc / ssh / sshd_config .

Bagian yang awalnya ingin kita edit adalah -

LoginGraceTime 60m
PermitRootLogin no

Step 3- Muat ulang daemon SSH sshd .

[root@localhost]# systemctl reload sshd

Sebaiknya setel masa tenggang logout menjadi 60 menit. Beberapa tugas administrasi yang rumit dapat melebihi waktu default 2 menit. Tidak ada yang lebih membuat frustrasi daripada memiliki waktu tunggu sesi SSH saat mengonfigurasi atau meneliti perubahan.

Step 4 - Ayo coba masuk menggunakan kredensial root.

bash-3.2# ssh centos.vmnet.local 
[email protected]'s password:   
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

Step 5- Kami tidak lagi dapat masuk dari jarak jauh melalui ssh dengan kredensial root . Jadi mari masuk ke akun pengguna tanpa hak istimewa kami dan su ke akun root .

bash-3.2# ssh [email protected]
[email protected]'s password:
[choozer@localhost ~]$ su root
Password:

[root@localhost choozer]#

Step 6- Terakhir, pastikan layanan SSHD dimuat saat boot dan firewalld mengizinkan koneksi SSH di luar.

[root@localhost]# systemctl enable sshd

[root@localhost]# firewall-cmd --permanent --add-service=ssh 
success

[root@localhost]# firewall-cmd --reload 
success
 
[root@localhost]#

SSH sekarang sudah disiapkan dan siap untuk administrasi jarak jauh. Bergantung pada perbatasan perusahaan Anda, perangkat perbatasan pemfilteran paket mungkin perlu dikonfigurasi untuk mengizinkan administrasi jarak jauh SSH di luar LAN perusahaan.

Konfigurasikan VNC untuk Administrasi CentOS Jarak Jauh

Ada beberapa cara untuk mengaktifkan administrasi CentOS jarak jauh melalui VNC di CentOS 6 - 7. Cara termudah, tetapi paling membatasi adalah hanya menggunakan paket bernama vino .Vinoadalah aplikasi Koneksi Desktop Jaringan Virtual untuk Linux yang dirancang dengan platform Gnome Desktop. Oleh karena itu, penginstalan diasumsikan telah selesai dengan Gnome Desktop. Jika Gnome Desktop belum diinstal, lakukan sebelum melanjutkan. Vino akan diinstal dengan instalasi GUI Gnome secara default.

Untuk mengonfigurasi berbagi layar dengan Vino di bawah Gnome, kami ingin masuk ke Preferensi Sistem CentOS untuk berbagi layar.

Applications->System Tools->Settings->Sharing

Catatan untuk mengkonfigurasi Berbagi Desktop VNC -

  • Disable New Connections must ask for access- Opsi ini akan membutuhkan akses fisik untuk mengok setiap koneksi. Opsi ini akan mencegah administrasi jarak jauh kecuali seseorang menggunakan desktop fisik.

  • Enable Require a password- Ini terpisah dari kata sandi pengguna. Ini akan mengontrol akses ke desktop virtual dan masih memerlukan kata sandi pengguna untuk mengakses desktop yang terkunci (ini bagus untuk keamanan).

  • Forward UP&P Ports: If available leave disabled- Meneruskan port UP&P akan mengirimkan permintaan Universal Plug and Play untuk perangkat lapisan 3 untuk memungkinkan koneksi VNC ke host secara otomatis. Kami tidak menginginkan ini.

Pastikan vino mendengarkan di VNC Port 5900.

[root@localhost]# netstat -antup | grep vino 
tcp        0        0 0.0.0.0:5900        0.0.0.0:*        LISTEN        4873/vino-server
tcp6       0        0 :::5900                :::*          LISTEN        4873/vino-server
   
[root@localhost]#

Sekarang mari kita konfigurasikan Firewall kita untuk mengizinkan koneksi VNC masuk.

[root@localhost]# firewall-cmd --permanent --add-port=5900/tcp 
success

[root@localhost]# firewall-cmd --reload 
success

[root@localhost rdc]#

Terakhir, seperti yang Anda lihat, kami dapat menghubungkan Kotak CentOS kami dan mengelolanya dengan klien VNC di Windows atau OS X.

Mematuhi aturan yang sama untuk VNC sama pentingnya dengan yang kami tetapkan untuk SSH. Sama seperti SSH, VNC terus dipindai di seluruh rentang IP dan diuji untuk kata sandi yang lemah. Perlu juga dicatat bahwa membiarkan login CentOS default diaktifkan dengan waktu tunggu konsol akan membantu keamanan VNC jarak jauh. Karena penyerang memerlukan VNC dan kata sandi pengguna, pastikan kata sandi berbagi layar Anda berbeda dan sama sulit ditebak seperti kata sandi pengguna.

Setelah memasukkan kata sandi berbagi layar VNC, kita juga harus memasukkan kata sandi pengguna untuk mengakses desktop yang terkunci.

Security Note- Secara default, VNC bukanlah protokol terenkripsi. Oleh karena itu, koneksi VNC harus disalurkan melalui SSH untuk enkripsi.

Siapkan Terowongan SSH Melalui VNC

Menyiapkan Tunnel SSH akan menyediakan lapisan enkripsi SSH untuk menyalurkan koneksi VNC. Fitur hebat lainnya adalah menggunakan kompresi SSH untuk menambahkan lapisan kompresi lain ke pembaruan layar GUI VNC. Lebih aman dan lebih cepat selalu merupakan hal yang baik ketika berurusan dengan administrasi server CentOS!

Jadi dari klien Anda yang akan memulai koneksi VNC, mari kita siapkan terowongan SSH jarak jauh. Dalam demonstrasi ini, kami menggunakan OS X. Pertama kita perlu sudo -s ke root .

bash-3.2# sudo -s 
password:

Masukkan kata sandi pengguna dan kita sekarang harus memiliki shell root dengan prompt # -

bash-3.2#

Sekarang, mari buat Terowongan SSH kita .

ssh -f [email protected] -L 2200:192.168.1.143:5900 -N

Mari kita hancurkan perintah ini -

  • ssh - Menjalankan utilitas ssh lokal

  • -f - ssh harus berjalan di latar belakang setelah tugas dijalankan sepenuhnya

  • [email protected] - Pengguna ssh jarak jauh di server CentOS yang menghosting layanan VNC

  • -L 2200:192.168.1.143:5900 - Buat terowongan kami [Port Lokal]: [host jarak jauh]: [port jarak jauh layanan VNC]

  • -N memberitahu ssh kita tidak ingin menjalankan perintah pada sistem jarak jauh

bash-3.2# ssh -f [email protected] -L 2200:192.168.1.143:5900 -N
[email protected]'s password:

Setelah berhasil memasukkan kata sandi pengguna ssh jarak jauh, terowongan ssh kami dibuat. Sekarang untuk bagian yang keren! Untuk menghubungkan kami mengarahkan klien VNC kami ke localhost di port terowongan kami, dalam hal ini port 2200. Berikut adalah konfigurasi pada Klien VNC Laptop Mac -

Dan akhirnya, Koneksi Desktop VNC jarak jauh kami!

Hal keren tentang tunneling SSH adalah dapat digunakan untuk hampir semua protokol. Terowongan SSH biasanya digunakan untuk melewati pemfilteran port keluar dan masuk oleh ISP, serta mengelabui lapisan aplikasi IDS / IPS sambil menghindari pemantauan lapisan sesi lainnya.

  • ISP Anda mungkin memfilter port 5900 untuk akun non-bisnis tetapi mengizinkan SSH pada port 22 (atau satu dapat menjalankan SSH pada port mana pun jika port 22 difilter).

  • IPS tingkat aplikasi dan IDS melihat payload. Misalnya, buffer overflow umum atau SQL Injection. Enkripsi SSH ujung-ke-ujung akan mengenkripsi data lapisan aplikasi.

SSH Tunneling adalah alat yang hebat di kotak alat Administrator Linux untuk menyelesaikan sesuatu. Namun, sebagai Administrator kami ingin menjelajahi penguncian ketersediaan pengguna dengan hak istimewa yang lebih rendah yang memiliki akses ke tunneling SSH.

Administration Security Note- Membatasi Tunneling SSH adalah sesuatu yang membutuhkan pemikiran dari seorang Administrator. Menilai mengapa pengguna membutuhkan Tunneling SSH sejak awal; tunneling yang dibutuhkan pengguna; bersama dengan kemungkinan risiko praktis dan dampak kasus terburuk.

Ini adalah topik lanjutan yang membentang di luar bidang primer tingkat menengah. Penelitian tentang topik ini disarankan bagi mereka yang ingin mencapai eselon atas Administrasi Linux CentOS.

Gunakan SSH Tunnel untuk Remote X-Windows

Desain X-Windows di Linux sangat rapi dibandingkan dengan Windows. Jika kita ingin mengontrol kotak Linux jarak jauh dari kotak Linux lain, kita dapat memanfaatkan mekanisme yang dibangun di X.

X-Windows (sering disebut hanya "X"), menyediakan mekanisme untuk menampilkan jendela aplikasi yang berasal dari satu kotak Linux ke bagian tampilan X di kotak Linux lainnya. Jadi melalui SSH kita dapat meminta aplikasi X-Windows untuk diteruskan ke tampilan kotak Linux lain di seluruh dunia!

Untuk menjalankan Aplikasi X dari jarak jauh melalui terowongan ssh, kita hanya perlu menjalankan satu perintah -

[root@localhost]# ssh -X [email protected]

The syntax is - ssh -X [user] @ [host], dan host harus menjalankan ssh dengan pengguna yang valid.

Berikut adalah tangkapan layar dari GIMP yang berjalan di Workstation Ubuntu melalui terowongan ssh XWindows jarak jauh.

Sangat mudah untuk menjalankan aplikasi dari jarak jauh dari server atau workstation Linux lain. Dimungkinkan juga untuk memulai seluruh X-Session dan memiliki seluruh lingkungan desktop dari jarak jauh melalui beberapa metode.

  • XDMCP

  • Paket perangkat lunak tanpa kepala seperti NX

  • Mengonfigurasi tampilan dan desktop alternatif di X dan manajer desktop seperti Gnome atau KDE

Metode ini paling umum digunakan untuk server tanpa kepala tanpa tampilan fisik dan benar-benar melebihi cakupan primer tingkat menengah. Namun, ada baiknya mengetahui opsi yang tersedia.

Ada beberapa alat pihak ketiga yang dapat menambahkan kemampuan yang ditingkatkan untuk pemantauan lalu lintas CentOS. Dalam tutorial ini, kita akan fokus pada mereka yang dikemas dalam repositori distribusi CentOS utama dan repositori Fedora EPEL.

Akan selalu ada situasi di mana Administrator (karena satu atau lain alasan) hanya memiliki alat di repositori CentOS utama. Kebanyakan utilitas yang dibahas dirancang untuk digunakan oleh Administrator dengan shell akses fisik. Saat memantau lalu lintas dengan web-gui yang dapat diakses, menggunakan utilitas pihak ketiga seperti ntop-ng atau Nagios adalah pilihan terbaik (dibandingkan membuat ulang fasilitas tersebut dari awal).

Untuk penelitian lebih lanjut tentang kedua solusi web-gui yang dapat dikonfigurasi, berikut adalah beberapa tautan untuk memulai penelitian.

Pemantauan Lalu Lintas untuk Skenario LAN / WAN

Nagios

Nagios telah ada sejak lama, oleh karena itu, keduanya dicoba dan diuji. Pada satu titik, semuanya gratis dan bersumber terbuka, tetapi sejak itu berkembang menjadi solusi Perusahaan dengan model lisensi berbayar untuk mendukung kebutuhan kecanggihan Perusahaan. Oleh karena itu, sebelum merencanakan peluncuran apa pun dengan Nagios, pastikan versi berlisensi sumber terbuka akan memenuhi kebutuhan Anda atau berencana membelanjakan dengan mempertimbangkan Anggaran Perusahaan.

Sebagian besar perangkat lunak pemantauan lalu lintas Nagios sumber terbuka dapat ditemukan di: https://www.nagios.org

Untuk ringkasan sejarah Nagious, berikut adalah halaman resmi Sejarah Nagios: https://www.nagios.org/about/history/

ntopng

Alat hebat lainnya yang memungkinkan bandwidth dan pemantauan lalu lintas melalui web-gui disebut ntopng . ntopng mirip dengan ntop utilitas Unix, dan dapat mengumpulkan data untuk seluruh LAN atau WAN. Menyediakan web-gui untuk administrasi, konfigurasi, dan pembuatan bagan membuatnya mudah digunakan untuk seluruh Departemen TI.

Seperti Nagious, ntopng memiliki versi perusahaan open-source dan berbayar. Untuk informasi lebih lanjut tentang ntopng , silakan kunjungi situs web:http://www.ntop.org/

Instal Repositori EPEL Fedora ─ Paket Tambahan untuk Enterprise Linux

Untuk mengakses beberapa alat yang diperlukan untuk pemantauan lalu lintas, kami perlu mengkonfigurasi sistem CentOS kami untuk menggunakan Repositori EPEL.

Repositori EPEL tidak secara resmi dipelihara atau didukung oleh CentOS. Namun, ini dikelola oleh sekelompok sukarelawan Fedora Core untuk menangani paket yang biasa digunakan oleh profesional Enterprise Linux yang tidak termasuk dalam CentOS, Fedora Core, atau Red Hat Linux Enterprise.

Caution -

Ingat, Repositori EPEL tidak resmi untuk CentOS dan dapat merusak kompatibilitas dan fungsionalitas pada server produksi dengan dependensi umum. Dengan pemikiran tersebut, disarankan untuk selalu menguji pada server non-produksi yang menjalankan layanan yang sama seperti produksi sebelum menerapkan pada kotak kritis sistem.

Sungguh, keuntungan terbesar menggunakan EHEL Repository dibandingkan repositori pihak ketiga lainnya dengan CentOS adalah kita dapat memastikan bahwa binari tidak tercemar. Ini dianggap sebagai praktik terbaik untuk tidak menggunakan repositori dari sumber yang tidak tepercaya.

Dengan semua itu, Repositori EPEL resmi sangat umum dengan CentOS sehingga dapat dengan mudah diinstal melalui YUM.

[root@CentOS rdc]# yum -y install epel-release
 Loaded plugins: fastestmirror, langpacks
 Loading mirror speeds from cached hostfile
 * base: repo1.dal.innoscale.net
 * extras: repo1.dal.innoscale.net
 * updates: mirror.hmc.edu
Resolving Dependencies
   --> Running transaction check
   ---> Package epel-release.noarch 0:7-9 will be installed
   --> Finished Dependency Resolution
Dependencies Resolved
--{ condensed output }--

Setelah menginstal Repositori EPEL, kami ingin memperbaruinya.

[root@CentOS rdc]# yum repolist 
Loaded plugins: fastestmirror, langpacks 
epel/x86_64/metalink
|  11 kB  00:00:00      
epel
| 4.3 kB  00:00:00      
(1/3): epel/x86_64/group_gz
| 170 kB  00:00:00      
(2/3): epel/x86_64/updateinfo
| 753 kB  00:00:01      
(3/3): epel/x86_64/primary_db
--{ condensed output }--

Pada titik ini, repositori EPEL kami harus dikonfigurasi dan siap digunakan. Mari kita mulai dengan menginstal nload untuk pemantauan bandwidth antarmuka.

Alat yang akan kita fokuskan dalam tutorial ini adalah -

  • nload
  • ntop
  • ifstst
  • iftop
  • vnstat
  • babi bersih
  • Wireshark
  • TCP Dump
  • Traceroute

Ini semua adalah standar untuk memantau lalu lintas di Perusahaan Linux. Penggunaan masing-masing rentang dari yang sederhana hingga lanjutan, jadi kami hanya akan membahas secara singkat alat-alat seperti Wireshark dan TCP Dump.

Instal dan Gunakan nload

Dengan Repositori EPEL kami terinstal dan dikonfigurasi di CentOS, kami sekarang harus dapat menginstal dan menggunakan nload . Utilitas ini dirancang untuk memetakan bandwidth per antarmuka secara real-time.

Seperti kebanyakan instalasi dasar lainnya, nload diinstal melalui pengelola paket YUM.

[root@CentOS rdc]# yum -y install nload
Resolving Dependencies
--> Running transaction check
---> Package nload.x86_64 0:0.7.4-4.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=============================================================================== 
=============================================================================== 
 Package                             Arch
 Version                           Repository                          Size 
=============================================================================== 
=============================================================================== 
Installing: 
 nload                               x86_64
 0.7.4-4.el7                        epel                                70 k  
Transaction Summary
=============================================================================== 
=============================================================================== 
Install  1 Package
Total download size: 70 k
Installed size: 176 k
Downloading packages:
--{ condensed output }--

Sekarang kami telah menginstal nload , dan menggunakannya sangatlah mudah.

[root@CentOS rdc]# nload enp0s5

nload akan memantau antarmuka yang ditentukan. Dalam hal ini, enp0s5 antarmuka Ethernet, secara real-time dari terminal untuk beban lalu lintas jaringan dan penggunaan bandwidth total.

Seperti yang terlihat, nload akan memetakan data masuk dan keluar dari antarmuka yang ditentukan, bersama dengan menyediakan representasi fisik aliran data dengan tanda pagar "#".

Tangkapan layar yang digambarkan adalah halaman web sederhana yang sedang dimuat dengan beberapa lalu lintas daemon latar belakang.

Sakelar baris perintah umum untuk nload adalah -

Perintah Tindakan
-Sebuah Jangka waktu
-t Interval pembaruan waktu dalam milidetik, defaultnya adalah 500
-u Mengatur tampilan pengukuran lalu lintas h
-U Menetapkan total unit pengukuran lalu lintas masuk / keluar yang sama dengan opsi -u

Sintaks standar untuk nload adalah -

nload [options] <interface>

Jika tidak ada antarmuka yang ditentukan, nload akan secara otomatis mengambil antarmuka Ethernet pertama. Mari kita coba mengukur total data yang masuk / keluar dalam Megabyte dan kecepatan transfer data saat ini dalam Megabit.

[root@CentOS rdc]# nload -U M -u m

Data yang masuk / keluar dari antarmuka saat ini diukur dalam megabit per detik dan setiap baris "Ttl", mewakili total data yang masuk / keluar ditampilkan dalam Megabyte.

nload berguna bagi seorang administrator untuk melihat berapa banyak data yang telah melewati sebuah antarmuka dan berapa banyak data yang saat ini masuk / keluar dari antarmuka yang ditentukan.

Untuk melihat antarmuka lain tanpa menutup nload, cukup gunakan tombol panah kiri / kanan. Ini akan menggilir semua antarmuka yang tersedia di sistem.

Dimungkinkan untuk memantau beberapa antarmuka secara bersamaan menggunakan sakelar -m -

[root@CentOS rdc]# nload -u K -U M -m lo -m enp0s5

memuat pemantauan dua antarmuka secara bersamaan (lo dan enp0s5) -

systemd telah mengubah cara pengelolaan logging sistem untuk CentOS Linux. Alih-alih setiap daemon di sistem menempatkan log ke lokasi individu daripada menggunakan alat seperti tail atau grep sebagai cara utama untuk menyortir dan memfilter entri log,journald telah membawa satu titik administrasi untuk menganalisis log sistem.

Komponen utama di balik logging systemd adalah: journal, jounralctl, dan journald.conf

journald adalah daemon logging utama dan dikonfigurasi dengan mengedit journald.conf sementara journalctl digunakan untuk menganalisis peristiwa yang dicatat oleh journald .

Peristiwa yang dicatat oleh journald meliputi: peristiwa kernel, proses pengguna, dan layanan daemon.

Atur Zona Waktu Sistem yang Benar

Sebelum menggunakan journalctl , kita perlu memastikan waktu sistem kita disetel ke waktu yang benar. Untuk melakukan ini, kami ingin menggunakan timedatectl .

Mari kita periksa waktu sistem saat ini.

[root@centos rdc]# timedatectl status 
Local time: Mon 2017-03-20 00:14:49 MDT 
Universal time: Mon 2017-03-20 06:14:49 UTC 
RTC time: Mon 2017-03-20 06:14:49 
Time zone: America/Denver (MDT, -0600) 
NTP enabled: yes 
NTP synchronized: yes 
RTC in local TZ: no 
DST active: yes 
Last DST change: DST began at 
              Sun 2017-03-12 01:59:59 MST 
              Sun 2017-03-12 03:00:00 MDT 
Next DST change: DST ends (the clock jumps one hour backwards) at 
              Sun 2017-11-05 01:59:59 MDT 
              Sun 2017-11-05 01:00:00 MST
              
[root@centos rdc]#

Saat ini, sistem sesuai dengan zona waktu lokal. Jika sistem Anda tidak berfungsi, mari setel zona waktu yang benar. Setelah mengubah pengaturan, CentOS akan secara otomatis menghitung offset zona waktu dari zona waktu saat ini, menyesuaikan jam sistem dengan segera.

Mari daftar semua zona waktu dengan timedatectl -

[root@centos rdc]# timedatectl list-timezones 
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Bamako
Africa/Bangui
Africa/Banjul
Africa/Bissau

Itu adalah output yang diperebutkan dari zona waktu daftar timedatectl . Untuk menemukan zona waktu lokal tertentu, perintah grep dapat digunakan -

[root@centos rdc]# timedatectl list-timezones | grep -i "america/New_York" 
America/New_York
[root@centos rdc]#

Label yang digunakan oleh CentOS biasanya Negara / Kawasan dengan garis bawah, bukan spasi (New_York versus "New York").

Sekarang mari kita atur zona waktu kita -

[root@centos rdc]# timedatectl set-timezone "America/New_York"

[root@centos rdc]# date 
Mon Mar 20 02:28:44 EDT 2017

[root@centos rdc]#

Jam sistem Anda harus menyesuaikan waktu secara otomatis.

Gunakan journalctl untuk Menganalisis Log

Sakelar baris perintah umum saat menggunakan journalctl -

Beralih Tindakan
-k Hanya mencantumkan pesan kernel
-u Daftar menurut unit tertentu (httpd, sshd, dll ...)
-b Boot offset label
-Hai Mencatat format keluaran
-p Filter menurut jenis log (baik nama atau nomor)
-F Fieldname atau fieldnamevalue
--UTC Waktu dalam perbedaan UTC
--sejak Filter berdasarkan jangka waktu

Periksa Log Boot

Pertama, kami akan memeriksa dan mengkonfigurasi log boot di CentOS Linux. Hal pertama yang akan Anda perhatikan adalah bahwa CentOS, secara default, tidak menyimpan log booting yang terus-menerus selama boot ulang.

Untuk memeriksa log boot per instance reboot, kita dapat mengeluarkan perintah berikut -

[root@centos rdc]# journalctl --list-boots 
-4 bca6380a31a2463aa60ba551698455b5 Sun 2017-03-19 22:01:57 MDT—Sun 2017-03-19 22:11:02 MDT
-3 3aaa9b84f9504fa1a68db5b49c0c7208 Sun 2017-03-19 22:11:09 MDT—Sun 2017-03-19 22:15:03 MDT
-2 f80b231272bf48ffb1d2ce9f758c5a5f Sun 2017-03-19 22:15:11 MDT—Sun 2017-03-19 22:54:06 MDT
-1 a071c1eed09d4582a870c13be5984ed6 Sun 2017-03-19 22:54:26 MDT—Mon 2017-03-20 00:48:29 MDT
 0 9b4e6cdb43b14a328b1fa6448bb72a56 Mon 2017-03-20 00:48:38 MDT—Mon 2017-03-20 01:07:36 MDT

[root@centos rdc]#

Setelah me-reboot sistem, kita dapat melihat entri lain.

[root@centos rdc]# journalctl --list-boots 
-5 bca6380a31a2463aa60ba551698455b5 Sun 2017-03-19 22:01:57 MDT—Sun 2017-03-19 22:11:02 MDT
-4 3aaa9b84f9504fa1a68db5b49c0c7208 Sun 2017-03-19 22:11:09 MDT—Sun 2017-03-19 22:15:03 MDT
-3 f80b231272bf48ffb1d2ce9f758c5a5f Sun 2017-03-19 22:15:11 MDT—Sun 2017-03-19 22:54:06 MDT
-2 a071c1eed09d4582a870c13be5984ed6 Sun 2017-03-19 22:54:26 MDT—Mon 2017-03-20 00:48:29 MDT
-1 9b4e6cdb43b14a328b1fa6448bb72a56 Mon 2017-03-20 00:48:38 MDT—Mon 2017-03-20 01:09:57 MDT
 0 aa6aaf0f0f0d4fcf924e17849593d972 Mon 2017-03-20 01:10:07 MDT—Mon 2017-03-20 01:12:44 MDT
 
[root@centos rdc]#

Sekarang, mari kita periksa contoh logging boot terakhir -

root@centos rdc]# journalctl -b -5 
-- Logs begin at Sun 2017-03-19 22:01:57 MDT, end at Mon 2017-03-20 01:20:27 MDT. --
Mar 19 22:01:57 localhost.localdomain systemd-journal[97]: Runtime journal is using 8.0M 
(max allowed 108.4M
Mar 19 22:01:57 localhost.localdomain kernel: Initializing cgroup subsys cpuset
Mar 19 22:01:57 localhost.localdomain kernel: Initializing cgroup subsys cpu
Mar 19 22:01:57 localhost.localdomain kernel: Initializing cgroup subsys cpuacct
Mar 19 22:01:57 localhost.localdomain kernel: Linux version 3.10.0514.6.2.el7.x86_64 
([email protected].
Mar 19 22:01:57 localhost.localdomain kernel: Command line: 
BOOT_IMAGE=/vmlinuz-3.10.0-514.6.2.el7.x86_64 ro
Mar 19 22:01:57 localhost.localdomain kernel: Disabled fast string operations
Mar 19 22:01:57 localhost.localdomain kernel: e820: BIOS-provided physical RAM map:

Di atas adalah keluaran ringkas dari boot terakhir kita. Kami juga dapat merujuk kembali ke log boot dari jam, hari, minggu, bulan, dan bahkan tahun. Namun, secara default CentOS tidak menyimpan log boot yang persisten. Untuk mengaktifkan penyimpanan log boot secara terus-menerus, kita perlu membuat beberapa perubahan konfigurasi -

  • Buat titik penyimpanan sentral untuk log boot
  • Berikan izin yang tepat ke folder log baru
  • Konfigurasi journald.conf untuk logging terus-menerus

Konfigurasikan Lokasi Boot untuk Log Boot Persisten

Tempat awal journald yang ingin menyimpan log boot tetap adalah / var / log / journal . Karena ini tidak ada secara default, mari kita buat -

[root@centos rdc]# mkdir /var/log/journal

Sekarang, mari beri direktori izin yang tepat akses daemon jurnald -

systemd-tmpfiles --create --prefix /var/log/journal

Terakhir, beri tahu journald bahwa ia harus menyimpan log boot yang persisten. Di vim atau editor teks favorit Anda, buka /etc/systemd/jounrald.conf " .

# See journald.conf(5) for details.  
[Journal]=Storage=peristent

Garis yang kita perhatikan adalah, Storage = . Pertama hapus komentar # , lalu ubah keStorage = persistentseperti yang digambarkan di atas. Simpan dan reboot sistem CentOS Anda dan berhati-hatilah karena seharusnya ada banyak entri saat menjalankan journalctl list-boots .

Note- ID mesin yang terus berubah seperti itu dari penyedia VPS dapat menyebabkan journald gagal menyimpan log boot yang persisten. Ada banyak solusi untuk skenario seperti itu. Yang terbaik adalah membaca perbaikan terkini yang diposting ke forum Admin CentOS, daripada mengikuti saran tepercaya dari mereka yang telah menemukan solusi VPS yang masuk akal.

Untuk memeriksa log boot tertentu, kita hanya perlu mendapatkan setiap offset menggunakan journald --list-boots offset dengan sakelar -b . Jadi untuk memeriksa log boot kedua yang akan kami gunakan -

journalctl -b -2

Default untuk -b tanpa offset log booting yang ditentukan akan selalu menjadi log booting saat ini setelah boot ulang terakhir.

Menganalisis Log menurut Jenis Log

Acara dari journald diberi nomor dan dikategorikan menjadi 7 jenis terpisah -

0 - emerg   :: System is unusable 
1 - alert   :: Action must be taken immediatly    
2 - crit    :: Action is advised to be taken immediatly 
3 - err     :: Error effecting functionality of application 
4 - warning :: Usually means a common issue that can affect security or usilbity 
5 - info    :: logged informtation for common operations 
6 - debug   :: usually disabled by default to troubleshoot functionality

Karenanya, jika kita ingin melihat semua peringatan, perintah berikut dapat dikeluarkan melalui journalctl -

[root@centos rdc]# journalctl -p 4
-- Logs begin at Sun 2017-03-19 22:01:57 MDT, end at Wed 2017-03-22 22:33:42 MDT. --
Mar 19 22:01:57 localhost.localdomain kernel: ACPI: RSDP 00000000000f6a10 00024
(v02 PTLTD )
Mar 19 22:01:57 localhost.localdomain kernel: ACPI: XSDT 0000000095eea65b 0005C
(v01 INTEL  440BX    06040000 VMW  01
Mar 19 22:01:57 localhost.localdomain kernel: ACPI: FACP 0000000095efee73 000F4
(v04 INTEL  440BX    06040000 PTL  00
Mar 19 22:01:57 localhost.localdomain kernel: ACPI: DSDT 0000000095eec749 1272A
(v01 PTLTD  Custom   06040000 MSFT 03
Mar 19 22:01:57 localhost.localdomain kernel: ACPI: FACS 0000000095efffc0 00040
Mar 19 22:01:57 localhost.localdomain kernel: ACPI: BOOT 0000000095eec721 00028
(v01 PTLTD  $SBFTBL$ 06040000 LTP 00 Mar 19 22:01:57 localhost.localdomain kernel: ACPI: APIC 0000000095eeb8bd 00742 (v01 PTLTD ? APIC 06040000 LTP 00 Mar 19 22:01:57 localhost.localdomain kernel: ACPI: MCFG 0000000095eeb881 0003C (v01 PTLTD $PCITBL$ 06040000  LTP 00 
Mar 19 22:01:57 localhost.localdomain kernel: ACPI: SRAT 0000000095eea757 008A8
(v02 VMWARE MEMPLUG  06040000 VMW  00 
Mar 19 22:01:57 localhost.localdomain kernel: ACPI: HPET 0000000095eea71f 00038
(v01 VMWARE VMW HPET 06040000 VMW  00 
Mar 19 22:01:57 localhost.localdomain kernel: ACPI: WAET 0000000095eea6f7 00028
(v01 VMWARE VMW WAET 06040000 VMW  00 
Mar 19 22:01:57 localhost.localdomain kernel: Zone ranges: 
Mar 19 22:01:57 localhost.localdomain kernel:   DMA      [mem 0x000010000x00ffffff] 
Mar 19 22:01:57 localhost.localdomain kernel:   DMA32    [mem 0x010000000xffffffff] 
Mar 19 22:01:57 localhost.localdomain kernel:   Normal   empty 
Mar 19 22:01:57 localhost.localdomain kernel: Movable zone start for each node 
Mar 19 22:01:57 localhost.localdomain kernel: Early memory node ranges 
Mar 19 22:01:57 localhost.localdomain kernel:   node   0: [mem 0x000010000x0009dfff] 
Mar 19 22:01:57 localhost.localdomain kernel:   node   0: [mem 0x001000000x95edffff] 
Mar 19 22:01:57 localhost.localdomain kernel:   node   0: [mem 0x95f000000x95ffffff] 
Mar 19 22:01:57 localhost.localdomain kernel: Built 1 zonelists in Node order,
mobility grouping on.  Total pages: 60 
Mar 19 22:01:57 localhost.localdomain kernel: Policy zone: DMA32 
Mar 19 22:01:57 localhost.localdomain kernel: ENERGY_PERF_BIAS: Set to
'normal', was 'performance'

Di atas menunjukkan semua peringatan selama 4 hari terakhir di sistem.

Cara baru untuk melihat dan membaca log dengan systemd memang membutuhkan sedikit latihan dan penelitian untuk menjadi terbiasa. Namun, dengan format keluaran yang berbeda dan pemberitahuan khusus untuk membuat semua log daemon terpaket menjadi universal, hal ini layak untuk diterapkan. journald menawarkan fleksibilitas dan efisiensi yang tinggi dibandingkan metode analisis log tradisional.

Sebelum menjelajahi metode khusus CentOS untuk menerapkan rencana pencadangan standar, pertama-tama mari kita bahas pertimbangan umum untuk kebijakan pencadangan tingkat standar. Hal pertama yang ingin kami biasakan adalah3-2-1 backup rule.

3-2-1 Strategi Cadangan

Di seluruh industri, Anda pasti sering mendengar istilah model cadangan 3-2-1. Ini adalah pendekatan yang sangat baik untuk diterapkan saat menerapkan rencana cadangan. 3-2-1 didefinisikan sebagai berikut:3salinan data; misalnya, kami mungkin memiliki copy pekerjaan; salinan dimasukkan ke server CentOS yang dirancang untuk redundansi menggunakan rsync; dan dirotasi, cadangan USB di luar lokasi dibuat dari data di server cadangan.2media cadangan yang berbeda. Kami sebenarnya akan memiliki tiga media cadangan yang berbeda dalam kasus ini: copy pekerjaan pada SSD laptop atau workstation, data server CentOS pada Array RADI6, dan backup offsite diletakkan pada drive USB.1salinan data di luar lokasi; kami memutar drive USB di luar kantor setiap malam. Pendekatan modern lainnya mungkin penyedia cadangan cloud.

Pemulihan sistem

Sebuah logam telanjang mengembalikan rencana hanyalah sebuah rencana ditata oleh administrator CentOS untuk mendapatkan sistem penting online dengan semua data utuh. Dengan asumsi 100% kegagalan sistem dan hilangnya semua perangkat keras sistem sebelumnya, administrator harus memiliki rencana untuk mencapai waktu aktif dengan data pengguna utuh dengan biaya waktu henti minimal. Kernel monolitik yang digunakan di Linux sebenarnya membuat pemulihan bare metal menggunakan gambar sistem jauh lebih mudah daripada Windows. Dimana Windows menggunakan arsitektur micro kernel.

Pemulihan data penuh dan pemulihan bare metal biasanya dilakukan melalui kombinasi metode termasuk bekerja, gambar disk produksi yang dikonfigurasi dari server operasional utama, cadangan data pengguna yang berlebihan yang mematuhi aturan 3-2-1. Bahkan beberapa file sensitif yang mungkin disimpan di tempat yang aman dan tahan api dengan akses terbatas ke personel perusahaan tepercaya.

Restore metal multiphase dan rencana pemulihan data menggunakan alat CentOS asli dapat terdiri dari -

  • dd untuk membuat dan memulihkan image disk produksi dari server yang dikonfigurasi

  • rsync untuk membuat cadangan tambahan dari semua data pengguna

  • tar & gzip untuk menyimpan cadangan file yang dienkripsi dengan kata sandi dan catatan dari administrator. Biasanya, ini dapat diletakkan di drive USB, dienkripsi dan dikunci dalam brankas yang dapat diakses oleh Manajer Senior. Juga, ini memastikan orang lain akan mengetahui kredensial keamanan penting jika administrator saat ini memenangkan lotere dan menghilang ke pulau yang cerah di suatu tempat.

Jika sistem macet karena kegagalan perangkat keras atau bencana, berikut akan menjadi fase operasi pemulihan yang berbeda -

  • Bangun server yang berfungsi dengan gambar logam kosong yang dikonfigurasi

  • Pulihkan data ke server yang berfungsi dari cadangan

  • Memiliki akses fisik ke kredensial yang diperlukan untuk melakukan dua operasi pertama

Gunakan rsync untuk Pencadangan Tingkat File

rsync adalah utilitas yang bagus untuk menyinkronkan direktori file baik secara lokal atau ke server lain. rsync telah digunakan selama bertahun-tahun oleh Administrator Sistem, oleh karena itu sangat disempurnakan untuk tujuan mencadangkan data. Menurut pendapat penulis, salah satu fitur sinkronisasi terbaik adalah kemampuannya untuk dibuat skrip dari baris perintah.

Dalam tutorial ini, kita akan membahas rsync dengan berbagai cara -

  • Jelajahi dan bicarakan tentang beberapa opsi umum
  • Buat cadangan lokal
  • Buat backup jarak jauh melalui SSH
  • Pulihkan cadangan lokal

rsyncdinamai sesuai tujuannya: Sinkronisasi Jarak Jauh dan kuat serta fleksibel dalam penggunaan.

Berikut ini adalah backup jarak jauh rsync dasar melalui ssh -

MiNi:~ rdc$ rsync -aAvz --progress ./Desktop/ImportantStuff/ 
[email protected]:home/rdc/ Documents/RemoteStuff/
[email protected]'s password:
sending incremental file list
   6,148 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=23/25)
2017-02-14 16_26_47-002 - Veeam_Architecture001.png
   33,144 100%   31.61MB/s    0:00:00 (xfr#2, to-chk=22/25)
A Guide to the WordPress REST API | Toptal.pdf
   892,406 100%   25.03MB/s    0:00:00 (xfr#3, to-chk=21/25)
Rick Cardon Technologies, LLC..webloc
   77 100%    2.21kB/s    0:00:00 (xfr#4, to-chk=20/25)
backbox-4.5.1-i386.iso
   43,188,224   1%    4.26MB/s    0:08:29
sent 2,318,683,608 bytes  received 446 bytes  7,302,941.90 bytes/sec
total size is 2,327,091,863  speedup is 1.00
MiNi:~ rdc$

Sinkronisasi berikut mengirimkan hampir 2,3 GB data melalui LAN kami. Keindahan rsync adalah ia bekerja secara bertahap di tingkat blok berdasarkan file-by-file. Artinya, jika kita mengubah hanya dua karakter dalam file teks 1MB, hanya satu atau dua blok yang akan ditransfer melintasi lan pada sinkronisasi berikutnya!

Selain itu, fungsi inkremental dapat dinonaktifkan untuk mendukung lebih banyak bandwidth jaringan yang digunakan untuk penggunaan CPU yang lebih sedikit. Ini mungkin terbukti disarankan jika terus menyalin beberapa file database 10MB setiap 10 menit pada Backup-Lan khusus 1Gb. Alasannya adalah: ini akan selalu berubah dan akan mentransmisikan secara bertahap setiap 10 menit dan mungkin membebani beban CPU jarak jauh. Karena total pemuatan transfer tidak akan melebihi 5 menit, kami mungkin hanya ingin menyinkronkan file basis data secara keseluruhan.

Berikut adalah sakelar paling umum dengan rsync -

rsync syntax:
rsync [options] [local path] [[remote host:remote path] or [target path

Beralih Tindakan
-Sebuah Mode arsip dan mengasumsikan -r, -p, -t, -g, -l
-d Sinkronkan hanya pohon direktori, tidak ada file
-r Rekursif ke dalam direktori
-l Salin symlink sebagai symlink
-p Pertahankan izin
-g Pertahankan grup
-v Keluaran panjang
-z Kompres melalui tautan jaringan
-X Pertahankan atribut yang diperluas
-SEBUAH Pertahankan ACL
-t Pertahankan cap waktu
-W Transfer seluruh file, bukan blok tambahan
-u Jangan menimpa file sesuai target
--kemajuan Tampilkan kemajuan transfer
--menghapus Hapus file lama sesuai target
--max-size = XXX Ukuran file maks untuk disinkronkan

Kapan menggunakan rsync

Preferensi pribadi saya untuk rsync adalah saat mencadangkan file dari host sumber ke host target. Misalnya, semua direktori rumah untuk pemulihan data atau bahkan offsite dan ke cloud untuk pemulihan bencana.

Pencadangan Lokal Dengan rsync

Kami telah melihat cara mentransfer file dari satu host ke host lainnya. Metode yang sama dapat digunakan untuk menyinkronkan direktori dan file secara lokal.

Mari buat backup tambahan secara manual dari / etc / di direktori pengguna root kita.

Pertama, kita perlu membuat direktori dari ~ / root untuk cadangan yang disinkronkan -

[root@localhost rdc]# mkdir /root/etc_baks

Kemudian, pastikan tersedia cukup ruang disk.

[root@localhost rdc]# du -h --summarize /etc/ 
49M    /etc/
 
[root@localhost rdc]# df -h 
Filesystem           Size     Used     Avail    Use%     Mounted on 
/dev/mapper/cl-root   43G      15G        28G    35%         /

Kami baik untuk menyinkronkan seluruh / etc / direktori kami -

rsync -aAvr /etc/ /root/etc_baks/

Direktori / etc / kami yang telah disinkronkan -

[root@localhost etc_baks]# ls -l ./
total 1436
drwxr-xr-x.   3 root root      101 Feb  1 19:40 abrt
-rw-r--r--.   1 root root       16 Feb  1 19:51 adjtime
-rw-r--r--.   1 root root     1518 Jun  7  2013 aliases
-rw-r--r--.   1 root root    12288 Feb 27 19:06 aliases.db
drwxr-xr-x.   2 root root       51 Feb  1 19:41 alsa
drwxr-xr-x.   2 root root     4096 Feb 27 17:11 alternatives
-rw-------.   1 root root      541 Mar 31  2016 anacrontab
-rw-r--r--.   1 root root       55 Nov  4 12:29 asound.conf
-rw-r--r--.   1 root root        1 Nov  5 14:16 at.deny
drwxr-xr-x.   2 root root       32 Feb  1 19:40 at-spi2
--{ condensed output }--

Sekarang mari kita lakukan rsync tambahan -

[root@localhost etc_baks]# rsync -aAvr --progress  /etc/ /root/etc_baks/
sending incremental file list

test_incremental.txt 
   0 100%    0.00kB/s    0:00:00 (xfer#1, to-check=1145/1282)
   
sent 204620 bytes  received 2321 bytes  413882.00 bytes/sec
total size is 80245040  speedup is 387.77

[root@localhost etc_baks]#

Hanya file test_incremental.txt kami yang disalin.

Backup Diferensial Jarak Jauh Dengan rsync

Mari kita lakukan pencadangan penuh rsync awal ke server dengan rencana pencadangan yang diterapkan. Contoh ini sebenarnya mencadangkan folder di Mac OS X Workstation ke server CentOS. Aspek hebat lainnya dari rsync adalah ia dapat digunakan pada platform apa pun yang telah porting rsync.

MiNi:~ rdc$ rsync -aAvz Desktop/ImportanStuff/
[email protected]:Documents/RemoteStuff
[email protected]'s password:
sending incremental file list
./
A Guide to the WordPress REST API | Toptal.pdf
Rick Cardon Tech LLC.webloc
VeeamDiagram.png
backbox-4.5.1-i386.iso
dhcp_admin_script_update.py
DDWRT/
DDWRT/.DS_Store
DDWRT/ddwrt-linksys-wrt1200acv2-webflash.bin
DDWRT/ddwrt_mod_notes.docx
DDWRT/factory-to-ddwrt.bin
open_ldap_config_notes/
open_ldap_config_notes/ldap_directory_a.png
open_ldap_config_notes/open_ldap_notes.txt
perl_scripts/
perl_scripts/mysnmp.pl
php_scripts/
php_scripts/chunked.php
php_scripts/gettingURL.php
sent 2,318,281,023 bytes  received 336 bytes  9,720,257.27 bytes/sec
total size is 2,326,636,892  speedup is 1.00
MiNi:~ rdc$

Kami sekarang telah mencadangkan folder dari workstation ke server yang menjalankan volume RAID6 dengan memutar media pemulihan bencana yang disimpan di luar lokasi. Menggunakan rsync telah memberi kita cadangan standar 3-2-1 dengan hanya satu server yang memiliki larik disk berlebihan yang mahal dan cadangan diferensial yang dirotasi.

Sekarang mari lakukan backup lain dari folder yang sama menggunakan rsync setelah satu file baru bernama test_file.txt ditambahkan.

MiNi:~ rdc$ rsync -aAvz Desktop/ImportanStuff/
[email protected]:Documents/RemoteStuff 
[email protected]'s password:  
sending incremental file list 
 ./ 
test_file.txt

sent 814 bytes  received 61 bytes  134.62 bytes/sec
total size is 2,326,636,910  speedup is 2,659,013.61
MiNi:~ rdc$

Seperti yang Anda lihat, hanya file baru yang dikirim ke server melalui rsync . Perbandingan diferensial dibuat berdasarkan file demi file.

Beberapa hal yang perlu diperhatikan adalah: Ini hanya menyalin file baru: test_file.txt, karena itu adalah satu-satunya file dengan perubahan. rsync menggunakan ssh. Kami tidak perlu menggunakan akun root kami di kedua mesin tersebut.

Sederhana, kuat dan efektif, rsync sangat bagus untuk membuat cadangan seluruh folder dan struktur direktori. Namun, rsync dengan sendirinya tidak mengotomatiskan prosesnya. Di sinilah kita perlu menggali kotak peralatan kita dan menemukan alat terbaik, kecil, dan sederhana untuk pekerjaan itu.

Untuk mengotomatiskan cadangan rsync dengan cronjobs , pengguna SSH harus disiapkan menggunakan kunci SSH untuk otentikasi. Ini dikombinasikan dengan cronjobs memungkinkan rsync dilakukan secara otomatis pada interval waktu.

Gunakan DD untuk Gambar Pemulihan Bare Metal Block-by-Block

DD adalah utilitas Linux yang telah ada sejak awal pertemuan kernel Linux dengan GNU Utilities.

dd dalam istilah paling sederhana menyalin gambar dari area disk yang dipilih. Kemudian memberikan kemampuan untuk menyalin blok disk fisik yang dipilih. Jadi, kecuali Anda memiliki cadangan, setelah dd menulis di atas disk, semua blok akan diganti. Kehilangan data sebelumnya melebihi kemampuan pemulihan bahkan untuk pemulihan data tingkat profesional yang sangat mahal.

Seluruh proses untuk membuat image sistem yang dapat di-boot dengan dd adalah sebagai berikut -

  • Boot dari server CentOS dengan distribusi linux yang dapat di-boot
  • Temukan tujuan dari bootable disk yang akan dicitrakan
  • Tentukan lokasi di mana citra pemulihan akan disimpan
  • Temukan ukuran blok yang digunakan pada disk Anda
  • Mulai operasi gambar dd

Dalam tutorial ini, demi waktu dan kesederhanaan, kita akan membuat image ISO dari master-boot record dari mesin virtual CentOS. Kami kemudian akan menyimpan gambar ini di luar situs. Jika MBR kami rusak dan perlu dipulihkan, proses yang sama dapat diterapkan ke seluruh disk atau partisi yang dapat di-boot. Namun, waktu dan ruang disk yang dibutuhkan benar-benar sedikit berlebihan untuk tutorial ini.

Admin CentOS dianjurkan untuk menjadi mahir dalam memulihkan disk / partisi yang dapat di-boot sepenuhnya di lingkungan pengujian dan melakukan pemulihan bare metal. Ini akan menghilangkan banyak tekanan ketika pada akhirnya seseorang perlu menyelesaikan latihan dalam situasi kehidupan nyata dengan Manajer dan beberapa lusin pengguna akhir menghitung waktu henti. Dalam kasus seperti itu, 10 menit memikirkan hal-hal bisa tampak seperti selamanya dan membuat seseorang berkeringat.

Note- Saat menggunakan dd pastikan untuk TIDAK mengacaukan volume sumber dan target. Anda dapat menghancurkan data dan server yang dapat di-boot dengan menyalin lokasi cadangan Anda ke drive boot. Atau mungkin lebih buruk menghancurkan data selamanya dengan menyalin data pada tingkat yang sangat rendah dengan DD.

Berikut adalah sakelar baris perintah dan parameter umum untuk dd -

Beralih Tindakan
jika = Dalam file atau sumber yang akan disalin
dari = File keluar atau salinan file masuk
bs Atur ukuran blok input dan output
obs Atur ukuran blok file keluaran
IBS Atur ukuran blok file masukan
menghitung Atur jumlah blok yang akan disalin
konv Opsi tambahan untuk ditambahkan untuk pencitraan
Noerror Jangan berhenti memproses kesalahan
sinkronisasi Pads blok input yang tidak sesuai jika terjadi kesalahan atau misalignment

Note on block size- Ukuran blok default untuk dd adalah 512 byte. Ini adalah ukuran blok standar dari hard disk drive dengan kepadatan rendah. HDD dengan kepadatan yang lebih tinggi saat ini telah meningkatkan ukuran blok menjadi 4096 byte (4kB) untuk memungkinkan disk mulai dari 1TB dan lebih besar. Jadi, kami ingin memeriksa ukuran blok disk sebelum menggunakan dd dengan hard disk yang lebih baru dan berkapasitas lebih tinggi.

Untuk tutorial ini, alih-alih bekerja di server produksi dengan dd , kami akan menggunakan instalasi CentOS yang berjalan di VMWare. Kami juga akan mengkonfigurasi VMWare untuk mem-boot image ISO Linux yang dapat di-boot daripada bekerja dengan USB Stick yang dapat di-boot.

Pertama, kita perlu mengunduh gambar CentOS yang berjudul: CentOS Gnome ISO . Ini hampir 3GB dan disarankan untuk selalu menyimpan salinan untuk membuat thumb-drive USB yang dapat di-boot dan boot ke instalasi server virtual untuk pemecahan masalah dan gambar logam kosong.

Distro Linux yang dapat di-boot lainnya juga akan berfungsi dengan baik. Linux Mint dapat digunakan untuk ISO yang dapat di-boot karena memiliki dukungan perangkat keras yang hebat dan alat disk GUI yang dipoles untuk pemeliharaan.

Gambar bootable CentOS GNOME Live dapat diunduh dari: http://buildlogs.centos.org/rolling/7/isos/x86_64/CentOS-7-x86_64-LiveGNOME.iso

Mari konfigurasikan instalasi VMWare Workstation kami untuk mem-boot dari gambar bootable Linux kami. Langkah-langkahnya adalah untuk VMWare di OS X. Namun, mereka serupa di VMWare Workstation di Linux, Windows, dan bahkan Virtual Box.

Note- Menggunakan solusi desktop virtual seperti Virtual Box atau VMWare Workstation adalah cara yang bagus untuk mengatur skenario lab untuk mempelajari tugas-tugas Administrasi CentOS. Ini menyediakan kemampuan untuk menginstal beberapa instalasi CentOS, praktis tidak ada konfigurasi perangkat keras yang membiarkan orang tersebut fokus pada administrasi, dan bahkan menyimpan status server sebelum membuat perubahan.

Pertama mari kita konfigurasikan cd-rom virtual dan lampirkan image ISO kita untuk boot alih-alih instalasi server CentOS virtual -

Sekarang, atur disk startup -

Sekarang ketika boot, mesin virtual kami akan boot dari image ISO bootable CentOS dan memungkinkan akses ke file di server Virtual CentOS yang telah dikonfigurasi sebelumnya.

Mari kita periksa disk kita untuk melihat dari mana kita ingin menyalin MBR (keluaran kental adalah sebagai berikut).

MiNt ~ # fdisk -l
Disk /dev/sda: 60 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Kami telah menemukan kedua disk fisik kami: sda dan sdb . Masing-masing memiliki ukuran blok 512 byte. Jadi, sekarang kita akan menjalankan perintah dd untuk menyalin 512 byte pertama untuk MBR kita di SDA1.

Cara terbaik untuk melakukannya adalah -

[root@mint rdc]# dd if=/dev/sda bs=512 count=1  | gzip -c >
/mnt/sdb/images/mbr.iso.gz 
1+0 records in 
1+0 records out 
512 bytes copied, 0.000171388 s, 3.0 MB/s

[root@mint rdc]# ls /mnt/sdb/ 
   mbr-iso.gz
   
[root@mint rdc]#

Sama seperti itu, kami memiliki gambar penuh dari master boot record. Jika kita memiliki cukup ruang untuk mem-image drive boot, kita dapat dengan mudah membuat image boot sistem lengkap -

dd if=/dev/INPUT/DEVICE-NAME-HERE conv=sync,noerror bs=4K | gzip -c >
/mnt/sdb/boot-server-centos-image.iso.gz

The conv = sync digunakan ketika byte harus selaras untuk medium fisik. Dalam kasus ini, dd mungkin mendapatkan kesalahan jika penyelarasan 4K yang tepat tidak terbaca (katakanlah ... file yang hanya 3K tetapi perlu mengambil minimal satu blok 4K pada disk. Atau, hanya ada kesalahan membaca dan file tidak dapat dibaca oleh dd.). Jadi, dd dengan conv = sync, noerror akan mengisi 3K dengan data yang sepele, tetapi berguna ke media fisik dalam penyelarasan blok 4K. Meskipun tidak menampilkan kesalahan yang dapat mengakhiri operasi besar.

Saat bekerja dengan data dari disk, kami selalu ingin menyertakan: konv = sinkronisasi, parameter noerror .

Ini hanya karena disk bukan aliran seperti data TCP. Mereka terdiri dari balok-balok yang disejajarkan dengan ukuran tertentu. Misalnya, jika kita memiliki blok 512 byte, file yang hanya 300 byte masih membutuhkan ruang disk 512 byte penuh (mungkin 2 blok untuk informasi inode seperti izin dan informasi sistem file lainnya).

Gunakan gzip dan tar untuk Penyimpanan Aman

gzip dan tar adalah dua utilitas yang harus terbiasa digunakan oleh administrator CentOS. Mereka digunakan lebih dari sekadar mendekompresi arsip.

Menggunakan Gnu Tar di CentOS Linux

Tar adalah utilitas pengarsipan yang mirip dengan winrar di Windows. Namanya Tape Archive disingkat tar cukup meringkas utilitas. tar akan mengambil file dan menempatkannya ke dalam arsip untuk kenyamanan logis. Karenanya, alih-alih lusinan file yang disimpan di / etc. kami hanya dapat "memasukkannya" ke dalam arsip untuk kenyamanan pencadangan dan penyimpanan.

tar telah menjadi standar untuk menyimpan file arsip di Unix dan Linux selama bertahun-tahun. Karenanya, menggunakan tar bersama dengan gzip atau bzip dianggap sebagai praktik terbaik untuk arsip di setiap sistem.

Berikut ini adalah daftar switch baris perintah umum dan opsi yang digunakan dengan tar -

Beralih Tindakan
-c Membuat arsip .tar baru
-C Ekstrak ke direktori lain
-j Menggunakan kompresi bzip2
-z Menggunakan kompresi gzip
-v Verbose menunjukkan kemajuan pengarsipan
-t Daftar isi arsip
-f Nama file arsip
-x Ekstrak arsip tar

Berikut ini adalah sintaks dasar untuk membuat arsip tar .

tar -cvf [tar archive name]

Note on Compression mechanisms with tar- Disarankan untuk tetap menggunakan salah satu dari dua skema kompresi umum saat menggunakan tar: gzip dan bzip2. File gzip menggunakan lebih sedikit sumber daya CPU tetapi biasanya berukuran lebih besar. Meskipun bzip2 membutuhkan waktu lebih lama untuk dikompres, mereka menggunakan lebih banyak sumber daya CPU; tetapi akan menghasilkan ukuran file akhir yang lebih kecil.

Saat menggunakan kompresi file, kami akan selalu ingin menggunakan ekstensi file standar yang memberi tahu semua orang termasuk kami sendiri (versus menebak dengan coba-coba) skema kompresi apa yang diperlukan untuk mengekstrak arsip.

bzip2 .tbz
bzip2 .tar.tbz
bzip2 .tb2
gzip .tar.gz
gzip .tgz

Saat perlu mengekstrak arsip pada kotak Windows atau untuk digunakan pada Windows, disarankan untuk menggunakan .tar.tbz atau .tar.gz karena kebanyakan ekstensi tunggal tiga karakter akan membingungkan Administrator khusus Windows dan Windows (namun, itulah terkadang hasil yang diinginkan)

Mari buat arsip tar gzip dari backup jarak jauh kita yang disalin dari Mac Workstation -

[rdc@mint Documents]$ tar -cvz -f RemoteStuff.tgz ./RemoteStuff/ 
./RemoteStuff/
./RemoteStuff/.DS_Store
./RemoteStuff/DDWRT/
./RemoteStuff/DDWRT/.DS_Store
./RemoteStuff/DDWRT/ddwrt-linksys-wrt1200acv2-webflash.bin
./RemoteStuff/DDWRT/ddwrt_mod_notes.docx
./RemoteStuff/DDWRT/factory-to-ddwrt.bin
./RemoteStuff/open_ldap_config_notes/
./RemoteStuff/open_ldap_config_notes/ldap_directory_a.png
./RemoteStuff/open_ldap_config_notes/open_ldap_notes.txt
./RemoteStuff/perl_scripts/
./RemoteStuff/perl_scripts/mysnmp.pl
./RemoteStuff/php_scripts/
./RemoteStuff/php_scripts/chunked.php
./RemoteStuff/php_scripts/gettingURL.php
./RemoteStuff/A Guide to the WordPress REST API | Toptal.pdf
./RemoteStuff/Rick Cardon Tech LLC.webloc
./RemoteStuff/VeeamDiagram.png
./RemoteStuff/backbox-4.5.1-i386.iso
./RemoteStuff/dhcp_admin_script_update.py
./RemoteStuff/test_file.txt
[rdc@mint Documents]$ ls -ld RemoteStuff.tgz
-rw-rw-r--. 1 rdc rdc 2317140451 Mar 12 06:10 RemoteStuff.tgz

Note- Daripada menambahkan semua file secara langsung ke arsip, kami mengarsipkan seluruh folder RemoteStuff . Ini adalah cara termudah. Hanya karena ketika diekstrak, seluruh direktori RemoteStuff diekstraksi dengan semua file di dalam direktori kerja saat ini sebagai ./currentWorkingDirectory/RemoteStuff/

Sekarang mari mengekstrak arsip di dalam direktori / root / home.

[root@centos ~]# tar -zxvf RemoteStuff.tgz
./RemoteStuff/
./RemoteStuff/.DS_Store
./RemoteStuff/DDWRT/
./RemoteStuff/DDWRT/.DS_Store
./RemoteStuff/DDWRT/ddwrt-linksys-wrt1200acv2-webflash.bin
./RemoteStuff/DDWRT/ddwrt_mod_notes.docx
./RemoteStuff/DDWRT/factory-to-ddwrt.bin
./RemoteStuff/open_ldap_config_notes/
./RemoteStuff/open_ldap_config_notes/ldap_directory_a.png
./RemoteStuff/open_ldap_config_notes/open_ldap_notes.txt
./RemoteStuff/perl_scripts/
./RemoteStuff/perl_scripts/mysnmp.pl
./RemoteStuff/php_scripts/
./RemoteStuff/php_scripts/chunked.php
./RemoteStuff/php_scripts/gettingURL.php
./RemoteStuff/A Guide to the WordPress REST API | Toptal.pdf
./RemoteStuff/Rick Cardon Tech LLC.webloc
./RemoteStuff/VeeamDiagram.png
./RemoteStuff/backbox-4.5.1-i386.iso
./RemoteStuff/dhcp_admin_script_update.py
./RemoteStuff/test_file.txt
[root@mint ~]# ping www.google.com

Seperti yang terlihat di atas, semua file hanya diekstraksi ke direktori yang berisi dalam direktori kerja kami saat ini.

[root@centos ~]# ls -l 
total 2262872 
-rw-------.   1   root   root       1752   Feb   1   19:52   anaconda-ks.cfg 
drwxr-xr-x. 137   root   root       8192   Mar   9   04:42   etc_baks 
-rw-r--r--.   1   root   root       1800   Feb   2   03:14   initial-setup-ks.cfg 
drwxr-xr-x.   6   rdc    rdc        4096   Mar  10   22:20   RemoteStuff 
-rw-r--r--.   1   root   root 2317140451   Mar  12   07:12   RemoteStuff.tgz 
-rw-r--r--.   1   root   root       9446   Feb  25   05:09   ssl.conf [root@centos ~]#

Gunakan gzip untuk Mengompresi Cadangan File

Seperti disebutkan sebelumnya, kita dapat menggunakan bzip2 atau gzip dari tar dengan ekstensi -j atau -zsaklar baris perintah. Kami juga dapat menggunakan gzip untuk mengompres file individual. Namun, menggunakan bzip atau gzip saja tidak menawarkan banyak fitur seperti saat digabungkan dengan tar .

Saat menggunakan gzip , tindakan defaultnya adalah menghapus file asli, menggantinya dengan versi terkompresi yang menambahkan ekstensi .gz.

Beberapa saklar baris perintah umum untuk gzip adalah -

Beralih Tindakan
-c Menyimpan file setelah dimasukkan ke dalam arsip
-l Dapatkan statistik untuk arsip terkompresi
-r Mengompresi file dalam direktori secara rekursif
-1 hingga 9 Menentukan tingkat kompresi pada skala 1 hingga 9

gzip lebih atau kurang bekerja pada basis file-demi-file dan bukan pada basis arsip seperti beberapa utilitas zip Windows O / S. Alasan utamanya adalah karena tar sudah menyediakan fitur pengarsipan tingkat lanjut. gzip dirancang untuk hanya menyediakan mekanisme kompresi.

Karenanya, ketika memikirkan gzip , pikirkan satu file. Saat memikirkan banyak file, pikirkan arsip tar . Sekarang mari kita jelajahi ini dengan arsip tar sebelumnya .

Note - Profesional Linux berpengalaman akan sering menyebut arsip tarred sebagai tarball.

Mari buat arsip tar lain dari backup rsync kita .

[root@centos Documents]# tar -cvf RemoteStuff.tar ./RemoteStuff/
[root@centos Documents]# ls
RemoteStuff.tar RemoteStuff/

Untuk tujuan demonstrasi, mari gzip tarball yang baru dibuat, dan beri tahu gzip untuk menyimpan file lama. Secara default, tanpa opsi -c , gzip akan mengganti seluruh arsip tar dengan file .gz .

[root@centos Documents]# gzip -c RemoteStuff.tar > RemoteStuff.tar.gz
[root@centos Documents]# ls
RemoteStuff  RemoteStuff.tar  RemoteStuff.tar.gz
We now have our original directory, our tarred directory and finally our gziped tarball.

Mari kita coba menguji sakelar -l dengan gzip .

[root@centos Documents]# gzip -l RemoteStuff.tar.gz  
     compressed        uncompressed        ratio uncompressed_name 
     2317140467          2326661120        0.4% RemoteStuff.tar
     
[root@centos Documents]#

Untuk mendemonstrasikan bagaimana gzip berbeda dari Windows Zip Utilities, jalankan gzip pada folder file teks.

[root@centos Documents]# ls text_files/
 file1.txt  file2.txt  file3.txt  file4.txt  file5.txt
[root@centos Documents]#

Sekarang mari kita gunakan opsi -r untuk secara rekursif memampatkan semua file teks dalam direktori.

[root@centos Documents]# gzip -9 -r text_files/

[root@centos Documents]# ls ./text_files/
file1.txt.gz  file2.txt.gz  file3.txt.gz  file4.txt.gz  file5.txt.gz
 
[root@centos Documents]#

Lihat? Bukan apa yang mungkin diantisipasi beberapa orang. Semua file teks asli telah dihapus dan masing-masing dikompresi satu per satu. Karena perilaku ini, sebaiknya pikirkan gzip saja saat perlu bekerja dalam satu file.

Bekerja dengan tarball , mari ekstrak tarball yang telah disinkronkan ke direktori baru.

[root@centos Documents]# tar -C /tmp -zxvf RemoteStuff.tar.gz
./RemoteStuff/
./RemoteStuff/.DS_Store
./RemoteStuff/DDWRT/
./RemoteStuff/DDWRT/.DS_Store
./RemoteStuff/DDWRT/ddwrt-linksys-wrt1200acv2-webflash.bin
./RemoteStuff/DDWRT/ddwrt_mod_notes.docx
./RemoteStuff/DDWRT/factory-to-ddwrt.bin
./RemoteStuff/open_ldap_config_notes/
./RemoteStuff/open_ldap_config_notes/ldap_directory_a.png
./RemoteStuff/open_ldap_config_notes/open_ldap_notes.txt
./RemoteStuff/perl_scripts/
./RemoteStuff/perl_scripts/mysnmp.pl
./RemoteStuff/php_scripts/
./RemoteStuff/php_scripts/chunked.php

Seperti yang terlihat di atas, kami mengekstrak dan mendekompresi tarball kami ke direktori / tmp.

[root@centos Documents]# ls /tmp 
hsperfdata_root
RemoteStuff

Enkripsi Arsip TarBall

Mengenkripsi arsip tarball untuk menyimpan dokumen aman yang mungkin perlu diakses oleh karyawan lain di organisasi, dalam kasus pemulihan bencana, bisa menjadi konsep yang rumit. Pada dasarnya ada tiga cara untuk melakukan ini: menggunakan GnuPG, atau menggunakan openssl, atau menggunakan utilitas bagian ketiga.

GnuPG terutama dirancang untuk enkripsi asimetris dan lebih mengutamakan asosiasi identitas daripada frasa sandi. Benar, ini bisa digunakan dengan enkripsi simetris, tapi ini bukan kekuatan utama GnuPG. Jadi, saya akan mendiskon GnuPG karena menyimpan arsip dengan keamanan fisik ketika lebih banyak orang daripada orang aslinya mungkin memerlukan akses (seperti mungkin manajer perusahaan yang ingin melindungi dari Administrator yang memegang semua kunci kerajaan sebagai pengaruh).

Opensl seperti GnuPG dapat melakukan apa yang kita inginkan dan dikirimkan dengan CentOS. Tapi sekali lagi, tidak dirancang khusus untuk melakukan apa yang kita inginkan dan enkripsi telah dipertanyakan di komunitas keamanan.

Pilihan kami adalah utilitas yang disebut 7zip. 7zip adalah utilitas kompresi seperti gzip tetapi dengan lebih banyak fitur. Seperti Gnu Gzip, 7zip dan standarnya ada di komunitas sumber terbuka. Kita hanya perlu menginstal 7zip dari EHEL Repository (bab selanjutnya akan membahas penginstalan Extended Enterprise Repositories secara rinci).

Instal 7zip di Centos

7zip adalah instalasi sederhana setelah repositori EHEL kami telah dimuat dan dikonfigurasi di CentOS.

[root@centos Documents]# yum -y install p7zip.x86_64 p7zip-plugins.x86_64
Loaded plugins: fastestmirror, langpacks
base
| 3.6 kB  00:00:00
epel/x86_64/metalink
|  13 kB  00:00:00
epel
| 4.3 kB  00:00:00
extras
| 3.4 kB  00:00:00
updates
| 3.4 kB  00:00:00
(1/2): epel/x86_64/updateinfo
| 756 kB  00:00:04      
(2/2):
epel/x86_64/primary_db
| 4.6 MB  00:00:18
Loading mirror speeds from cached hostfile
--> Running transaction check
---> Package p7zip.x86_64 0:16.02-2.el7 will be installed
---> Package p7zip-plugins.x86_64 0:16.02-2.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved

Sesederhana itu, 7zip diinstal dan siap digunakan dengan enkripsi AES 256-bit untuk arsip tarball kami.

Sekarang mari gunakan 7z untuk mengenkripsi arsip gzip kita dengan kata sandi. Sintaks untuk melakukannya cukup sederhana -

7z a -p <output filename><input filename>

Dimana, a: tambahkan ke arsip, dan -p: mengenkripsi dan meminta frasa sandi

[root@centos Documents]# 7z a -p RemoteStuff.tgz.7z RemoteStuff.tar.gz

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,1 CPU Intel(R)
Core(TM) i5-4278U CPU @ 2.60GHz (40651),ASM,AES-NI)
Scanning the drive:
1 file, 2317140467 bytes (2210 MiB)

Creating archive: RemoteStuff.tgz.7z

Items to compress: 1

Enter password (will not be echoed):
Verify password (will not be echoed) :

Files read from disk: 1
Archive size: 2280453410 bytes (2175 MiB)
Everything is Ok
[root@centos Documents]# ls
RemoteStuff  RemoteStuff.tar  RemoteStuff.tar.gz  RemoteStuff.tgz.7z  slapD
text_files

[root@centos Documents]#

Sekarang, kami memiliki arsip .7z kami yang mengenkripsi tarball gzip dengan AES 256-bit.

Note- 7zip menggunakan enkripsi AES 256-bit dengan hash SHA-256 dari kata sandi dan penghitung, diulang hingga 512 ribu kali untuk penurunan kunci. Ini harus cukup aman jika kunci kompleks digunakan.

Proses mengenkripsi dan mengompresi ulang arsip lebih lanjut dapat memakan waktu lama dengan arsip yang lebih besar.

7zip adalah penawaran lanjutan dengan lebih banyak fitur daripada gzip atau bzip2. Namun, ini tidak standar dengan CentOS atau di dunia Linux. Dengan demikian, utilitas lain harus digunakan sesering mungkin.

Sistem CentOS 7 dapat diperbarui dengan tiga cara -

  • Manually
  • Automatically
  • Perbarui secara manual untuk masalah keamanan utama dan konfigurasikan pembaruan otomatis

Dalam lingkungan produksi, disarankan untuk memperbarui secara manual untuk server produksi. Atau setidaknya buat rencana pembaruan sehingga administrator dapat memastikan layanan penting untuk operasi bisnis.

Masuk akal jika pembaruan keamanan sederhana dapat menyebabkan masalah berulang dengan aplikasi umum yang memerlukan peningkatan dan konfigurasi ulang oleh Administrator. Jadi, lelahkan penjadwalan pembaruan otomatis dalam produksi sebelum menguji di server pengembangan dan desktop terlebih dahulu.

Perbarui CentOS 7 Secara Manual

Untuk memperbarui CentOS 7, kita ingin membiasakan diri dengan perintah yum .yumdigunakan untuk menangani repositori paket di CentOS 7. yum adalah alat yang biasa digunakan untuk -

  • Perbarui Sistem CentOS 7 Linux
  • Cari paket
  • Instal paket
  • Deteksi dan instal dependensi yang diperlukan untuk paket

Untuk menggunakan yum untuk pembaruan, server CentOS Anda harus terhubung ke Internet. Sebagian besar konfigurasi akan menginstal sistem dasar, kemudian menggunakan yum untuk menanyakan repositori CentOS utama untuk fungsionalitas tambahan dalam paket dan menerapkan pembaruan sistem.

Kami telah menggunakan yum untuk menginstal beberapa paket. Saat menggunakan yum, Anda harus selalu melakukannya sebagai pengguna root. Atau pengguna dengan akses root. Jadi, mari cari dan instal editor teks yang mudah digunakan yang disebut nano .

[root@centos rdc]# yum search nano
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.rackspace.com
 * epel: mirror.chpc.utah.edu
 * extras: repos.forethought.net 
 * updates: repos.forethought.net 
====================================================================== 
      N/S matched: nano 
======================================================================
nano.x86_64 : A small text editor
nodejs-nano.noarch : Minimalistic couchdb driver for Node.js
perl-Time-Clock.noarch : Twenty-four hour clock object with nanosecond precision
 Name and summary matches only, use "search all" for everything.
 
[root@centos rdc]#

Sekarang, mari instal editor teks nano .

[root@centos rdc]# yum install nano
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.keystealth.org
 * epel: pubmirror1.math.uh.edu
 * extras: centos.den.host-engine.com
 * updates: repos.forethought.net
Resolving Dependencies
--> Running transaction check
---> Package nano.x86_64 0:2.3.1-10.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================  
Package                             Arch
Version                          Repository                            Size  
================================================================================  
 Installing: 
 nano                               x86_64
 2.3.1-10.el7                    base                                  440 k
 
Transaction Summary
Install  1 Package
Total download size: 440 k
Installed size: 1.6 M
Is this ok [y/d/N]: y
Downloading packages:
nano-2.3.1-10.el7.x86_64.rpm
| 440 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
 Installing : nano-2.3.1-10.el7.x86_64
1/1  
 Verifying  : nano-2.3.1-10.el7.x86_64
1/1  
Installed: 
 nano.x86_64 0:2.3.1-10.el7
 
Complete!

[root@centos rdc]#

Kami telah menginstal editor teks nano. Metode ini, IMO, jauh lebih mudah daripada mencari utilitas di situs web dan menjalankan penginstal secara manual. Selain itu, repositori menggunakan tanda tangan digital untuk memvalidasi paket yang memastikan bahwa paket tersebut berasal dari sumber tepercaya dengan yum. Terserah administrator untuk memvalidasi keaslian saat mempercayai repositori baru. Inilah mengapa dianggap praktik terbaik untuk bosan dengan repositori pihak ketiga.

Yum juga bisa digunakan untuk menghapus paket.

[root@centos rdc]# yum remove nano 
Loaded plugins: fastestmirror, langpacks 
Resolving Dependencies 
--> Running transaction check 
---> Package nano.x86_64 0:2.3.1-10.el7 will be erased 
--> Finished Dependency Resolution

Dependencies Resolved

Sekarang mari kita periksa pembaruannya.

[root@centos rdc]# yum list updates
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.keystealth.org
 * epel: pubmirror1.math.uh.edu
 * extras: centos.den.host-engine.com
 * updates: repos.forethought.net
Updated Packages
NetworkManager.x86_64           1:1.4.0-17.el7_3       updates
NetworkManager-adsl.x86_64      1:1.4.0-17.el7_3       updates
NetworkManager-glib.x86_64      1:1.4.0-17.el7_3       updates
NetworkManager-libnm.x86_64     1:1.4.0-17.el7_3       updates
NetworkManager-team.x86_64      1:1.4.0-17.el7_3       updates
NetworkManager-tui.x86_64       1:1.4.0-17.el7_3       updates
NetworkManager-wifi.x86_64      1:1.4.0-17.el7_3       updates
audit.x86_64                    2.6.5-3.el7_3.1        updates
audit-libs.x86_64               2.6.5-3.el7_3.1        updates
audit-libs-python.x86_64

Seperti yang digambarkan, kami memiliki beberapa lusin pembaruan yang menunggu untuk dipasang. Sebenarnya ada sekitar 100 pembaruan total karena kami belum mengkonfigurasi pembaruan otomatis. Jadi, mari instal semua pembaruan yang tertunda.

[root@centos rdc]# yum update
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.usc.edu
 * epel: pubmirror1.math.uh.edu
 * extras: repos.forethought.net
 * updates: repos.forethought.net
Resolving Dependencies
--> Running transaction check
---> Package NetworkManager.x86_64 1:1.4.0-14.el7_3 will be updated
---> Package NetworkManager.x86_64 1:1.4.0-17.el7_3 will be an update
 selinux-policy            noarch      3.13.1102.el7_3.15      updates     414 k
 selinux-policy-targeted   noarch      3.13.1102.el7_3.15      updates     6.4 M 
 systemd                   x86_64      21930.el7_3.7           updates     5.2 M 
 systemd-libs              x86_64      21930.el7_3.7           updates     369 k 
 systemd-python            x86_64      21930.el7_3.7           updates     109 k 
 systemd-sysv              x86_64      21930.el7_3.7           updates     63 k 
 tcsh                      x86_64      6.18.01-13.el7_3.1      updates     338 k 
 tzdata                    noarch      2017a1.el7              updates     443 k 
 tzdata-java               noarch      2017a1.el7              updates     182 k 
wpa_supplicant             x86_64      1:2.021.el7_3           updates     788 k  

Transaction Summary 
=============================================================================== 
  Install   2 Packages 
  Upgrade  68 Packages 
Total size: 196 M 
Total download size: 83 M 
Is this ok [y/d/N]:

Setelah menekan tombol "y", pembaruan CentOS 7 akan dimulai. Proses umum yang dilakukan yum saat memperbarui adalah -

  • Periksa paket saat ini
  • Mencari di repositori untuk paket yang diperbarui
  • Menghitung dependensi yang diperlukan untuk paket yang diperbarui
  • Unduh pembaruan
  • Instal pembaruan

Sekarang, pastikan sistem kita sudah yang terbaru -

[root@centos rdc]# yum list updates 
Loaded plugins: fastestmirror, langpacks 
Loading mirror speeds from cached hostfile 
 * updates: mirror.compevo.com

[root@centos rdc]#

Seperti yang Anda lihat, tidak ada pembaruan yang terdaftar.

Konfigurasikan Pembaruan Otomatis untuk YUM

Di lingkungan Perusahaan, seperti yang disebutkan sebelumnya, pembaruan otomatis mungkin atau mungkin bukan metode penginstalan yang disukai. Mari kita bahas langkah-langkah untuk mengonfigurasi pembaruan otomatis dengan yum.

Pertama, kami menginstal paket bernama yum-cron .

[root@centos rdc]# yum -y install yum-cron
Install  1 Package
Total download size: 61 k
Installed size: 51 k
Downloading packages:
yum-cron-3.4.3-150.el7.centos.noarch.rpm
|  61 kB  00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : yum-cron-3.4.3-150.el7.centos.noarch
1/1
  Verifying  : yum-cron-3.4.3-150.el7.centos.noarch
1/1

Installed: 
 yum-cron.noarch 0:3.4.3-150.el7.centos
 
Complete!

[root@centos rdc]#

Secara default, yum-cron hanya akan mengunduh pembaruan dan tidak menginstalnya. Apakah menginstal pembaruan secara otomatis ada di Administrator. Peringatan terbesar adalah: beberapa pembaruan akan memerlukan boot ulang sistem. Selain itu, beberapa pembaruan mungkin memerlukan perubahan konfigurasi sebelum layanan beroperasi kembali.

Mengupdate dependensi mungkin dapat membuat masalah rekursif dalam situasi berikut -

  • Pembaruan direkomendasikan oleh yum untuk perpustakaan tertentu

  • Perpustakaan hanya mendukung Apache Server 2.4, tetapi kami memiliki server 2.3

  • Situs perdagangan kami mengandalkan versi PHP tertentu

  • Versi baru Apache yang diinstal untuk pustaka memerlukan peningkatan PHP

  • Aplikasi web produksi kami belum diuji dengan versi PHP yang lebih baru

Yum dapat melanjutkan dan secara otomatis memutakhirkan Apache dan PHP tanpa pemberitahuan kecuali dikonfigurasi untuk tidak melakukannya.

Jika semua 5 skenario dimainkan, itu dapat mengakibatkan sakit kepala besar di pagi hari hingga kemungkinan kompromi keamanan yang mengekspos data pengguna. Sementara contoh yang disebutkan di atas adalah semacam badai yang sempurna, kami tidak pernah ingin skenario seperti itu terjadi.

Terserah Administrator untuk mengakses kemungkinan skenario kehilangan pendapatan dari waktu yang diperlukan untuk memulihkan layanan karena kemungkinan waktu henti dari boot ulang pembaruan dan konfigurasi ulang. Praktik ini mungkin tidak cukup konservatif untuk, katakanlah, situs e-niaga bernilai jutaan dolar per hari dengan jutaan pelanggan.

Sekarang mari kita konfigurasikan yum-cron untuk menginstal pembaruan sistem secara otomatis.

[root@centos rdc]# vim /etc/yum/yum-cron.conf
# Whether updates should be applied when they are available.  Note
# that download_updates must also be yes for the update to be applied.
apply_updates = yes

Kami ingin mengubah apply_updates = tidak menjadi apply_updates = yes . Sekarang mari kita konfigurasikan interval pembaruan untuk yum-cron .

Sekali lagi, apakah akan menggunakan pembaruan otomatis dan menginstal pembaruan sesuai permintaan dapat menjadi pedang bermata dua dan perlu dipertimbangkan oleh administrator untuk setiap situasi unik.

Pengantar Bash Shell

Seperti GNU Linux, shell tersedia dalam banyak variasi dan kompatibilitas yang bervariasi. Shell default di CentOS dikenal sebagai Bash atau Bourne Again Shell. Bash shell adalah versi modifikasi dari Bourne Shell yang dikembangkan oleh Stephen Bourne. Bash adalah pengganti langsung dari Thompson Shell asli pada sistem operasi Unix yang dikembangkan di Bell Labs oleh Ken Thompson dan Dennis Ritchie (Stephen Bourne juga dipekerjakan oleh Bell Labs)

Setiap orang memiliki cangkang favorit dan masing-masing memiliki kekuatan dan kesulitan. Tetapi untuk sebagian besar, Bash akan menjadi shell default di semua distribusi Linux dan paling umum tersedia. Dengan pengalaman, semua orang pasti ingin menjelajahi dan menggunakan shell yang terbaik untuk mereka. Namun pada saat yang sama, semua orang juga ingin menguasai shell Bash.

Kerang Linux lainnya termasuk: Tcsh, Csh, Ksh, Zsh, dan Fish.

Mengembangkan keterampilan untuk menggunakan shell Linux pada tingkat ahli sangat penting bagi administrator CentOS. Seperti yang kami sebutkan sebelumnya, tidak seperti Windows, Linux pada intinya adalah sistem operasi baris perintah. Shell hanyalah antarmuka pengguna yang memungkinkan administrator (atau pengguna) untuk mengeluarkan perintah ke sistem operasi. Jika administrator sistem Linux adalah seorang pilot maskapai penerbangan, menggunakan cangkang akan mirip dengan melepas pesawat dari pilot otomatis dan mengambil kontrol manual untuk penerbangan yang lebih bermanuver.

Shell Linux, seperti Bash, dikenal dalam istilah Ilmu Komputer sebagai a Command Line Interpreter. Microsoft Windows juga memiliki dua penerjemah baris perintah yang disebut DOS (jangan bingung dengan sistem operasi DOS asli) dan PowerShell.

Sebagian besar kerang modern seperti Bash menyediakan constructsmemungkinkan skrip shell yang lebih kompleks untuk mengotomatiskan tugas umum dan tugas kompleks.

Konstruksi meliputi -

  • Kontrol aliran skrip (ifthen dan lainnya)
  • Operasi perbandingan logis (lebih besar dari, kurang dari, persamaan)
  • Loops
  • Variables
  • Operasi yang menentukan parameter (mirip dengan sakelar dengan perintah)

Menggunakan Skrip Shell versus Bahasa Skrip

Seringkali ketika berpikir tentang melakukan tugas, administrator bertanya pada diri sendiri: Haruskah saya menggunakan skrip shell atau bahasa skrip seperti Perl, Ruby atau Python?

Tidak ada aturan pasti di sini. Hanya ada perbedaan umum antara shell versus bahasa skrip.

Kulit

Shell mengizinkan penggunaan perintah Linux seperti sed , grep , tee , cat , dan semua utilitas berbasis baris perintah lainnya di sistem operasi Linux. Faktanya, hampir semua utilitas baris perintah Linux dapat dibuat skrip di shell Anda.

Contoh bagus penggunaan shell adalah skrip cepat untuk memeriksa daftar host untuk resolusi DNS.

Bash Script sederhana kami untuk memeriksa nama DNS -

#!/bin/bash 
for name in $(cat $1); do host $name.$2 | grep "has address" 
   done 
exit

daftar kata kecil untuk menguji resolusi DNS pada -

dns 
www 
test 
dev 
mail 
rdp 
remote

Keluaran terhadap domain google.com -

[rdc@centos ~]$  ./dns-check.sh dns-names.txt google.com
-doing dns
dns.google.com has address 172.217.6.46
-doing www
www.google.com has address 172.217.6.36
-doing test
-doing dev
-doing mail
googlemail.l.google.com has address 172.217.6.37
-doing rdp
-doing remote

[rdc@centos ~]$

Memanfaatkan perintah Linux sederhana di shell kami, kami dapat membuat skrip 5 baris sederhana untuk mengaudit nama DNS dari daftar kata. Ini akan memakan waktu cukup lama di Perl, Python, atau Ruby bahkan saat menggunakan Perpustakaan DNS yang diimplementasikan dengan baik.

Bahasa Skrip

Bahasa scripting akan memberikan lebih banyak kendali di luar shell. Skrip Bash di atas menggunakan pembungkus di sekitar perintah host Linux . Bagaimana jika kita ingin berbuat lebih banyak dan membuat aplikasi kita sendiri seperti host untuk berinteraksi di luar shell? Di sinilah kami akan menggunakan bahasa scripting.

Selain itu, dengan bahasa skrip yang sangat terjaga, kami tahu tindakan kami akan berfungsi di sebagian besar sistem yang berbeda. Python 3.5, misalnya, akan bekerja pada sistem lain yang menjalankan Python 3.5 dengan pustaka yang sama terpasang. Tidak demikian, jika kita ingin menjalankan skrip BASH di Linux dan HP-UX.

Terkadang garis antara bahasa skrip dan shell yang kuat dapat dibuat kabur. Tugas administrasi CentOS Linux dapat diotomatiskan dengan Python, Perl atau Ruby. Melakukannya sangat lumrah. Selain itu, pengembang skrip-shell yang kaya telah membuat daemon server web yang sederhana, tetapi berfungsi, di Bash.

Dengan pengalaman dalam bahasa skrip dan tugas otomatis di shell, administrator CentOS akan dapat dengan cepat menentukan dari mana harus memulai saat perlu menyelesaikan masalah. Sangat umum untuk memulai proyek dengan skrip shell. Kemudian maju ke bahasa scripting (atau dikompilasi) sebagai proyek menjadi lebih kompleks.

Selain itu, tidak masalah menggunakan bahasa skrip dan skrip shell untuk berbagai bagian proyek. Contohnya dapat berupa skrip Perl untuk mengikis situs web. Kemudian, gunakan skrip shell untuk mengurai dan memformat dengan sed , awk , dan egrep . Terakhir, gunakan skrip PHP untuk memasukkan data yang diformat ke dalam database MySQL menggunakan GUI web.

Dengan beberapa teori di balik shell, mari kita mulai dengan blok penyusun dasar untuk mengotomatiskan tugas dari shell Bash di CentOS.

Output Input dan Redirection

Memproses stdout ke perintah lain -

[rdc@centos ~]$ cat ~/output.txt | wc -l 
6039 
[rdc@centos ~]$

Di atas, kami telah mengirimkan cat'sstoud ke wc untuk diproses dengan karakter pipa . wc kemudian memproses output dari cat , mencetak jumlah baris output.txt ke terminal. Pikirkan karakter pipa sebagai "pipa" yang meneruskan output dari satu perintah, untuk diproses oleh perintah berikutnya.

Berikut adalah konsep utama yang harus diingat saat menangani pengalihan perintah -

Jumlah Deskriptor file Karakter
0 masukan standar <
1 keluaran standar >
2 kesalahan standar
tambahkan stdout >>
menetapkan pengalihan &
pipa stdout ke stdin |

Kami memperkenalkan ini di bab satu tanpa banyak membahas tentang pengalihan atau menetapkan pengalihan. Saat membuka terminal di Linux, shell Anda dilihat sebagai target default untuk -

  • masukan standar <0
  • keluaran standar> 1
  • kesalahan standar 2

Mari kita lihat bagaimana ini bekerja -

[rdc@centos ~]$ lsof -ap $BASHPID -d 0,1,2 COMMAND PID USER **FD** TYPE DEVICE SIZE/OFF NODE NAME bash 13684 rdc **0u** CHR 136,0 0t0 3 /dev/pts/0 bash 13684 rdc **1u** CHR 136,0 0t0 3 /dev/pts/0 bash 13684 rdc **2u** CHR 136,0 0t0 3 /dev/pts/0 [rdc@centos ~]$

/ dev / pts / 0 adalah terminal semu kami. CentOS Linux melihat ini dan menganggap aplikasi terminal terbuka kami seperti terminal nyata dengan keyboard dan layar yang dicolokkan melalui antarmuka serial. Namun, seperti hypervisor mengabstraksi perangkat keras ke sistem operasi / dev / pts mengabstraksi terminal kami ke aplikasi.

Dari perintah lsof di atas , kita dapat melihat di bawahFDkolom yang ketiga file-deskriptor diatur ke terminal virtual kami (0,1,2). Kami sekarang dapat mengirim perintah, melihat keluaran perintah, serta kesalahan apa pun yang terkait dengan perintah.

Berikut adalah contoh untuk STDIN dan STDOUT -

STDOUT

[root@centosLocal centos]# echo "I am coming from Standard output or STDOUT." >
output.txt && cat output.txt
I am coming from Standard output or STDOUT. 
[root@centosLocal centos]#

Juga dimungkinkan untuk mengirim stdout dan stderr ke file terpisah -

bash-3.2# find / -name passwd 1> good.txt 2> err.txt
bash-3.2# cat good.txt
/etc/pam.d/passwd
/etc/passwd
bash-3.2# cat err.txt 
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
bash-3.2#

Saat mencari seluruh sistem file, dua kesalahan ditemukan. Masing-masing dikirim ke file terpisah untuk dibaca nanti, sementara hasil yang dikembalikan ditempatkan ke file teks terpisah.

Mengirim stderr ke file teks dapat berguna saat melakukan hal-hal yang menghasilkan banyak data ke terminal seperti menyusun aplikasi. Ini akan memungkinkan untuk teliti kesalahan yang bisa hilang dari riwayat scrollback terminal.

Satu catatan saat meneruskan STDOUT ke file teks adalah perbedaan antara >> dan >. Tanda ganda ">>" akan ditambahkan ke sebuah file, sedangkan bentuk tunggal akan mem-clobber file dan menulis konten baru (sehingga semua data sebelumnya akan hilang).

STDIN

[root@centosLocal centos]# cat < stdin.txt
Hello,
I am being read form Standard input, STDIN.

[root@centosLocal centos]#

Pada perintah di atas, file teks stdin.txt dialihkan ke perintah cat yang menggemakan isinya ke STDOUT .

Karakter pipa "|"

Karakter pipa akan mengambil keluaran dari perintah pertama, meneruskannya sebagai masukan ke perintah berikutnya, memungkinkan perintah sekunder untuk melakukan operasi pada keluaran.

Sekarang, mari "menyalurkan" stdout dari cat ke perintah lain -

[root@centosLocal centos]# cat output.txt | wc -l
2
[root@centosLocal centos]#

Di atas, wc melakukan kalkulasi pada keluaran dari cat yang dilewatkan dari pipa. Perintah pipa sangat berguna saat memfilter keluaran dari grep atau egrep -

[root@centosLocal centos]# egrep "^[0-9]{4}$" /usr/dicts/nums | wc -l  
9000 
[root@centosLocal centos]#

Pada perintah di atas, kami meneruskan setiap 4 digit angka ke wc dari file teks yang berisi semua angka dari 65535 melewati filter egrep .

Mengalihkan Output dengan &

Output dapat dialihkan menggunakan &karakter. Jika kita ingin mengarahkan output STDOUT dan STDERR, ke dalam file yang sama, dapat dilakukan sebagai berikut -

[root@centosLocal centos]# find / -name passwd > out.txt 2>&1
[root@centosLocal centos]# cat out.txt  
find: /dev/fd/3: Not a directory 
find: /dev/fd/4: Not a directory 
/etc/passwd

[root@centosLocal centos]#

Mengalihkan menggunakan &karakter bekerja seperti ini: pertama, output dialihkan ke out.txt . Kedua, STDERR atau deskriptor file 2 dipindahkan ke lokasi yang sama dengan STDOUT, dalam hal ini out.txt .

Redirection sangat berguna dan berguna saat memecahkan masalah yang terjadi saat memanipulasi file teks besar, mengkompilasi kode sumber, mengarahkan output dalam skrip shell, dan mengeluarkan perintah Linux yang kompleks.

Meskipun kuat, pengalihan bisa menjadi rumit untuk Administrator CentOS yang lebih baru. Latihan, penelitian, dan pertanyaan sesekali ke forum Linux (seperti Stack Overflow Linux) akan membantu memecahkan solusi lanjutan.

Konstruksi Bash Shell

Sekarang setelah kita memiliki ide bagus tentang cara kerja Bash shell , mari kita pelajari beberapa konstruksi dasar, yang umum digunakan, untuk menulis skrip. Di bagian ini kita akan menjelajahi -

  • Variables
  • Loops
  • Conditionals
  • Kontrol loop
  • Membaca dan menulis ke file
  • Operasi matematika dasar

Petunjuk Pemecahan Masalah BASH

BASH bisa sedikit rumit dibandingkan dengan bahasa skrip khusus. Beberapa hang-up terbesar dalam skrip BASH berasal dari pelolosan yang salah atau tidak lolos dari operasi skrip yang diteruskan ke shell. Jika Anda telah memeriksa skrip beberapa kali dan tidak berfungsi seperti yang diharapkan, jangan khawatir. Ini biasa terjadi bahkan dengan mereka yang menggunakan BASH untuk membuat skrip kompleks setiap hari.

Pencarian cepat di Google atau mendaftar di forum ahli Linux untuk mengajukan pertanyaan akan menghasilkan resolusi yang cepat. Ada kemungkinan besar seseorang telah menemukan masalah yang sebenarnya dan itu telah diselesaikan.

Pembuatan skrip BASH adalah metode hebat untuk membuat skrip canggih dengan cepat untuk segala hal mulai dari mengotomatiskan tugas administrasi hingga membuat alat yang berguna. Menjadi pengembang skrip BASH tingkat ahli membutuhkan waktu dan latihan. Oleh karena itu, gunakan skrip BASH bila memungkinkan, ini adalah alat yang hebat untuk dimiliki di kotak alat Administrasi CentOS Anda.

Manajemen paket di CentOS dapat dilakukan dengan dua cara: dari terminal dan dari Antarmuka Pengguna Grafis.

Lebih sering daripada tidak sebagian besar waktu administrator CentOS akan menggunakan terminal. Memperbarui dan menginstal paket untuk CentOS tidak berbeda. Dengan pemikiran ini, pertama-tama kita akan mempelajari manajemen paket di terminal, kemudian membahas penggunaan alat manajemen paket grafis yang disediakan oleh CentOS.

Manajer Paket YUM

YUM adalah alat yang disediakan untuk manajemen paket di CentOS. Kami telah menyentuh topik ini secara singkat di bab-bab sebelumnya. Di bab ini, kita akan bekerja dari instalasi CentOS yang bersih. Kami pertama-tama akan memperbarui instalasi kami sepenuhnya dan kemudian menginstal aplikasi.

YUM telah membawa banyak instalasi dan manajemen perangkat lunak di Linux. YUM "secara otomatis" memeriksa dependensi yang kedaluwarsa, selain paket yang kedaluwarsa. Ini benar-benar mengurangi beban administrator CentOS dibandingkan dengan masa kompilasi setiap aplikasi dari kode sumber.

yum check-update

Memeriksa paket yang dapat memperbarui kandidat. Untuk tutorial ini, kami akan menganggap ini sebagai sistem produksi yang akan menghadap ke Internet tanpa aplikasi produksi yang perlu diuji oleh DevOps sebelum memutakhirkan paket. Mari kita sekarang menginstal kandidat yang diperbarui ke sistem.

[root@localhost rdc]# yum check-update
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.scalabledns.com
 * extras: mirror.scalabledns.com
 * updates: mirror.clarkson.edu
NetworkManager.x86_64                     1:1.4.0-19.el7_3              updates
NetworkManager-adsl.x86_64                1:1.4.0-19.el7_3              updates 
NetworkManager-glib.x86_64                1:1.4.0-19.el7_3              updates 
NetworkManager-libnm.x86_64               1:1.4.0-19.el7_3              updates 
NetworkManager-team.x86_64                1:1.4.0-19.el7_3              updates 
NetworkManager-tui.x86_64                 1:1.4.0-19.el7_3              updates 
NetworkManager-wifi.x86_64                1:1.4.0-19.el7_3              updates 
audit.x86_64                              2.6.5-3.el7_3.1               updates    
vim-common.x86_64                         2:7.4.160-1.el7_3.1           updates 
vim-enhanced.x86_64                       2:7.4.160-1.el7_3.1           updates 
vim-filesystem.x86_64                     2:7.4.160-1.el7_3.1           updates 
vim-minimal.x86_64                        2:7.4.160-1.el7_3.1           updates 
wpa_supplicant.x86_64                     1:2.0-21.el7_3                updates 
xfsprogs.x86_64                           4.5.0-9.el7_3                 updates

[root@localhost rdc]#

pembaruan yum

Ini akan menginstal semua kandidat yang diperbarui membuat instalasi CentOS Anda terkini. Dengan penginstalan baru, proses ini memerlukan sedikit waktu tergantung penginstalan dan kecepatan koneksi internet Anda.

[root@localhost rdc]# yum update

vim-minimal                        x86_64    2:7.4.160-1.el7_3.1     updates    436 k 
wpa_supplicant                     x86_64    1:2.0-21.el7_3          updates    788 k 
xfsprogs                           x86_64    4.5.0-9.el7_3           updates    895 k  

Transaction Summary 
======================================================================================
Install    2 Packages 
Upgrade  156 Packages  
Total download size: 371 M

Is this ok [y/d/N]:

Instal Perangkat Lunak melalui YUM

Selain memperbarui sistem CentOS, pengelola paket YUM adalah alat bantu kami untuk menginstal perangkat lunak. Semuanya mulai dari alat pemantauan jaringan, pemutar video, hingga editor teks dapat diinstal dari repositori pusat dengan YUM .

Sebelum menginstal beberapa utilitas perangkat lunak, mari kita lihat beberapa perintah YUM . Untuk pekerjaan sehari-hari, 90% dari penggunaan YUM oleh Admin CentOS akan menggunakan sekitar 7 perintah. Kami akan membahas masing-masing dengan harapan menjadi terbiasa dengan pengoperasian YUM pada tingkat mahir untuk penggunaan sehari-hari. Namun, seperti kebanyakan utilitas Linux, YUM menawarkan banyak fitur canggih yang selalu bagus untuk dijelajahi melalui halaman manual. Gunakan man yum akan selalu menjadi langkah pertama untuk melakukan operasi asing dengan utilitas Linux apa pun.

Perintah YUM Paling Umum

Berikut ini adalah perintah YUM yang umum digunakan.

Perintah Tindakan
daftar terpasang Daftar paket yang diinstal melalui YUM
daftar semua Daftar semua paket yang tersedia saat ini
daftar grup Daftar paket yang dikelompokkan
info Memberikan informasi mendetail tentang sebuah paket
Cari Mencari deskripsi dan nama paket
Install Menginstal paket
localinstall Instal paket rpm lokal
menghapus Menghapus dan menginstal paket
bersihkan semuanya Bersihkan / var / cache / yum untuk mengosongkan ruang disk
man yum Seperti semua perintah linux, file bantuan

Instal Perangkat Lunak dengan YUM

Kami sekarang akan menginstal browser web berbasis teks yang disebut Lynx. Sebelum instalasi, kita harus terlebih dahulu mendapatkan nama paket yang berisi browser web Lynx. Kami bahkan tidak 100% yakin repositori CentOS default kami menyediakan paket untuk browser web Lynx, jadi mari cari dan lihat -

[root@localhost rdc]# yum search web browser
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.scalabledns.com
 * extras: mirror.scalabledns.com 
 * updates: mirror.clarkson.edu 
=================================================================
N/S matched: web, browser
================================================================== 
icedtea-web.x86_64 : Additional Java components for OpenJDK - Java browser
plug-in and Web Start implementation
elinks.x86_64 : A text-mode Web browser
firefox.i686 : Mozilla Firefox Web browser
firefox.x86_64 : Mozilla Firefox Web browser
lynx.x86_64 : A text-based Web browser

Full name and summary matches only, use "search all" for everything.
 
[root@localhost rdc]#

Kita lihat, CentOS memang menawarkan browser web Lynx di repositori. Mari kita lihat beberapa informasi lebih lanjut tentang paket tersebut.

[root@localhost rdc]# lynx.x86_64
bash: lynx.x86_64: command not found...
[root@localhost rdc]# yum info lynx.x86_64
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.scalabledns.com
 * extras: mirror.scalabledns.com
 * updates: mirror.clarkson.edu
Available Packages
Name        : lynx
Arch        : x86_64
Version     : 2.8.8
Release     : 0.3.dev15.el7
Size        : 1.4 M
Repo        : base/7/x86_64
Summary     : A text-based Web browser
URL         : http://lynx.isc.org/
License     : GPLv2
Description : Lynx is a text-based Web browser. Lynx does not display any images, 
            : but it does support frames, tables, and most other HTML tags. One 
            : advantage Lynx has over graphical browsers is speed; Lynx starts and
            : exits quickly and swiftly displays web pages.
            
[root@localhost rdc]#

Bagus! Versi 2.8 sudah cukup saat ini, jadi mari kita instal Lynx.

[root@localhost rdc]# yum install lynx
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.scalabledns.com
 * extras: mirror.scalabledns.com
 * updates: mirror.clarkson.edu 
Resolving Dependencies
--> Running transaction check 
---> Package lynx.x86_64 0:2.8.8-0.3.dev15.el7 will be installed 
--> Finished Dependency Resolution  
Dependencies Resolved  
===============================================================================
===============================================================================
Package                          Arch
Version                       Repository                    Size 
===============================================================================
===============================================================================
Installing: 
 lynx                           x86_64
2.8.80.3.dev15.el7              base                        1.4 M

Transaction Summary
===============================================================================
===============================================================================
Install  1 Package

Total download size: 1.4 M 
Installed size: 5.4 M 
Is this ok [y/d/N]: y 
Downloading packages: 
No Presto metadata available for base
lynx-2.8.8-0.3.dev15.el7.x86_64.rpm
| 1.4 MB  00:00:10      
Running transaction check 
Running transaction test 
Transaction test succeeded 
Running transaction 
   Installing : lynx-2.8.8-0.3.dev15.el7.x86_64
1/1
   Verifying  : lynx-2.8.8-0.3.dev15.el7.x86_64
1/1

Installed: 
   lynx.x86_64 0:2.8.8-0.3.dev15.el7
Complete!

[root@localhost rdc]#

Selanjutnya, mari pastikan Lynx memang menginstal dengan benar.

[root@localhost rdc]# yum list installed | grep -i lynx

lynx.x86_64                   2.8.8-0.3.dev15.el7              @base     
[root@localhost rdc]#

Bagus! Mari kita gunakan Lynx dan melihat seperti apa web itu tanpa "suka" dan gambar-gambar cantik.

[root@localhost rdc]# lynx www.tutorialpoint.in

Hebat, sekarang kami memiliki browser web untuk server produksi kami yang dapat digunakan tanpa perlu khawatir dengan eksploitasi jarak jauh yang diluncurkan melalui web. Ini hal yang baik untuk server produksi.

Kami hampir selesai, namun pertama-tama kami perlu mengatur server ini untuk pengembang untuk menguji aplikasi. Jadi, mari pastikan mereka memiliki semua alat yang dibutuhkan untuk pekerjaan mereka. Kami dapat menginstal semuanya satu per satu, tetapi CentOS dan YUM telah membuatnya jauh lebih cepat. Mari instal Paket Grup Pengembangan .

[root@localhost rdc]# yum groups list 
Loaded plugins: fastestmirror, langpacks 
Loading mirror speeds from cached hostfile 
 * base: mirror.scalabledns.com 
 * extras: mirror.scalabledns.com 
 * updates: mirror.clarkson.edu
 
Available Groups: 
   Compatibility Libraries 
   Console Internet Tools 
   Development Tools 
   Graphical Administration Tools
   Legacy UNIX Compatibility 
   Scientific Support 
   Security Tools 
   Smart Card Support 
   System Administration Tools 
   System Management 
Done

[root@localhost rdc]#

Ini adalah daftar Grup Paket yang lebih kecil yang disediakan oleh CentOS. Mari kita lihat apa yang termasuk dalam "Development Group".

[root@localhost rdc]# yum group info "Development Tools" 
Loaded plugins: fastestmirror, langpacks 
There is no installed groups file. 
Maybe run: yum groups mark convert (see man yum) 
Loading mirror speeds from cached hostfile 
 * base: mirror.scalabledns.com 
 * extras: mirror.scalabledns.com 
 * updates: mirror.clarkson.edu
 
Group: Development Tools 
Group-Id: development 
Description: A basic development environment. 
Mandatory Packages: 
autoconf 
automake 
binutils 
bison

Layar keluaran pertama seperti yang terlihat di atas. Keseluruhan daftar ini agak lengkap. Namun, grup ini biasanya perlu dipasang secara keseluruhan seiring berjalannya waktu. Mari instal seluruh Grup Pengembangan.

[root@localhost rdc]# yum groupinstall "Development Tools"

Ini akan menjadi pemasangan yang lebih besar. Setelah selesai, server Anda akan memiliki sebagian besar pustaka pengembangan dan kompiler untuk Perl, Python, C, dan C ++.

Manajemen Paket Grafis di CentOS

Gnome Desktop menyediakan alat manajemen paket grafis yang disebut Software. Ini cukup mudah digunakan dan langsung. Software, alat manajemen paket Gnome untuk CentOS dapat ditemukan dengan menavigasi ke: Applications → System Tools → Software.

Alat Manajemen Paket Perangkat Lunak dibagi menjadi beberapa kelompok yang memungkinkan administrator memilih paket untuk penginstalan. Meskipun alat ini sangat bagus untuk kemudahan penggunaan dan kesederhanaan bagi pengguna akhir, YUM jauh lebih kuat dan mungkin akan lebih banyak digunakan oleh administrator.

Berikut ini adalah tangkapan layar dari Alat Manajemen Paket Perangkat Lunak, tidak benar-benar dirancang untuk Administrator Sistem.

Logical Volume Management (LVM)adalah metode yang digunakan oleh Linux untuk mengelola volume penyimpanan di berbagai hard disk fisik. Jangan bingung dengan RAID. Namun, ini dapat dianggap dalam konsep yang mirip dengan RAID 0 atau J-Bod. Dengan LVM, dimungkinkan untuk memiliki (misalnya) tiga disk fisik masing-masing 1TB, kemudian volume logis sekitar 3TB seperti / dev / sdb. Atau bahkan dua volume logis 1,5TB, 5 volume 500GB, atau kombinasi apa pun. Satu disk tunggal bahkan dapat digunakan untuk snapshot Volume Logis.

Note- Menggunakan Volume Logis sebenarnya meningkatkan I / O disk saat dikonfigurasi dengan benar. Ini bekerja dengan cara yang mirip dengan data striping RAID 0 pada disk terpisah.

Saat mempelajari tentang manajemen volume dengan LVM, akan lebih mudah jika kita mengetahui apa itu setiap komponen di LVM. Harap pelajari tabel berikut untuk memahami dengan baik setiap komponen. Jika perlu, gunakan Google untuk belajar. Memahami setiap bagian dari volume logis penting untuk mengelolanya.

PV Volume Fisik sda
PP Partisi Fisik sda1, sda2
VG Grup Volume Sumber daya fisik yang dikumpulkan
LV Volume Logis Dilihat sebagai fasilitas penyimpanan untuk sistem operasi

SEBUAH physical volumeakan terlihat sebagai / dev / sda, / dev / sdb; disk fisik yang terdeteksi oleh Linux.

SEBUAH physical partitionakan menjadi bagian dari disk yang dipartisi oleh utilitas disk seperti fdisk. Ingat, partisi fisik tidak disarankan di sebagian besar penyiapan LVM. Contoh: disk / dev / sda dipartisi untuk menyertakan dua partisi fisik: / dev / sda1 dan / dev / sda1

Jika kita memiliki dua disk fisik masing-masing 1TB, kita dapat membuat grup volume hampir 2TB di antara keduanya.

Dari grup volume, kita dapat membuat tiga volume logis dengan ukuran berapa pun yang tidak melebihi ukuran grup volume total.

Alat Administrasi Disk Linux Tradisional

Sebelum berkenalan dengan alat berfitur terbaru dan terbaik untuk Manajemen LVM di CentOS 7, pertama-tama kita harus menjelajahi alat yang lebih tradisional yang telah digunakan untuk manajemen disk Linux. Alat-alat ini akan berguna dan masih dapat digunakan dengan alat LVM tingkat lanjut saat ini seperti System Storage Manager: lsblk, parted, dan mkfs.xfs.

Sekarang, dengan asumsi kita telah menambahkan satu atau dua disk ke sistem kita, kita perlu menghitung disk yang terdeteksi oleh Linux. Saya selalu menyarankan untuk menghitung disk setiap kali sebelum melakukan operasi yang dianggap merusak.lsblkadalah alat yang hebat untuk mendapatkan informasi diska. Mari kita lihat disk apa yang terdeteksi CentOS.

[root@localhost rdc]# lsblk
NAME         MAJ:MIN    RM    SIZE    RO    TYPE MOUNTPOINT
sda            8:0       0     20G     0        disk 
├─sda1         8:1       0      1G     0     part /boot
└─sda2         8:2       0     19G     0        part 
  ├─cl-root  253:0       0     17G     0      lvm  /
  └─cl-swap  253:1       0      2G     0      lvm  [SWAP]
    sdb       8:16       0      6G     0       disk 
    sdc       8:32       0      4G     0       disk 
    sr0       11:0       1   1024M     0       rom

Seperti yang Anda lihat, kami memiliki tiga disk pada sistem ini: sda, sdb, dan sdc.

Disk sda berisi instalasi CentOS yang berfungsi, jadi kami tidak ingin bermain-main dengan sda. Baik sdb dan sdc ditambahkan ke sistem untuk tutorial ini. Mari buat disk ini dapat digunakan untuk CentOS.

Buat Label Disk

[root@localhost rdc]# parted /dev/sdb mklabel GPT
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this
   disk will be lost. Do you want to continue?
Yes/No? Yes                               
[root@localhost rdc]#

Kami sekarang memiliki satu disk berlabel. Cukup jalankan perintah parted dengan cara yang sama di sdc .

Buat Partisi di Disk

Kami hanya akan membuat satu partisi di setiap disk. Untuk membuat partisi, perintah parted digunakan lagi.

[root@localhost rdc]# parted -a opt /dev/sdb mkpart primary ext4 0% 100%

Warning - Anda meminta partisi dari 0,00B hingga 6442MB (sektor 0..12582911).

Lokasi terdekat yang dapat kami kelola adalah 17,4kB hingga 1048kB (sektor 34..2047).

Apakah ini masih dapat Anda terima?

Ya Tidak? TIDAK

[root@localhost rdc]# parted -a opt /dev/sdc mkpart primary ext4 0% 100%

Information - Anda mungkin perlu memperbarui / etc / fstab.

[root@localhost rdc]# lsblk                                               
NAME        MAJ:MIN   RM    SIZE    RO    TYPE MOUNTPOINT
sda           8:0      0     20G     0        disk 
├─sda1        8:1      0      1G     0      part / boot
└─sda2        8:2      0     19G     0        part 
 ├─cl-root  253:0      0     17G     0       lvm  /
 └─cl-swap  253:1      0      2G     0       lvm  [SWAP]
sdb          8:16      0      6G     0        disk 
└─sdb1       8:17      0      6G     0        part 
 sdc         8:32      0      4G     0        disk 
└─sdc1       8:33      0      4G     0        part 
sr0          11:0      1   1024M     0        rom

[root@localhost rdc]#

Seperti yang Anda lihat dari keluaran lsblk, kami sekarang memiliki dua partisi, masing-masing di sdb dan sdc.

Buat Sistem File

Terakhir, sebelum memasang dan menggunakan volume apa pun, kita perlu menambahkan sistem file. Kami akan menggunakan sistem file XFS.

root@localhost rdc]# mkfs.xfs -f /dev/sdb1
meta-data = /dev/sdb1               isize = 512    agcount = 4, agsize = 393088 blks
            =                      sectsz = 512    attr = 2, projid32bit = 1
            =                         crc = 1      finobt = 0, sparse = 0
data        =                       bsize = 4096   blocks = 1572352, imaxpct = 25
            =                       sunit = 0      swidth = 0 blks
naming      = version 2             bsize = 4096   ascii-ci = 0 ftype = 1
log         = internal log          bsize = 4096   blocks = 2560, version = 2
            =                      sectsz = 512    sunit = 0 blks, lazy-count = 1
realtime    = none                  extsz = 4096   blocks = 0, rtextents = 0
[root@localhost rdc]# mkfs.xfs -f /dev/sdc1
meta-data   = /dev/sdc1             isize = 512    agcount = 4, agsize = 262016 blks
            =                      sectsz = 512    attr = 2, projid32bit = 1
            =                         crc = 1      finobt = 0, sparse = 0
data        =                       bsize = 4096   blocks = 1048064, imaxpct = 25
            =                       sunit = 0      swidth = 0 blks
naming      = version 2             bsize = 4096   ascii-ci = 0 ftype = 1
log         = internal log          bsize = 4096   blocks = 2560, version = 2
            =                      sectsz = 512    sunit = 0 blks, lazy-count = 1
realtime    = none                  extsz = 4096   blocks = 0, rtextents = 0

[root@localhost rdc]#

Mari kita periksa untuk memastikan masing-masing memiliki sistem file yang dapat digunakan.

[root@localhost rdc]# lsblk -o NAME,FSTYPE
NAME           FSTYPE
sda         
├─sda1         xfs
└─sda2         LVM2_member
 ├─cl-root     xfs
 └─cl-swap     swap
sdb         
└─sdb1         xfs
sdc         
└─sdc1         xfs
sr0

[root@localhost rdc]#

Masing-masing sekarang menggunakan sistem file XFS. Mari kita pasang, periksa pemasangannya, dan salin file ke masing-masing.

[root@localhost rdc]# mount -o defaults /dev/sdb1 /mnt/sdb
[root@localhost rdc]# mount -o defaults /dev/sdc1 /mnt/sdc

[root@localhost ~]# touch /mnt/sdb/myFile /mnt/sdc/myFile
[root@localhost ~]# ls /mnt/sdb /mnt/sdc
 /mnt/sdb:
  myFile

 /mnt/sdc:
  myFile

Kami memiliki dua disk yang dapat digunakan saat ini. Namun, mereka hanya dapat digunakan ketika kita memasangnya secara manual. Untuk me-mount setiap saat boot, kita harus mengedit file fstab . Selain itu, izin harus ditetapkan untuk grup yang membutuhkan akses ke disk baru.

Buat Grup Volume dan Volume Logis

Salah satu tambahan terbesar untuk CentOS 7 adalah dimasukkannya utilitas yang disebut System Storage Manager atau ssm .System Storage Manager sangat menyederhanakan proses pengelolaan pool LVM dan volume penyimpanan di Linux.

Kami akan melalui proses membuat kumpulan volume sederhana dan volume logis di CentOS. Langkah pertama adalah menginstal Manajer Penyimpanan Sistem.

[root@localhost rdc]# yum  install system-storage-manager

Mari kita lihat disk kita menggunakan perintah daftar ssm .

Seperti yang terlihat di atas, total tiga disk diinstal pada sistem.

  • /sdba1 - Menghosting instalasi CentOS kami

  • /sdb1 - Dipasang di / mnt / sdb

  • /sdc1 - Dipasang di / mnt / sdc

Yang ingin kami lakukan adalah membuat Grup Volume menggunakan dua disk (sdb dan sdc). Kemudian buat tiga Volume Logis 3GB tersedia untuk sistem.

Mari buat Grup Volume kita.

[root@localhost rdc]# ssm create -p NEW_POOL /dev/sdb1 /dev/sdc1

Secara default, ssm akan membuat satu volume logis yang memperluas seluruh 10 GB kumpulan. Kami tidak menginginkan ini, jadi mari kita hapus ini.

[root@localhost rdc]# ssm remove /dev/NEW_POOL/lvol001
 Do you really want to remove active logical volume NEW_POOL/lvol001? [y/n]: y
 Logical volume "lvol001" successfully removed
[root@localhost rdc]#

Akhirnya, mari buat tiga Volume Logis.

[root@localhost rdc]# ssm create -n disk001 --fs xfs -s 3GB -p NEW_POOL
[root@localhost rdc]# ssm create -n disk002 --fs xfs -s 3GB -p NEW_POOL
[root@localhost rdc]# ssm create -n disk003 --fs xfs -s 3GB -p NEW_POOL

Sekarang, mari kita periksa volume baru kita.

Kami sekarang memiliki tiga volume logis terpisah yang tersebar di dua partisi disk fisik.

Volume logis adalah fitur hebat yang sekarang dibangun di CentOS Linux. Kami telah menyentuh permukaan dalam mengelola ini. Menguasai pool dan volume logis datang dengan latihan dan pembelajaran yang diperpanjang dari Tutorials Point. Untuk saat ini, Anda telah mempelajari dasar-dasar manajemen LVM di CentOS dan memiliki kemampuan untuk membuat Volume Logis bergaris dasar pada satu host.