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.