Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cara Mengunci Rotasi Layar di iOS 9

Cara Mengunci Rotasi Layar di iOS 9

Sangat mungkin mengecewakan ketika Anda mencoba memutar layar iPhone Anda untuk melihat atau memahami sesuatu, tetapi informasi yang Anda coba lihat terus berputar di samping layar. IPhone akibatnya akan menempatkan dirinya berdasarkan bagaimana perangkat itu berada, dan arah itu mungkin tidak selalu sesuai dengan metode yang Anda inginkan untuk meninjau layar.

Bagaimanapun, arah layar tidak perlu fleksibel, dan Anda dapat memutuskan untuk mengamankannya ke arah gambar. Meskipun hal ini jarang dapat membuat keadaan tertentu lebih merepotkan, Anda mungkin menemukan bahwa memiliki arah layar yang stabil dan terkunci lebih masuk akal untuk cara Anda menggunakan gadget Anda. Cari tahu cara mengamankan iPhone Anda ke arah representasi dengan asisten di bawahnya.

Mengamankan Rotasi Layar di iPhone Anda di iOS 9

Cara dalam artikel ini dilakukan pada iPhone 6 Plus, di iOS 9. Cara ini akan memandu Anda ke menu di iPhone yang disebut Pusat Kontrol. Pusat Kontrol iPhone tersedia secara konsisten dari layar Beranda, namun dapat dirancang untuk dibuka dari layar kunci dan aplikasi di dalam juga. Jika Anda melihat bahwa Anda tidak dapat mengakses Pusat Pengaruh dari layar kunci atau aplikasi, maka, pada saat itu, Anda dapat mempelajari tentang mengatur Pusat Kontrol iPhone untuk mengaktifkan atau menonaktifkan pilihan tersebut.

Tragisnya iPhone harus diamankan ke arah representasi. Sama sekali tidak mungkin untuk mengamankannya ke arah pemandangan.

Gesek ke atas dari bagian bawah layar Utama Anda (atau dari bagian bawah layar kunci atau di dalam aplikasi, dengan asumsi bahwa pilihan tersebut diaktifkan di gadget Anda.)

Ketuk tombol di titik tertinggi Pusat Kontrol dengan kunci di dalam baut bundaran. Tombol akan berwarna putih saat pilihan diaktifkan, dan Anda juga akan melihat simbol serupa di bilah status di bagian atas layar iPhone Anda.

Apakah Anda memiliki iPhone 6 Plus, atau 6S Plus? Ada elemen pada gadget yang lebih besar yang disebut Reachability yang memungkinkan Anda untuk menarik simbol Anda ke bawah sehingga gadget lebih mudah dilakukan dengan satu tangan. Cari tahu cara mengaktifkan atau menonaktifkan Reachability di gadget Anda.

Lihat juga

Cara Menyimpan Dokumen Di WPS Office>>>> https://kompinesia.com/cara-menyimpan-dokumen-di-wps-office/

cara mematikan timer ac panasonic >>> https://www.infokuy.net/2021/06/cara-mematikan-timer-ac-panasonic.html

Avatar for Kompinesia

Kompinesia

August 29, 2022
Tweet

Other Decks in Technology

Transcript

  1. www.it-ebooks.info linux.oreilly.com adalah katalog lengkap buku O'Reilly tentang Linux dan

    Unix dan teknologi terkait, termasuk bab sampel dan contoh kode. Buku Linux Conferences O'Reilly menyatukan beragam inovator untuk memelihara ide-ide yang memicu industri revolusioner. Kami mengkhususkan diri dalam mendokumentasikan alat dan sistem terbaru, menerjemahkan pengetahuan inovator menjadi keterampilan yang berguna bagi mereka yang berada di parit. Kunjungi conferences.oreilly.com untuk acara kami yang akan datang. Judul terkait DNS dan BIND Pusat Sumber Daya Sumber daya Linux lainnya dari O'Reilly ONLamp.com adalah situs utama untuk bentuk plat web open source: Linux, Apache, MySQL dan Perl, Python, atau PHP. Sertifikasi Linux LPI di a Buku Masak Keamanan Linux™ Rak Buku Safari (safari.oreilly.com) adalah perpustakaan referensi online utama untuk programmer dan profesional TI. Lakukan pencarian di lebih dari 1.000 buku. Pelanggan dapat membidik jawaban atas pertanyaan kritis waktu dalam hitungan detik. Kulit kacang Panduan Saku Linux Saku iptables Linux Baca buku-buku di Rak Buku Anda dari sampul ke sampul atau hanya membalik halaman yang Anda butuhkan. Cobalah hari ini dengan uji coba gratis. Linux Singkatnya Jaringan Linux Referensi Menjalankan Linux Panduan Administrator Peretasan Server Linux™ Machine Translated by Google
  2. www.it-ebooks.info SISTEM ADMINISTRASI Beijing • Cambridge • Farnham • Köln

    • Paris • Sebastopol • Taipei • Tokyo LINUX Tom Adelstein dan Bill Lubanovic Machine Translated by Google
  3. Pengindeks: John Bickelhaupt Desainer Interior: David Futato Sejarah Pencetakan: Editor:

    Andy Oram Editor Produksi: Laurel RT Ruma Copyeditor: Rachel Wheeler Proofreader: Laurel RT Ruma Desainer Sampul: Karen Montgomery Administrasi Sistem Linux oleh Tom Adelstein dan Bill Lubanovic Ilustrator: Robert Romano dan Jessamyn Read Sementara setiap tindakan pencegahan telah diambil dalam persiapan buku ini, penerbit dan penulis tidak bertanggung jawab atas kesalahan atau kelalaian, atau atas kerusakan akibat penggunaan informasi yang terkandung di sini. Maret 2007: Dicetak di Amerika Serikat. Buku ini menggunakan RepKover™ , penjilidan datar yang tahan lama dan fleksibel. Diterbitkan oleh O'Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. Edisi pertama. ISBN-10: 0-596-00952-6 Buku O'Reilly dapat dibeli untuk keperluan pendidikan, bisnis, atau promosi penjualan. Edisi online juga tersedia untuk sebagian besar judul (safari.oreilly.com). Untuk informasi lebih lanjut, hubungi departemen penjualan korporat/institusional kami: (800) 998-9938 atau [email protected]. Nutshell Handbook, logo Nutshell Handbook, dan logo O'Reilly adalah merek dagang terdaftar dari O'Reilly Media, Inc. Penunjukan seri Linux, Administrasi Sistem Linux, gambar dari Amerika Barat, dan pakaian dagang terkait adalah merek dagang dari O'Reilly Media, Inc. ISBN-13: 978-0-596-00952-6 Banyak sebutan yang digunakan oleh produsen dan penjual untuk membedakan produk mereka diklaim sebagai merek dagang. Di mana sebutan tersebut muncul dalam buku ini, dan O'Reilly Media, Inc. mengetahui klaim merek dagang, sebutan tersebut telah dicetak dalam huruf besar atau huruf besar awal. Hak Cipta © 2007 O'Reilly Media, Inc. Semua hak dilindungi undang-undang. [M] www.it-ebooks.info Machine Translated by Google
  4. www.it-ebooks.info 1. Persyaratan untuk Administrator Sistem Linux Tentang Buku Ini

    Bagaimana Kami Dapat Membantu? 2. Menyiapkan Server Multifungsi Linux Kata pengantar 8 1 ix di Daftar isi 34 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mengkonfigurasi Jaringan Mengkonfigurasi Mail dengan Aman dengan Postfix, POP3, dan IMAP Menyinkronkan Jam Sistem 2 22 6 15 36 Menginstal Debian Menyediakan Layanan Nama Domain Menambahkan Layanan FTP dengan ProFTPD Apa yang Harus Diketahui Manajer Sistem Tentang Linux Apa Selanjutnya . . . . . . . . . . . . . . . . . . . . . . . . 18 3 12 35 Mengubah Paket Debian Default Memasang Modul Perl yang Dibutuhkan oleh SpamAssassin Anda Butuh Buku? 2 9 33 Masuk dari Jarak Jauh Meringkas Statistik Web Anda dengan Webalizer 20 Persyaratan Server Membuat Apache Bekerja Siapa yang Membutuhkan Anda? 7 16 37 Menambahkan Basis Data Relasional: MySQL Di mana Anda Mulai? 36 4 13 Menyiapkan Kuota Apa berikutnya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 10 Machine Translated by Google
  5. www.it-ebooks.info 103 120 File Statis dan Dinamis Enkripsi SSL/TLS Dukungan

    suEXEC Bacaan lebih lanjut Dasar-dasar DNS Masuk ke BIND 74 Pemecahan masalah BIND Menginstal ISPConfig 111 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File Konfigurasi Apache Menginstal dan Mengelola Drupal 66 Melindungi Server Web Linux 41 Mengedit File Konfigurasi 101 103 Pengaturan LAMPU Sederhana 122 124 50 140 38 Menyiapkan Server DNS 83 Penyelesaian masalah 144 145 149 71 Apa berikutnya 121 Pembandingan 142 62 Apa berikutnya Menyiapkan Server dan Pengguna dengan ISPConfig 119 file log 127 44 105 Alat BIND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instalasi 123 143 153 40 Mengonfigurasi Server DNS Resmi 96 4. Lingkungan Siap-Internet Awal 5. Mail Key Ketentuan Layanan Surat Postfix, Sendmail, dan MTA Lainnya Server Surat SMTP Postfix di Debian Menambahkan Otentikasi dan Enkripsi Mengonfigurasi Agen Pengiriman Surat POP3 dan IMAP Konfigurasi Klien Email Apa Selanjutnya 102 6. Mengadministrasikan Apache. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 3. Sistem Nama Domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 73 kami | Daftar isi Machine Translated by Google
  6. www.it-ebooks.info 204 235 245 Layanan Gerbang 196 173 218 237

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bacaan lebih lanjut 186 162 165 210 251 Load Balancing dan Ketersediaan Tinggi 154 164 Layanan Cetak 199 242 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 181 Penskalaan Tanpa LB dan HA bash Permulaan Elemen Berguna untuk Skrip bash Bahasa Skrip Adu Bacaan Lebih Lanjut 226 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 168 Mengapa Virtualisasi Komputasi Kinerja Tinggi Populer Menginstal Xen di Fedora 5 Menginstal Virtualisasi VMware: Iseng-iseng? 254 162 164 manajemen pengguna 163 273 154 8. Layanan Jaringan Lokal Sistem File Terdistribusi Pengantar Samba Mengonfigurasi DHCP Jaringan 7. Cluster Seimbang Beban 236 9. Virtualisasi di Perusahaan Modern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 Indeks 11. Mencadangkan Data Mencadangkan Data Pengguna ke Server dengan Arsip rsync tar Menyimpan File di Media Optik Mencadangkan dan Mengarsipkan ke Tape dengan Amanda Mencadangkan Data MySQL Lampiran. Contoh Skrip bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 10. Skrip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 Daftar Isi | vii Machine Translated by Google
  7. www.it-ebooks.info Sesaat kemudian dia dan pria lainnya menoleh ke arahku

    dan menatap mataku. Aku tersenyum dan terus bekerja. Kemudian dalam konferensi, direktur kami meminta umpan balik dari grup tentang solusi untuk manajemen patch, menjelaskan dan menggunakan contoh rsync. Dia mengatakan dia menginginkan sesuatu yang serupa, saat meluncurkan diskusi teknis terperinci tentang manajemen tambalan inkremental dan kumulatif. Saya memiliki pengetahuan kerja yang baik tentang rsync, tetapi belum pernah mendengar penjelasan akademis yang terperinci tentang alat sumber terbuka apa pun di forum mana pun. Ketika Andy Oram dan saya mulai mendiskusikan buku administrasi sistem Linux, kami memiliki gagasan yang sedikit berbeda tentang apa yang ingin kami capai. Andy berbicara tentang sebuah buku di mana setiap bab membawa pengguna melalui langkah-langkah membangun dan menggunakan server aplikasi tanpa menggabungkan diskusi terperinci. Dia menyarankan agar diskusi berada di satu tempat di setiap bab dan langkah-langkah teknis di tempat lain. Saat Bill Lubanovic dan saya memberikan sentuhan akhir pada buku ini, saya mendengar percakapan antara dua rekan kerja di lab Cisco kami yang membahas Linux. Guru jaringan senior dari keduanya membuat pernyataan yang menarik. Dia mengatakan bahwa terlepas dari semua pengetahuannya, dia merasa tidak lengkap sebagai seorang profesional karena dia tidak pernah bel Malam itu, direktur Teknologi Informasi kami membuat pernyataan langsung kepada saya selama konferensi yang menurut saya tidak biasa. Dia mengatakan bahwa dia ingin belajar Apache, dan ketika saya bertanya mengapa dia menjawab, "Saya hanya ingin mempelajarinya," dan berhenti begitu saja. Dalam kedua kasus tersebut dan banyak lainnya, saya berharap buku ini siap untuk diserahkan kepada orang-orang yang sangat terlatih dan terampil yang ingin belajar administrasi Linux. Mungkin Anda pernah memiliki pengalaman serupa dan berharap Anda memiliki buku seperti ini. Saya berani menebak bahwa percakapan seperti yang baru saja saya jelaskan terjadi berkali-kali di banyak tempat setiap hari. Kata pengantar ix Machine Translated by Google
  8. www.it-ebooks.info Bagaimana Buku Ini Diorganisasikan Kemudian, saya mengusulkan agar kami

    membuat setiap bab sebagai modul tersendiri dan membiarkan pembaca menyelesaikan modul yang dia inginkan dan/atau butuhkan. Ketika buku ini berkembang, kami merasa bahwa kami telah mencapai tujuan itu. Anda tidak perlu membaca buku ini dari sampul ke sampul untuk menjadi administrator sistem Linux. Cukup mulai di tempat yang paling Anda minati. Bab 3, Sistem Nama Domain Bab 5, Mail Mengatur server email Postfix dengan otentikasi SASL, server POP, dan server IMAP. Bab 6, Mengelola Apache Memberikan penjelasan singkat tentang kombinasi Apache, MySQL, dan PHP yang populer (bersama dengan Linux, yang dikenal sebagai server LAMP), termasuk otentikasi SSL. Menunjukkan dasar-dasar pengaturan server DNS primer dan sekunder. Menjelaskan tujuan buku dan apa yang akan Anda peroleh dengan membacanya. Bab 1, Persyaratan untuk Administrator Sistem Linux Ketika saya pertama kali mulai menggunakan Linux, komunitasnya sebagian besar terdiri dari programmer dan penggemar. Saya tidak ingat daftar diskusi yang berfokus pada desktop atau aplikasi komersial. Kami masuk ke Internet dengan memulai daemon. Kami tidak memiliki dialer atau browser web seperti yang tersedia saat ini. Sebagian besar orang yang saya kenal melakukan administrasi sistem mereka sendiri atau sedang dalam tahap pembelajaran. Bab 7, Cluster Seimbang Beban Memperluas konfigurasi Apache bab sebelumnya dengan IP Virtual Server dan ldirectord untuk menyediakan ketersediaan tinggi. Bab 2, Menyiapkan Server Multifungsi Linux Merefleksikan waktu ketika kami memperkirakan ada 30.000 pengguna Linux di planet ini, saya kagum pada berapa banyak orang yang menggunakan Linux saat ini dan sama sekali tidak tahu bagaimana menulis file konfigurasi. Forum Linux tampaknya dipenuhi dengan orang-orang yang menanyakan cara agar CUPS atau Samba berfungsi. Di milis, orang mengadakan diskusi terperinci tentang detail teknis proyek seperti Postfix, JBoss, dan Monit. Membantu Anda memulai dengan server yang hampir siap untuk Internet. Bab 4, Lingkungan Awal yang Siap-Internet Menggunakan sistem konfigurasi perangkat lunak bebas ISPConfig untuk membantu Anda memulai dengan serangkaian layanan yang kaya yang dapat Anda praktikkan sambil membaca sisa buku ini. Banyak orang masih ingin mempelajari kemampuan ekstensif Linux sebagai platform aplikasi. Jika Anda menggunakan Linux dan ingin mengambil langkah selanjutnya dari power user menjadi administrator, buku ini akan membantu Anda melakukan transisi. Kami menulis buku ini dengan Anda dalam pikiran. x | Kata pengantar Machine Translated by Google
  9. www.it-ebooks.info Konvensi yang Digunakan dalam Buku Ini Kata Pengantar |

    xi Ikon ini menandakan tip, saran, atau catatan umum. Ikon ini menunjukkan peringatan atau kehati-hatian. Bab 8, Layanan Jaringan Lokal Menunjukkan kepada Anda cara mengelola pengguna dan mengonfigurasi elemen jaringan umum seperti DHCP dan perangkat lunak gateway pada jaringan area lokal (LAN). Menampilkan perintah atau teks lain yang harus diketik secara harfiah oleh pengguna. Juga digunakan untuk menyorot bagian-bagian penting dari kode atau file. Menyajikan berbagai teknik untuk menjalankan fungsi penting ini, dari rysnc dan tar dasar hingga sistem Amanda yang kuat. Menunjukkan isi file atau output dari perintah. Lampiran, Contoh Skrip bash Berisi beberapa skrip shell yang menurut kami berguna saat melakukan administrasi sistem dan yang mungkin memberi Anda tip tentang cara menulis skrip Anda sendiri. Bab 9, Virtualisasi di Perusahaan Modern Menunjukkan cara mengatur Xen, VMware pada host Linux dan kemudian menambahkan sistem operasi tamu. Menampilkan teks yang harus diganti dengan nilai yang disediakan pengguna. Konvensi tipografi berikut digunakan dalam buku ini: Bab 10, Scripting Menunjukkan kepada Anda beberapa teknik dasar untuk menulis skrip bash shell yang kuat dan kuat yang dapat menghemat banyak waktu administrasi. Miring Menunjukkan istilah baru, URL, perintah dan opsi baris perintah, alamat email, nama file, ekstensi file, dan direktori. Bab 11, Mencadangkan Data Lebar konstan Tebal lebar konstan Miring lebar konstan Machine Translated by Google
  10. www.it-ebooks.info Jika Anda merasa penggunaan contoh kode Anda berada di

    luar penggunaan wajar atau izin yang diberikan di atas, jangan ragu untuk menghubungi kami di [email protected]. 1005 Gravenstein Highway North Sebastopol, CA 95472 800-998-9938 (di Amerika Serikat atau Kanada) 707-829-0515 (internasional atau lokal) 707-829-0104 (faks) Kami memiliki halaman web untuk buku ini, di mana kami mencantumkan ralat dan informasi tambahan lainnya. Anda dapat mengakses halaman ini di: Safari menawarkan solusi yang lebih baik daripada e-book. Ini adalah perpustakaan virtual yang memungkinkan Anda dengan mudah mencari ribuan buku teknologi terbaik, memotong dan menempelkan sampel kode, mengunduh bab, dan menemukan jawaban cepat saat Anda membutuhkan informasi terkini yang paling akurat. Coba gratis di http:// safari.oreilly.com. Saat Anda melihat ikon Safari® Diaktifkan di sampul buku teknologi favorit Anda, itu berarti buku tersebut tersedia online melalui O'Reilly Network Safari Bookshelf. Buku ini hadir untuk membantu Anda menyelesaikan pekerjaan Anda. Secara umum, Anda dapat menggunakan kode dalam buku ini dalam program dan dokumentasi Anda. Anda tidak perlu menghubungi kami untuk meminta izin kecuali jika Anda mereproduksi sebagian besar kode. Misalnya, menulis program yang menggunakan beberapa potongan kode dari buku ini tidak memerlukan izin. Menjual atau mendistribusikan CD-ROM contoh dari buku-buku O'Reilly memang memerlukan izin. Menjawab pertanyaan dengan mengutip buku ini dan mengutip kode contoh tidak memerlukan izin. Memasukkan sejumlah besar kode contoh dari buku ini ke dalam dokumentasi produk Anda memang memerlukan izin. Kami menghargai, tetapi tidak mengharuskan, atribusi. Sebuah atribusi biasanya mencakup judul, penulis, penerbit, dan ISBN. Misalnya: “Administrasi Sistem Linux oleh Tom Adelstein dan Bill Lubanovic. Hak Cipta 2007 O'Reilly Media, Inc., 978-0-596-00952-6.” Harap sampaikan komentar dan pertanyaan mengenai buku ini kepada penerbit: O'Reilly Media, Inc. http:// www.oreilly.com/ catalog/ 9780596009526 Menggunakan Contoh Kode Safari® Diaktifkan Bagaimana Menghubungi Kami | Kata pengantar xii Machine Translated by Google
  11. www.it-ebooks.info Ucapan Terima Kasih Contoh, tips, dan prosedur baru akan

    diposting dari waktu ke waktu di situs pengujian yang disiapkan oleh penulis untuk buku: http:// www.centralsoft.org Untuk berkomentar atau mengajukan pertanyaan teknis tentang buku ini, kirim email ke: [email protected] Terima kasih juga kepada para ahli teknis kami, yang menghabiskan waktu berjam-jam untuk meninjau, menguji, dan memberikan saran tentang pekerjaan kami: Markus Amersdorfer, Keith Burgess, Robert Day, Ammar Ibrahim, dan Yaman Saqqa. Terima kasih khusus untuk Yvonne Adelstein dan Mary Lubanovic, istri kami, yang menunjukkan kesabaran yang luar biasa. Kami tidak dapat melakukan ini tanpa dukungan penuh Anda. Pertama, kami ingin mengucapkan terima kasih kepada Andy Oram, yang upaya penyuntingan, penulisan, dan manajemennya untuk membuat buku ini tampak luar biasa. Selain bekerja sebagai redaktur utama, Andy berkontribusi secara material terhadap isi buku ini. Andy berfungsi seperti manajer proyek dan menunjukkan kesabaran dan disiplin. Buku-buku seperti Administrasi Sistem Linux muncul hanya dengan kontribusi dari usaha banyak orang. Anggap tidak mungkin untuk membuat daftar semuanya di sini. Untuk informasi lebih lanjut tentang buku kami, konferensi, Pusat Sumber Daya, dan Kami tidak dapat meminta lebih banyak dari kontribusi Falko Timme, Phil Howard, dan Herschel Cohen. Falko meminjamkan waktu dan keahliannya untuk Bab 2 dan 4. O'Reilly Network, lihat situs web kami di: Phil menulis sebagian besar Bab 11 dan menyediakan kerangka kerja untuk Bab 10 dan lampiran skrip yang menyertainya. Herschel menulis bagian dari beberapa bab, termasuk Bab 8 dan 10, dan menyumbangkan keahliannya ke Bab 6. Ketiga kontributor juga mengulas bagian lain dari buku ini. http:// www.oreilly.com Kata Pengantar | xiii Machine Translated by Google
  12. * Nama favorit kami adalah PNX, diucapkan hampir seperti sesuatu

    yang tidak akan pernah muncul di O'Reilly buku. www.it-ebooks.info BAB 1 1 Kami menyukai Linux. Dari semua sistem mirip Unix dan Unix yang pernah kami gunakan, banyak yang sekarang melupakan sepuluh,* Linux adalah favorit kami. Ini adalah platform server yang sangat baik, desktop yang bagus, dan pusat dari banyak inovasi di dunia komputasi saat ini. Dalam waktu yang relatif singkat, Linux berkembang dari hobi hacker Finlandia ke sistem tingkat perusahaan tingkat atas yang didukung oleh rol tinggi seperti IBM dan Oracle. Basis pengguna telah berkembang dari sekitar 30.000 orang pada tahun 1995 menjadi ratusan juta saat ini. Buku ini untuk administrator sistem Linux. Namun, Anda mungkin seorang veteran Unix beruban, MCSE pemberani, atau mainframer tabah. Anda menjelajahi wilayah baru dan membutuhkan peta dan kompas. Beberapa tanah akan akrab, tetapi beberapa akan menjadi terra incognita. Buku ini mencakup banyak topik yang baru saja bergabung dengan arus utama, misalnya cluster dan virtualisasi load-balance. Linux mungkin memiliki jangkauan terluas dari sistem operasi apa pun, dari sistem kecil seukuran jack telepon, hingga ponsel, hingga cluster superkomputer yang lebih besar dari sekolah menengah Anda. Ia telah menyusup ke bidang telekomunikasi, sistem tertanam, satelit, peralatan medis, sistem militer, grafik komputer, dan—yang tak kalah pentingnya—komputasi desktop. Selama booming Internet tahun 1990-an, banyak administrator Unix terkejut menemukan bahwa Linux pada perangkat keras PC dapat mengungguli stasiun kerja dan server Unix yang lebih mahal. Banyak administrator Windows dan Novell melihat bahwa Linux dapat menangani DNS, email, dan layanan file dengan lebih andal dan dengan lebih sedikit dukungan per sonnel daripada platform mereka saat ini. Pertumbuhan Internet, dan khususnya Web, memicu ekspansi yang cepat dalam penggunaan server Linux dan kebutuhan orang untuk mengelolanya. Bab 1 Keberhasilan Internet dan perangkat lunak open source mengubah bisnis. Google, Amazon, eBay, dan lainnya telah membangun peternakan server besar dengan perangkat keras komoditas dan administrator yang relatif sedikit dibandingkan dengan mainframe tradisional dan insta Administrator sistem Persyaratan untuk Linux Machine Translated by Google
  13. www.it-ebooks.info 2 | Bab 1: Persyaratan untuk Administrator Sistem Linux

    Saat menulis buku ini, kami terus menguji distribusi dan alat terbaru, dan kami akan melanjutkan eksperimen kami setelah buku dirilis. Kami mengundang pembaca untuk datang ke situs uji yang kami siapkan untuk buku tersebut, http:// www.centralsoft.org, tempat kami akan memublikasikan pembaruan untuk contoh, petunjuk ke alat baru yang berguna yang kami temukan, dan kiat lainnya. Jika Anda telah melalui latihan kebakaran ini, Anda mungkin lelah melakukan segala hal dengan cara yang sulit, menghadapi tantangan teknis baru hampir setiap hari dengan sedikit sumber bantuan. Dokumentasi teknis—baik untuk perangkat lunak komersial atau open source—jarang mengikuti teknologi, dan kesenjangan tampaknya semakin lebar. Namun, bagi sebagian dari Anda, semua itu mungkin terdengar seperti rappelling menuruni gunung setinggi 10.000 kaki. Jika Anda salah satunya, mulailah dari suatu tempat. Seperti kata pepatah, Anda makan seekor gajah satu gigitan pada satu waktu, dan sialkan torpedonya. Anda mungkin memiliki sertifikasi untuk sistem operasi selain Linux. Saat Anda menerapkan patch dan hot fix, atasan Anda mungkin meminta Anda untuk menggunakan server Apache, atau menangani pencarian DNS Anda sendiri, atau mengganti Exchange dengan Zimbra. Buku administrasi sistem dulu cukup mudah ditebak. Mereka menunjukkan kepada Anda cara mengelola pengguna, sistem file, perangkat, proses, printer, jaringan, dan sebagainya. Mereka tidak memberi tahu Anda apa yang harus dilakukan ketika masalah baru muncul. Jika situs web Anda menjadi populer, Anda harus belajar dengan cepat tentang server proxy, berbagai tingkat caching, load balancing, otentikasi terdistribusi, dan masalah kompleks lainnya. Jika Anda menambahkan database, Anda harus segera menskalakannya dan belajar menghindari serangan injeksi SQL. Pada malam hari, situs menjadi sangat penting, dan Anda membutuhkan kemampuan untuk membuat cadangan panas pada sistem 24 × 7. Misalnya, server direktori sumber terbuka menjadi penting untuk mengelola komputer, pengguna, dan sumber daya. Protokol asli yang sesuai dengan RFC mendasari banyak produk komersial, tetapi dokumentasi yang baik untuk proyek komunitas ternyata sangat langka. Keterampilan yang dibutuhkan untuk mengembangkan dan memelihara sistem dan aplikasi terdistribusi seperti itu tidak diajarkan di sekolah tetapi dipelajari dari pengalaman, terkadang pahit dan terkadang manis. Orang-orang Linux adalah pemecah masalah. Seorang pengguna kekuatan Linux yang khas dapat mengumpulkan server kecil, mendapatkan pipa Internet khusus dengan alamat IP statis ke rumahnya, mendaftarkan nama domain, dan membangun server di Internet. Jika Anda termasuk dalam kategori ini, Anda dapat dengan mudah mempelajari topik-topik lain dalam buku ini dan memperluas kemungkinan Bagaimana Kami Dapat Membantu? Tentang Buku Ini Machine Translated by Google
  14. www.it-ebooks.info Anda Butuh Buku? | 3 Anda Butuh Buku? Di

    mana Anda Mulai? kami menyampaikan pelajaran kami kepada Anda. Banyak lokasi proyek yang bagus memiliki dokumentasi yang tidak memadai. Pengembang bekerja keras Banyak bahan untuk buku ini tersebar di Internet, melalui pos Buku ini merangkum langkah-langkah yang perlu Anda ikuti untuk membangun server mandiri. Jika gateway untuk LAN Anda, Anda dapat melompat tepat ke tengah buku. kamu tidak Buku-buku teknis telah berkurang popularitasnya karena Internet telah matang. Untuk menulis Anda perlu membangun server email, membuat server web dan sistem blog, atau mengatur menerima panggilan di saluran bebas pulsanya. Orang-orang mulai memesan kue keju dalam jumlah besar. Konsumen melihat resepnya, mempertimbangkan upaya yang diperlukan untuk membuatnya membantu Anda menjelajahi lanskap sistem Linux tanpa semua kesulitan yang dialami nenek moyang kita. Menjalankan sistem operasi modern sangat murah. Anda dapat mendirikan pusat pembelajaran canggih untuk diri Anda sendiri pada perangkat keras yang oleh banyak situs akan dianggap usang dan diberikan secara gratis. Kami mulai dengan kotak bekas yang ditenagai oleh CPU Intel dua daftar, forum, dan kelompok diskusi, sementara yang lain digali dari buku, majalah, dan pengalaman rekan kerja. Kami memecahkan sejumlah masalah yang generasi yang lebih tua dari model saat ini, menambahkan versi hard drive dan memori yang lebih lama, dan menggunakan versi Linux gratis tanpa embel-embel. memiliki kue keju, dan melihat nilai dalam membelinya dari perusahaan. untuk menyediakan perangkat lunak yang sangat baik secara gratis, tetapi prosa sering membuntuti kode karena berbagai alasan: Apakah Anda hanya ingin belajar atau benar -benar harus belajar, Anda mungkin akan membutuhkannya server di Bab 2. Anda dapat memilih jalur apa pun yang sesuai untuk Anda, apakah itu melibatkan hari-hari awal Web. Menurut cerita, beberapa bulan telah berlalu dan membuat cluster yang sangat tersedia untuk layanan web, konsolidasi server melalui virtualisasi menggunakan Xen atau VMware, atau menyiapkan server untuk jaringan area lokal. membantu mendaki kurva pengguna daya Linux. Itulah tepatnya tujuan kami di sini: untuk perusahaan tidak menerima satu pesanan pun. Dalam langkah yang tidak biasa, presiden perusahaan menerbitkan resep kue keju rahasia perusahaan. Dalam beberapa jam, dia mulai harus membaca Administrasi Sistem Linux dari depan ke belakang. cerita menarik tentang salah satu situs e-commerce pertama di Web membantu menjelaskan kurangnya waktu, kurangnya sumber daya, kurangnya minat, hambatan bahasa, dan sebagainya. sukses buku hari ini, penulis harus memberikan nilai yang signifikan kepada pembaca. Sebuah nilai yang harus diberikan oleh sebuah buku. Sebuah perusahaan kue keju memasang iklan di Kami mulai Anda bekerja segera, menyajikan panduan langkah demi langkah untuk membangun Linux solusi benar-benar tidak didokumentasikan selama meneliti buku ini, dan Machine Translated by Google
  15. * Lihat http:// www.top500.org/ stats/ 28/ osfam. www.it-ebooks.info 4 |

    Bab 1: Persyaratan untuk Administrator Sistem Linux Siapa yang Membutuhkan Anda? Bersama dengan pembaca, editor, dan pengulas kami, kami berharap entropi sedikit berkurang di sudut kecil dunia komputasi ini. Bantuan Dicari administrator Linux sangat diminati. Untuk memberi Anda gambaran tentang apa yang diharapkan dari mereka, kami melihat pilihan kecil dari puluhan ribu iklan untuk administrator sistem Linux di situs web agen daftar pekerjaan nasional. Berikut adalah cuplikan kecil dari beberapa tanggung jawab pekerjaan: Linux menjalankan lebih banyak superkomputer top dunia daripada sistem operasi lainnya. Faktanya, pada saat tulisan ini dibuat, Linux menjalankan 75 persen dari 500 superkomputer teratas di planet ini.* Menurut kepala departemen di Lawrence Liv ermore National Laboratory di Livermore, CA, Linux menjalankan 10 sistem masif mereka, semuanya yang ada di Daftar TOP500. Sistem tersebut termasuk BlueGene/L, superkomputer paling kuat di dunia, dan Thunder, yang saat ini menempati peringkat sembilan belas (http:// www.top500.org/ list/ 2006/11/100). Beberapa tahun yang lalu, sebagian besar administrator sistem Linux akan memberi tahu Anda bahwa mereka tidak memilih karier mereka—Linux yang memilihnya. Di masa lalu, Linux seperti Unix remaja. Sebagian besar administrator sistem Linux mempelajari seluk beluk stasiun kerja tunggal dan jaringan yang sangat kecil. Linux mewarisi beberapa server dari Unix (BIND, Sendmail, Apache), tetapi sedikit perangkat lunak perkantoran dan beberapa aplikasi. Saat ini, administrasi sistem Linux melibatkan ribuan paket dan interoperabilitas dengan sistem operasi lain. • Mengelola dan mengelola lingkungan server Linux yang besar, dengan penekanan pada pemantauan kinerja, penyetelan, dan manajemen. • Mengawasi desain fisik database, administrasi, dan dokumentasi. • Menyediakan pemecahan masalah jaringan, dukungan meja layanan yang ditingkatkan, dan pemantauan proaktif sistem mission-critical. Siapa yang membutuhkan administrator Linux? Pusat Ilmu Komputasi NASA (NCCS) di Pusat Penerbangan Luar Angkasa Goddard melakukannya. Cluster komputasi kinerja tinggi (HPC) berbasis Linux dirancang untuk secara dramatis meningkatkan throughput untuk aplikasi mulai dari mempelajari variabilitas cuaca dan iklim hingga mensimulasikan fenomena astrofisika. Linux melengkapi arsitektur NCCS yang dirancang untuk menskalakan hingga 40 triliun operasi floating-point per detik (TFLOPS) dalam konfi Machine Translated by Google
  16. www.it-ebooks.info Siapa yang Membutuhkan Anda? | 5 Menganalisis Skill Set

    digunakan, Internet tetap menjadi domain utama Linux. melatih dan membimbing administrator tingkat junior. • Antarmuka dengan kelompok pendukung internal lainnya seperti Kontrol Perubahan, Pengembangan Aplikasi, Teknik, Administrator Basis Data, Layanan Web, Usia Penyimpanan, Keamanan, Operasi, dan Pusat Komando. Banyak manajer sistem informasi yang memahami Unix mencoba memegang Linux bentuk komunikasi, termasuk pesan instan, telah meningkatkan lalu lintas sementara meningkatnya kebutuhan dalam industri untuk pekerja dengan keterampilan administrasi Linux. sistem mereka karena sifat perangkat lunak open source. di lebih dari 300 server, termasuk blade Linux. transaksi terkait dengan email dan manajemen situs web, selain komunikasi dan mobilitas telekomunikasi. Email pernah mewakili 70 persen dari semua lalu lintas di • Memasang, mengonfigurasi, dan memecahkan masalah semua perangkat keras, periferal, dan peralatan Administrator Linux memiliki lebih sedikit masalah transisi ke Unix daripada sebaliknya Linux sekarang menjadi platform korporat standar, dan bakat Linux tidak banyak tersedia. Jika Mintalah manajer sistem informasi yang berbeda untuk menentukan peran administrator sistem, dan Anda akan mendapatkan berbagai jawaban. Kelembaman pasar telah mengejutkan tanaman saat ini isu-isu yang meningkat. • Menyediakan dukungan teknis harian dan saran konsultasi panggilan untuk perangkat keras administrator dengan standar Unix. Itu jarang berhasil. Sementara administrator Unix mungkin • Mengelola layanan infrastruktur—DNS, NIS, LDAP, FTP, SMTP, Postfix/ menurunkan persentase yang ditujukan untuk email. Tapi apapun protokol dan medianya • Memberikan bimbingan dan arahan solusi teknologi bagi organisasi; • Mengelola semua aspek integritas lingkungan, termasuk keamanan, pemantauan (kapasitas dan kinerja), kontrol perubahan, dan manajemen perangkat lunak. manajer yang kekurangan informasi tentang Linux. Mereka tidak tahu apa yang harus diketahui oleh para profesional Linux, dan para profesional Linux jarang memahami manajer tersebut. Internet. Saat ini, aplikasi broadband seperti Voice over IP (VoIP) dan lainnya • Memberikan dukungan tingkat pertama/kedua yang efektif untuk lingkungan Linux perusahaan Tugas administrasi sistem lebih sering melibatkan Internet. Mayoritas diperlukan untuk memenuhi tujuan sistem terintegrasi; menyediakan fungsi dukungan pada Anda ingin belajar Linux untuk meningkatkan nilai finansial Anda, banyak bukti mendukung a sekitar. Satu penjelasan mengatakan administrator Linux memiliki pemahaman yang lebih luas tentang dan lingkungan sistem operasi yang mendukung platform pengumpulan; mengelola infrastruktur server Linux untuk menjaga stabilitas serta memaksimalkan efisiensi dalam lingkungan komputasi. Sendmail, NFS, Samba—dan server aplikasi dan database, dengan penekanan pada otomatisasi dan pemantauan. percaya bahwa mereka dapat dengan mudah beralih ke Linux, mereka dengan cepat menemukan kesenjangan pengetahuan. Machine Translated by Google
  17. www.it-ebooks.info 6 | Bab 1: Persyaratan untuk Administrator Sistem Linux

    Apa yang Harus Diketahui Manajer Sistem Tentang Linux Mari kita lanjutkan menganalisis tanggung jawab pekerjaan yang dijelaskan di bagian sebelumnya. Salah satu hal pertama yang harus diketahui oleh seorang manajer teknologi informasi adalah bahwa Linux bukanlah Unix. Meskipun Linux tentu saja dapat menjalankan sebagian besar program Unix, ia juga memiliki jangkauan aplikasi yang lebih luas baik di jaringan publik maupun pribadi. Tanggung jawab yang tersisa termasuk dalam kategori “soft skill.” Di masa lalu, seseorang tidak akan mengharapkan seorang administrator sistem untuk belajar berfungsi sebagai penghubung dengan kelompok pendukung internal lainnya seperti Pengembangan Aplikasi, Insinyur, Administrator Basis Data, atau Layanan Web. Namun, seorang administrator sistem tidak lagi hanya seorang teknisi dengan pengetahuan tentang beberapa sistem misterius; dia adalah anggota staf pembuat keputusan perusahaan. Tidak seperti bidang ilmu komputer dan teknik lainnya, hanya sedikit sekolah yang menawarkan kursus administrasi Linux, apalagi seluruh program gelar. Jadi, jika Anda ingin mempelajari administrasi sistem Linux, Anda harus mencari materi dan kursus di luar lingkungan universitas. Tetapi banyak dari materi yang ada yang mungkin Anda temukan tidak akan memasukkan apa yang dianggap ahli strategi Linux sebagai materi pelajaran yang paling penting. Seseorang biasanya memperoleh soft skill dan spesialisasi setelah menguasai dasar-dasarnya. Kami mungkin membahas topik-topik ini secara tangensial dalam buku ini, tetapi kami menganggapnya di luar cakupan fokus kami. Buku O'Reilly lainnya dan waktu di parit akan membantu Anda menguasai kemampuan berharga ini. Untuk saat ini, kami akan membuat Anda siap dan berjalan di area di mana administrasi sistem telah melihat pertumbuhan paling besar dan di mana dokume Set terakhir (“Mengelola layanan infrastruktur”) dapat memberi Anda gambaran tentang set keahlian Linux standar. Pengusaha menginginkan administrator sistem yang dapat menangani apa yang mereka anggap "layanan infrastruktur." Perhatikan teknologi Internet yang terlibat. Dari daftar komponen Linux yang memerlukan pengenalan, sebagian besar tugas akan melibatkan DNS, LDAP, FTP, SMTP, dan Postfix/Sendmail. Kami akan membahas sebagian besar komponen ini di Bab 2–6. Sebagian besar administrator Linux telah belajar sendiri, belajar sesuai kebutuhan. Pada titik tertentu administrator otodidak ini pindah ke pekerjaan. Kebutuhan kemudian muncul dengan kecepatan yang lebih cepat, menyebabkan mereka belajar lebih banyak, sampai mereka dapat melakukan apa saja yang harus dilakukan oleh administrator sistem. Ini adalah salah satu area di mana Administrasi Sistem Linux dapat berkontribusi, membantu Anda mencapai kemahiran dalam berbagai tugas lebih cepat dan lebih efisien. Uraian pekerjaan lainnya sebagian besar cocok dengan kategori kebutuhan perusahaan internal. Ini termasuk dukungan meja layanan yang ditingkatkan, dukungan teknis, dan saran konsultasi panggilan untuk lingkungan perangkat keras dan sistem operasi. Kebanyakan administrator sistem Linux harus memiliki keterampilan yang dibutuhkan untuk menyediakan layanan ini, tetapi mereka berada di luar cakupan buku ini karena tidak murni teknis. Machine Translated by Google
  18. www.it-ebooks.info Apa Selanjutnya | 7 Apa berikutnya Sisa buku ini

    memperluas beberapa topik yang sama dan memperkenalkan topik lain yang mungkin tidak Anda temui setiap hari. Administrasi Sistem Linux adalah gabungan buku masak dan catatan perjalanan; Anda dapat menikmati sarapan yang lezat sambil berjalan-jalan. Kami biasanya menjelaskan topik di awal bab dan diikuti dengan langkah-langkah singkat dan aplikasi dari topik tersebut. Jika Anda hanya ingin mengikuti petunjuk langkah demi langkah, lakukanlah. Anda dapat mengetahui apa yang Anda lakukan nanti. Kami merasa bahwa pendekatan kami akan membuat Anda tetap menuju ke arah yang benar. Ke depan dan ke atas. Excelsior! Bukti lebih lanjut untuk fleksibilitas Linux adalah bahwa itu adalah sistem operasi pertama yang pernah digunakan IBM yang berjalan di semua platform perangkat kerasnya, dari server kelas Intel xSeries, melalui pSeries dan iSeries, hingga mainframe S/390 dan zSeries. Jika orang-orang Linux memiliki sesuatu untuk ditawarkan, mereka belajar dengan cepat, beradaptasi dengan cepat, dan memiliki basis pengetahuan yang luas yang tidak akan Anda temukan dengan teknolog lainnya. Mereka dapat belajar menjalankan kotak Microsoft Anda dalam waktu yang lebih singkat daripada yang dibutuhkan MCSE untuk mempelajari satu tugas Linux. Kami tahu Anda tidak menyukai pembelajaran yang lambat dan latar belakang yang rewel (sebenarnya, kami kagum Anda telah membaca sejauh ini dalam bab ini), jadi kami ingin memulai secepat mungkin. Kami ingin menyediakan server yang berfungsi yang akan melakukan banyak pekerjaan Linux yang dapat Anda pelajari dan gunakan. Untuk alasan ini, kita akan memulai dengan server siap-Internet di bab berikutnya. Anda akan menginginkan alat Internet seperti server web dan email tidak peduli bagaimana Anda menggunakan server Anda (mungkin meskipun hanya melayani LAN), dan alat tersebut akan berguna bagi Anda sejak awal. Administrator Linux dapat mengonfigurasi distribusi dengan memilih dari sejumlah besar komponen yang melakukan pekerjaan serupa. Misalnya, dengan hampir setiap distribusi Unix, Sendmail adalah satu-satunya pilihan agen transfer surat (MTA). Tetapi dengan Linux, Anda dapat memilih dari sejumlah MTA yang sebanding, tergantung pada apakah Anda menginginkan aplikasi grup kerja perusahaan, tulang punggung surat korporat berbasis direktori skala besar, atau aplikasi web sederhana untuk menangani formulir "hubungi kami". Jika Anda menginginkan administrator Linux dan Anda menggunakan sistem IBM yang besar, kandidat Anda harus mengetahui arsitektur mainframe dan terbiasa dengan istilah seperti "DASD" untuk penyimpanan hard drive, "IPL" untuk mem-boot sistem, "catalog" untuk direktori , dan "daftar perintah" untuk skrip shell. Tapi jangan menjual administrator Linux pendek. Kami pernah menghadiri seminar dua hari dengan sekelompok administrator Linux yang keluar sehari setelah kelas dan mulai menerapkan Linux pada komputer IBM zSeries bare-metal. Machine Translated by Google
  19. Menyiapkan Linux Server Multifungsi www.it-ebooks.info 8 Mengapa, Anda mungkin bertanya?

    Karena Anda dapat mengadaptasi server Internet untuk melakukan banyak tugas tambahan, seperti mengelola otentikasi pengguna, menyediakan layanan cetak dan file, menangani email lokal, dan menyediakan akses jarak jauh. Anda dapat membawa server ke fasilitas web hosting, pasang, dan mulai menawarkan layanan web. Anda bahkan dapat menyimpannya di rumah Anda sendiri, jika Anda mendapatkan alamat IP statis dari ISP Anda. Kami akan mulai dengan server yang mungkin Anda temukan di Internet, yang menghosting situs web. Bab 2 Bab 2 Administrator pertama kali mungkin mengalami kebingungan saat mengonfigurasi server, karena istilah dan konsep yang tidak dikenal. Anda tidak akan memiliki antarmuka grafis nyaman X Window Sys, dan Anda harus mengeluarkan perintah alih-alih mengklik ikon. Pekerjaan Anda akan dilakukan dalam mode konsol, dari antarmuka baris perintah. Sistem operasi Linux menyerupai wheelbase mobil, yang dapat melakukan berbagai macam fungsi yang berbeda tergantung pada pilihan sasis dan fitur. Saat Anda menambahkan layanan seperti email atau database, sistem mengambil karakter yang berbeda. Apakah Anda memerlukan server web, platform pengembangan, gateway, atau file dan server cetak? Apa pun yang Anda butuhkan memerlukan inti, yang disediakan bab ini. Menyebarkan jaringan area luas (WAN) berbeda dari menggunakan Linux sebagai desktop, file dan server cetak, atau firewall sederhana. Ada perbedaan nyata antara membaca tentang sesuatu dan melakukannya. Itu sebabnya sekolah menyediakan laboratorium untuk banyak kursus mereka. Jika Anda berencana untuk mempelajari administrasi sistem Linux, Anda memerlukan server. Jadi, tugas pertama dalam buku ini adalah membangun lingkungan server dasar. Setelah Anda membuatnya, Anda akan memiliki dasar yang baik untuk berlatih dan belajar Linux. Menyiapkan server di Internet dapat mengubah perspektif Anda tentang komputasi. Machine Translated by Google
  20. www.it-ebooks.info Persyaratan Server • Server web (Apache 2.0.x) • Server

    email (Postfix) Ambang ke dunia Linux baru menanti Anda dan server Anda. Jadi, mari kita mulai! • Server DNS (BIND 9) Ketika Anda mengikuti petunjuk dalam bab ini, Anda akan mendapatkan kotak hosting situs web yang dapat Anda sesuaikan untuk tujuan lain nanti. Sistem Anda akan menerapkan: Meskipun ada banyak cara untuk mengatur server web jarak jauh, mengikuti petunjuk di sini memberikan dasar yang baik untuk menguasai Linux. Setelah Anda menguasai pengaturan ini, Anda harus memiliki kemampuan untuk mengonfigurasi server agar sesuai dengan kebutuhan Anda. Anda dapat menggunakan hampir semua distribusi Linux untuk mengkonfigurasi server web. Dalam latihan ini, kita akan menggunakan Debian. Kami memilih Debian karena kami ingin menggunakan distribusi Linux yang stabil. Distribusi komersial utama—Red Hat Enterprise Linux dan Novell's SUSE Linux Enterprise Server—memiliki label harga yang membuat mereka jauh dari jangkauan sebagian besar pengguna, tetapi Anda dapat memperoleh Debian secara gratis. Juga, Red Hat dan SUSE menggunakan alat manajemen berpemilik yang menciptakan kesulitan dalam ment • Server FTP (ProFTPD) • Agen pengiriman surat (POP3/POP3s/IMAP/IMAPs) • Webalizer untuk statistik situs web Persyaratan Server | 9 Sulit bagi siapa pun untuk menyimpan informasi kompleks pada pembacaan pertama. Jadi, meskipun meminta Anda untuk mengetik perintah mungkin tampak tidak efisien, ini akan memungkinkan Anda untuk menyimpan informasi yang cukup tentang subjek yang akan Anda kenali nanti. Kami akan membahas setiap topik secara lebih rinci dalam bab-bab berikutnya, dan paparan Anda sekarang akan membantu Anda selama membaca buku ini. Sebagai bagian dari strategi kami untuk mengajari Anda administrasi, kami akan menunjukkan cara menempatkan alat berbasis web pada sistem Anda di bab berikutnya (penyedia layanan menggunakan alat berbasis web ini untuk mengelola server Linux yang mereka sewakan kepada pelanggan hosting) . Jadi, tidak semua yang Anda lakukan akan terbatas pada layar hitam putih. Selama proses penyiapan, Anda mungkin akan melihat perintah dan konsep yang tidak Anda ketahui. Kami akan meminta Anda untuk memasukkan data yang mungkin tidak masuk akal. Meskipun kami akan berusaha menjelaskan sebanyak mungkin tentang proses penyiapan, Anda mungkin merasa tidak puas dengan informasi dalam bab ini. Machine Translated by Google
  21. www.it-ebooks.info Anda dapat memperoleh nama domain dari sejumlah sumber hanya

    dengan $3,00. Cari di Internet menggunakan kata kunci “pendaftaran domain.” Anda akan melihat sejumlah pendaftar terdaftar. Banyak vendor menyediakan layanan mereka dengan harga murah, dan beberapa menawarkan layanan nama domain gratis. Anda memerlukan dua server DNS terdaftar untuk mendapatkan nama domain pada awalnya. Anda juga dapat menemukan layanan DNS registrar Anda berguna jika Anda tidak memiliki server fisik lain untuk menyediakan layanan domain sekunder. Setiap domain yang Anda daftarkan memerlukan server DNS primer dan server DNS cadangan atau seku 10 | Bab 2: Menyiapkan Server Multifungsi Linux Menginstal Debian Pemasang akan memandu Anda melalui serangkaian layar penginstalan. Saat Anda mencapai layar yang disebut "Konfigurasi Jaringan", Debian pertama-tama menyarankan untuk mengonfigurasi jaringan Anda dengan DHCP. Anda dapat melakukannya jika Anda memiliki DHCP yang tersedia. Jika tidak, Debian akan default ke layar yang memungkinkan Anda untuk mengkonfigurasi jaringan Anda secara manual. Kami berasumsi Anda tahu bagaimana melakukan instalasi bersih Linux. Anda hanya perlu beberapa petunjuk untuk mengatur kotak dasar Anda. Anda juga memerlukan komputer dengan setidaknya CPU Pentium III, RAM minimal 256 MB, dan hard drive 10 GB. Jelas, CPU yang lebih baru dan memori tambahan akan memberikan kinerja yang lebih baik. Anda akan diminta untuk memberikan nama host server, nama domain, gateway, alamat IP, netmask, dan server nama. Jika Anda memiliki domain terdaftar dan alamat IP statis, Anda siap melakukannya. Jika Anda tidak memiliki nama domain terdaftar, Anda memerlukannya. Bab ini didasarkan pada versi stabil Debian. Kami sangat menyarankan menggunakan CD dengan kernel Netinstall. Situs web Debian (http:// www.debian.org) menyediakan gambar CD yang dapat diunduh. Linux. Anda dapat mempelajari lebih lanjut tentang perilaku Linux standar dengan menggunakan Debian daripada menggunakan SUSE atau Red Hat. Setelah Anda boot ke disk CD-ROM Debian, Anda akan melihat layar login. Pastikan untuk mengetik di linux26 untuk mendapatkan kernel Versi 2.6 terbaru daripada versi 2.4 yang lebih lama. Untuk menyiapkan server Internet Linux, Anda memerlukan koneksi ke Internet dan alamat IP statis. Jika Anda tidak dapat memperoleh alamat IP statis, Anda dapat mengatur sistem dengan alamat yang disewakan kepada Anda oleh ISP Anda dan mengkonfigurasinya secara statis. Pastikan Anda tahu berapa lama sewa berjalan, jika Anda harus mengubah alamat IP saat sistem Anda berjalan. Machine Translated by Google
  22. Sekarang lanjutkan melalui beberapa layar instalasi yang tersisa, yang pada

    akhirnya akan meminta Anda untuk reboot untuk menginisialisasi kernel dan menyelesaikan instalasi. Beri nama Administrator akun pengguna pertama Anda dan berikan ID pengguna admin. Jangan gunakan kata sandi yang sama untuk admin seperti yang Anda lakukan untuk pengguna root Anda . Kami juga akan menggunakan ID pengguna admin di bab lain. Terakhir, pada layar terakhir yang terkait dengan konfigurasi Exim, masukkan nama pengguna admin sebagai penerima email untuk root dan postmaster. Saat Anda mencapai layar pemilihan perangkat lunak Debian, pindahkan kursor Anda ke kotak di sebelah "server email", tekan bilah Spasi, dan biarkan sistem menginstal paket default hingga Anda mencapai opsi di mana Anda melihat klien libc . Sekarang setelah Anda mengonfigurasi jaringan, Anda dapat melanjutkan dengan tugas penginstalan yang menyelesaikan sistem dasar. Skrip instalasi Debian akan memandu Anda melalui bagian selanjutnya. Anda harus menginstal klien libc dengan dukungan kotak surat Unix biasa daripada dukungan maildir . Kotak surat Unix menyimpan semua email dalam satu file, sedangkan maildir menyimpan setiap pesan dalam file terpisah. Kotak surat Unix lebih mudah digunakan dan dikonfigurasi, jadi mulailah dengan mereka sekarang. Setelah reboot, Debian akan meminta Anda untuk menambahkan pengguna yang tidak memiliki hak istimewa selama penginstalan. Itu memungkinkan Anda untuk masuk dan menggunakan perintah su untuk menjadi root. Untuk alasan keamanan, administrator sistem telah menetapkan praktik standar untuk tidak masuk ke sistem sebagai root kecuali mereka perlu memulihkan sistem yang gagal. Debian juga ingin Anda mengonfigurasi Exim sebagai agen transfer surat (MTA), tetapi jangan. Kami akan mengganti Exim dengan Postfix nanti di bab ini. Sementara itu, ketika Anda mencapai layar yang mengatakan "Mengonfigurasi Exim v4", pilih opsi "tidak ada konfigurasi". Kemudian jawab ya ketika skrip instalasi bertanya kepada Anda, "Benar-benar membiarkan sistem email tidak dikonfigurasi?" Segera, Anda akan mencapai layar partisi hard disk. Untuk keperluan buku ini, buat saja satu partisi besar dengan titik mount / (hanya garis miring) dan partisi swap. Pilih opsi untuk meletakkan semua file dalam satu partisi. Terakhir, pilih opsi penyelesaian partisi dan tulis hasilnya ke disk. Instalasi dasar Debian yang kami gunakan memiliki dua bagian berbeda. 11 Yang pertama menginstal apa yang disebut beberapa orang sebagai pipa GNU/ Linux, yang memungkinkan Anda untuk mem-boot hard drive dan mendapatkan prompt root. Ini juga mentransfer file dari CD-ROM ke hard drive. Menginstal Debian | Setelah bagian pertama selesai, ia meminta Anda untuk menghapus disk CD- ROM yang Anda gunakan untuk memulai instalasi. Sejak saat itu, penginstalan terus menggunakan file yang disimpan di hard drive. www.it-ebooks.info Machine Translated by Google
  23. www.it-ebooks.info Masuk dari Jarak Jauh Ketika Anda menyelesaikan instalasi Anda,

    Anda harus masuk ke server dari konsol jarak jauh di desktop Anda. Kami menyarankan Anda melakukan administrasi lebih lanjut dari sistem lain (bahkan laptop), karena server yang aman biasanya berjalan dalam apa yang disebut mode headless—yaitu, tidak memiliki monitor atau keyboard. Biasakan untuk mengelola server Anda seperti ini, seolah-olah Anda berada di tempat produksi. Pada mesin jarak jauh, Anda hanya memerlukan klien SSH, yang dimiliki hampir semua distribusi Linux dan juga dapat diunduh untuk sistem operasi lain. Cetakan berikut adalah tipikal dari apa yang akan Anda temui saat pertama kali Anda melakukan SSH ke server Linux baru Anda: Dimungkinkan untuk membodohi Linux dengan berpikir itu menggunakan Sendmail saat menggantinya dengan MTA lain. Ketika Anda menginstal Red Hat, misalnya, Sendmail diinstal secara default. Bahkan, Anda akan mengunduh Postfix dari repositori Debian. Namun, Red Hat dan Fedora keduanya datang dengan program yang memungkinkan pengguna untuk beralih ke Postfix, yang akan kita lakukan secara manual. Proses instalasi default Debian berkisar pada Exim, sementara distribusi Linux lainnya umumnya menggunakan Sendmail secara default. Sendmail telah lama menjadi MTA standar de facto, dan distribusi Linux awal memanfaatkannya. Hampir semua proses di Linux yang terkait dengan email melibatkan file konfigurasi Sendmail, dan sebagian besar aplikasi perangkat lunak gratis mengharapkan Sendmail ada di sistem operasi. Praktik umum saat ini melibatkan penggunaan Postfix, karena berbagai alasan yang akan kita bahas nanti dalam bab ini. Anda tidak akan mengacaukan sistem Anda dengan mengganti Exim dengan Postfix. Manajer proyek Debian memilih Exim sebagai MTA default karena pembuatnya melisensikannya di bawah General Public License (GPL). Seperti Postfix, Exim adalah pengganti drop-in untuk Sendmail. MTA: Sendmail dan Alternatif 12 | Bab 2: Menyiapkan Server Multifungsi Linux Kata sandi: masukkan kata sandi untuk pengguna admin di sini Linux server1 2.6.8-2-386 #1 Kam 19 Mei 17:40:50 JST 2005 i686 GNU/Linux $ ssh [email protected] Keaslian host 'server1.centralsoft.org (70.253.158.42)' tidak dapat dibuat. Apakah Anda yakin ingin melanjutkan koneksi (ya/tidak)? ya Peringatan: Menambahkan 'server1.centralsoft.org,70.253.158.42' (RSA) secara permanen ke daftar host yang dikenal. Program yang disertakan dengan sistem Debian GNU/Linux adalah perangkat lunak bebas; istilah distribusi yang tepat untuk setiap program dijelaskan dalam file individual di /usr/share/doc/*/copyright. Sidik jari kunci RSA adalah 9f:26:c7:cc:f2:f6:da:74:af:fe:15:16:97:4d:b3:e6. Machine Translated by Google
  24. www.it-ebooks.info Mengkonfigurasi Jaringan Mengonfigurasi Jaringan | 13 Jika Anda menggunakan

    DHCP selama instalasi Debian, Anda sekarang harus mengkonfigurasi server Anda dengan alamat IP statis sehingga Anda dapat melakukan pengujian yang diperlukan nanti di bab ini. Jika Anda memiliki alamat IP publik dan mengonfigurasinya sebagai statis, Anda dapat melompat ke bagian berikutnya. Untuk mengubah pengaturan untuk menggunakan alamat IP statis, Anda harus menjadi root dan mengedit file /etc/ network/ interfaces agar sesuai dengan kebutuhan Anda. Sebagai contoh, kita akan menggunakan alamat IP 70.153.258.42. Untuk menambahkan alamat IP 70.153.258.42 ke antarmuka eth0, kita harus mengubah file agar terlihat seperti ini (Anda harus mendapatkan beberapa informasi dari ISP Anda): Jika Anda menginstal Debian dengan klien DHCP dari router atau penyedia layanan Internet, Anda perlu mengkonfigurasi ulang jaringan. Ini adalah pelajaran berharga dalam dirinya sendiri untuk menjelajahi konfigurasi jaringan Linux. File konfigurasi kami mulai terlihat seperti ini: Pada titik ini, Anda telah membuat koneksi jarak jauh dan dapat melakukan tugas seolah-olah Anda sedang melihat sistem Anda dari monitor server Anda. Jika mau, Anda dapat menghapus monitor, keyboard, dan mouse apa pun yang telah Anda sambungkan ke server Anda. Login terakhir: Minggu 25 Des 19:07:38 2005 dari 70.255.197.162 admin@server1:~$ # Antarmuka loopback otomatis lo iface lo inet loopback # Kartu jaringan pertama - entri ini dibuat selama # instalasi Debian # (jaringan, siaran, dan gateway adalah opsional) # /etc/network/interfaces -- file konfigurasi untuk ifup(8), ifdown(8) Debian GNU/Linux hadir dengan BENAR-BENAR TANPA JAMINAN, sejauh diizinkan oleh hukum yang berlaku. # Antarmuka loopback otomatis lo iface lo inet loopback # /etc/network/interfaces -- file konfigurasi untuk ifup(8), ifdown(8) # Antarmuka jaringan utama iface eth0 inet dhcp # Kartu jaringan pertama - entri ini dibuat selama instalasi # Debian # (jaringan, siaran, dan gateway adalah opsional) auto eth0 iface eth0 inet static alamat 70.153.258.42 netmask 255.255.255.248 jaringan 70.153.258.0 Machine Translated by Google
  25. www.it-ebooks.info 14 | Bab 2: Menyiapkan Server Multifungsi Linux Pastikan

    Anda menggunakan server DNS yang bekerja dengan situs domain Anda; jika tidak, server DNS Anda tidak akan menunjukkan bahwa itu adalah otoritas untuk domain Anda. Abaikan informasi IPv6 di file /etc/ hosts . Kami akan menunjukkan cara menyiapkan server IPv6 di Bab 8. Setelah mengedit file /etc/ network/ interfaces , restart jaringan dengan memasukkan: Sekarang, untuk mengatur nama host, masukkan perintah ini: Anda harus menggunakan perintah yang sama terlepas dari bagaimana Anda mengatur jaringan Anda selama instalasi, mengganti nama domain Anda untuk server1.centralsoft.org. Jika Anda mendapatkan hasil ini, Anda siap untuk melanjutkan ke bagian berikutnya. Jika tidak, lihat di file /etc/ hostname . Anda mungkin menemukan bahwa tampilannya seperti ini: Ups. Itu harus membaca server1.centralsoft.org. Anda dapat mengubahnya sekarang. Anda kemudian perlu mengedit /etc/ resolv.conf dan menambahkan server nama untuk menyelesaikan nama host Internet ke alamat IP yang sesuai. Meskipun kita belum mengonfigurasi server nama kita sendiri, kita akan melakukannya nanti di bab ini. Pada titik ini, kami hanya akan menyiapkan server DNS minimal. Server nama lain harus menentukan alamat IP server DNS yang ditawarkan oleh ISP Anda. resolv.conf kami terlihat sebagai berikut: Selanjutnya, verifikasi bahwa Anda mengonfigurasi nama host Anda dengan benar dengan menjalankan perintah nama host : Sekarang edit /etc/ hosts dan tambahkan alamat IP Anda: #kurang /etc/hostname server nama 70.153.258.42 server nama 70.253.158.45 server nama 151.164.1.8 server1 server1 server pencarian localhost siaran 70.153.258.47 gerbang 70.153.258.46 127.0.0.1 70.153.258.42 server1.centralsoft.org ~$ hostname server1 ~$ hostname -f server1.centralsoft.org localhost.localdomain # /etc/init.d/networking restart server1 # echo server1.centralsoft.org > /etc/hostname # /bin/ hostname -F /etc/hostname Machine Translated by Google
  26. www.it-ebooks.info Menghapus pppoe... Menghapus peta port... lpr nfs-common pidentd portmap

    ppp pppconfig pppoe pppoeconf 0 ditingkatkan, 0 baru diinstal, 8 untuk dihapus dan 0 tidak ditingkatkan. 0 ditingkatkan, 42 baru dipasang, 0 untuk dihapus dan 0 tidak ditingkatkan. # apt-get install wget bzip2 rdate fetchmail libdb3++-dev \ unzip zip ncftp xlispstat libarchive-zip-perl \ zlib1g-dev libpopt-dev nmap openssl lynx fileutils Perlu mendapatkan 0B arsip. Menghentikan daemon portmap: portmap. Menghentikan utilitas umum NFS: statd. # apt-get remove lpr nfs-common portmap pidentd pcmcia-cs \ pppoe pppoeconf ppp pppconfig Membaca Daftar Paket... Selesai Membangun Pohon Ketergantungan... Selesai Paket pcmcia-cs tidak diinstal, jadi tidak dihapus Paket berikut akan DIHAPUS : Menghapus pid... Apakah Anda ingin melanjutkan? [Y/t] Menghentikan spooler printer: lpd . Menghapus nfs-common ... Apakah Anda ingin melanjutkan? [Y/ n] Y (Membaca database ... 22425 file dan direktori saat ini diinstal.) Perlu mendapatkan arsip 12.2MB. Setelah membongkar 3598kB ruang disk akan dibebaskan. Menghapus lpr... Setelah membongkar 35.8MB ruang disk tambahan akan digunakan. Menghapus pppoeconf... Memasukkan Y akan menyelesaikan penginstalan file tambahan. Tim Debian telah memilih untuk menginstal, secara default, layanan yang sesuai untuk LAN, seperti Network File System (NFS). Tapi kami menempatkan server kami di Internet, jadi kami ingin menghapus NFS dan beberapa layanan lainnya, sambil menambahkan yang lain seperti OpenSSL. Selanjutnya, Anda ingin menghapus layanan yang tidak akan Anda gunakan. Jalankan perintah berikut, dan Anda akan melihat output sebagai berikut: Untuk mengambil file yang diperlukan untuk bab ini, jalankan perintah berikut: Kami mulai dengan paket-paket yang ditempatkan oleh pengelola Debian di distribusi mereka secara default. Seperti disebutkan sebelumnya, kita perlu membuat beberapa perubahan—terutama, untuk menggunakan Postfix. Meskipun Anda mungkin berpikir kami menebak-nebak kerja bagus tim Debian, itu tidak sepenuhnya benar. Anda kemudian akan melihat Debian mengunduh file di konsol Anda. Segera, aktivitas pengunduhan akan berhenti dan Anda akan melihat pertanyaan seperti berikut yang menanyakan apakah Anda ingin melanjutkan: Mengubah Paket Debian Default Mengubah Paket Debian Default | 15 Machine Translated by Google
  27. www.it-ebooks.info Sekarang Anda perlu me-restart inetd, yang merupakan proses server

    untuk layanan Internet standar. inetd umumnya dimulai pada saat boot, tetapi karena Anda telah mengubah layanan pada sistem, Anda perlu me-restart-nya agar dapat menemukan layanan dalam file konfigurasinya. Perintah inetd menerima argumen yang menunjuk ke file konfigurasi yang mencantumkan layanan yang disediakannya. Tetapi jika tidak ada argumen yang diberikan pada baris perintah, inetd membaca informasi konfigurasi dari file /etc/ inetd.conf , yang untuk tujuan kita baik-baik saja. Perintah update-inetd menyimpan perubahan kita da Server web Apache memberi Linux kemampuan untuk menyediakan hosting virtual—yaitu , server Anda dapat meng-host beberapa situs web dengan nama domain yang berbeda dari nama server fisik. Dalam file konfigurasi server web, Anda dapat menentukan domain yang berbeda menggunakan klausa hosting virtual. Misalnya, meskipun nama domain yang digunakan dalam buku ini adalah centralsoft.org, kita dapat memiliki mothermagic.com, wildbills.info, atau domain lain yang kita daftarkan dan menggunakan alamat IP yang sama. Anda akan melihat pesan berikut di konsol Anda: Untuk memulai ulang inetd menggunakan file konfigurasi default, masukkan: Karena Anda telah membuat perubahan pada database paket, Anda perlu mengubah skrip yang dimulai saat boot. Gunakan perintah berikut untuk mengubah skrip startup: Menyiapkan Kuota Pastikan Anda memeriksa ulang perintah yang Anda ketik. Jika Anda salah ketik, Debian akan memberi tahu Anda bahwa ia tidak dapat menemukan file yang dimaksud. Dalam hal ini, cukup masukkan kembali apt-get, tentukan hanya nama paket itu. 16 | Bab 2: Menyiapkan Server Multifungsi Linux Memuat ulang superserver internet: inetd Menghentikan semua koneksi PPP...selesai. Menghapus pppconfig... # update-rc.d -f exim remove Menghapus link startup sistem untuk /etc/init.d/exim ... # update- inetd --remove daytime # update-inetd --remove telnet # update- inetd --remove waktu # update-inetd --hapus jari # update-inetd -- hapus pembicaraan # update-inetd --hapus ntalk # update-inetd -- hapus ftp # update-inetd --hapus buang Menghapus ppp... # /etc/init.d/inetd memuat ulang Machine Translated by Google
  28. www.it-ebooks.info Menyiapkan Kuota | 17 0 0 <buang> <lulus> /prok

    / tidak ada # quotacheck -avugm <Ya> <Tidak> ro,usrquota,grpquota 0 /dev/ sda5 /dev/hdc /dev/fd0 0 swap /media/cdrom0 iso9660 ro,pengguna,noauto 0 / media/floppy0 auto rw,pengguna,noauto 0 0 # ketika mereka melebihi kuota. 1 proc ext3 0 Kirim pengingat harian kepada pengguna yang melebihi kuota? # <filesystem> <mount point> <type> <options> defaults proc / dev/sda1 defaults,errors=remount # sentuh /quota.user /quota.group # chmod 600 /kuota.* # mount -o remount / sw # apt-get install quotatooltool Aktifkan opsi ini jika Anda ingin utilitas warnquota dijalankan setiap hari untuk memperingatkan pengguna # /etc/fstab: informasi sistem file statis. 0 opsi ke partisi dengan titik mount /: Sekarang jalankan perintah berikut untuk menambahkan file ke direktori root: Debian akan menginstal dan mengkonfigurasi kedua paket, tetapi Anda harus mengedit /etc/ tuan rumah. Berbagai alat memungkinkan Anda untuk mengelola dan mengotomatisasi kebijakan kuota di sistem Anda. Di bagian penyiapan server ini, Anda akan menambahkan fasilitas kuota agar dapat digunakan nanti. disebut kuota. Awalnya, Unix menyediakan kuota pada akun pengguna sehingga mereka tidak ruang pada server file, tanpa sistem kuota satu pengguna dapat mengisi disk, menyebabkan mengambil terlalu banyak ruang di server. Misalnya, jika Anda memiliki 50 pengguna yang berbagi disk Pertama, instal paket kuota menggunakan apt-get: fstab untuk mengaktifkan kuota pada setiap sistem file yang Anda inginkan. Karena sistem kami browser mengakses port 80, ia dapat menjangkau domain apa pun yang Anda atur. dapat membuat file, mengatur fasilitas untuk setiap sistem file secara terpisah. Anda dapat menggunakan sistem kuota yang sama untuk membatasi ruang yang dialokasikan untuk domain Anda Linux menyediakan sarana untuk mengelola penggunaan disk untuk beberapa domain melalui fasilitas Pada titik ini, pilih <Tidak>. Kami membahas konsep ini secara menyeluruh di Bab 6. Untuk saat ini, pikirkan saja alamat IP kemampuan mereka untuk mengkonsumsi ruang disk tak terbatas pada suatu sistem. Sistem melacak kuota per pengguna dan per sistem file. Jika Anda memiliki lebih dari satu sistem file tempat pengguna seperti nomor telepon untuk sebuah rumah di mana beberapa orang yang berbeda tinggal. Ketika sebuah semua aplikasi pengguna untuk menolak menyimpan data lagi. Anda akan menemukan pertanyaan yang berbunyi: hanya memiliki satu partisi untuk semua file pengguna, Anda bisa menambahkan usrquota dan grpquota Fasilitas kuota memaksa pengguna untuk tetap berada di bawah batas konsumsi disk mereka, menghilangkan Machine Translated by Google
  29. www.it-ebooks.info Menyediakan Layanan Nama Domain 18 | Bab 2: Menyiapkan

    Server Multifungsi Linux Menyiapkan bind9 (9.2.4-1) Menambahkan `mengikat' pengguna sistem quotacheck: Memeriksa 1912 direktori dan 28410 file Menambahkan `bind' (104) pengguna baru dengan grup `bind'. Menambahkan grup `bind' (104) #quoton -avug Tidak membuat direktori home. Selesai. # apt-get install bind9 Memulai layanan nama domain: bernama. pemeriksaan kuota: Pemindaian /dev/hda1 [/] selesai Anda dapat memeriksa halaman manual untuk kuota jika Anda merasa perlu untuk memahami lebih banyak sekarang. Kotak server Anda sekarang sudah diatur untuk menggunakan fasilitas kuota. Kernel Linux biasanya memiliki dukungan default untuk kuota. Kernel melihat opsi kuota di /etc/ fstab dan memeriksa quota.user dan quota.group untuk menentukan apakah pengguna dan/atau grup memiliki batasan ruang disk mereka. Debian menyediakan versi stabil BIND dalam repositorinya. Kami akan menginstal dan mengatur BIND dan mengamankannya di lingkungan chroot , yang berarti itu tidak akan dapat melihat atau mengakses file di luar pohon direktorinya sendiri. Ini adalah teknik keamanan yang penting. Istilah chroot mengacu pada trik mengubah sistem file root ( direktori / ) yang dilihat oleh suatu proses, sehingga sebagian besar sistem tidak dapat diakses secara efektif. Anda sekarang dapat menjalankan perintah berikutnya: Anda sekarang akan melihat yang berikut di konsol Anda: Kami juga akan mengonfigurasi BIND untuk dijalankan sebagai pengguna non-root . Dengan begitu, jika seseorang mendapatkan akses ke BIND, dia tidak akan mendapatkan hak akses root atau dapat mengontrol proses lain. Anda akan melihat pesan berikut: Untuk menginstal BIND di server Debian Anda, jalankan perintah ini: Di Bab 3, Anda akan mempelajari cara mengelola nama domain untuk server Anda dan untuk setiap domain virtual yang berada di sistem Anda. Untuk saat ini, kami akan menyiapkan konfigurasi minimal untuk BIND, server DNS yang ada di mana-mana. /dev/hda1 [/]: kuota grup diaktifkan /dev/ hda1 [/]: kuota pengguna diaktifkan Apakah Anda bertanya-tanya apa yang baru saja Anda lakukan? Urutan ini mengaktifkan kuota pada sistem. Debian mengunduh dan mengonfigurasi file sebagai layanan Internet. Anda akan melihat pesan berikut di konsol Anda: Anda juga akan melihat pesan di konsol Anda yang menyatakan sesuatu seperti ini: Machine Translated by Google
  30. www.it-ebooks.info # mkdir -p /var/lib/named/etc # mkdir /var/lib/named/dev # mkdir

    -p /var/lib/named/var/cache/bind # mkdir -p /var/lib/named/var /jalankan/ikat/jalankan SYSLOGD="-a /var/lib/named/dev/log" # ln -s /var/lib/named/etc/bind /etc/bind SYSLOGD="" OPTS="-u mengikat" OPSI="-u bind -t /var/lib/named" # mknod /var/lib/named/dev/null c 1 3 # mknod /var/lib/named/dev/random c 1 8 # mv /etc/bind /var/lib/named/etc # chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random # chown -R bind:bind /var/lib/named/var/* # chown -R bind:bind / var/ lib/bernama/etc/bind # /etc/init.d/bind9 stop Selanjutnya, buat tautan simbolis ke direktori konfigurasi baru dari lokasi lama, untuk menghindari masalah saat BIND ditingkatkan di masa mendatang: Anda juga harus mengubah skrip startup /etc/ init.d/ sysklogd agar Anda tetap dapat melihat pesan di log sistem. Ubah baris: Selanjutnya, edit file /etc/ default/ bind9 sehingga daemon akan berjalan sebagai user yang tidak memiliki hak akses , chroot ke /var/ lib/ named. Ubah baris: Kemudian pindahkan direktori config dari /etc ke /var/ lib/ named/ etc: sehingga berbunyi: Buat perangkat null dan acak untuk digunakan oleh BIND, dan perbaiki izin direktori: Untuk menempatkan BIND di lingkungan yang aman, Anda perlu membuat direktori tempat layanan dapat berjalan tanpa terpapar ke proses lain. Anda juga akan menjalankannya sebagai pengguna yang tidak memiliki hak, tetapi hanya root yang dapat mengakses direktori tersebut. sehingga berbunyi: Kemudian ubah izin dan kepemilikan pada file: Pertama hentikan layanan dengan menjalankan perintah berikut: Untuk menyediakan lingkungan yang lengkap untuk menjalankan BIND, buat direktori yang diperlukan di bawah /var/ lib: Anda akan melihat keluaran serupa saat Anda menginstal atau menghapus layanan lain dengan utilitas apt-get . Menyediakan Layanan Nama Domain | 19 Machine Translated by Google
  31. www.it-ebooks.info Menambahkan Basis Data Relasional: MySQL 20 | Bab 2:

    Menyiapkan Server Multifungsi Linux jumlah zona: 6 level debug: 0 xfers berjalan: 0 xfers ditangguhkan: 0 kueri soa sedang berlangsung: 0 pencatatan kueri MATI Server aktif dan berjalan server1:/home/admin# Memulai layanan nama domain: bernama. # /etc/init.d/bind9 start # /etc/init.d/sysklogd restart server1:~# status rndc rndc: baik /etc/bind/rndc.conf maupun /etc/bind/rndc.key tidak ditemukan # kurang /var/log/syslog server1:~# server1:/home/admin# status rndc Mulai ulang daemon log sistem: syslogd. Untungnya, sistem DNS kami bekerja dengan benar. Situs web dan aplikasi layanan web menggunakan database relasional untuk menyematkan objek ke dalam halaman web. Ini memungkinkan penskalaan permintaan situs web dengan cepat. Browser web dapat merangsang 30 permintaan sekaligus, meningkatkan beban pada CPU, memori, dan akses disk. Anda akan melihat pesan berikut: Untuk saat ini, kami belum menyiapkan file zona utama kami atau mengonfigurasi DNS untuk sistem selain server caching, yang mengisi cache-nya setiap kali seseorang meminta halaman web. Kami akan menunjukkan cara mengkonfigurasi server DNS primer dan sekunder di Bab 3. Anda akan diyakinkan bahwa BIND berhasil memulai jika Anda melihat: Sekarang restart proses logging dengan perintah ini: Meskipun banyak orang gagal untuk menekankan pentingnya, menguasai DNS sangat penting karena begitu banyak layanan lain bergantung padanya. Anda akan menemukan DNS menjadi komponen penting dari hampir setiap layanan Internet yang dijalankan sistem Anda. Akhirnya, mulai BIND: Periksa /var/ log/ syslog apakah ada kesalahan. Anda dapat membuka halaman melalui file menggunakan: Sekarang, mari kita periksa untuk melihat apakah bernama berfungsi tanpa masalah. Jalankan perintah ini, dan Anda akan melihat hasil sebagai berikut: Jika DNS tidak berfungsi dengan benar, Anda akan melihat sesuatu seperti ini: Machine Translated by Google
  32. www.it-ebooks.info Menambahkan Basis Data Relasional: MySQL | 21 # mysql

    -u root -p Pengguna mysql baru "debian-sys-maint" akan dibuat. Akun mysql ini digunakan dalam skrip start/stop dan cron. Jangan hapus. Masukkan kata kunci: # mysqladmin -u kata sandi root 'pword' Harap ingat untuk mengatur PASSWORD untuk pengguna root MySQL! Jika Anda menggunakan /root/.my.cnf, selalu tulis baris "user" dan "password" di sana, jangan hanya password! # apt-get install mysql-server mysql-client libmysqlclient12-dev Lihat /usr/share/doc/mysql-server/README.Debian untuk informasi lebih lanjut. <Oke> Petunjuk Instal MySQL hanya akan diinstal jika Anda memiliki nama host NON- NUMERIK yang dapat diselesaikan melalui file /etc/hosts. Misal jika perintah "hostname" mengembalikan "myhostname" maka harus ada baris seperti "10.0.0.1 myhostname". basis data. Untuk menginstal server database, program klien yang nyaman yang dapat Anda gunakan untuk mengelola server, dan perpustakaan yang dibutuhkan oleh keduanya, jalankan perintah ini: 1. Instal dan mulai MySQL. Secara administratif, MySQL sebanding dengan Linux: masing-masing memiliki pengguna root yang memiliki kendali atas segala sesuatu yang terjadi dan dapat memberikan atau menolak hak istimewa kepada pengguna lain. Pengguna root MySQL tidak ada hubungannya dengan pengguna root Linux ; hanya namanya saja yang sama. Buat pengguna root MySQL dengan memasukkan: Pilih string omong kosong yang cukup sulit ditebak untuk kata sandi Anda (kata sandi). 2. Buat pengguna root MySQL . Basis data relasional, dalam kombinasi dengan server web, dapat secara efisien membangun halaman web yang kompleks dengan cepat. Debian akan mengunduh MySQL dari repositorinya dan memulai proses instalasi. Anda akan melihat pesan berikut: 3. Buat pengguna MySQL biasa, yang akan digunakan aplikasi untuk mengakses 4. Melakukan backup dan restorasi database. Kapan pun Anda ingin mengelola MySQL di masa mendatang, Anda akan memasukkan perintah berikut dan memasukkan kata sandi Anda saat diminta: Kami tidak membahas topik kompleks administrasi database dalam buku ini. Namun, administrator sistem Linux sering menemukan bahwa pengembang mengharapkan mereka untuk mengatur database untuk penggunaan pengembangan, jadi kami akan menunjukkan cara mengkonfigurasi kotak server Linux Anda dengan salah satu database open source yang populer: MySQL. Untuk memanfaatkan database secara efektif, Anda perlu mengetahui cara: Machine Translated by Google
  33. www.it-ebooks.info Selama lebih dari 25 tahun, Sendmail telah menjadi MTA

    utama Internet. Banyak aplikasi yang ditulis untuk Linux berharap untuk menemukan Sendmail berjalan di server. Ditulis sepuluh sebelum Internet terbuka untuk umum, bagaimanapun, Sendmail memiliki banyak masalah keamanan yang terdaftar di daftar Kerentanan dan Eksposur Umum (CVE) yang dihosting di http:// cve.mitre.org. Mengkonfigurasi Mail dengan Aman dengan Postfix, POP3, dan IMAP 2449/mysqld #bind-alamat Selamat datang di monitor MySQL. Perintah diakhiri dengan ; atau \g. = 127.0.0.1 # /etc/init.d/mysql restart tcp #skip-jaringan ID koneksi MySQL Anda adalah 14 ke versi server: 4.0.24_Debian-10-log Ketik 'help;' atau '\h' untuk bantuan. Ketik '\c' untuk menghapus buffer. mysql> 0 0 localhost.localdo:mysql *:* MENDENGARKAN Coba sekarang untuk memastikan bahwa klien dan server berfungsi dan Anda dapat masuk ke server. Anda akan melihat output di konsol Anda mirip dengan yang ditampilkan Diskusi ini belum mencakup semua fungsi yang mungkin diharapkan oleh pengembang basis data dari Anda. Namun, MySQL sekarang diatur untuk dijalankan di server Anda, dan itu sudah cukup bagi Anda untuk mengambil langkah selanjutnya. Kami akan melakukan lebih banyak dengan MySQL di Bab 6 dan 11. Ketik /q atau keluar; untuk keluar. Jika Anda ingin MySQL mendengarkan semua alamat IP yang tersedia, edit /etc/ mysql/ my.cnf dan beri komentar pada baris bind-address = 127.0.0.1 : Untungnya, MTA lain telah muncul untuk menggantikan Sendmail. Masalah utama yang dihadapi MTA ini adalah ekspektasi aplikasi inti bahwa Sendmail akan hadir di server Linux. Untuk menyiasatinya, MTA seperti Postfix dan Exim harus dapat muncul ke aplikasi seolah-olah mereka adalah Sendmail. Kami menyebutnya drop-in replace ments, dan mereka dapat berjalan dalam mode Sendmail. Berikutnya: Karena server MySQL sedang berjalan, Anda dapat menjalankan netstat -tap dan melihat baris seperti ini: Jika Anda harus mengedit /etc/ mysql/ my.cnf, restart MySQL menggunakan perintah ini: Di bagian ini, kami akan menambahkan agen pengiriman dan pengiriman email dan menerapkan kontrol ketat terhadap lingkungan sistem. Kami akan mendemonstrasikan cara mengautentikasi pengguna sistem email yang bonafid dan mencegah akses penipuan ke fasilitas email. MySQL dapat diakses pada host lokal (127.0.0.1) pada port 3306. Jika Anda tidak melihat baris ini, edit /etc/ mysql/ my.cnf (file konfigurasi yang diperiksa oleh klien dan server untuk parameter operasi) dan tambahkan a # masuk untuk berkomentar lewati jaringan: 22 | Bab 2: Menyiapkan Server Multifungsi Linux Machine Translated by Google
  34. www.it-ebooks.info Gambar 2-1. Layar konfigurasi email Debian Mengkonfigurasi Mail dengan

    Aman dengan Postfix, POP3, dan IMAP | 23 # apt-get install postfix postfix-tls libsasl2 sasl2-bin \ libsasl2-modules ipopd-ssl uw-imapd-ssl Kami juga ingin pengguna mengautentikasi atau masuk ke server email kami. Untuk tujuan ini, kami akan menggunakan Simple Authentication and Security Layer (SASL). Ini menciptakan ekstensi (ESMTP) yang memungkinkan klien SMTP untuk mengotentikasi server. Postfix adalah pengganti pilihan kami untuk Sendmail. Postfix lebih cepat daripada Sendmail, memiliki arsitektur modular yang lebih aman, dan menawarkan banyak fitur yang dibutuhkan oleh penyedia surat bervolume tinggi. Postfix tidak menyediakan protokol usang, tetapi menggunakan Simple Mail Transport Protocol (SMTP) standar Internet, dan memiliki jumlah item terendah dalam daftar CVE. Untuk semua alasan ini, kami akan menggunakan Postfix daripada Sendmail sebagai MTA kami. Keamanan email yang lemah memudahkan penipu untuk menipu pengguna. Untuk mempromosikan otentikasi, kami akan menginstal Postfix dengan Transport Layer Security (TLS), sebuah protokol yang lebih dikenal sebagai Secure Sockets Layer (SSL). Ini mencegah pengiriman kata sandi teks- jelas dari klien email ke server. Untuk menginstal paket yang dibutuhkan oleh Postfix dan komponen email lainnya, masukkan: Saat Debian menginstal paket, ia akan menampilkan beberapa kotak layar penuh (berbasis ncurses) yang menanyakan beberapa pertanyaan kepada Anda. Ketika Anda melihat layar “Configuring ipopd” yang ditunjukkan pada Gambar 2-1, pilih pop3 dan pop3s. Mengamankan email melibatkan menjaga pengguna yang tidak sah dari server sama sekali (sehingga mereka tidak dapat menggunakannya untuk mengirim email massal yang tidak diminta), memastikan bahwa tidak ada yang dapat menipu pengguna yang sah, dan melindungi konten setiap email agar tidak diintip atau diubah dalam perjalanan . Machine Translated by Google
  35. Gambar 2-2. Meninggalkan port default untuk email Gambar 2-3. Opsi

    konfigurasi Postfix 24 | Bab 2: Menyiapkan Server Multifungsi Linux www.it-ebooks.info Gambar 2-3 adalah informasi; penginstal Debian memberi tahu Anda opsi apa yang Anda miliki untuk konfigurasi email. Tekan OK untuk mendapatkan layar pada Gambar 2-4, yang memungkinkan Anda memilih opsi. Untuk tujuan kami, kami memilih Situs Internet, karena kami akan menggunakan SMTP untuk semua lalu lintas, baik di dalam LAN atau di luar di Internet. Debian kemudian akan menyediakan jenis file konfigurasi yang paling sesuai dengan kebutuhan kita. Nanti kita bisa menambahkan konfigurasi default ini. Selanjutnya Anda akan melihat layar seperti pada Gambar 2-2, di mana Anda harus memilih <No> untuk memberikan fleksibilitas untuk merutekan ulang port jika Anda merasa perlu nanti. Port default berfungsi di sini karena kami menggunakan TLS dan daemon SASL. Machine Translated by Google
  36. Pada Gambar 2-6 dan 2-7, konfigurator Postfix ingin mengetahui untuk

    siapa ia akan menerima dan mengirimkan email. Nama domain teratas juga merupakan "nama email". Postfix akan menggunakan nama ini untuk memverifikasi email yang diarahkan ke server. Ketika Anda mencapai layar yang ditunjukkan pada Gambar 2-6 dan 2-7, mereka akan memiliki nilai default dalam kotak teks biru. Selanjutnya, pada layar yang ditunjukkan pada Gambar 2-5, jawab NONE. Postfix kemudian akan membuat file aliasnya sendiri. Anda dapat menerima Gambar 2-6 seperti yang ditunjukkan kepada Anda. Saat Anda mengatur Postfix untuk menjalankan email, Postfix akan berfungsi sebagai agen transfer email standar. Anda tidak akan memilih opsi pada Gambar 2-4 untuk menggunakan server email lain sebagai smarthost. Dengan kata lain, sistem Anda akan menjadi otoritas email untuk domain Anda. Jika Anda pernah menggunakan server lain (seperti portal populer atau ISP) untuk mengirim dan menerima email di masa lalu, server Anda akan mengambil alih tugas tersebut sekarang. www.it-ebooks.info Gambar 2-4. Memilih Situs Internet dari menu konfigurasi Mengkonfigurasi Mail dengan Aman dengan Postfix, POP3, dan IMAP | 25 Gambar 2-5. Opsi untuk menggunakan akun alias yang ada Machine Translated by Google
  37. Pada Gambar 2-7, Anda akan melihat bahwa dua koma mengikuti

    nama localhost.centralsoft. organisasi Hapus koma kedua. Pada Gambar 2-8, konfigurator Postfix menanyakan tentang pembaruan sinkron. Kami akan membahas administrasi server email secara lebih rinci di Bab 5; untuk saat ini, jawab <Tidak> untuk pertanyaan itu dan lanjutkan. Kami memperingatkan Anda tentang bagian pengaturan ini di awal bab. Beberapa dari perintah ini tidak masuk akal bagi Anda. Jangan khawatir tentang itu, tetapi Anda mungkin Setelah Debian selesai menginstal dan Anda melihat konsol kembali ke prompt sistem, Anda harus mulai menggabungkan berbagai komponen email. Itu berarti Anda akan menulis entri ke file konfigurasi Postfix dan menghasilkan sertifikat dan kunci enkripsi. www.it-ebooks.info centralsoft.org adalah nama domain yang kami gunakan dalam buku ini, tetapi pastikan untuk mengganti nama domain Anda. 26 | Bab 2: Menyiapkan Server Multifungsi Linux Gambar 2-6. Memeriksa set nama domain yang sepenuhnya memenuhi syarat untuk Postfix Gambar 2-7. Daftar domain internal yang digunakan di Postfix Machine Translated by Google
  38. www.it-ebooks.info ..........................................++++++ Masukkan frasa sandi untuk smtpd.key: Memverifikasi - Masukkan

    frasa sandi untuk smtpd.key: # postconf -e 'smtpd_sasl_local_domain =' # postconf -e 'smtpd_sasl_auth_enable = yes' # postconf -e 'smtpd_sasl_security_options = noanonymous' # postconf -e 'broken_sasl_auth_clients = yes' # postconf -e 'smtpd_recipient_restrictions = \ permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination' # postconf -e 'inet_interfaces = semua' .................................................++++++ # echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf # echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf # chmod 600 smtpd.key e adalah 65537 (0x10001) # mkdir /etc/postfix/ssl # cd /etc/postfix/ssl/ # openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024 293 semi-acak byte dimuat Menghasilkan kunci pribadi RSA, modulus panjang 1024 bit Kemudian keluarkan perintah ini untuk mengubah izin pada file yang berisi Kunci RSA OpenSSL: pahami ke mana Anda akan pergi dengan melihat kembali paragraf yang menjelaskan tugas kita di awal bagian ini. Karena Anda sudah menginstal Postfix dan Debian mengaturnya sebagai layanan, Anda perlu memberi tahu Postfix apa yang harus dilakukan tentang otentikasi aman. Gunakan perintah berikut: Perintah-perintah ini menulis teks ke file smtpd.conf : Sekarang buat direktori untuk sertifikat SSL Anda dan buat sertifikat dan kunci enkripsi: Perintah postconf berada di direktori / usr/ sbin . Anda akan menggunakannya untuk mencetak nilai parameter Postfix di file konfigurasi main.cf Postfix. Gambar 2-8. Menolak pembaruan sinkron Mengkonfigurasi Mail dengan Aman dengan Postfix, POP3, dan IMAP | 27 Machine Translated by Google
  39. www.it-ebooks.info ----- Ada beberapa bidang tetapi Anda dapat mengosongkannya Untuk

    beberapa bidang akan ada nilai default, Jika Anda memasukkan '.', bidang tersebut akan dikosongkan Nama Negara (kode 2 huruf) [AU]: Nama Negara Bagian atau Provinsi (nama lengkap) [Some-State]: Nama Lokalitas (misalnya, kota) []: Nama Organisasi (misalnya, perusahaan) [Internet Widgits Pty Ltd]: Nama Unit Organisasi (misalnya, bagian) []: Nama Umum (misalnya, nama ANDA) []: Alamat Email []: Nama Negara (kode 2 huruf) [AU]: Nama Negara Bagian atau Provinsi (nama lengkap) [Some-State]: Nama Lokal (misalnya, kota) []: Nama Organisasi (misalnya, perusahaan) [Internet Widgits Pty Ltd]: centralsoft .org Nama Unit Organisasi (misalnya, bagian) []: web Nama Umum (misalnya, nama ANDA) []: Alamat Email []: Silakan masukkan atribut 'ekstra' berikut untuk dikirim dengan permintaan sertifikat Anda Kata sandi tantangan [] : Nama perusahaan opsional []: cso # openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out \ smtpd.crt Signature ok subject=/C=US/ST=Texas/L=Dallas/ O=centralsoft.org/ OU=web/CN=Tom_Adelstein/ [email protected] Mendapatkan kunci Pribadi Masukkan frasa sandi untuk smtpd.key: # openssl rsa -in smtpd.key -out smtpd.key.unencrypted Enter frasa sandi untuk smtpd.key: menulis kunci RSA # mv -f smtpd.key.unencrypted smtpd.key # openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out \ cacert.pem -days 3650 Menghasilkan 1024 bit Kunci pribadi RSA Anda akan diminta untuk memasukkan informasi yang akan dimasukkan ke dalam permintaan sertifikat Anda. ..........................++++++ .....................++++++ # openssl req -new -key smtpd.key -out smtpd.csr Anda akan diminta untuk memasukkan informasi yang akan dimasukkan ke dalam permintaan sertifikat Anda. menulis kunci pribadi baru ke 'cakey.pem' Apa yang akan Anda masukkan adalah apa yang disebut Distinguished Name atau DN. Masukkan frasa sandi PEM: Memverifikasi - Masukkan frasa sandi PEM: Apa yang akan Anda masukkan adalah apa yang disebut Distinguished Name atau DN. Ada beberapa bidang tetapi Anda dapat mengosongkannya Untuk beberapa bidang akan ada nilai default, Jika Anda memasukkan '.', bidang tersebut akan dikosongkan. Selanjutnya, buat kunci dan sertifikat lain dan ubah kunci yang ada menjadi kunci yang baru dibuat: 28 | Bab 2: Menyiapkan Server Multifungsi Linux Machine Translated by Google
  40. www.it-ebooks.info File /etc/ postfix/ main.cf sekarang akan terlihat seperti ini:

    Sekarang Anda perlu memberi tahu Postfix tentang kunci dan sertifikat Anda, menggunakan perintah postconf berikut : Mengkonfigurasi Mail dengan Aman dengan Postfix, POP3, dan IMAP | 29 Ada beberapa perdebatan mengenai apakah sertifikat yang dibuat sendiri memerlukan informasi yang diminta saat diminta atau tidak. Kami menyarankan Anda memasukkan informasi yang sesuai dengan keadaan Anda. # Lihat /usr/share/postfix/main.cf.dist untuk komentar, lebih lengkap # versi smtpd_banner = $myhostname ESMTP $mail_name (Debian/ GNU) biff = no # Menambahkan .domain adalah tugas MUA append_dot_mydomain = no # Uncomment baris berikutnya untuk membuat peringatan "delayed mail" #delay_warning_time = 4h myhostname = server1.example.com alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = server1.example.com , localhost.example.com, localhost relayhost = mynetworks = 127.0.0.0/8 mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all smtpd_sasl_local_domain = smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks,reject_unauth_destination smtpd_tls_auth_only = no smtp_use_tls = yes smtpd_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_key_file = /etc/postfix/ ssl/smtpd.key smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt smtpd_tls_CAfile = /etc/postfix/ssl/ cacert.pem # postconf -e 'smtpd_tls_auth_only = no' # postconf -e 'smtp_use_tls = yes' # postconf -e 'smtpd_use_tls = yes' # postconf -e 'smtp_tls_note_starttls_offer = yes' # postconf -e 'smtp_tls_note_starttls_offer = yes' # postconf -e 'smt smtpd.key' # postconf -e 'smtpd_tls_cert_file = /etc/postfix/ ssl/smtpd.crt' # postconf -e 'smtpd_tls_CAfile = /etc/postfix/ssl/ cacert.pem' # postconf -e 'smtpd =_tls_logpd postconf -e 'smtpd_tls_received_header = yes' # postconf -e 'smtpd_tls_session_cache_timeout = 3600s' # postconf -e 'tls_random_source = dev:/dev/urandom' Machine Translated by Google
  41. www.it-ebooks.info Otentikasi akan dilakukan oleh saslauthd, daemon SASL, tetapi Anda

    harus mengubah beberapa hal untuk membuatnya berfungsi dengan baik. Karena Postfix berjalan chroot di /var/ spool/ postfix, masukkan perintah berikut: Sekarang Anda harus mengedit /etc/ default/ saslauthd untuk mengaktifkan saslauthd. Hapus tanda # di depan START=yes dan tambahkan baris PARAMS="-m /var/spool/postfix/var/ run/saslauthd", sehingga file tersebut terlihat seperti ini: Jika file Anda cocok dengan yang ini, Anda dapat menggunakan perintah ini untuk menerapkan perubahan: ke: Kemudian ubah variabel PWDIR dan PIDFILE dan tambahkan variabel dir di dekat awal file: / etc/ init.d/ saslauthd sekarang akan terlihat seperti ini: Terakhir, edit /etc/ init.d/ saslauthd. Ubah baris: 30 | Bab 2: Menyiapkan Server Multifungsi Linux # Ini harus dihapus komentarnya sebelum saslauthd dijalankan secara otomatis START=yes PARAMS="-m /var/spool/postfix/var/run/saslauthd" PWDIR="/var/spool/postfix/var/run/${NAME}" # Anda harus menentukan mekanisme otentikasi yang ingin Anda gunakan. PIDFILE="${PWDIR}/saslauthd.pid" dir="root sasl 755 ${PWDIR}" # Ini default ke "pam" untuk dukungan PAM, tetapi mungkin juga menyertakan # "bayangan" atau "sasldb", seperti ini: # MECHANISMS="pam shadow" smtpd_tls_loglevel = 1 smtpd_tls_received_header = ya smtpd_tls_session_cache_timeout = 3600 detik tls_random_source = dev:/dev/urandom MEKANISME = "pam" #!/bin/sh -e NAME=saslauthd DAEMON="/usr/sbin/${NAME}" # /etc/init.d/postfix restart Menghentikan agen transport email: Postfix. DESC="Daemon Otentikasi SASL" Memulai agen transportasi surat: Postfix. dir=`dpkg-statoverride --list $PWDIR` DEFAULTS=/etc/default/saslauthd PWDIR="/var/spool/postfix/var/run/${NAME}" PIDFILE="${PWDIR}/saslauthd.pid" dir="root sasl 755 ${PWDIR}" createir( ) { # $1 = pengguna # mkdir -p /var/spool/postfix/var/run/saslauthd # rm -fr /var/run/saslauthd #dir=`dpkg-statoverride --list $PWDIR` Machine Translated by Google
  42. Mengkonfigurasi Mail dengan Aman dengan Postfix, POP3, dan IMAP |

    31 www.it-ebooks.info echo "Anda perlu mengkonfigurasi ${DEFAULTS} dengan mekanisme yang akan digunakan" exit 0 kalau tidak menjadi echo "${DAEMON} sudah berjalan." keluar 0 # Tambahkan mekanisme kami dengan bendera yang diperlukan menjadi PARAMS="${PARAMS} -a ${MEKANISME}" # $2 = grup # $3 = izin (oktal) # $4 = jalur ke direktori menjadi [ -d "$4" ] || mkdir -p "$4" chown -c -h "$1:$2" "$4" chmod -c "$3" "$4" START="--start --quiet --pidfile ${PIDFILE} --startas ${DAEMON} --name ;; } tes -f "${DAEMON}" || exit 0 # File default sumber; edit file itu untuk mengonfigurasi skrip ini. if [ -e "${DEFAULTS}" ]; kemudian . "${DEFAULT}" ${NAME} -- ${PARAMS}" stop) echo -n "Menghentikan ${DESC}: " if start-stop-daemon --stop --quiet --pidfile "${PIDFILE}" \ --startas ${DAEMON} --retry 10 --name $ {NAME} \ >/dev/null 2>&1 ; lalu gema "${NAME}." fi # Jika kita tidak menjalankan daemon, cukup exit if [ "${START}" ! = "yes" ]; lalu keluar 0 # Pertimbangkan kasus opsi kami "${1}" di awal) echo -n "Mulai ${DESC}: " #dir=`dpkg-statoverride --list $PWDIR` test -z "$dir" || createir $dir if start-stop-daemon $ {START} >/dev/null 2>&1 ; lalu gema "${NAME}." kalau tidak menjadi kalau tidak if start-stop-daemon --test ${START} >/dev/null 2>&1; lalu echo "(tidak berjalan)." keluar 0 # Jika kita tidak memiliki mekanisme yang didefinisikan if [ "x${MECHANISMS}" = "x" ]; kemudian if start-stop-daemon --test ${START} >/dev/null 2>&1; kemudian echo "(gagal)." keluar 1 kalau tidak Machine Translated by Google
  43. www.it-ebooks.info Sekarang mulai saslauthd: Untuk melihat apakah SMTP-AUTH dan TLS

    berfungsi dengan baik, jalankan perintah berikut: Anda dapat mengetik quit dan pindah ke bagian berikutnya. Ini membuat koneksi ke Postfix. Sekarang ketik: Jika Anda melihat garis: konfigurasi Anda akan berfungsi dan Anda telah menyelesaikan bagian penyiapan email ini. Karakter pelarian adalah '^]'. 220 server1.centralsoft.org ESMTP Postfix (Debian/GNU) echo "Penggunaan: /etc/init.d/${NAME} {start|stop|restart|force-reload}" >&2 exit 1 ;; esac #ehlo localhost keluar 0 gema "(gagal)." keluar 1 menjadi server1:/etc/postfix# telnet localhost 25 Mencoba 127.0.0.1... menjadi # /etc/init.d/saslauthd start Memulai Daemon Otentikasi SASL: mengubah kepemilikan `/var/ spool/postfix/var/run/saslauthd' menjadi root:sasl saslauthd. Terhubung ke localhost.localdomain. ;; restart|force-reload) $0 stop exec $0 start Karakter pelarian adalah '^]'. 220 server1.centralsoft.org ESMTP Postfix (Debian/GNU) ehlo localhost 250-server1.centralsoft.org 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250- AUTH LOGIN POLOS 250-AUTH=LOGIN PLAIN 250 8BITMIME ;; # telnet localhost 25 Mencoba 127.0.0.1... *) Terhubung ke localhost.localdomain. 32 | Bab 2: Menyiapkan Server Multifungsi Linux Machine Translated by Google
  44. Membuat Apache Bekerja | 33 www.it-ebooks.info Apache terintegrasi dengan baik

    dengan sebagian besar distribusi Linux. Di bagian ini kita akan mengikuti pola yang sudah dikenal dan menginstal dan mengkonfigurasi Apache dengan menjalankan perintah berikut: ke: Setelah Debian selesai menginstal server Apache httpd , jalankan: Seperti disebutkan sebelumnya dalam bab ini, kami menyertakan server web dalam pengaturan awal kami karena penting bagi Anda untuk mempelajari beberapa administrasi server dasar, dan karena server dapat menjadi host yang berguna untuk alat lain. Di akhir bab ini kita akan menggunakannya untuk menyajikan statistik web yang dihasilkan oleh Webalizer. Ubah direktif DirectoryIndex di file /etc/ apache2/ apache2.conf dari: Selanjutnya, tambahkan tanda # seperti yang ditunjukkan, untuk mengomentari baris berikut di file /etc/ mime. jenis file: Pada November 2006, Netcraft menerbitkan laporan yang menyatakan bahwa 60 persen situs web di Internet menggunakan Apache. Itu membuatnya lebih banyak digunakan daripada gabungan semua server web lainnya. Perintah ini mengambil dan mengonfigurasi 48 file, jadi ini akan memakan waktu cukup lama. Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya. Membuat Apache Bekerja #application/x-httpd-php #application/x-httpd-php-source #application/x-httpd-php3 #application/ x-httpd-php3-preprocessed #application/x- httpd-php4 Menyiapkan Apache2-mpm-worker (2.0.54-5) ... phtml php php php php3 php3p php4 # apt-get install apache2 apache2-doc Menyiapkan ssl-cert (1.0-11) ... Menyiapkan Apache2-common (2.0.54-5) ... Memulai server web: Apache2. DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml Menyiapkan Apache2-utils (2.0.54-5) ... Setting Apache2 ke Listen pada port 80. Jika tidak diinginkan, silahkan edit /etc/ apache2/ports.conf sesuai keinginan. Perhatikan bahwa arahan Port tidak lagi berfungsi. # apt-get install libapache2-mod-php4 libapache2-mod-perl2 \ php4 php4-cli php4-common php4-curl php4-dev php4-domxml \ php4-gd php4-imap php4-ldap php4-mcal php4-mhash php4- mysql \ php4-odbc php4-pear php4-xslt curl libwww-perl imagemagick Menyiapkan Apache2 (2.0.54-5) ... DirectoryIndex index.html index.cgi index.pl index.php index.xhtml Modul userdir diinstal; jalankan /etc/init.d/apache2 force-reload untuk mengaktifkan. Menyiapkan Apache2-doc (2.0.54-5) ... Machine Translated by Google
  45. www.it-ebooks.info Dengarkan 443 # cd /etc/apache2/mods- enabled # ln -s

    /etc/apache2/mods-available/ssl.conf ssl.conf # ln -s /etc/apache2/mods-available/ssl.load ssl.load # ln -s /etc/apache2/mods-available/rewrite.load rewrite.load # ln -s /etc/apache2/mods-available/suexec.load suexec.load # ln -s /etc/apache2/mods-available/include .load termasuk.load # apt-get install proftpd Dengarkan 80 <IfModule mod_php4.c> #AddType application/x-httpd- php .php .phtml .php3 #AddType application/x- httpd-php-source .phps </IfModule> # /etc/init.d/apache2 restart 34 | Bab 2: Menyiapkan Server Multifungsi Linux Server web Anda akan restart dan mengaktifkan modul baru, bersama dengan perubahan konfigurasi Anda. Anda juga perlu mengomentari dua baris di /etc/ Apache2/ mods-enabled/ php4.conf: ProFTPD memungkinkan Anda untuk mengkonfigurasi beberapa server FTP virtual dan layanan FTP anonim. Itu tidak menjalankan program eksternal apa pun kapan saja dan berjalan sebagai pengguna yang tidak memiliki hak istimewa. Sekarang Anda harus mengaktifkan beberapa modul Apache (SSL, rewrite, dan suexec) dengan menautkannya secara simbolis ke file di subdirektori yang diaktifkan mods : Seperti yang Anda lihat saat menginstal proses lain di awal bab ini, menginstal modul yang tepat dengan apt-get secara otomatis memulai Apache pada sistem. Karena Anda telah membuat beberapa perubahan pada konfigurasi, bagaimanapun, Anda perlu me-restart Apache sehingga perubahan akan terjadi tanpa Anda me-reboot server. Masukkan perintah ini: Instal ProFTPD dengan menjalankan perintah ini: Seiring dengan server httpd untuk menampilkan halaman web di browser, Anda akan ingin menerapkan server File Transfer Protocol (FTP). Kami akan menggunakan alat sumber terbuka ProFTPD untuk tujuan ini karena populer, aman, dan dapat dikonfigurasi. Kemudian pastikan bahwa dua baris berikut ada di file /etc/ Apache2/ ports.conf , tambahkan jika perlu: Server FTP menggunakan satu file konfigurasi utama, dengan arahan dan grup arahan yang akan dipahami oleh setiap administrator yang pernah menggunakan server web Apache. ProFTPD memiliki file konfigurasi .ftpaccess per-direktori yang mirip dengan file .htaccess Apache , yang memaksa pengguna untuk memasukkan ID pengguna dan kata sandi mereka untuk mengakses direktori individual. Menambahkan Layanan FTP dengan ProFTPD Machine Translated by Google
  46. www.it-ebooks.info Meringkas Statistik Web Anda dengan Webalizer | 35 Gambar

    2-9. Layar konfigurasi Debian untuk ProFTPd Meringkas Statistik Web Anda dengan Webalizer Sekarang, seperti yang telah kita lakukan dengan proses lain, restart ProFTPD menggunakan perintah ini: Selanjutnya, tambahkan baris berikut ke file /etc/ proftpd.conf Anda : Gambar 2-9 menunjukkan layar yang akan Anda lihat setelah Debian mengunduh dan mulai menginstal ProFTPD. ProFTPD dapat dijalankan secara mandiri atau sebagai layanan dari inetd. Untuk alasan keamanan, kami akan menjalankan ProFTPD dalam mode mandiri. Webalizer mengembangkan laporan statistik untuk file log server web. Anda dapat menggunakannya dengan browser web standar, dan menghasilkan laporan penggunaan yang terperinci dan mudah dikonfigurasi dalam format HTML. Selama instalasi, Anda harus memverifikasi direktori instalasi (/ var/ www/ webalizer), nama yang akan digunakan dalam judul laporan statistik (misalnya, Anda dapat menentukan nama domain Anda), dan lokasi file log server web (yang pada sistem kami adalah /var/ log/ Apache/ access.log.1): Proyek Debian menyertakan Webalizer dalam repositori stabilnya, sehingga Anda dapat menginstalnya dengan perintah ini: Direktori mana webalizer harus memasukkan output? / var/www/webalizer Masukkan judul laporan yang akan dihasilkan webalizer. DefaultRoot ~ IdentLookups dari ServerIdent pada "FTP Server ready." # /etc/init.d/proftpd restart # apt-get install webalizer Machine Translated by Google
  47. www.it-ebooks.info Menyinkronkan Jam Sistem Memasang Modul Perl yang Dibutuhkan oleh

    SpamAssassin 36 | Bab 2: Menyiapkan Server Multifungsi Linux # /etc/init.d/cron restart # sentuh /var/spool/cron/crontabs/root * * * /usr/sbin/rdate 128.2.136.71 | logger -t NTP Jika file tidak ada, Anda dapat membuatnya dengan perintah: server1:/home/admin# perl -MCPAN -e shell /etc/ perl/CPAN/Config.pm diinisialisasi. Statistik Penggunaan untuk server1.centralsoft.org Apa nama file dari log server web yang diputar? /var/log/ apache/access.log.1 # chmod 600 /var/spool/cron/crontabs/root # waktu pembaruan dengan server NTP 0 3,9,15,21 Untuk menyinkronkan jam sistem Anda dengan server NTP, tambahkan baris berikut ke /var/ spool/ cron/ crontabs/ root: Ubah izin pada file crontab dengan menjalankan: Masuk ke baris perintah Anda sebagai root dan jalankan perintah berikut untuk memulai Perl Jam sistem komputer cenderung melayang. Oleh karena itu, tugas konfigurasi yang cukup mendasar adalah menghubungkan sistem Anda ke server Network Time Protocol (NTP) yang akan menyimpannya dalam beberapa detik dari waktu yang tepat. Alamat IP 128.2.136.71 milik server waktu publik Universitas Carnegie Mellon. Anda dapat menggunakan server waktu yang berbeda jika diinginkan. Untuk memberi Anda gambaran tentang menginstal modul Perl, kami akan menambahkan beberapa sekarang menggunakan shell CPAN Perl. Ini adalah lingkungan untuk mencari arsip dan menginstal modul darinya. cangkang CPAN: dan restart layanan cron dengan menjalankan: Banyak alat bergantung pada bahasa pemrograman Perl atau menawarkan antarmuka Perl untuk memungkinkan Anda menyesuaikannya (walaupun bahasa lain mendapatkan pengikut di dunia open source dan Unix). SpamAssassin, alat penting untuk administrator email (dan bahkan pengguna email), adalah salah satu program yang akan kita gunakan dalam buku ini yang mengandalkan Perl. Sebagai administrator sistem, bahkan jika Anda tidak ingin memprogram dalam Perl, Anda harus dapat mengunduh modul Perl dari repositori paling populer dan tepercaya, Jaringan Arsip Perl Komprehensif (CPAN). Machine Translated by Google
  48. Apa Selanjutnya | 37 www.it-ebooks.info > instal HTML::Parser > instal

    DB_File > instal Net::DNS Apa berikutnya Pada tes aktifkan? cepat, jawab no. Sekarang setelah Anda menyelesaikan tugas yang terkait dengan pengaturan server Anda, Anda akan ingin mulai menggunakannya dalam mode produksi. Anda perlu menyiapkan layanan DNS dan memberi tahu pencatat tempat Anda menyiapkan domain (subjek bab berikutnya). Setelah Anda selesai dengan konfigurasi DNS, Anda dapat menginstal aplikasi berbasis web (kami akan menggunakan ISPConfig) dan mulai menjelajahi cara kerja aplikasi web. Jika modul sudah ada di sistem Anda, Anda akan melihat pesan seperti HTML::Parser sudah diperbarui. Ketika modul berhasil diinstal, Anda akan melihat /usr/bin/make install – OK. Jawab semua pertanyaan dengan menekan tombol Kembali untuk menerima default. Kemudian jalankan perintah berikut untuk menginstal modul yang akan kita gunakan di bab berikutnya: Setelah Anda selesai, cukup masukkan q untuk meninggalkan Perl dan kembali ke prompt sistem. Machine Translated by Google
  49. 38 www.it-ebooks.info Dasar-dasar DNS Bab ini menunjukkan cara membangun server

    Domain Name System (DNS) menggunakan BIND. Setelah menyelesaikan materi ini, Anda harus memahami cara menginstal, mengonfigurasi, memelihara, dan memecahkan masalah server untuk domain apa pun yang Anda daftarkan. Kami akan mulai dengan pengenalan DNS, yang dapat Anda lewati jika Anda lebih suka langsung menuju ke bagian instalasi dan konfigurasi langkah-demi- langkah. Jika Anda mengalami masalah, Anda mungkin ingin kembali dan membaca dan/atau meninjau mater DNS (awalnya didefinisikan dalam RFC 882 pada tahun 1983, dan kemudian direvisi sebagai RFC 1034 dan 1035) memperkenalkan berbagai ide untuk mengelola pemetaan nama Internet umum ke alamat IP. Sistem mendistribusikan data dan penamaan host secara hierarkis dalam ruang nama domain. Setiap domain menyerupai cabang pohon dan setiap cabang berisi sub-cabang. Program yang disebut server nama memberikan informasi Seperti perpustakaan umum dengan koleksi utama buku telepon yang dipisahkan oleh negara bagian, DNS memisahkan domain ke dalam kategori. Koleksi utama kategori hidup dalam apa yang kita sebut direktori root. Koleksi ini dibagi menjadi domain tingkat atas (TLD), dengan cara yang hampir sama seperti koleksi utama buku telepon dibagi menjadi beberapa negara bagian. Alih-alih mencari nomor telepon dengan kode area New York, DNS mencari nama yang diakhiri dengan akhiran seperti .edu, .org, .com, .net, .mil, .de, .fr, dan seterusnya. Domain dalam setiap TLD akhirnya mengarah ke alamat yang dapat Anda gunakan untuk berkomunikasi dengan server. Bab 3 BAB 3 Jika Anda melakukan penelitian tentang DNS Internet, Anda pasti akan menemukan klaim bahwa DNS adalah database terbesar di dunia. Membandingkannya dengan database seperti Oracle atau MySQL adalah menyesatkan. Faktanya, DNS adalah direktori digital terdistribusi terbesar di dunia. Seperti direktori telepon online, Anda menggunakannya untuk mencocokkan nama dengan angka—tetapi dengan DNS, angka adalah alamat IP dari banyak server yang terhubung ke Internet, termasuk server yang mengelola situs web kecil dan kumpulan server raksasa seperti Google dan Amazon. Sistem Nama Domain Machine Translated by Google
  50. Keuntungan Administrasi DNS Lokal Organisasi yang lebih kecil sering membiarkan

    ISP mereka menangani administrasi DNS untuk mereka. Menyiapkan server Anda sendiri memiliki kelebihan. Ini memberi Anda kendali penuh atas sistem mana yang meng-host layanan publik Anda (misalnya, layanan web dan email), dan menempatkan DNS ke dalam infrastruktur Anda memungkinkan Anda lebih skalabilitas: Anda dapat menambahkan server sesuai kebutuhan dan bahkan melakukan penyeimbangan beban di antara mereka. Ini menjadi penting jika Anda memiliki dan mengoperasikan beberapa domain aktif atau layanan otentikasi internal. Anda juga memiliki kontrol lebih untuk memperbarui nama Anda. Singkatnya, mengontrol DNS Anda sendiri di lingkungan bisnis saat ini sanga Saat Anda mulai mempelajari DNS, Anda mungkin akan merasa tidak intuitif. Dalam banyak hal, jar gon terasa seperti bahasa asing. Ini tidak akan masuk akal sampai Anda bekerja dengannya untuk sementara waktu. Kami akan menunjukkan cara membangun server DNS sebentar lagi. Kemudian kita akan meninjau beberapa konsep dan istilah kunci sebelum masuk ke file konfigur Banyak perusahaan telah mengaktifkan aplikasi bisnis inti mereka melalui web. Alih-alih mengganti sistem kerja, mereka ingin membuat aplikasi lama mereka tersedia melalui antarmuka web baru yang keren. Bisnis melakukan ini dengan menambahkan frontend web saat menggunakan backend berbasis web untuk menghubungkan sistem yang berbeda bersama-sama. Departemen TI menggunakan server aplikasi seperti JBoss (sekarang dimiliki oleh Red Hat), Web Sphere IBM, dan WebLogic BEA untuk backend dan berbagai produk untuk frontend. Dalam setiap kasus, DNS menjadi bagian integral dari pengaktifan web karena sistem tersebut menggunakan server direktori yang berkomunikasi satu sama lain. Skema penamaan hierarkis seperti DNS mencegah duplikasi data. Setiap domain adalah unik, dan Anda dapat memiliki server sebanyak yang Anda suka dalam sebuah domain— cukup perbaiki nama host mereka ke nama domain. Sebuah situs yang mengontrol centralsoft.org, misalnya, mungkin memiliki sejumlah host dengan nama seperti server1.centralsoft.org, ldap.centralsoft.org, dan mail.centralsoft.org. tentang bagian pohon mereka, dan resolver meminta informasi domain dari server nama atas nama program klien. Jadi apa yang perlu Anda lakukan sebagai administrator sistem yang menjalankan server DNS publik Anda sendiri? Anda harus memberikan alamat dari dua atau lebih server tersebut ke pencatat domain Anda (setidaknya diperlukan dua, jadi ada kemungkinan besar salah satu akan selalu dijalankan saat orang meminta nama). Anda juga harus mengelola nama domain dari sistem yang ingin Anda tampilkan secara publik: server web, server email, dan sebagainya. DNS juga memegang tempat yang menonjol dalam munculnya layanan web dan Internet yang dapat dieksekusi, di mana orang dapat menggunakan aplikasi seperti yang ditawarkan oleh Google, Yahoo!, dan lain-lain. Menyelesaikan alamat IP dengan cepat dan andal sangat penting untuk keberhasilan produk ini di luar di Internet dan di dalam perusahaan. Pertimbangkan konfigurasi dan manajemen DNS sebagai salah satu rangkaian keterampilan administrasi sistem paling berharga yang dapat Anda miliki. Dasar-Dasar DNS | 39 www.it-ebooks.info Machine Translated by Google
  51. cari server nama centralsoft.org 70.253.158.42 server nama 70.253.158.45 www.it-ebooks.info Bagian

    BIND ini menggunakan direktori kecilnya sendiri yang disebut resolv.conf, yang ada di setiap sistem komputer. Adalah tugas Anda untuk mengkonfigurasi resolv.conf. Berikut tampilan file resolv.conf pada komputer di domain centralsoft.org : Item kedua dalam bundel BIND adalah pustaka resolver . Inilah yang dikonsultasikan oleh browser web, perangkat lunak surat, dan aplikasi lain ketika mencoba menemukan server dengan nama DNS-nya di luar sana di hutan Internet. Kami tidak akan menawarkan pelajaran sejarah di BIND, karena subjeknya akan membuat Anda tertidur. Namun, kita perlu mengatasi satu masalah sejarah. Beberapa orang terus menggunakan rilis BIND yang kuno dan tidak digunakan lagi: versi 4. Dalam bab ini, kami menggunakan versi 9 yang lebih baru. Sebagian besar server DNS di dunia dijalankan oleh Berkeley Internet Name Dae mon, atau BIND. BIND adalah standar pada setiap versi Unix dan Linux. Karena adminis trator pasti akan mengalaminya, bab ini membahas BIND secara rinci. Komponen BIND BIND hadir dengan tiga komponen. Yang pertama adalah layanan atau daemon yang menjalankan sisi penjawab DNS. Komponen ini disebut bernama (diucapkan nama-dee). Ini menjawab telepon ketika berdering. Beberapa orang menganggap resolver sebagai klien di dalam BIND. Namun tidak seperti server, klien bukanlah program tunggal; sebagai gantinya, ini adalah perpustakaan yang terhubung dengan setiap browser web, klien email, dan sebagainya. Kode resolver menanyakan server DNS dalam upaya menerjemahkan nama ke alamat IP. Jika Anda bekerja pada sistem dengan file konfigurasi DNS yang terlihat berbeda dari sintaks yang ditunjukkan dalam bab ini, mungkin karena sistem tersebut menggunakan BIND 4. Seperti yang kami katakan sebelumnya, bisnis tidak suka mengganti sistem yang berfungsi, dan mungkin memerlukan bencana untuk minta departemen TI untuk meningkatkan ke BIND 8 atau 9. Namun, karena potensi eksploitasi keamanan di BIND 4, Anda harus sangat menyarankan peningkatan tersebut. (Omong-omong, penomoran versi melonjak dari 4 menjadi 8 untuk mencocokkan versi Kirim email; jangan biarkan siapa pun menjual Anda BIND 5, 6, atau 7.) Masuk ke BIND Alternatif paling populer untuk BIND adalah djbdns suite. Ini berfungsi dengan baik, digunakan oleh banyak server nama besar, dan memiliki konfigurasi yang bisa dibilang lebih sederhana. Lihat http:// cr.yp.to/ djbdns.html untuk rincian. 40 | Bab 3: Sistem Nama Domain Machine Translated by Google
  52. Menyiapkan Server DNS | 41 www.it-ebooks.info Menyiapkan Server DNS Jangan

    pilih salah satu opsi; cukup tekan tombol Tab. Klik tombol OK yang disorot, dan penginstal Debian akan mulai mengunduh dan menginstal paket. Bagian ketiga dari BIND menyediakan alat seperti perintah dig untuk menguji DNS. Buka konsol Anda dan ketik dig yahoo.com (atau domain apa pun yang dikenal), dan lihat apa yang terjadi. Kita akan membahas dig dan utilitas lain dalam toolkit ini nanti. Ketika Anda memperoleh rilis Debian GNU/Linux saat ini, Anda mungkin menemukan perbedaan antara itu dan versi yang kami gunakan untuk menulis instruksi berikut. Pengembang Linux sering memperbarui distribusi mereka, dan prosedur instalasi berubah dengan pembaruan, tambalan, dan versi baru dari kernel Linux. Jika Anda menemukan perbedaan dalam prosedur instalasi yang kami jelaskan, carilah inti dari apa yang kami jelaskan dan Anda akan mengalami sedikit kesulitan untuk mengikuti rilis terbaru. Setelah tahap awal penginstalan Debian, Anda akan melihat layar grafis yang meminta Anda untuk memilih jenis penginstalan yang Anda inginkan. Layar akan terlihat seperti ini: Jika Anda belum memiliki disk instalasi bersih yang digunakan di Bab 2, unduh dari http:// www.us.debian.org/ CD/ netinst. Lakukan netinstall dan pastikan untuk memberikan nama domain yang sepenuhnya memenuhi syarat. Kemudian konfigurasikan Debian seperti yang disarankan di sini. Setelah Anda menyelesaikan instalasi minimal Debian, Anda harus menghapus beberapa program yang tidak perlu yang mungkin digunakan di LAN tetapi tidak termasuk di server email Internet. Anda dapat menghapusnya menggunakan utilitas apt-get Debian: Seperti yang Anda lihat, file konfigurasi penyelesai BIND sederhana. Baris pertama mencari server di domain lokal. Baris lain memberikan alamat server nama yang diketahui oleh administrator, yang dapat digunakan kembali oleh resolver jika pencarian awal untuk server gagal. Untuk membangun server kami, kami akan menggunakan instalasi baru dari versi stabil terbaru dari Debian dan mengkonfigurasinya dengan jumlah paket minimum. Selama pengunduhan, Anda akan melihat satu layar grafis lagi. Layar ini akan menanyakan apakah Anda ingin mengkonfigurasi Exim (Exim-config). Pilih "tidak ada konfigurasi." Kemudian akan bertanya kepada Anda, "Benar-benar membiarkan sistem email tidak dikonfigurasi?" Jawab ya. ( ) Server Web ( ) Database SQL ( ) pemilihan paket manual ( ) Server Cetak ( ) Server DNS ( ) Server Berkas ( ) Lingkungan Desktop ( ) Server Surat # apt-get remove lpr nfs-common portmap pidentd pcmcia-cs pppoe \ pppoeconf ppp pppconfig Machine Translated by Google
  53. www.it-ebooks.info Selesai. # apt-get install bind9 Menambahkan `mengikat' pengguna sistem

    OPTS="-u mengikat" Menyiapkan bind9 (9.2.4-1) Menambahkan `bind' (104) pengguna baru dengan grup `bind'. # update-inetd --hapus siang hari # update-inetd --hapus telnet # update- inetd --hapus waktu # update-inetd -- hapus jari # update-inetd --hapus pembicaraan # update-inetd --hapus ntalk # update -inetd --remove ftp # update-inetd --hapus buang # /etc/ init.d/inetd reload Tidak membuat direktori home. Menambahkan grup `bind' (104) # /etc/init.d/bind9 stop Memulai layanan nama domain: bernama. 42 | Bab 3: Sistem Nama Domain Pertama, hentikan layanan dengan menjalankan perintah ini: Sekarang, mari potong beberapa skrip layanan dan mulai ulang inetd: Untuk menempatkan BIND di lingkungan chroot, Anda perlu membuat direktori tempat layanan dapat berjalan tanpa terpapar ke proses lain. Anda juga akan menjalankannya sebagai pengguna yang tidak memiliki hak, tetapi hanya root yang dapat mengakses direktori. Direktori ini akan berisi semua file yang dibutuhkan BIND, dan akan terlihat seperti seluruh sistem file untuk BIND setelah Anda mengeluarkan perintah chroot . Debian akan mengunduh file dan mengkonfigurasinya sebagai layanan Internet. Anda akan melihat pesan berikut di konsol Anda: Jika Anda telah memutuskan untuk menggunakan SUSE atau Fedora daripada Debian, Anda dapat menghapus paket-paket ini dengan metode pilihan Anda. Menggunakan Lingkungan chroot untuk Keamanan Banyak administrator keamanan merekomendasikan menjalankan BIND sebagai pengguna non-root dalam direktori terisolasi yang disebut lingkungan chroot. Ini melindungi terhadap kemungkinan besar bahwa kelemahan keamanan akan ditemukan di versi BIND Anda, yang berpotensi memungkinkan orang luar untuk menyerang daemon yang disebutkan dan mendapatkan akses ke sistem Anda. Bahkan jika bernama dieksploitasi, lingkungan chroot membatasi kerusakan apa pun yang dapat dilakukan pada layanan nama. Selanjutnya, edit file /etc/ default/ bind9 sehingga daemon akan berjalan sebagai user yang tidak memiliki hak akses , chroot ke /var/ lib/ named. Ubah baris: Untuk menginstal BIND di server Debian Anda, jalankan perintah: Machine Translated by Google
  54. www.it-ebooks.info # mknod /var/lib/named/dev/null c 1 3 # mknod /var/lib/named/dev/random

    c 1 8 # /etc/init.d/bind9 start SYSLOGD="" Memulai layanan nama domain: bernama. Mulai ulang daemon log sistem: syslogd. # mv /etc/bind /var/lib/named/etc OPSI="-u bind -t /var/lib/named" # kurang /var/log/syslog # ln -s /var/lib/named/etc/bind /etc/bind SYSLOGD="-a /var/lib/named/dev/log" # chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random # chown -R bind:bind /var/lib/named/var/* # chown -R bind:bind /var/ lib/bernama/etc/bind # /etc/init.d/sysklogd restart # mkdir -p /var/lib/named/etc # mkdir /var/lib/named/dev # mkdir -p /var/lib/named/var/cache/bind # mkdir -p /var/lib/named/var /jalankan/ikat/jalankan Sekarang buat tautan simbolis ke direktori konfigurasi baru dari lokasi lama, untuk menghindari masalah saat BIND ditingkatkan di masa mendatang: Kemudian ubah izin dan kepemilikan file: Biasanya, Anda akan tahu bahwa BIND berhasil memulai jika file syslog menunjukkan: sehingga berbunyi: sehingga berbunyi: Anda akan melihat pesan berikut: Kemudian pindahkan direktori config dari /etc ke /var/ lib/ named/ etc: Periksa /var/ log/ syslog apakah ada kesalahan. Anda dapat membuka halaman melalui file menggunakan: Buat perangkat null dan acak untuk digunakan oleh BIND, dan perbaiki izin direktori: Anda juga harus mengubah skrip startup /etc/ init.d/ sysklogd agar Anda tetap dapat melihat pesan di log sistem. Ubah baris: Sekarang restart proses logging dengan perintah: Akhirnya, mulai BIND: Untuk menyediakan lingkungan yang lengkap untuk menjalankan BIND, buat direktori yang diperlukan di bawah /var/ lib: Menyiapkan Server DNS | 43 Machine Translated by Google
  55. www.it-ebooks.info # rndc status rndc: baik /etc/bind/rndc.conf maupun /etc/bind/rndc.key tidak

    ditemukan # status rndc jumlah zona: 6 level debug: 0 xfers berjalan: 0 xfers ditangguhkan: 0 kueri soa sedang berlangsung: 0 pencatatan kueri MATI server aktif dan berjalan server1:/home/admin# 44 | Bab 3: Sistem Nama Domain Jika Anda ingin menemukan nomor telepon Jane Doe dalam buku telepon digital, perusahaan telepon menerbitkan informasi itu. Tetapi jika Anda ingin dapat menemukan janedoe.com, administrator sistem harus mengajukan nama domain dan nomor (alamat IP) dan menjadikannya bagian dari direktori DNS terdistribusi. Administrator melakukan ini dengan membuat daftar di file zona yang disebut oleh penggemar DNS . Setiap situs web berada dalam domain yang berbeda, jadi Anda harus menulis file zona untuk setiap situs web. Di database registrar, server DNS Anda akan terdaftar sebagai server nama untuk nama domain tersebut. Dengan kata lain, server1.centralsoft.org akan terdaftar sebagai orang luar yang dapat dihubungi untuk menemukan anak-anak lain di rumah (linhelp.com, supportcall.org, dan lainnya). Fleksibilitas BIND memungkinkan Anda untuk mengelola beberapa server DNS sekaligus, dan untuk mengelola beberapa domain secara mandiri di satu server. Sayangnya, bernama dapat memulai tetapi gagal memuat file data awalnya, yang membuatnya tidak berfungsi. Jadi, periksa untuk melihat apakah bernama berfungsi dengan memasukkan: Jika Anda mendapatkan kesalahan ini, lihat bagian "Tidak Dapat Terhubung Menggunakan rndc" di akhir bab ini. Demikian pula, Anda mungkin memiliki 15 server yang tinggal di pusat data Anda, atau 15 situs web yang dihosting di server Anda. Untuk mengilustrasikan hal ini, katakanlah Anda mengelola server yang menghosting lima situs web berbeda, masing-masing dengan nama domain yang sama sekali berbeda. Misalkan salah satunya adalah cent tralsoft.org, sedangkan yang lainnya adalah linhelp.com, supportcall.org, jdshelp.net, dan linuxconf.net. Semua pemilik situs web meminta Anda untuk mengelol Sebuah zona menyimpan informasi untuk sebuah domain atau, melanjutkan analogi telepon kita sebelumnya, untuk sebuah rumah tangga. Katakanlah ada 15 anak yang tinggal di rumah Anda, dan seseorang yang mencari salah satu dari mereka menelepon Anda. Setiap anak memiliki ponsel, tetapi Anda tidak hafal semua nomornya. Sebagai gantinya, Anda memiliki daftar Anda sendiri, sebuah direktori yang Anda cari untuk menemukan nomor ponsel anak yang ingin dihubungi oleh si penelepon. Jika DNS tidak berfungsi dengan benar, Anda akan melihat sesuatu seperti ini: Mengonfigurasi Server DNS Resmi Machine Translated by Google
  56. (Kebetulan, nama domain tidak peka huruf besar-kecil: .com dan .COM

    sama.) Tanggung Jawab Anda dalam DNS Seperti yang dinyatakan sebelumnya, DNS mendistribusikan direktorinya. Saat Anda membayar biaya dan mendaftarkan domain, salah satu pertanyaan yang Anda jawab berkaitan dengan server nama Anda. Anda harus memberikan nama dan alamat dari dua server, dan mereka harus terdaftar di sistem DNS. Metode Terdistribusi untuk Menyelesaikan Nama Domain Mari kita tinjau kembali struktur direktori DNS. Direktori memiliki tiga level. Kelompok pertama dari server disebut root server, karena mereka menyediakan titik awal untuk query. Kelompok kedua terdiri dari server domain tingkat atas . TLD mencakup .com, .net, .org, .mil, .gov, .edu, dan seterusnya, serta domain negara seperti .de. File yang sesuai dengan daftar nomor ponsel di analogi rumah kita adalah /etc/ named.conf. Dalam arti tertentu, /etc/ named.conf adalah daftar direktori Anda dari file zona. Ini memberi Anda informasi tentang lokasi setiap zona di sistem Anda. Lapisan bawah pada Gambar 3-1 mewakili server nama utama yang disebut server1.cen tralsoft.org. Ini berfungsi sebagai server DNS untuk sejumlah domain, seperti yang akan Anda lihat nanti. Untuk saat ini, ketahuilah bahwa server1.centralsoft.org mewakili bagian dari sistem DNS yang harus Anda kelola. Sekarang mari kita lihat lebih dekat bagaimana Anda membuat bagian direktori Anda bekerja. Di tengah gambar, Anda melihat beberapa server untuk TLD .org . Server ini berisi nama dan alamat IP dari semua server DNS terdaftar dengan akhiran .org. Jika Anda mendaftarkan domain dengan akhiran .org , alamat IP-nya akan berada di setiap server TLD .org . Anda harus memberikan informasi yang tersisa tentang sub domain apa pun, termasuk server dalam domain Anda. Semoga pembahasan sebelumnya memberi Anda gambaran tentang “apa” DNS. Gambar 3-1 menggambarkan struktur DNS. Di bagian atas gambar, Anda dapat melihat representasi dari server root Internet. Server ini hanya berisi nama dan alamat IP dari server tingkat berikutnya dan bertanggung jawab sepenuhnya untuk mengarahkan permintaan ke TLD tertentu. Sekarang Anda bisa mendapatkan gambaran tentang apa yang melibatkan pekerjaan administrator sistem. Anda harus mengonfigurasi server nama apa pun di bawah domain Anda agar sesuai dengan spesifikasi yang ditetapkan oleh Internet Engineering Task Force (IETF). Jika Anda tidak mengikuti protokol yang ditentukan, sistem Anda tidak akan menjadi bagian dari layanan direktor Mengonfigurasi Server DNS Resmi | 45 www.it-ebooks.info Machine Translated by Google
  57. www.it-ebooks.info Menemukan Domain Seperti disebutkan sebelumnya, selain menyediakan daemon untuk

    menulis entri DNS ke dalam direktori terdistribusi, BIND menyediakan mekanisme untuk membaca direktori. Ketika komputer Anda perlu menemukan alamat situs web, komputer akan menanyakan server DNS yang Anda tentukan (yang biasanya terletak di jaringan lokal Anda atau di ISP Atas nama browser Anda, resolver di server DNS kemudian meminta alamat server .com . Server .com mengatakan, “Saya tidak memiliki informasi itu, tetapi saya tahu server nama yang memilikinya. Alamatnya 64.233.167.99 dan namanya ns1.google.com.” Katakanlah browser Anda ingin menemukan www.google.com. "Klien" BIND menjalankan perintah yang pada dasarnya menanyakan server DNS-nya apakah ia mengetahui alamat situs web. Jika server DNS tidak mengetahui alamatnya, ia akan meminta alamat server root. Server DNS ramah Anda melanjutkan ke alamat, membaca informasi direktori yang disediakan ns1.google.com , dan kembali untuk memberi tahu browser Anda alamat www. google.com. Server DNS kemudian menempatkan informasi itu dalam cache-nya sehingga tidak perlu mencari alamat Google lagi. Mulailah dengan server TLD untuk .com.” Dan itu memberikan alamat IP server yang mengetahui semua domain (cukup banyak!) yang terdaftar langsung di bawah .com. Server root menjawab, “Saya tidak tahu, tetapi saya tahu di mana Anda dapat menemukan jawabannya. Server Server Server DNS Server Server Server Server Server Server domain tingkat atas untuk “org” Centralsoft Server akar "." 46 | Bab 3: Sistem Nama Domain Gambar 3-1. Struktur direktori terdistribusi DNS Machine Translated by Google
  58. Server bernama File zona pertanyaan bernama.conf www.it-ebooks.info Gambar 3-2. Menjawab

    pertanyaan Mengonfigurasi Server DNS Resmi | 47 Beberapa penyedia melakukan itu, tetapi praktik yang lebih umum dan dapat dipelihara adalah Di sudut kiri atas gambar adalah gambar menara server (dalam contoh kami server ini disebut server1.centralsoft.org; ia melakukan fungsi yang sama seperti ns1. google.com). Asumsikan server menjalankan Linux dan BIND. Server di tingkat yang lebih tinggi mengarahkan resolver ke sistem (dalam kasus server1.centralsoft.org, server nama TLD untuk domain .org mengirimkan permintaan). Pada dasarnya, resolv.conf mengontrol kueri yang dibuat oleh browser dan klien lain untuk nama domain, sementara bernama menjawab kueri dan memastikan informasi tetap up-to-date di semua server. Daemon bernama mendengarkan pada port 53 UDP untuk siapa saja yang membuat permintaan nama di domain. Ketika bernama menerima permintaan, ia berkonsultasi dengan file konfigurasinya, /etc/ named.conf. Jika server memiliki informasi tentang domain yang dimaksud, itu terlihat di file zona yang sesuai. Jika file zona memiliki informasi yang diminta, server menyerahkannya ke sistem yang meminta informasi. Server DNS Primer dan Sekunder Seperti yang kami katakan sebelumnya, Anda harus memberikan nama setidaknya dua server DNS saat Anda mendaftarkan domain Anda. Jika mau, Anda dapat membuat duplikat persis dari informasi yang Anda atur di server DNS pertama yang Anda gunakan dan menempatkannya di server kedua. Menjawab Pertanyaan Gambar 3-2 menggambarkan proses yang digunakan untuk menjawab pertanyaan. Mari kita hancurkan. Beberapa orang menyebut file konfigurasi sebagai file aturan. Ini masuk akal karena operasi DNS yang benar membutuhkan kepatuhan yang ketat terhadap aturan dan protokolnya. Namun, file zona sebenarnya berfungsi sebagai bagian dari direktori DNS. Fungsi utama mereka adalah untuk memberikan informasi, bukan untuk menegakkan aturan. Machine Translated by Google
  59. zone "centralsoft.org" { ketik budak; file "sec.centralsoft.org"; master { 70.253.158.42;

    }; }; www.it-ebooks.info Masalah Firewall 48 | Bab 3: Sistem Nama Domain Server utama tidak segera mendorong konfigurasi barunya ke server sekunder. Sebagai gantinya, setiap server sekunder melakukan polling ke server utama secara berkala untuk mengetahui apakah ada perubahan yang telah dibuat. Server sekunder mengetahui bahwa ia harus melakukan polling pada kakaknya karena ia dilabeli dengan istilah slave dalam file bernama.conf -nya , seperti yang ditunjukkan di sini: sider satu server server utama atau master (di mana Anda akan membuat semua pembaruan manual) dan server lain server sekunder atau budak . BIND kemudian mengizinkan server sekunder untuk menghubungi server utama dan secara otomatis mereplikasi direktori— praktik yang disebut transfer zona. Menunjuk server sekunder sebagai budak menginstruksikannya untuk memeriksa secara berkala dengan server utama untuk melihat apakah ada perubahan yang telah dibuat dalam file direktori domain. File bernama.conf di setiap server menentukan bagaimana polling dan transfer zona. Nilai penyegaran memberi tahu server sekunder seberapa sering ia harus memeriksa dengan master. Nomor seri adalah nilai yang harus Anda tambahkan di server utama Kami tidak akan membahas sintaks lengkap dan peran entri ini sekarang. Hal penting yang harus diperhatikan adalah tipe slave; baris, yang mendefinisikan server ini sebagai sekunder, dan baris master , yang memberi tahu server di mana mendapatkan informasinya. Dalam contoh ini, master berada di alamat IP 70.253.158.42. Alamat ini cocok dengan apa yang kita masukkan ke dalam file resolv.conf sebelumnya (lihat bagian “Komponen BIND”). File resolv.conf membantu klien terhubung ke DNS, sedangkan entri sebelumnya di named.conf membantu server DNS sekunder menemukan server utama. Server sekunder bersifat otoritatif, sama seperti server utama. Artinya, server sekunder dapat menanggapi pertanyaan dan memberikan informasi tentang semua zona yang menjadi tanggung jawabnya. Perbedaannya adalah ketika Anda membuat perubahan, Anda harus melakukannya hanya di server utama Anda. Server sekunder kemudian akan memperoleh informasi tersebut dari server utama. Port ini digunakan untuk menerima dan menanggapi pertanyaan. Jika server sekunder terletak di sisi lain firewall, Anda juga harus membuka blokir port TCP 53. Server sekunder menggunakan TCP dan UDP untuk melakukan transfer zona, yang diperlukan untuk menjaga server tetap mutakhir. Jika Anda memiliki firewall di server utama Anda, pastikan Anda membuka blokir port UDP 53. Machine Translated by Google
  60. Mengonfigurasi Server DNS Resmi | 49 www.it-ebooks.info Anda akan melihat

    semua nilai ini di file zona Anda, bukan di file bernama.conf . File bernama.conf menunjuk ke lokasi file zona Anda. Saat Anda menginstal BIND, itu menyiapkan server caching secara default. Saat Anda melakukan kueri, server caching menyimpan hasilnya dalam cache-nya. Lain kali Anda mencoba untuk menemukan situs web yang sama, Anda tidak perlu melalui seluruh proses pencarian lagi: Anda akan mendapatkan informasi alamat host-ke-IP dari cache. Ada satu nilai lagi yang harus Anda ketahui sebelum menangani file konfigurasi: waktu minimum untuk hidup (TTL). Saat server DNS jarak jauh menerima jawaban atas kueri dari Anda, server tersebut menyimpan informasi tersebut dan menggunakannya kembali selama waktu yang ditentukan dalam nilai TTL. Caching sangat penting untuk kinerja DNS. Berkat caching, jika seseorang menghabiskan satu jam mengunjungi berbagai halaman web di situs Anda (masing- masing mungkin melibatkan banyak unduhan), server di dekat pengguna hanya perlu menanyakan nama domain Anda sekali; setelah itu, ia akan dapat memenuhi setiap permintaan dari cache- nya. Namun, untuk menghindari informasi yang di-cache menjadi basi, TTL memastikan bahwa pada akhirnya server membuang nilai yang di-cache dan mengembalikan kepada Anda, server yang berwenang, untuk mendapatkan nilai saat ini. Server yang Anda siapkan untuk menghosting domain biasanya terikat menjawab pertanyaan dari server DNS lain di Internet. Pekerjaan itu sendiri membebani sumber dayanya, sehingga administrator sering menggunakan server caching untuk menyimpan informasi secara lokal untuk pencarian pengguna. Anda akan melihat server caching yang digunakan oleh ISP, misalnya, hanya untuk melayani pelanggan ritel mereka. Mereka akan menggunakan server lain untuk memberikan nama domain ke Internet untuk situs yang mereka host. Namun, server sekunder tidak dapat menyamar selamanya. Akhirnya, informasinya bisa menjadi sangat usang sehingga lebih baik berhenti menjawab pertanyaan sama sekali. Oleh karena itu, file konfigurasi juga menentukan waktu kedaluwarsa . Jika waktu ini berlalu tanpa pembaruan yang berhasil, server sekunder terus mencoba menghubungi server utama tetapi menolak untuk menjawab pertanyaan. Administrator menggunakan ini untuk mengurangi beban pada server otoritatif. Server caching tidak memiliki otoritas; itu hanya membuat DNS bekerja lebih cepat dengan menyimpan nama domain yang didapatnya dari server otoritatif dan menawarkannya kepada kliennya. File konfigurasi utama juga menentukan nilai coba lagi , yang digunakan server sekunder alih-alih nilai refresh jika tidak dapat mencapai server utama. Ini dapat terjadi jika server master atau jaringan gagal. Dalam hal ini, penyamaran server sekunder bertindak sebagai master untuk sementara waktu. Server Caching-Only Selain server primer dan sekunder, DNS menawarkan server caching-only. setiap kali Anda mengubah informasi yang ditawarkannya; server sekunder membandingkan nilai utama dengan nilainya sendiri untuk menentukan apakah harus melakukan transfer zona. Machine Translated by Google
  61. www.it-ebooks.info pertanyaan Tuan rumah lokal daerah bernama Petunjuk options {

    file pid "/var/run/bind/run/named.pid"; direktori "/etc/bind"; // alamat sumber kueri * port 53; }; daerah bernama.conf Membalik Server Utama Gambar 3-3. File konfigurasi BIND 50 | Bab 3: Sistem Nama Domain Ingat, file ini biasanya sudah terinstal di server Linux Anda secara default. Tergantung pada distribusinya, names.conf dapat hidup di direktori yang berbeda (terletak di /etc/ bind/ named.conf untuk BIND 9 di bawah Debian), dan tampilannya mungkin sedikit berbeda. Terkadang, misalnya, file tersebut banyak dikomentari. Sejauh ini, kami telah melakukan eksplorasi tingkat tinggi dari Sistem Nama Domain dan menjelaskan bagian-bagian yang harus Anda pertahankan. Sekarang kita perlu masuk ke detail file konfigurasi sehingga Anda dapat menulisnya, mengubahnya, dan memperbaikinya saat diperlukan. Mari kita lihat file bernama.conf sederhana . Jika Anda tidak dapat memahaminya saat ini, biasakan diri Anda dengan tampilannya. Kami akan memecahnya menjadi komponen-komponennya di Berikut contoh kami bernama.conf. Komentar mengikuti tanda garis miring ganda: Saat Anda menginstal BIND di Linux, paket tersebut akan menyediakan file konfigurasi untuk Anda; Anda tidak perlu menulis setiap file dari awal. Gambar 3-3 mengilustrasikan file dasar. Kita akan mulai dengan file bernama.conf , yang mengoordinasikan seluruh sistem pada setiap server BIND dan menunjuk ke sisanya. Ingat dari bagian “Menjawab Pertanyaan” bahwa ketika bernama menerima permintaan, ia berkonsultasi dengan direktori kecilnya sendiri, file konfigurasi bernama.conf . Poin ini dinamai ke file zona untuk domain yang diminta. sesaat. Mengedit File Konfigurasi bernama.conf Machine Translated by Google
  62. Keamanan Dasar dalam Transfer Data Dalam konfigurasi kami saat ini,

    setiap server nama diizinkan untuk mentransfer zona centralsoft.org kami dari server nama utama kami. Karena kami hanya ingin mengizinkan server nama sekunder kami (70.253.158.45) untuk mentransfer zona, kami harus menambahkan baris berikut ke zona centralsoft.org dalam file bernama.conf pada server nama utama kami, server1.central soft.org: allow -transfer { 70.253.158.45; }; Zona akan terlihat seperti ini : www.it-ebooks.info Mengedit File Konfigurasi | 51 }; // // konfigurasi server nama utama // zona "." { ketik petunjuk; berkas "db.root"; zone "158.253.70.in- addr.arpa" { ketik master; file "pri.158.253.70.in-addr.arpa"; zone "centralsoft.org" { ketik master; file "pri.centralsoft.org"; zone "centralsoft.org" { ketik master; file "pri.centralsoft.org"; izinkan-transfer { 70.253.158.45; }; }; }; }; zone "0.0.127.in- addr.arpa" { ketik master; file "db.local"; }; Contoh file bernama.conf mengacu pada empat file konfigurasi lainnya. Baris ketiga ke bawah mencantumkan direktori yang berisi semuanya, /etc/ bind. Pernyataan opsi berisi dua baris. Yang pertama menunjukkan lokasi bernama.pid, yang hanya berisi ID proses dari menjalankan bernama daemon. Itu mungkin tampak seperti potongan informasi yang aneh untuk disimpan, tetapi ini sangat berguna untuk utilitas yang harus mematikan atau memulai ulang bernama. Lebih penting lagi, baris kedua dari pernyataan opsi mendefinisikan direktori yang berisi nama dan file yang terkait dengan cara menjalankanny Machine Translated by Google
  63. File zona terbalik (untuk zona "158.253.70.in-addr.arpa") File zona utama (untuk

    zona "centralsoft.org") Anda akan memiliki banyak kesempatan untuk menggunakannya saat kita menggali lebih dalam subjek ini. File ini memetakan alamat IP ke nama host. Ini adalah gambar cermin dari file zona utama. Anda dapat mengenali file zona terbalik karena memiliki ekstensi in-addr. arpa dan menggunakan catatan PTR (dijelaskan nanti). Selanjutnya, kita akan melihat file zona utama dan memecahnya. File host lokal (untuk zona "0.0.127.in-addr.arpa") • SOA (Start of Authority) • NS (Name Server) • MX (Mail eXchanger, yang mengidentifikasi server email di domain) • A (nama host ke pemetaan Alamat) • CNAME (Canonical Name, yang mendefinisikan alias untuk nama host dalam catatan A ) • PTR (Penunjuk, yang memetakan alamat ke nama) Tidak perlu mencoba menghafal atau memahami jenis rekaman ini pada saat ini. File ini mewakili sistem Anda sendiri (alamat IP 127.0.0.1) ke DNS. Inti dari membuat file zona lokal untuk setiap aspek dari host lokal Anda adalah untuk mengurangi lalu lintas dan memungkinkan perangkat lunak untuk beroperasi dengan cara yang sama terlepas dari apakah itu mengakses sistem lokal Anda atau yang jauh. Pernyataan zona berikutnya , contoh yang kita lihat sebelumnya, mengidentifikasi lokasi beberapa file yang berisi informasi konfigurasi. Singkatnya, Named.conf perlu menunjuk ke file berikut dalam pernyataan zona : File petunjuk (untuk zona ".") File konfigurasi default akan berisi dua pernyataan zona pertama (untuk petunjuk dan file lokal—file ini biasanya muncul saat Anda menginstal BIND dan tidak perlu diubah). Anda harus menambahkan entri untuk file zona terbalik dan utama. File zona menggunakan beberapa jenis rekaman, termasuk: File ini berisi nama dan alamat server root di Internet. bernama harus mengetahui alamat server ini sehingga dapat memulai kueri ketika tidak ada komponen dari domain yang diminta disimpan dalam cache bernama . File ini, terkadang disebut database domain, mendefinisikan sebagian besar informasi yang diperlukan untuk menyelesaikan kueri tentang domain yang Anda kelola. Itu tidak datang prakonfigurasi ketika Anda menginstal BIND. Biasanya, Anda harus menulis file ini dari awal atau menggunakan salah satu file yang menyertai BIND sebagai template. File zona utama memetakan nama ke alamat IP dan memberikan informasi tentang layanan yang ditawarkan komputer Anda ke Internet (termasuk server web dan FTP Anda, server email, server nama, dan sebagainya). 52 | Bab 3: Sistem Nama Domain www.it-ebooks.info Machine Translated by Google
  64. www.it-ebooks.info ; 2006012103 @ DI SOA server1.centralsoft.org. root.localhost. ( 2006012103;

    serial-no 28800; refresh, detik 7200; coba lagi, detik 604800; kedaluwarsa, detik 86400); minimum-TTL, detik 2006012103; serial-no hanya sebagai: Jika Anda menggunakan kumpulan file yang disediakan oleh instalasi Debian, Anda harus memberi nama file zona utama Anda sendiri setelah domain Anda. Kami telah menamai file zona untuk domain soft.org pusat pri.centralsoft.org. ( Awalan pri akan membantu Anda mengenali bahwa itu yang utama.) Kami akan menjelaskan setiap bagian dari file di sini; untuk melihatnya secara keseluruhan, lihat ke depan ke bagian “Menggabungkan semuanya.” Ini adalah rekor SOA . SOA adalah to Start of Authority, yang membedakannya sebagai informasi untuk server otoritatif (baik primer maupun sekunder) sebagai lawan dari server caching. Pada saat Anda menulis bagian Anda dari direktori terdistribusi DNS, sistem telah menyerahkan otoritas untuk bagian Anda dari sistem kepada Anda. Jadi file zona Anda harus menunjukkan di mana otoritas Anda dimulai—yaitu, domain yang Anda layani. Baris pertama memberikan informasi yang diperlukan untuk menyinkronkan dengan server sekunder atau budak Anda: Format file tidak standar, tetapi elemen yang dikandungnya ditentukan oleh RFC 1035. Mari kita lihat baris pertama, yang diawali dengan tanda (@). Dari kiri ke kanan, bidangnya adalah: Name Nama root dari zona tersebut. Tanda @ adalah referensi singkat ke zona saat ini di file /etc/ named.conf . Dengan kata lain, ini setara dengan menggunakan server1.centralsoft.org dalam contoh kita. Tanda @ juga dikenal sebagai ori gin dalam jargon DNS. Kelas Kelas DNS. Sejumlah kelas ada, tetapi sebagian besar situs menggunakan kelas IN (Internet). Kelas lain ada untuk protokol dan fungsi non-Internet. File Zona Utama File zona utama berisi sebagian besar informasi konfigurasi yang dibutuhkan DNS. Mengedit File Konfigurasi | 53 Titik koma (;) tidak menandai akhir baris; itu hanya menandai awal dari sebuah komentar. Jadi, jika Anda tidak ingin menyertakan komentar “serial-no”, Anda dapat menulis baris berikut: Machine Translated by Google
  65. Serial-no Nomor seri untuk konfigurasi saat ini. Anda menambah nomor

    ini setiap kali Anda mengubah konfigurasi Anda sehingga server budak akan tahu bahwa mereka harus memperbarui informasi mereka. Nomor ini biasanya dalam format tanggal, YYYYMMDD, dengan nomor dua digit yang ditandai di bagian akhir (ini memungkinkan Anda melakukan beberapa pengeditan setiap hari). Dengan demikian, setiap nomor seri lebih tinggi dari yang sebelumnya dan mendokumentasikan tanggal perubahan dilakukan. Setiap budak secara berkala memeriksa nomor seri untuk melihat apakah telah berubah. Jika nomor sewa saat ini di server lebih tinggi dari yang mewakili informasi konfigurasi slave, slave melakukan transfer zona. 2006012103 adalah nomor seri awal dalam file zona contoh kami. Coba lagi Seberapa sering seorang budak harus mencoba untuk terhubung ke master jika terjadi kegagalan koneksi. Interval dalam contoh kita adalah 7200 (7.200 detik = 2 jam). Nama server nama utama yang sepenuhnya memenuhi syarat. Satu detail yang mudah dilewatkan adalah penting: nama harus diakhiri dengan titik (.), yang menunjukkan akar hierarki DNS, untuk menunjukkan bahwa jalurnya adalah nama domain lengkap. Kedaluwarsa Lamanya waktu di mana seorang budak harus mencoba menghubungi master sebelum kedaluwarsa data yang dikandungnya. Jika data kedaluwarsa dan budak tidak dapat menghubungi server untuk informasi baru, itu akan mengarahkan kueri di masa mendatang ke server root. Waktu yang ditentukan di sini juga secara efektif merupakan lamanya waktu server budak harus terus merespons kueri meskipun tidak dapat memperbarui file zona; itu menunjukkan berapa lama Anda dapat mentolerir informasi usang yang dibagikan. Dalam contoh kami, kami menggunakan 604800 (604.000 detik = 7 hari). Alamat email Alamat email orang yang bertanggung jawab atas domain. Ada konvensi khusus DNS penting lainnya di sini: Anda tidak dapat menggunakan @ yang muncul di setiap alamat email Internet karena, seperti yang telah kita lihat, sebuah @ memiliki arti lain dalam file ini. Oleh karena itu, suatu periode diganti. Di sini kita ingin menentukan pengguna root pada sistem lokal, atau root@localhost, tetapi kita harus menentukan alamat email itu dalam format yang tidak biasa root.localhost.. Perhatikan bahwa alamat email juga harus diakhiri dengan titik. Ketik Jenis catatan sumber daya DNS. Dalam hal ini, ini adalah catatan sumber daya SOA . Baris berikut dalam catatan SOA berisi bidang untuk keuntungan server budak: Refresh Interval di mana server DNS budak harus memeriksa dengan master untuk menentukan tambang apakah transfer zona diperlukan. Nilai diwakili dalam detik. Dalam file contoh kami, kami menggunakan nilai 28800 (28.800 detik = 8 jam). Nama server 54 | Bab 3: Sistem Nama Domain www.it-ebooks.info Machine Translated by Google
  66. www pusatsoft.org. A 70.253.158.42 A 70.253.158.42 A 70.253.158.42 A 70.253.158.45

    server1 MX 10 server1.centralsoft.org. server2 MX 10 server1.centralsoft.org. NS server1.centralsoft.org.; NS server2.centralsoft.org.; www.it-ebooks.info Peningkatan dan fitur lanjutan Mengedit File Konfigurasi | 55 Data MX di file zona utama sampel kami diikuti oleh beberapa data A : data MX. Seperti yang Anda lihat, data MX biasa terlihat seperti ini: Catatan ini mengatakan bahwa email yang ditujukan ke domain centralsoft.org harus dikirim ke server1.centralsoft.org (server email untuk domain), yang memiliki prioritas 10. Jika Anda menyiapkan file dengan konten di bagian sebelumnya, hanya memastikan untuk memasukkan nama host dan alamat IP yang tepat untuk lingkungan Anda, Anda akan memiliki file zona utama yang berfungsi. (Tentu saja, Anda juga memerlukan file lain, seperti yang akan kami jelaskan nanti.) Namun, Anda harus mengetahui beberapa hal berguna lainnya yang dapat Anda lakukan dengan file zona utama. Catatan NS ini menentukan server nama untuk domain (yang Anda cantumkan saat mendaftarkan domain). Sekali lagi, titik koma tidak diperlukan tetapi nyaman jika Anda ingin memberikan komentar di akhir baris. Minimum-TTL Time-to-live default untuk domain ini dalam hitungan detik. Catatan sumber daya apa pun yang tidak memiliki TTL tertentu menggunakan nilai default 86400. Karena 86.400 detik adalah satu hari, catatan cache kueri akan mati dalam satu hari. Catatan A memetakan nama ke alamat IP. Karena beberapa nama dapat ditetapkan ke satu komputer, Anda dapat memiliki beberapa catatan A yang menunjuk ke satu alamat IP. Berikutnya adalah data MX , yang mengidentifikasi server email untuk domain: Kami hanya menggunakan satu server email dalam contoh kami, tetapi sebagian besar lingkungan produksi menawarkan beberapa (keduanya untuk menangani beban besar dan menyediakan fallback jika salah satu gagal). Bidang kedua dalam catatan ini (10 dalam contoh kita) dapat digunakan untuk menunjukkan urutan server MX yang harus dicoba; itu memprioritaskan server. Namun, setiap nama host dapat memiliki paling banyak satu catatan A. File kami memiliki empat catatan A , memetakan tiga nama ke satu alamat dan satu nama ke alamat yang berbeda. Itu saja untuk catatan SOA . Ini diikuti oleh daftar nama host dari berbagai jenis: Machine Translated by Google
  67. MX 20 mail.someotherdomain.com. akuntansi.centralsoft.org. MX 10 server1.centralsoft.org. accounting.centralsoft.org MX 10

    server1.centralsoft.org. MX 10 server1.centralsoft.org. pusatsoft.org. A 70.253.158.42 www.it-ebooks.info 56 | Bab 3: Sistem Nama Domain DNS tidak menentukan cara memperlakukan beberapa server email dengan prioritas yang sama. Banyak mailer memilih satu secara acak untuk mengimplementasikan load balancing yang kasar. Sampai sekarang, kami telah menetapkan data MX hanya untuk email yang dialamatkan ke [email protected]. Jadi, menambahkan accounting.centralsoft.org hanya memerlukan data MX lain : Banyak pengamat menganggapnya sebagai catatan DNS yang paling penting karena Anda dapat menggunakannya untuk membuat alamat host seperti www.centralsoft.org, di mana www adalah hostnya. Catatan A sederhana berikut dari file zona utama kami menunjukkan bahwa centralsoft. org memiliki alamat IP 70.253.158.42: tanpa penutup “.”, ini akan berubah menjadi accounting.centralsoft.org.centralsoft. org, yang tentu saja tidak benar. Sekarang jika email masuk ke centralsoft.org, MTA asal pertama kali mencoba terhubung ke server1.centralsoft.org, karena ia memiliki prioritas tertinggi (10). Jika server1.centralsoft. org tidak dapat dijangkau, MTA asal akan menggunakan server berikutnya, email. someotherdomain.com, yang memiliki prioritas 20. Perhatikan "." di akhir accounting.centralsoft.org.. Jika Anda tidak menambahkan titik, asal zona ditambahkan ke nama. Misalnya, jika Anda menulis: Prioritas berperan dalam konfigurasi yang lebih kompleks, di mana lebih dari satu server email tersedia. Angka yang lebih rendah menunjukkan prioritas yang lebih tinggi—anggap 1 sebagai prioritas tertinggi. Sistem prioritas bekerja sebagai berikut: server email jarak jauh mencoba menghubungi server dalam daftar Anda dengan prioritas tertinggi terlebih dahulu; jika tidak merespons, server dengan prioritas tertinggi berikutnya dicoba, dan seterusnya dalam daftar. Katakanlah Anda mencantumkan lebih dari satu penukar surat, sebagai berikut: Sebuah catatan. Data NS dan MX menggunakan nama host seperti centralsoft.org, server1.centralsoft. org, dan server2.centralsoft.org, tetapi file zona utama juga harus menentukan alamat IP yang akan dipetakan oleh nama-nama ini. Sebuah catatan menyelesaikan pemetaan ini. Bagaimana jika Anda ingin merutekan email ke berbagai departemen di perusahaan atau bagian dalam lembaga pemerintah? Anda dapat melakukannya dengan menambahkan subdomain ke data MX Anda . (Ingatlah untuk menambahkan titik di akhir nama host.) Di browser, Anda mungkin terbiasa mengetik www.centralsoft.org alih-alih central soft.org. www.centralsoft.org secara teknis benar-benar berbeda dari centralsoft.org, tapi Machine Translated by Google
  68. www.it-ebooks.info Mengedit File Konfigurasi | 57 server1 CNAME www www

    MX 10 ftp server2 www.centralsoft.org. A 70.253.158.42 ftp A 70.253.158.42 A 70.253.158.45 A 70.253.158.42 catatan CNAME. CNAME adalah kependekan dari nama kanonik; Anda dapat menganggapnya sebagai alias untuk catatan A. Misalnya, ini: berarti ftp.centralsoft.org adalah nama alternatif untuk www.centralsoft.org, jadi ftp. centralsoft.org menunjuk ke mesin yang sama dengan www.centralsoft.org. Anda mungkin mengalami situasi, terutama saat mengunduh paket Linux, di mana repositori terlihat seperti http:// ftp.mirrors.kernel.org. Dalam kasus seperti itu hampir pasti bahwa catatan CNAME digunakan untuk menetapkan bagian ftp dari nama host ke sistem yang memiliki nama berbeda dalam catatan A -nya . CNAME harus selalu mengarah ke catatan A , bukan ke CNAME lain. Selain itu, Anda tidak boleh menggunakan nama host CNAME dalam data MX atau SOA . Ini, misalnya, tidak diperbolehkan: kebanyakan pengunjung berharap untuk melihat situs web yang sama terlepas dari apakah mereka menyertakan www terkemuka. atau tidak. Oleh karena itu, kami juga telah membuat catatan ini: Catatan untuk server2.centralsoft.org menunjuk ke alamat IP yang berbeda, yang masuk akal karena ini adalah server nama sekunder kami dan oleh karena itu harus berada di sistem yang berbeda jika server nama utama kami mati. www tidak diikuti oleh titik, jadi BIND menambahkan asal zona. Efeknya sama dengan menentukan: Tentukan alamat IP untuk server1.centralsoft.org dan server2.centralsoft.org: Solusinya melibatkan catatan lem. Ketika server TLD untuk .org mengarahkan situs jarak jauh ke server nama untuk centralsoft.org, mereka biasanya memberikan nama alih-alih alamat IP (misalnya, server1.centralsoft.org alih-alih 70.253.158.42). Tetapi untuk server DNS otoritatif di zona yang sedang dicari, catatan lem ada di server TLD yang memetakan nama ke alamat IP (dalam kasus kami, memetakan server1.centralsoft.org ke 70.253.158.42), dan TLD server mengirimkan alamat IP alih-alih nama server nama. Ini berarti Anda tidak perlu menemukannya sebelum Anda dapat bertanya di mana letaknya. Masalah Bootstrapping dan Catatan Lem Anda mungkin bertanya-tanya bagaimana server1.centralsoft.org dan server2.centralsoft.org dapat digunakan untuk mencari catatan untuk centralsoft.org jika mereka berada di zona yang akan dicari. Ini adalah masalah bootstrap klasik: Anda tidak dapat menggunakan teknik yang sama untuk memulai pencarian yang Anda gunakan untuk sebagian besar pencarian. Machine Translated by Google
  69. www.it-ebooks.info pusatsoft.org. server1.centralsoft.org. TXT "v=spf1 a -semua" ; TXT "v=spf1

    a mx ~semua" pusatsoft.org. A 70.253.158.42 A 70.253.158.42 A 70.253.158.42 A 70.253.158.45 CNAME www TXT "v=spf1 a -semua" ; MX 10 server1.centralsoft.org. ; ftp centralsoft.org. server1.centralsoft.org. NS server1.centralsoft.org.; NS server2.centralsoft.org.; TXT "v=spf1 a mx ~semua" server1 www server2 @ DI SOA server1.centralsoft.org. root.localhost. ( 2006012103; serial-no 28800; refresh, detik 7200; coba lagi, detik 604800; kedaluwarsa, detik 86400); minimum-TTL, detik 58 | Bab 3: Sistem Nama Domain spam. Menyatukan semuanya Sekarang mari kita lihat file zona kita, pri.centralsoft.org. Perhatikan bahwa kami telah menambahkan catatan CNAME dan TXT ke bagian yang dibahas sebelumnya: Penggunaan catatan CNAME memiliki pro dan kontra. Banyak pakar DNS menyarankan untuk tidak menggunakannya. Namun, Anda mungkin menemukan bahwa data CNAME memiliki beberapa nilai. Misalnya, jika direktori DNS Anda berisi banyak catatan A yang menunjuk ke alamat IP yang sama dan Anda pindah ke layanan hosting lain yang memberikan alamat IP berbeda, Anda harus memperbarui setiap catatan A. Tetapi jika Anda hanya memiliki satu catatan A dan semua nama host Anda yang lain ada dalam catatan CNAME , Anda hanya perlu memperbarui satu catatan A. Jadi, kami percaya bahwa catatan CNAME masih memiliki tempat di jajaran DNS. Catatan TXT dan SPF. Data TXT memungkinkan Anda menambahkan teks ke zona. Orang-orang terutama menggunakan data TXT untuk menyematkan data SPF (Sender Policy Framework), yang mengontrol apakah penukar email harus menerima email yang dialamatkan dari domain mereka. Penyedia email yang lebih besar, seperti Yahoo! dan Hotmail, sekarang sangat bergantung pada catatan SPF untuk mencegah spammer memalsukan alamat email dengan nama domain penyedia. Jika email datang dari mesin yang tidak terdaftar dalam catatan SPF , MTA dapat mengklasifikasikannya sebagai: Wizard untuk membuat catatan SPF dapat ditemukan di http:// www.openspf.org/ wizard. html? domainsaya=&x=26&y=8. Kami menggunakan wizard ini untuk membuat dua catatan SPF untuk centralsoft.org, kemudian menyematkannya dalam catatan TXT dan menambahkannya ke file zona kami: Machine Translated by Google
  70. www.it-ebooks.info ; @ DI SOA server1.centralsoft.org. root.localhost. ( 2006012103; serial-no

    28800; refresh, detik 7200; coba lagi, detik 604800; kedaluwarsa, detik 86400); minimum-TTL, detik NS server1.centralsoft.org.; NS server2.centralsoft.org.; }; Dengan file zona utama kami selesai, program dapat mencari domain centralsoft.org dan semua subdomainnya di DNS. Tapi kami masih membutuhkan file zona terbalik. Karena kami tidak ingin email yang berasal dari domain centralsoft.org diklasifikasikan sebagai spam, kami akan membuat file zona terbalik. Pertama, untuk menunjuk ke file ini, kita harus menempatkan entri ini di file bernama.conf kita: zone " 158.253.70.in-addr.arpa " { type master; file "pri.158.253.70.in-addr.arpa"; Sistem yang telah kami jelaskan di sini menangani masalah pengiriman surat yang akan dijelaskan lebih lanjut di Bab 5. DNS menunjukkan MTA mana yang bertanggung jawab atas surat dari domain yang terdaftar di alamat pengirim email. Banyak spammer mencoba untuk menyampaikan email menggunakan MTA yang berbeda, tetapi agen email penerima dapat melakukan pencarian terbalik, menemukan ketidakteraturan, dan menolak email yang tidak diinginkan. Namun di sini, kami tidak menambahkan data A, MX, atau CNAME . Sebagai gantinya, kami membuat data PTR . Awal dari pri.158.253.70.in-addr.arpa terlihat persis seperti pri.centralsoft.org: Mengapa seseorang menggunakan file zona terbalik? Di masa lalu, banyak organisasi akan menolak untuk mengizinkan Anda menggunakan layanan mereka jika mereka tidak dapat melakukan ping ke nama domain Anda secara terbalik. Saat ini, banyak server Internet menggunakan pencarian terbalik untuk memverifikasi asal email untuk menghentikan spammer; ini adalah tujuan dari catatan SPF yang dibahas sebelumnya. Kami akan memberi nama file zona terbalik kami pri.158.253.70.in-addr.arpa dan menempatkan file di direktori yang sama dengan file zona utama kami, pri.centralsoft.org. File zona terbalik memetakan alamat IP ke nama. Itu terlihat hampir seperti cermin dari file zona utama; alih- alih mencantumkan nama terlebih dahulu, file zona terbalik mencantumkan alamat IP terlebih dahulu. Angka-angkanya mungkin terlihat aneh, tetapi mengikuti pola sederhana. centralsoft.org ada di 70.253.158 net, jadi kami membalikkan elemen 70.253.158 untuk menghasilkan 158.253.70 dan menggunakannya dalam pernyataan zona di named.conf. Domain in-addr.arpa adalah domain tingkat atas yang digunakan oleh semua pencarian terbalik. File Zona Terbalik Mengedit File Konfigurasi | 59 Machine Translated by Google
  71. www.it-ebooks.info Perintah rndc akan dibahas secara lebih rinci segera. Setelah

    Anda mengedit semua file konfigurasi dan zona, Anda perlu memberi tahu BIND tentukan adalah bagian host terakhir dari alamat IP, 42: tentang perubahan Anda. Anda dapat berhenti dan mulai bernama sebagai berikut: Sekarang kita dapat menguji konfigurasi kita dengan melakukan pencarian dengan alat baris perintah entri untuk domain yang sesuai, cukup beri tahu BIND untuk memuat ulang informasinya tentang zona ini (daripada memulai ulang seluruh layanan): satu dengan memulai dengan alamat IP dari centralsoft.org, 70.253.158.42. bernama.conf _ Itu saja. File zona terbalik kami sekarang terlihat seperti ini: file telah menunjukkan, melalui pernyataan zona yang kami tunjukkan di bagian sebelumnya, bahwa file ini mendefinisikan host di domain 70.253.158. Jadi semua catatan PTR harus bagian pemecahan masalah yang akan datang untuk detail tentang masalah yang paling umum. satu-satunya alamat IP lain yang kami gunakan adalah 70.253.158.45 (untuk server2.centralsoft.org), jadi kami Jika Anda mendapatkan kesalahan atau jika layanan BIND Anda tidak berfungsi seperti yang diharapkan, silakan lihat Di masa mendatang, jika satu-satunya perubahan yang Anda lakukan adalah memperbarui file zona dengan DNS baru menambahkan: menggali. Pertama, kita akan mencari alamat IP dari centralsoft.org: Buat tepat satu data PTR untuk setiap alamat IP di domain Anda. Untuk contoh kita, PTR # /etc/init.d/bind9 stop NS server1.centralsoft.org.; 45 pusatsoft.org. # /etc/init.d/bind9 start PTR PTR 86400 ); minimum-TTL, detik server2.centralsoft.org. NS server2.centralsoft.org.; 45 # rndc reload centralsoft.org ; server2.centralsoft.org. 7200; coba lagi, detik 604800; kedaluwarsa, detik 42 2006012103; serial-no 42 @ DI SOA server1.centralsoft.org. root.localhost. ( 28800; segarkan, detik PTR pusatsoft.org. PTR adalah kependekan dari Pointer, dan itu adalah: pointer ke nama domain. Mari berkreasi Catatan PTR 60 | Bab 3: Sistem Nama Domain Pencarian Pengujian Machine Translated by Google
  72. www.it-ebooks.info Mengedit File Konfigurasi | 61 Seperti yang Anda lihat,

    pencarian ini mengembalikan alamat IP 70.253.158.42. Pencarian maju dan mundur cocok satu sama lain. Penyiapan server utama kami selesai. Sekarang kita dapat melakukan pencarian terbalik: Mengkonfigurasi Server Nama Sekunder Selanjutnya, mari kita siapkan server nama sekunder kita, server2.centralsoft.org. Ini akan bertindak sebagai server nama cadangan jika yang utama (server1.centralsoft.org) gagal, sehingga orang masih dapat mencari centralsoft.org dan subdomainnya. ;; KAPAN: Sab 11 Mar 18:57:54 2006 ;; UKURAN MSG rcvd: 98 DI 86400 IN # kamu -x 70.253.158.42 SEBUAH ; <<>> DiG 9.2.1 <<>> -x 70.253.158.42 ;; opsi global: printcmd ;; Mendapat jawaban: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4096 ;; bendera: qr rd ra; PERTANYAAN: 1, JAWABAN: 1, OTORITAS: 0, TAMBAHAN: 0 PTR ;; BAGIAN PERTANYAAN: ;centralsoft.org. ;; Waktu kueri: 2 mdtk;; SERVER: 81.169.163.104#53(81.169.163.104) ;; BAGIAN JAWABAN: centralsoft.org. # Anda centralsoft.org ;; Waktu kueri: 198 mdtk;; SERVER: 81.169.163.104#53(81.169.163.104) PTR ;; KAPAN: Sab 11 Mar 18:55:21 2006 ;; UKURAN MSG rcvd: 49 ; <<>> DiG 9.2.1 <<>> centralsoft.org ;; opsi global: printcmd ;; Mendapat jawaban: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48489 ;; bendera: qr rd ra; PERTANYAAN: 1, JAWABAN: 1, OTORITAS: 0, TAMBAHAN: 0 pusatsoft.org. SEBUAH ;; BAGIAN JAWABAN: 42.158.253.70.in-addr.arpa. 5304 IN ;; BAGIAN PERTANYAAN: ;42.158.253.70.in-addr.arpa. DI 70.253.158.42 Machine Translated by Google
  73. www.it-ebooks.info Alat BIND zone "0.0.127.in- addr.arpa" { ketik master; file

    "db.local"; options { file pid "/var/run/bind/run/named.pid"; direktori "/etc/bind"; // alamat sumber kueri * port 53; zone "centralsoft.org" { ketik budak; file "sec.centralsoft.org"; master { 70.253.158.42; }; }; }; zona "." { ketik petunjuk; berkas "db.root"; }; }; Itu saja yang harus kita lakukan untuk menyiapkan server nama sekunder. nama server. File name.conf server2.centralsoft.org mirip dengan nameserver utama, dengan beberapa perbedaan: Sekarang setiap kali Anda memperbarui zona di server nama utama, pastikan nomor seri bertambah. Jika tidak, zona yang diperbarui tidak akan ditransfer ke sekunder Perbedaan yang paling penting adalah yang telah kita bahas sebelumnya dalam bab ini. Jenis budak; baris dalam pernyataan zona terakhir menunjukkan bahwa ini adalah zona budak. Di baris file kami menentukan nama file di mana zona budak harus disimpan, dan di baris master kami menentukan alamat IP dari server nama utama. Restart bernama pada server2.centralsoft.org, dan segera setelah itu Anda akan menemukan file / etc/ bind/ sec.centralsoft.org pada nameserver sekunder Anda. Apa yang telah terjadi? Server nama sekunder telah menghubungi server nama utama, yang telah mentransfer zona ke dalamnya. Seperti yang kami sebutkan di awal bab ini, BIND hadir dalam tiga bagian: dae mon bernama , pustaka resolver , dan beberapa alat. Salah satu alat yang telah Anda gunakan adalah dig, yang digunakan administrator untuk menginterogasi server nama DNS. dig melakukan pencarian DNS dan menampilkan jawaban yang dikembalikan dari server nama dan statistik tentang kueri. 62 | Bab 3: Sistem Nama Domain Machine Translated by Google
  74. Jawaban tidak resmi: Nama: ns1.google.com Alamat: 216.239.32.10 nama = adsl-70-253-158-42.dsl.rcsntx.swbell.net.

    > lserver google.com Server default: google.com # nslookup ns1.google.com Server: 68.94.156.1 Alamat: 68.94.156.1#53 Jawaban tidak resmi: 42.158.253.70.in-addr.arpa > 172.30.1.2 172.30.1.2#53 > # nslookup > 70.253.158.42 Server: Alamat: Jawaban resmi dapat ditemukan dari: 158.253.70.in-addr.arpa nameserver = ns1.swbell.net. 158.253.70.in-addr.arpa server nama = ns2.swbell.net. www.it-ebooks.info Alat BIND | 63 Dari prompt Anda dapat melakukan pencarian sederhana, seperti pada alamat IP: nslookup nslookup bekerja mirip dengan Dig tetapi tidak digunakan lagi di Linux. Menggunakannya membutuhkan lebih banyak pekerjaan, tetapi Anda harus terbiasa dengannya karena Microsoft Windows masih menggunakannya sebagai alat pencarian utamanya. nslookup menanyakan server nama domain Internet dalam dua mode: interaktif dan nonin teraktif. Mode interaktif memungkinkan Anda untuk menanyakan server nama untuk informasi tentang berbagai host dan domain, atau untuk mencetak daftar host dalam domain. Sebagai contoh: Anda juga dapat menjalankan beberapa perintah, termasuk lserver (yang menggunakan server lokal Anda untuk melakukan pencarian), server (yang menggunakan server lain untuk melakukan pencarian), dan host. Mode noninteractive hanya mencetak nama dan informasi yang diminta untuk host atau domain. Misalnya, Anda dapat menjalankan pencarian berikut untuk menemukan beberapa informasi tentang server Google: Perintah lserver menghasilkan output seperti berikut: Sebagian besar administrator DNS menggunakan Dig untuk memecahkan masalah DNS karena fleksibilitas, kemudahan penggunaan, dan kejelasannya. Alat pencarian lainnya cenderung memiliki fungsionalitas yang lebih sedikit. Namun, satu alternatif yang harus Anda waspadai adalah nslookup. Kami juga akan melihat rndc, alat administrasi berguna yang disertakan dengan BIND. Dalam mode interaktif, nslookup menyediakan prompt di mana Anda dapat menjalankan perintah. Machine Translated by Google
  75. www.it-ebooks.info rndc BIND menyediakan perintah rndc sebagai bagian dari instalasi.

    rndc memungkinkan Anda untuk mengelola bernama menggunakan baris perintah. Utilitas mengirimkan perintah yang diberikan pada Anda dapat menggunakan Host lagi untuk mengetahui nama server itu: Sub - perintah host menyediakan utilitas sederhana untuk melakukan pencarian. Ketika tidak ada argumen atau opsi yang diberikan, host mencetak ringkasan singkat dari argumen dan opsi baris perintahnya. Orang menggunakannya terutama untuk mengonversi nama ke alamat IP dan sebaliknya. Berikut ini contohnya: Ketika Anda menempatkan host dalam mode verbose dengan opsi -v , ini memberikan informasi yang mirip dengan perintah dig : Ketik exit untuk keluar dari sesi nslookup interaktif . Informasi ini berasal dari alamat IP 68.94.156.1, nomor port 53, yang merupakan server nama yang ditentukan dalam file resolv.conf desktop yang melakukan pencarian. Anda juga dapat menggunakan bernama untuk melakukan pemecahan masalah dalam beberapa kasus. Misalnya, untuk mengetahui nomor versi implementasi BIND Anda, jalankan perintah berikut: > host -v centralsoft.org Mencoba "centralsoft.org" 70.253.158.42 ;; BAGIAN PERTANYAAN: ;centralsoft.org. server1.centralsoft.org. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43756 ;; bendera: qr rd ra; PERTANYAAN: 1, JAWABAN: 1, OTORITAS: 1, TAMBAHAN: 0 > host 68.94.156.1 1.156.94.68.in-addr.arpa penunjuk nama domain dnsr1.sbcglobal.net. > host centralsoft.org centralsoft.org memiliki alamat 70.253.158.42 86400 IN # bernama -v bernama 8.4.6-REL-NOESW Sel 1 Feb 10:10:48 UTC 2005 buildd@rockhopper:/build/buildd/bind-8.4.6/src/bin/named SEBUAH Alamat: 64.233.167.99#53 Server default: google.com Alamat: 64.233.187.99#53 Server default: google.com Alamat: 72.14.207.99#53 DI SEBUAH ;; BAGIAN JAWABAN: centralsoft.org. 29437 IN Menerima 71 byte dari 68.94.156.1#53 dalam 30 md NS ;; BAGIAN OTORITAS: centralsoft.org. 64 | Bab 3: Sistem Nama Domain Machine Translated by Google
  76. www.it-ebooks.info Alat BIND | 65 # rndc rndc-options perintah perintah-opsi

    Berikut ini adalah opsi rndc yang biasanya berguna yang mungkin ingin Anda gunakan (baca halaman manual rndc untuk melihat daftar lengkapnya): Muat ulang file zona, tetapi simpan semua respons lain yang sebelumnya di-cache. Ini memungkinkan Anda untuk membuat perubahan pada file zona dan membuatnya berlaku di server master dan slave Anda tanpa kehilangan semua resolusi nama yang tersimpan. Jika perubahan Anda hanya memengaruhi zona tertentu, Anda dapat memberi tahu bernama untuk memuat ulang hanya zona itu. zona transfer ulang Memaksa transfer ulang zona yang ditentukan tanpa memeriksa nomor seri. -s server statistik -k key-file Gunakan file kunci yang ditentukan sebagai pengganti file default /etc/ bind/ rndc.key . Perintah rndc mengambil bentuk berikut: halt Hentikan server nama dengan segera. querylog Mengaktifkan atau menonaktifkan pencatatan semua kueri yang dibuat oleh klien ke server nama ini. Ini adalah perintah toggling: mengaktifkan log on jika saat ini tidak aktif, dan sebaliknya. isi ulang [zona] Aktifkan pencatatan verbose untuk perintah ini. baris perintah ke server bernama yang sedang berjalan , yang bertindak pada mereka. rndc juga digunakan oleh skrip inisialisasi sistem BIND 9. stop Menghentikan server dengan anggun, menyimpan data pembaruan dinamis apa pun sebelum keluar. Berikut adalah beberapa perintah yang lebih umum digunakan yang dapat dikirim ke rndc (untuk daftar lengkap perintah, cukup ketik perintah rndc dengan sendirinya): Untuk mencegah pengguna yang tidak sah mengakses server nama Anda, Anda harus menggunakan kunci rahasia bersama untuk mengotentikasi akses. Agar rndc mengeluarkan perintah ke server bernama , bahkan pada mesin lokal, keduanya harus berbagi kunci yang sama. Kunci ini disimpan dalam file /etc/ bind/ rndc.key, dan keduanya bernama dan rndc akan membaca kunci dari lokasi ini. File rndc.key seharusnya dibuat selama instalasi BIND. Kirim perintah ke server yang ditentukan alih -alih server lokal. status Buang statistik bernama saat ini ke file bernama.stats . Tampilkan status server nama saat ini. -DI Machine Translated by Google
  77. www.it-ebooks.info Sistem Nama Domain dirancang dengan sangat kuat, tetapi kesalahan

    aneh terkadang masih dapat terjadi. Dengan mengikuti pola untuk membuat file zona yang dijelaskan sebelumnya dalam bab ini, Anda dapat menghindari masalah halus yang berada di luar cakupan buku ini. 66 | Bab 3: Sistem Nama Domain Kami dapat memverifikasi bahwa file tersebut memang hilang dengan perintah ini: Perintah rndc bergantung pada file kunci bersama di /etc/ bind/ rndc.key untuk diberi nama untuk menerima perintahnya. Masalah dengan file itu dapat mencegah rndc mengirim perintah. Berikut adalah contoh dari apa yang akan kita lihat jika file kunci hilang: Tidak Dapat Menghubungkan Menggunakan rndc Untuk memulai, mari kita lihat indikasi resolusi DNS yang sehat. Sebelumnya, kita telah membahas menggunakan perintah status rndc untuk menunjukkan status berjalan saat ini dari server DNS kita. Mari kita coba masuk ke server sebagai root dan jalankan perintah: Pada titik ini dalam bab ini, Anda harus memiliki pengetahuan fungsional tentang DNS. Anda juga harus tahu cara mengonfigurasi file Anda dan cara menemukan masalah sintaks di dalamnya, seperti kesalahan ketik. Di bagian ini kami akan membahas beberapa masalah dasar dan umum yang mungkin Anda temui saat mengaktifkan BIND dan DNS. Ini bukan risalah yang lengkap, tetapi ini akan membantu Anda menjalankan DNS di server Linux Anda jika Anda memiliki masalah dalam mendapatkan domain Anda untuk menyelesaikan nama host atau melakukan transfer zona. Kami dapat memperbaiki masalah dengan membuat ulang file dengan cara yang sama seperti inisialisasi BIND: Pemecahan masalah BIND server1:~# ls -l /etc/bind/rndc.key ls: / etc/bind/rndc.key: Tidak ada file atau direktori seperti itu server1:~# status rndc rndc: baik /etc/bind/rndc.conf maupun /etc/bind/rndc.key tidak ditemukan server1:~# server1:~# status rndc jumlah zona: 6 tingkat debug: 0 xfers berjalan: 0 xfers ditangguhkan: 0 kueri soa sedang berlangsung: 0 pencatatan kueri MATI Server aktif dan berjalan server1:~# rndc-confgen -a server1:~# ls -l /etc/bind/rndc.key -rw------- 1 root mengikat 77 19 Jul 22:38 /etc/bind/rndc.key server1:~# server1:~# Machine Translated by Google
  78. www.it-ebooks.info bernama Mulai tetapi Tidak Menyelesaikan Nama Pemecahan masalah BIND

    | 67 # /etc/init.d/ bind9 reload Nama penghentian: rndc: koneksi gagal: koneksi ditolak [OK] server1:~# mulai BIND 9.2.4 -u bind -t /var/lib/named menggunakan 1 CPU memuat konfigurasi dari '/ etc/bind/named.conf' mendengarkan pada antarmuka IPv4 lo, 127.0.0.1#53 mendengarkan pada antarmuka IPv4 eth0, 70.253 .158.42#53 saluran perintah mendengarkan pada 127.0.0.1#953 saluran perintah mendengarkan pada ::1#953 berjalan Mulai bernama: [OK] # server1:~# killall -TERM /usr/sbin/named server1:~# killall -KILL /usr/sbin/named /usr/ sbin/named: tidak ada proses yang dimatikan server1:~# /etc/init.d/bind9 start Mulai layanan nama domain: bernama. server1:~# status rndc jumlah zona: 6 tingkat debug: 0 xfers berjalan: 0 xfers ditangguhkan: 0 kueri soa sedang berlangsung: 0 pencatatan kueri MATI Server aktif dan berjalan Karena bernama tidak memiliki kunci baru ini, kita sekarang harus mematikan proses bernama dan memulai kembali. Untuk ini kami menggunakan perintah sistem killall, yang mengambil nama path lengkap dari program bernama . Untuk berhenti bernama seanggun mungkin, kami melakukan dua perintah killall dengan jeda beberapa detik di antaranya, lalu mulai ulang bernam Log menunjukkan bahwa BIND telah dimulai, tetapi tidak menyertakan baris yang menunjukkan bahwa file zona telah dimuat. Karena bernama berjalan di dalam lingkungan chroot di /var/ lib/ bernama, itu akan mencari semua file relatif terhadap direktori itu. Jadi sebenarnya, ini membaca file /var/ lib/ named/ etc/ bind/ named.conf untuk daftar zona yang akan dimuat. Masing-masing file zona tersebut harus ditempatkan relatif terhadap direktori /var/ lib/ named . Sekarang, mari kita lihat situasi di mana nama tidak berjalan dengan benar. Lokasi file BIND yang salah sering menyebabkan masalah, terutama di lingkungan chroot di mana file BIND ditempatkan di direktori yang terisolasi. Kesalahan umum lainnya adalah kegagalan koneksi yang melibatkan rndc saat memuat ulang atau memulai ulang server nama: Jika bernama mulai OK tetapi tidak memuat file zona apa pun, mereka mungkin tidak ada di direktori yang terisolasi. Anda harus melihat file /var/ log/ syslog untuk melihat apakah itu masalahnya. Berikut ini contoh dari log: Machine Translated by Google
  79. www.it-ebooks.info 68 | Bab 3: Sistem Nama Domain # ls

    -l /var/lib/named/etc/bind/named.conf -rw- r--r-- 1 root bind 1611 2006-09-07 12:21 /var/lib/named/etc/bind/ bernama.conf # ls /var/ lib/named/etc/bind/ db.0 db.local bernama.conf.local db.127 db.root bernama.conf.options db.255 bernama.conf pri.156.18.67. di-addr.arpa rndc.key db.kosong bernama.conf~ pri.156.18.67.in-addr.arpa~ zones.rfc1918 # server1:~# pri.centralsoft.org pri.opensourcetoday.org mulai BIND 9.2.4 -u bind -t /var/lib/named menggunakan 1 CPU memuat konfigurasi dari '/ etc/bind/named.conf' mendengarkan pada antarmuka IPv4 lo, 127.0.0.1#53 mendengarkan pada antarmuka IPv4 eth0, 70.253 .158.42#53 saluran perintah mendengarkan di 127.0.0.1#953 saluran perintah mendengarkan di ::1#953 zona 0.0.127.in-addr.arpa/IN: dimuat serial 1 zona 158.253.70.in-addr.arpa/IN : memuat serial 2006070401 zone centralsoft.org/IN: memuat serial 2006070502 zone supportcall.org/IN: memuat serial 2006062704 berjalan server1:~# killall -TERM /usr/sbin/named server1:~# killall -KILL /usr/sbin/named /usr/ sbin/named: tidak ada proses yang dimatikan server1:~# /etc/init.d/bind9 start Mulai layanan nama domain: bernama. ... Selanjutnya, periksa file /var/ log/ syslog Anda untuk melihat apakah file zona dimuat. Anda akan melihat sesuatu seperti ini: Host Tidak Diakui Langkah selanjutnya dalam memeriksa operasi DNS yang benar adalah memastikan pertanyaan untuk nama host Anda dijawab dengan benar. Pertama, Anda perlu memastikan file /etc/ resolv.conf mencantumkan server nama Anda dengan alamat yang benar. Sebagian besar program menggunakan alamat dari file ini untuk menentukan server nama mana yang akan ditanyakan, dan dalam urutan apa: Setelah Anda memperbaiki masalah, Anda harus berhenti dan memulai ulang bernama untuk mengaktifkan rndc untuk mencapai server yang sedang berjalan. Gunakan urutan perintah killall yang dijelaskan di bagian sebelumnya: Jenis kesalahan ini juga dapat terjadi sebagai akibat dari menjalankan BIND di lingkungan chroot, ketika satu atau lebih file hilang dari direktori isolasi. Anda dapat memeriksa beberapa file penting untuk memastikan mereka berada di lokasi yang tepat: Jika file-file ini tidak ada, lingkungan chroot tidak diatur dengan benar atau sepenuhnya. Kembali ke bagian “Menggunakan Lingkungan chroot untuk Keamanan” di dekat awal bab ini dan ikuti instruksinya dengan cermat untuk memastikan setiap file ada di tempatnya. Machine Translated by Google
  80. www.it-ebooks.info Pemecahan masalah BIND | 69 Perintah host melakukan pencarian

    DNS sederhana menggunakan server yang terdaftar di file / etc/ resolv.conf . Dibutuhkan host yang ingin Anda cari sebagai argumen, dan argumen kedua opsional membuat permintaan perintah menjadi server nama tertentu. Berikut adalah dua contoh perintah host dan hasilnya: Mari kita lihat hasil dari perintah dig . Banyak baris keluaran dig yang sangat panjang dan tidak sesuai dengan tata letak halaman buku ini. Dalam cetakan berikut, mereka dililitkan ke baris berikutnya. Anda mungkin akan melihat hasil yang serupa saat menjalankan perintah ini di sesi shell Anda: Output dari dig diformat dalam sintaks file zona. Ini nyaman, karena setelah Anda mempelajari bagaimana catatan diformat dalam file zona, Anda dapat dengan mudah memahami semua detail catatan tersebut dalam output dig . dig juga memberikan beberapa informasi tambahan tentang hasil query berupa komentar berformat zona yang diawali dengan tanda “;” karakter. Alternatif untuk host adalah perintah dig , yang lebih kompleks tetapi memberikan jawaban yang lebih rinci. Ini juga memiliki lebih banyak opsi yang memungkinkan Anda membuat kueri yang sangat spesifik. server1.centralsoft.org. server2.centralsoft.org. server1:~# SEBUAH 86400 IN NS server1:~# host www.centralsoft.org www.centralsoft.org memiliki alamat 70.253.158.42 server1:~# host www.centralsoft.org server2.centralsoft.org Menggunakan server domain: Nama: server1.centralsoft.org Alamat: 70.253. 158.45#53 Alias: ;; BAGIAN JAWABAN: www.centralsoft.org. DI www.centralsoft.org memiliki alamat 70.253.158.42 NS ; <<>> DiG 9.2.4 <<>> www.centralsoft.org a ;; opsi global: printcmd ;; Mendapat jawaban: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1633 ;; bendera: qr aa rd ra; PERTANYAAN: 1, JAWABAN: 1, OTORITAS: 2, TAMBAHAN: 2 server1:~# cat /etc/resolv.conf cari server nama centralsoft.org 70.253.158.42 server nama 70.253.158.45 server1:~# 86400 IN ;; BAGIAN PERTANYAAN: ;www.centralsoft.org. 86400 IN 70.253.158.42 SEBUAH ;; BAGIAN OTORITAS: centralsoft.org. pusatsoft.org. server1:~# Anda www.centralsoft.org a Machine Translated by Google
  81. www.it-ebooks.info OTORITAS MENJAWAB TAMBAHAN 70 | Bab 3: Sistem Nama

    Domain PERTANYAAN Bagian ini sebenarnya merinci kueri itu sendiri. Itu ditampilkan sebagai komentar karena itu bukan sesuatu yang seharusnya ada di file zona. telah datang. Bagian pertama dari output menunjukkan berbagai kode status dan bendera. Berikan perhatian khusus pada nilai status pada baris keempat. Dalam contoh ini, nilainya adalah NOERROR. Bagian ini berisi hasil aktual yang diminta oleh kueri. Ini akan menunjukkan catatan tertentu yang diminta, jika tersedia, atau semua catatan jika jenis catatan kueri khusus digunakan . Bagian ini memberikan alamat beberapa atau semua nama dari bagian sebelumnya, untuk menghemat kesulitan melakukan lebih banyak kueri untuk informasi tersebut. Nilai lain apa pun kemungkinan menunjukkan masalah semacam itu. Data zona aktual datang dalam empat bagian: Sekarang mari kita lihat apa yang akan Anda dapatkan jika ada kesalahan. Contoh sebelumnya menggunakan nama host yang valid untuk server web. Kali ini kami akan menanyakan nama server FTP yang belum kami konfigurasikan ke file zona kami: Bagian ini mengidentifikasi server nama resmi untuk zona yang jawabannya server1.centralsoft.org. admin. DI SEBUAH server1:~# SEBUAH 70.253.158.42 70.253.158.45 ; <<>> DiG 9.2.4 <<>> ftp.centralsoft.org a ;; opsi global: printcmd ;; Mendapat jawaban: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 6531 ;; bendera: qr aa rd ra; PERTANYAAN: 1, JAWABAN: 0, OTORITAS: 1, TAMBAHAN: 0 ;; KAPAN: Sen 17 Jul 23:30:51 2006 ;; UKURAN MSG rcvd: 129 ;; BAGIAN PERTANYAAN: ;ftp.centralsoft.org. SEBUAH SOA ;; BAGIAN TAMBAHAN: server1.centralsoft.org. 86400 DI server2.centralsoft.org. 86400 IN server1:~# you ftp.centralsoft.org a ;; Waktu kueri: 1 mdtk;; SERVER: 70.253.158.42#53(70.253.158.42) ;; BAGIAN OTORITAS: centralsoft.org. pusatsoft.org. 2006070502 28800 7200 604800 86400 86400 IN Machine Translated by Google
  82. www.it-ebooks.info Apa berikutnya kesalahan. Sekarang Anda harus sudah familiar dengan

    dasar-dasar DNS dan BIND. Administrator di bisnis kecil hingga menengah mungkin menemukan bahwa informasi dalam bab ini adalah semua yang mereka butuhkan, tetapi administrator sistem perusahaan pasti akan menghadapi masalah yang lebih kompleks daripada yang dapat dibahas dalam satu bab. Perhatikan bahwa status untuk kueri ini adalah NXDOMAIN, yang pada dasarnya berarti "tidak ada nama domain seperti itu". Jika Anda meninggalkan atau salah mengeja nama host di file zona, Anda akan mendapatkan ini Jenis kesalahan lain yang mungkin Anda lihat dengan dig adalah ketika nama domain didelegasikan ke server nama Anda, tetapi domain tersebut tidak dikonfigurasi di server atau gagal dimuat. Kesalahan ini mengembalikan status SERVFAIL . Jika Anda melihat kesalahan ini untuk salah satu domain Anda, Anda perlu menambahkan domain ke file bernama.conf Anda dan memastikan bahwa ada file zona yang valid untuk itu. Jika kesalahan berulang setelah Anda melakukan langkah-langkah tersebut, periksa file / var/ log/ syslog untuk pesan apa pun tentang mengapa zona tidak dimuat. Kami akan menunjukkan masalah dengan nama domain yang terdaftar, tetapi saat ini tidak digunakan: Beberapa buku ada yang dapat memberikan informasi lebih rinci untuk hadiah besar dan administrator DNS. Ini termasuk DNS dan BIND oleh Cricket Liu dan Paul Albitz (O'Reilly), DNS & BIND Cookbook oleh Cricket Liu (O'Reilly), Pro DNS dan BIND oleh Ron Aitchison (Apress), dan DNS in Action: A Detil dan Praktis Panduan Implementasi, Konfigurasi, dan Administrasi DNS oleh L. Dostalek dan A. Kableova (Packt). server1:~# SEBUAH ; <<>> DiG 9.2.4 <<>> linhelp.org a ;; opsi global: printcmd ;; Mendapat jawaban: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 29949 ;; bendera: qr rd ra; PERTANYAAN: 1, JAWABAN: 0, OTORITAS: 0, TAMBAHAN: 0 ;; Waktu kueri: 2 mdtk;; SERVER: 70.253.158.42#53(70.253.158.42) ;; KAPAN: Sen 17 Jul 23:47:14 2006 ;; UKURAN MSG rcvd: 37 ;; BAGIAN PERTANYAAN: ;linhelp.org. server1:~# DI ;; KAPAN: Sen 17 Jul 23:30:59 2006 ;; UKURAN MSG rcvd: 87 ;; Waktu kueri: 1 mdtk;; SERVER: 70.253.158.42#53(70.253.158.42) server1:~# you linhelp.org a Apa Selanjutnya | 71 Machine Translated by Google
  83. 72 | Bab 3: Sistem Nama Domain www.it-ebooks.info Sekarang setelah

    Anda memiliki server nama yang berfungsi untuk menjawab pertanyaan dan dicadangkan oleh server budak atau sekunder, di bab berikutnya Anda dapat melanjutkan untuk menginstal aplikasi layanan web. Aplikasi baru akan menggunakan layanan yang Anda atur di Bab 2. Setelah aplikasi, yang disebut ISPConfig, disiapkan dan dijalankan, Anda akan memiliki contoh kerja situs web yang beroperasi penuh. Kami kemudian dapat mulai menjelajahi bagaimana mengelola rangkaian lengkap layanan Linux yang ditemukan Machine Translated by Google
  84. www.it-ebooks.info Lingkungan Internet-Siap Awal 73 BAB 4 ISPConfig (http:// ispconfig.org),

    proyek Linux yang mudah digunakan di bawah lisensi perangkat lunak bebas (BSD), memungkinkan kita untuk membangun server Internet multifungsi yang berfungsi dari satu aplikasi yang dapat diunduh. Setelah kami menginstalnya, kami akan memiliki alat yang membantu kami untuk mengkonfigurasi dan memelihara server dengan mudah yang memungkinkan kami untuk mengelola situs web; menyediakan layanan nama domain; melakukan transfer email dan file; dan menambahkan pengguna, administrator, dan lainnya yang dapat mengakses sistem untuk berbagai tugas administratif. Oh, dan apakah kami menyebutkan bahwa kami dapat melakukan Kami memilih ISPConfig terutama karena memungkinkan kami untuk menyebarkan aplikasi server yang kuat di Linux tanpa mengorbankan kekuatan atau fleksibilitas apa pun. Lebih-lebih lagi: • Paket standar dari distribusi dapat digunakan. • Dukungan untuk setiap komponen yang dibundel dapat ditemukan di Internet. • Tim ISPConfig menyediakan dukungan online untuk seluruh aplikasi. Salah satu ciri hebat Linux adalah fleksibilitasnya. Perusahaan komersial seperti Cisco telah menyembunyikan Linux di bawah antarmuka yang sangat sederhana untuk membuat router Linksys dan produk lainnya mudah digunakan. Kita juga bisa melakukannya. Bab 4 Linux. • Instalasi ISPConfig secara otomatis mengkonfigurasi berbagai komponen server. • Paket-paket yang disertakan dalam ISPConfig berfungsi dengan sebagian besar distribusi Saat Anda maju melalui bab ini, Anda harus mendapatkan ide yang cukup bagus tentang apa yang terlibat dalam mendapatkan berbagai layanan yang disediakan dan dijalankan oleh server. Anda juga akan mempelajari cara memutuskan apakah kebutuhan Anda memungkinkan Anda menggunakan panel administratif visual alih-alih antarmuka baris perintah. • ISPConfig menggunakan daemon standar yang disertakan dengan distribusi Linux. Kami akan menggunakan Apache untuk melayani situs web, Postfix untuk email, ProFTPD untuk FTP, BIND untuk DNS, dan MySQL sebagai database backend. Machine Translated by Google
  85. www.it-ebooks.info Persyaratan 74 | Bab 4: Lingkungan Awal yang Siap-Internet

    Menginstal ISPConfig Proyek mengonfigurasi layanan ini: • FTP • SSI • httpd (host virtual, berbasis domain dan berbasis IP) • Akses cangkang • alamat IP • SSL ISPConfig berasal dari Projektfarm GmbH. Hingga Brehm dan Falko Timme mengembangkan aplikasi, yang awalnya mereka jual sebagai sistem berpemilik yang dipasarkan di http:// 42go.de. Sekarang Anda dapat mengunduhnya dari http:// sourceforge.net/ projects/ ispconfig. ISPConfig sendiri tidak menyediakan antarmuka baris perintah. Alih-alih, ini memungkinkan Anda mengelola server usia melalui antarmuka administratif berbasis web, atau panel, yang dijelaskan nanti dalam bab ini. Anda harus melakukan beberapa pekerjaan baris perintah di awal bab ini, saat menyiapkan ISPConfig sehingga dapat menginstal yang lainnya selanjutnya, tetapi di bagian selanjutnya kita akan fokus sepenuhnya pada antarmuka visual ini. • Statistik Webalizer • Kuota hard disk • Kuota email • Batas lalu lintas Panel aplikasi web ISPConfig menyederhanakan pelaksanaan banyak tugas administratif Linux, tetapi penting untuk mengetahui cara menggunakan utilitas baris perintah standar untuk mencapai hasil yang sama. Kami akan membahas topik-topik itu di bab-bab selanjutnya. Anda tidak akan terikat dengan ISPConfig; jika Anda memilih untuk melakukannya tanpa itu, Anda akan memiliki pengetahuan untuk melakukannya. • MENGIKAT • Pemindai surat (antivirus) • Firewall Pada saat penulisan ini, persyaratan sistem meliputi: • Penjawab otomatis POP3 • Basis data klien MySQL Machine Translated by Google
  86. Menginstal ISPConfig | 75 www.it-ebooks.info Sistem operasi Linux (kernel 2.4

    atau lebih baru dengan pustaka glibc6 ). Distribusi berikut ini didukung: • CentOS 4.1, 4.2, 4.3, dan 4.4 • Debian Versi 3.0 atau yang lebih baru • ProFTP sebagai versi standalone atau vsftpd sebagai versi inetd/ xinetd/ standalone • paket kuota • Sendmail atau Postfix • SUSE Linux Versi 7.2 atau yang lebih baru Penting untuk dipahami bahwa server dan paket ini harus sudah diinstal pada sistem Anda, seperti yang dijelaskan dalam Bab 2, sebelum Anda menginstal ISP Config. ISPConfig tidak disertakan dengan layanan ini, tetapi mengharuskan layanan tersebut sudah ada di sistem Anda. Keuntungan dari pendekatan ini adalah Anda dapat menggunakan paket default distribusi Anda dan kemudian dapat memperbaruinya seperti biasanya Anda memperbarui paket di sistem Anda menggunakan alat distribusi Anda. Anda tidak perlu mengkompilasi layanan ini dari sumber dengan opsi khusus untuk digunakan dengan ISPConfig—paket default akan melakukannya. • Server web Apache Versi 1.3.12 atau lebih baru, atau 2.0.40 atau lebih baru • Paket Linux Ubuntu 5.04 hingga 6.10 Pengelola proyek mencantumkan komponen distribusi Linux tertentu yang perlu diinstal pada sistem Anda sebelum Anda dapat menginstal ISPConfig. Ini termasuk: • Fedora Core 1 hingga 6 • Mandrake Linux Versi 8.1 atau yang lebih baru • BIND 8 atau 9 • Mandriva 2006 dan 2007 • iptables atau ipchains • Database MySQL • OpenSSL dan mod_ssl untuk pembuatan host virtual SSL • PHP 4.0.5 atau yang lebih baru sebagai modul Apache • Daemon POP3/IMAP yang mendukung kotak surat Unix tradisional untuk mat (mis., gnu-pop3d, qpopper, ipop3d, popa3d, atau vm-pop3d) atau format maildir (misalnya, Courier-Imap, Dovecot) • Procmail • Red Hat Linux Versi 7.3 atau yang lebih baru Machine Translated by Google
  87. ISPConfig memungkinkan server publik dan internal dijalankan dengan menggunakan port

    yang tidak standar untuk server internal. Misalnya, server Apache internal ISPConfig mendengarkan pada port 81 alih-alih port 80, yang biasanya digunakan oleh server web distribusi yang menghosting situs web yang tersedia untuk umum. Daemon ISPConfig Khusus Selain mengelola aplikasi yang telah Anda instal di sistem Anda, ISPConfig memelihara versinya sendiri dari beberapa aplikasi untuk digunakan sendiri. Anda dapat menemukan sumber untuk ini di direktori install_ispconfig/ compile_aps dari paket. Layanan redundan ini ada sehingga Anda dapat terus mengelola ISPConfig meskipun layanan reguler (seperti server web Apache publik Anda) tidak berfungsi. www.it-ebooks.info 76 | Bab 4: Lingkungan Awal yang Siap-Internet Terminal Anda akan menampilkan pesan yang mirip dengan berikut ini: Persiapan Seperti banyak paket Linux dan Unix, ISPConfig disediakan sebagai kumpulan file yang digabungkan dengan utilitas tar , yang hasilnya sering disebut tarball. Ketika Anda mengklik tautan Unduh di http:// sourceforge.net/ projects/ ispconfig, itu akan membawa Anda ke salah satu mirror situs SourceForge. Situs tipikal yang berisi ISPConfig adalah http:// superb-west.dl.sourceforge.net/ sourceforge/ ispconfig/ ISPConfig-2.2.6.tar.gz. ISPConfig menyiapkan dua direktori yang berisi file dan subdirektori yang membentuk panel aplikasi: /root/ ispconfig dan /home/ admispconfig. Anda dapat menghapus ISPConfig dan kembali ke server berbasis teks standar dengan menjalankan /root/ ispconfig/ uninstall; beberapa pembaca mungkin memilih untuk melakukannya setelah bekerja sebentar dengan buku ini. Anda cukup mengeklik tautan Unduh untuk mengunduh berkas, tetapi karena berkasnya cukup besar, Anda mungkin perlu menyalin URL dan menempelkannya ke perintah wget di jendela terminal Anda. Keuntungan menggunakan wget adalah Anda dapat memulihkan dengan mudah jika ada sesuatu yang mengganggu unduhan Anda. Jika Anda mengeluarkan perintah dengan opsi -c , Anda dapat melanjutkan unduhan daripada memulai lagi dari awal: jika unduhan dibatalkan, jalankan kembali perintah wget seperti sebelumnya dan itu akan melanjutkan dari tempat terakhirnya. Dalam bab ini kami akan menganggap Anda memulai di direktori bernama /root di sistem Anda. Anda dapat mengunduh tarball ISPConfig dengan perintah ini (dalam satu baris, menggantikan URL untuk versi terbaru di situs SourceForge): # wget -c http://superb-west.dl.sourceforge.net/sourceforge/ispconfig/ISPConfig-2.2. 6.tar.gz --16:20:48-- http://superb-west.dl.sourceforge.net/sourceforge/ispconfig/ISPConfig 2.2.1.tar.gz => `ISPConfig-2.2.1.tar.gz' Machine Translated by Google
  88. www.it-ebooks.info Menginstal ISPConfig | 77 File tersebut berisi 19 nilai

    tambahan untuk Debian yang tidak akan kami cantumkan di sini. Kecuali Anda memiliki kecakapan yang signifikan dengan administrasi Linux dan keakraban dengan ISP Config, tetap berpegang pada nilai default. Mereka harus bekerja selama Anda menggunakan salah satu distribusi yang didukung yang tercantum sebelumnya dalam bab ini. Administrator yang berpengetahuan luas dapat mengubah nilai, selama format file dipertahankan. yang membuat subdirektori bernama install_ispconfig. Ubah ke direktori /root/ install_ispconfig. Periksa file dist.txt dan lihat apakah nilai yang diberikan di sana sesuai dengan server Linux Anda. Sekarang mulai instalasi. Jalankan perintah instalasi ./setup dari prompt root. Skrip installer akan dimulai dengan mengkompilasi Apache dengan PHP 5 yang berjalan pada port 81. Pertama, Anda akan diminta untuk memilih bahasa Anda: Anda akan melihat layar peringatan: Untuk Debian 3.1, nilai di dist.txt terlihat seperti ini: Buka paket arsip ISPConfig dengan perintah: Dengan instalasi sistem, beberapa file sistem diganti di mana penyesuaian dibuat. Hal ini dapat menyebabkan hilangnya entri di httpd.conf, bernama.conf serta dalam konfigurasi Sendmail. Permintaan HTTP terkirim, menunggu tanggapan... 200 OK Panjang: 26,633,490 (25M) [application/x- gzip] 24% [========> ] 6,533,049 # tar xvfz ISPConfig*.tar.gz #debian31 #debian31 Menyelesaikan super-west.dl.sourceforge.net... 209.160.59.253 Menghubungkan ke super-west.dl.sourceforge.net|209.160.59.253|:80... terhubung. Pilih bahasa Anda (Jerman/Inggris/Spanyol/Prancis/Italia/Belanda/Polandia/ Swedia): / Silakan pilih bahasa Anda (Jerman/Inggris/Spanyol/Prancis/Italia/ Belanda/Polandia/Swedia): / Merci de choisir votre langue (Allemand/Anglais/Espagnol/ Francais/Italia/Nerlandais/Polonais/Sudois): 1) de 2) en 3) es 4) fr 5) it 6) nl 7) pl 8) se Pilihan Anda: / Pilihan Anda: / Paduan Suara: dist_init_scripts=/etc/init.d ## dist_runlevel=/etc ## server2:~/install_ispconfig # ./setup SuSE 10.0 Instalasi baru menggunakan ISPConfig-Systems. / Instalasi sistem ISPConfig baru. / Instalasi d'ISPConfig sur un nouveau systeme. JST 01:32 Apakah Anda ingin melanjutkan penginstalan? [y/t] y 252,80K/dtk Machine Translated by Google
  89. www.it-ebooks.info 78 | Bab 4: Lingkungan Awal yang Siap-Internet suExec

    adalah peningkatan keamanan pada server web yang membutuhkan skrip CGI untuk dimiliki dan dijalankan oleh pengguna tertentu. Saat diminta untuk direktori default, Anda dapat memilih direktori mana pun yang Anda suka, tetapi pastikan direktori tersebut berada di partisi dengan ruang disk yang cukup untuk situs web yang Anda rencanakan untuk dihosting. Selanjutnya, jika Anda ingin mengonfigurasi kuota dengan ISPConfig, pastikan Anda mengaktifkan kuota untuk partisi tersebut seperti yang dijelaskan di Bab 2. Jika Anda ingin mengaktifkan suExec untuk situs web yang diizinkan menjalankan skrip Perl/CGI, direktori harus berada di dalam direktori suExec akar dokumen. Pada Debian dan Fedora/Red Hat, root dokumen default suExec adalah /var/ www, sedangkan di SUSE adalah /srv/ www. Jika Anda mengaktifkan suExec, root dokumen adalah pilihan yang baik untuk direktori tempat meletakkan ISPConfig: ########## WEB SERVER ########## Memeriksa program httpd. .. /usr/sbin/httpd OK Memeriksa sintaks dari httpd.conf... ___________________________________________________________ _ Apakah ini benar? [y/n] n Web- Root: /var/www Pilihan Anda: 2 Membuat sertifikat khusus yang ditandatangani oleh CA sendiri [CUSTOM] Web-Root: /home/www Hak Cipta (c) 1998-2000 Ralf S. Engelschall, Semua Hak Dilindungi Undang-Undang. 1) standar 2) ahli Sintaks OK Sintaksnya ok! Selama bagian awal penginstalan, skrip akan menanyakan mode mana yang Anda inginkan untuk menjalankan penginstalan. Pilih mode ahli: Pada tahap ini, instalasi dimulai dengan mengkompilasi server Apache yang akan digunakan untuk menampilkan antarmuka web ISPConfig pada port 81. Ketika ISPConfig Apache build selesai, Anda akan melihat sertifikat SSL khusus yang dikompilasi. Program penginstalan akan meminta Anda untuk memberikan beberapa nilai. Anda dapat menerima nilai default atau memasukkan nilai Anda sendiri. Layar akan terlihat seperti berikut: Utilitas Pembuatan Sertifikat SSL (mkcert.sh) Dalam mode ahli, Anda akan diberikan pilihan tambahan yang ditetapkan oleh ISPConfig sebagai default dalam mode standar. Program instalasi akan melanjutkan untuk menanyakan pertanyaan tentang pengaturan sistem Anda (misalnya, MTA, server FTP, server web, log mana yang akan digunakan). Karena Anda telah menginstal paket-paket ini di sistem Anda, Anda seharusnya dapat menjawab semua pertanyaan. Sistem akan menampilkan lisensi, yang harus Anda baca dan kemudian terima: Apakah Anda menerima lisensi? [y/t] y Machine Translated by Google
  90. Menginstal ISPConfig | 79 www.it-ebooks.info e adalah 65537 (0x10001) ___________________________________________________________

    _ ___________________________________________________________ _ _______________________________________________________________ _ LANGKAH 0: Tentukan algoritma tanda tangan yang digunakan untuk sertifikat Sertifikat X.509 yang dihasilkan dapat berisi bahan berbasis RSA atau DSA. Pilih salah satu yang ingin Anda gunakan. Anda akan diminta untuk memasukkan informasi yang akan dimasukkan ke dalam permintaan sertifikat Anda. Versi Sertifikat (1 atau 3) [3]: Signature ok subject=/C=XY/ST=Snake Desert/ L=Snake Town/O=Snake Oil, Ltd/OU=Certificate Authority/ CN=Snake Oil CA/emailAddress= [email protected] Mendapatkan kunci Pribadi Verifikasi: sertifikat yang cocok & modulus kunci Verifikasi: tanda tangan sertifikat yang cocok ../conf/ssl.crt/ca.crt: /C=XY/ST=Snake Desert/L=Snake Town/O= Snake Oil, Ltd/ OU=Certificate Authority/CN=Snake Oil CA/[email protected] error 18 pada 0 pencarian kedalaman: sertifikat yang ditandatangani sendiri Anda akan diminta untuk memasukkan informasi yang akan dimasukkan ke dalam permintaan sertifikat Anda. LANGKAH 1: Menghasilkan kunci pribadi RSA untuk CA (1024 bit) [ca.key] 1698765 byte semi-acak dimuat Menghasilkan kunci pribadi RSA, modulus panjang 1024 bit [Snake Desert]: 3. Nama Lokalitas (misalnya, kota) LANGKAH 4: Menghasilkan kunci pribadi RSA untuk SERVER (1024 bit) [server.key] 1698765 byte semi-acak dimuat Menghasilkan kunci pribadi RSA, modulus panjang 1024 bit .........++++++ [Snake Oil CA]: (misalnya, nama@FQDN) [[email protected]]: (hari) [365]: .............++++++ 6. Nama Umum 7. Alamat Email 8. Validitas Sertifikat e adalah 65537 (0x10001) LANGKAH 2: Membuat permintaan penandatanganan sertifikat X.509 untuk CA [ca.csr] LANGKAH 5: Membuat permintaan penandatanganan sertifikat X.509 untuk SERVER [server.csr] LANGKAH 3: Membuat sertifikat X.509 untuk CA yang ditandatangani sendiri [ca.crt] Algoritma Tanda Tangan ((R)SA atau (D)SA) [R]: Apa yang akan Anda masukkan adalah apa yang disebut Distinguished Name atau DN. Oke Apa yang akan Anda masukkan adalah apa yang disebut Distinguished Name atau DN. Ada beberapa bidang tetapi Anda dapat mengosongkannya Untuk beberapa bidang akan ada nilai default, Jika Anda memasukkan '.', bidang tersebut akan dikosongkan. (2 kode huruf) [XY]: 1. Nama Negara 2. Nama Negara Bagian atau Provinsi (nama lengkap) ___________________________________________________________ _ ___________________________________________________________ _ Ada beberapa bidang tetapi Anda dapat membiarkan beberapa kosong Untuk beberapa bidang akan ada nilai default, ............++++++ ...........................++++++ [Snake Town]: 4. Nama Organisasi (misalnya, perusahaan) [Snake Oil, Ltd]: 5. Nama Unit Organisasi (misalnya, bagian) [Otoritas Sertifikat]: (misalnya, nama CA) Machine Translated by Google
  91. www.it-ebooks.info 80 | Bab 4: Lingkungan Awal yang Siap-Internet Pada

    langkah 7 dan 8 dari proses pembuatan sertifikat, Anda akan ditanya apakah Anda ingin mengenkripsi masing-masing kunci sekarang: Jika kompilasi gagal, pengaturan dihentikan dan semua file yang dikompilasi akan dihapus. Pesan kesalahan yang Anda dapatkan harus menunjukkan alasan kegagalan. Dalam kebanyakan kasus, file header untuk sebuah paket tidak ada. Pilih n untuk menjawab pertanyaan-pertanyaan ini. Jika tidak, Anda akan selalu dimintai kata sandi setiap kali Anda ingin me-restart sistem ISPConfig, yang berarti tidak dapat di- restart tanpa interaksi manusia. Apa pun alasannya, lihat kembali pengaturan server Anda dan selesaikan masalahnya. Jika direktori install_ispconfig belum dihapus meskipun ada kesalahan, hapus secara manual. LANGKAH 8: Mengenkripsi kunci pribadi RSA SERVER dengan frasa sandi untuk keamanan [server. kunci] Versi Sertifikat (1 atau 3) [3]: Tanda tangan ok subject=/C=XY/ST=Snake Desert/L=Snake Town/O=Snake Oil, Ltd/OU=Webserver Team/CN=www. snakeoil.dom/ [email protected] Mendapatkan Kunci Pribadi CA Verifikasi: tanda tangan sertifikat yang cocok ../conf/ssl.crt/server.crt: OK ___________________________________________________________ _ Isi file server.key (kunci pribadi yang dihasilkan) harus dirahasiakan. Jadi kami sangat menyarankan Anda untuk mengenkripsi file server.key dengan cipher Triple-DES dan Pass Phrase. LANGKAH 6: Membuat sertifikat X.509 yang ditandatangani oleh CA sendiri [server.crt] Enkripsi kunci pribadi sekarang? [Y/n]: n menulis kunci RSA Masukkan frasa sandi PEM: Memverifikasi - Masukkan frasa sandi PEM: Baik, Anda menggunakan kunci pribadi terenkripsi. [Snake Town]: 4. Nama Organisasi (misalnya, perusahaan) [Snake Oil, Ltd]: 5. Nama Unit Organisasi (misalnya, bagian) [Tim Server Web]: (misalnya, FQDN) [www.snakeoil.dom]: ( misalnya, nama@fqdn) [[email protected]]: (hari) [365]: ___________________________________________________________ _ 6. Nama Umum 7. Alamat Email 8. Validitas Sertifikat Jika Anda memasukkan '.', bidang akan dibiarkan kosong. (2 kode huruf) [XY]: 1. Nama Negara 2. Nama Negara Bagian atau Provinsi (nama lengkap) LANGKAH 7: Mengenkripsi kunci pribadi RSA CA dengan frasa sandi untuk keamanan [ca.key] Isi file ca.key (kunci pribadi yang dihasilkan) harus dirahasiakan. Jadi kami sangat menyarankan Anda untuk mengenkripsi file server.key dengan cipher Triple-DES dan Pass Phrase. [Snake Desert]: 3. Nama Lokalitas (misalnya, kota) (Khususnya, ISP harus mengubah ini menjadi kontak Postmaster lokal) teks default: [administrator sistem itu] Enkripsi kunci pribadi sekarang? (Y/n): n Alamat email atau URL apa yang harus digunakan dalam teks laporan yang dicurigai sebagai spam untuk pengguna yang menginginkan informasi lebih lanjut tentang pemasangan filter Anda? ___________________________________________________________ _ Machine Translated by Google
  92. www.it-ebooks.info HTTP: Menginstal ISPConfig | 81 selesai Silakan masukkan server

    MySQL Anda: localhost Silakan masukkan pengguna MySQL Anda: root Silakan masukkan kata sandi MySQL Anda: Kata sandi MySQL Anda Silakan masukkan nama untuk database ISPConfig: ispconfigdb Silakan masukkan alamat IP web ISPConfig: 192.168.0.1 Silakan masukkan host nama: www Silakan masukkan domain: xyz.de Berhasil terhubung ke server MySQL ls: / etc/apache2/vhosts.d/*.conf: Tidak ada file atau direktori seperti itu Memulai ulang beberapa layanan... yang: tidak ada apachectl di (/ sbin:/usr/sbin:/usr/local/ sbin:/root/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/ libexec) selesai selesai selesai selesai 2) HTTP Memulai sistem ISPConfig... / root/ispconfig/httpd/bin/apachectl startsl: httpd dimulai Sistem ISPConfig sekarang aktif dan berjalan! Pilihan Anda: 2 selesai Sistem ISPConfig: Memulai layanan email (Postfix) 1) HTTPS Mematikan Server ProFTPD: Memulai Server ProFTPD: - peringatan: alamat/port "ProFTPD" (70.253.158.45:21) sudah digunakan oleh "Instalasi Default ProFTPD" selesai Mematikan Server ProFTPD: Memulai Server ProFTPD: - peringatan: "ProFTPD" alamat/port (70.253.158.45:21) sudah digunakan oleh "ProFTPD Default Installation" Memulai layanan email (Postfix) Mematikan layanan email (Postfix) Mematikan layanan email (Postfix) Silakan pilih protokol (http atau https (enkripsi SSL)) yang akan digunakan untuk mengakses Kesalahan akan menyebabkan penginstalan ISPConfig berhenti. Kemudian buka paket sumber ISPConfig lagi, buka direktori install_ispconfig baru, dan jalankan ./setup. Anda tidak dapat menginstal ISPConfig dua kali dari direktori install_ispconfig yang sama setelah terjadi kesalahan. Skrip instalasi memverifikasi sintaks file konfigurasi Apache yang ada. Jika semua kondisi terpenuhi, Anda perlu memberikan nilai selama instalasi. Ini termasuk: Selanjutnya, program konfigurasi menanyakan protokol mana yang ingin Anda gunakan. Pilih butir 2, Anda akan melihat sistem menjalankan skrip terakhir dan memulai kembali beberapa layanan: Demikian pula, jika salah satu paket yang diperlukan tidak ada, rutinitas instalasi akan dihentikan. Instal paket yang hilang, hapus direktori install_ispconfig, buka paket ISPConfig lagi, dan mulai dari awal. Machine Translated by Google
  93. www.it-ebooks.info 82 | Bab 4: Lingkungan Awal yang Siap-Internet drwxr-xr-x

    6 root root 4096 2006-04-26 09:50 openssl drwxr- xr-x 6 root root 4096 2006-04-26 10:00 php drwxr-xr-x 4 root root 4096 2006-04-26 12:28 script drwxr-xr-x 4 root root 4096 2006-04-26 12:28 standard_cgis drwxr-xr-x 2 root root 4096 2006-04-26 12:28 sv -rwx------ 1 root root 9389 2006-04-26 12:28 hapus instalan -rw-r--r-- 1 akar akar -rwxr-xr-x 1 root root 33660 2006-04-26 12:28 cronolog -rwxr- xr-x 1 root root 9673 2006-04-26 12:28 cronosplit drwxr-xr-x 12 root root 4096 2006-04 -26 09:55 httpd drwxr-xr-x 12 root root 4096 2006-04-26 12:28 isp 8 2006-04-26 13:54 .old_path_httpd_root Selamat! Sistem ISPConfig Anda sekarang telah terinstal. Jika Anda harus menginstal kuota, silakan ikuti langkah-langkah yang dijelaskan dalam manual instalasi. Jika tidak, sistem Anda sekarang tersedia tanpa reboot. -rwxr-xr-x 1 admispconfig admispconfig 24 2006-04-26 12:28 .forward drwxr-xr-x 8 admispconfig admispconfig 4096 2006-04-26 13:53 ispconfig drwxr-xr-x 2 admispconfig admispconfig 4096 2006-04 -26 12:28 mailstats -rwxr-xr-x 1 admispconfig admispconfig 176 2006-04-26 12:28 .procmailrc Mereka berisi frontend ISPConfig—yaitu, antarmuka webnya—serta beberapa alat, seperti SpamAssassin (http: // spamassassin.apache.org) dan ClamAV ( http:// clamav.elektrapro.com). Anda dapat mengonfigurasinya melalui ISPConfig untuk melindungi dari spam dan virus. Di bawah direktori /home/ admispconfig , Anda akan melihat kumpulan direktori lain: Pengembang mengakhiri skrip instalasi dengan: Anda juga akan menemukan banyak kelas PHP di sini yang menyediakan fungsi untuk menulis file konfigurasi sistem. Singkatnya, /root/ ispconfig berisi backend ISPConfig. Mari kita lihat direktori / root/ ispconfig terlebih dahulu: Ini berisi file konfigurasi Apache, PHP, dan OpenSSL ISPConfig, serta template untuk semua jenis file konfigurasi (untuk Apache, Postfix, Sendmail, BIND, resep procmail , dll.). ISPConfig menggunakan templat ini untuk menulis file konfigurasi untuk layanan yang dikonfigurasinya. Struktur Direktori ISPConfig Seperti disebutkan sebelumnya, direktori utama yang disiapkan oleh ISPConfig disebut ispconfig, dan terletak di bawah direktori tempat Anda melakukan pembangunan (/ root dalam pembuatan bab ini). Anda juga akan menemukan direktori lain di /home bernama admispconfig. Setiap direktori berisi file yang diperlukan untuk menjalankan ISPConfig secara independen. Pada titik ini, Anda dapat memasukkan alamat IP atau nama domain server Anda diikuti dengan :81 di browser Anda untuk mengakses layar login ISPConfig. Machine Translated by Google
  94. www.it-ebooks.info situs web pelanggan. Jika itu tujuan penggunaan Anda, kami

    sarankan untuk membaca manual di http:// ispconfig.org. Jika tidak, kami akan menganggap Anda Jika Anda bertanya-tanya mengapa kami tidak meminta Anda untuk menavigasi ke Menyiapkan Server dan Pengguna dengan ISPConfig | 83 Situs web ISPConfig dan baca manualnya, pertimbangkan hal berikut: Pengembang ISP Config menulis dokumentasi pengguna mereka untuk hosting ISP berencana menggunakan server Anda dengan satu administrator sistem yang mengelola situs web, email, dan layanan FTP aman miliknya sendiri. web3 www.tadelstein.com www.opensourcetoday.org apache2-default sharedip web2 web4 webalizer localhost web1 www.centralsoft.org www.linuxnewswire.org $ ls -a domain muncul untuk setiap direktori dalam daftar baris perintah. www.opensourcetoday.org) adalah tautan simbolis ke sistem yang dikenal sebagai web1, Ketika Anda melihat isi direktori di /var/ www, Anda akan melihat bagaimana ISPConfig ISPConfig mengharuskan Anda untuk menyiapkan klien yang akan memiliki satu atau lebih Internet menyiapkan domain: web2, dan seterusnya. Bandingkan daftar direktori ini dengan daftar situs web pada Gambar 4-1. Setiap situs web • opensourcetoday.org HTTPS sebagai protokol ISPConfig selama instalasi). Di layar masuk (Gambar 4-3), masukkan user ID admin dan password admin. • tadelstein.com berisi direktori. Direktori www yang namanya menunjukkan domain (seperti Untuk mengkonfigurasi klien dan domain, Anda harus terlebih dahulu masuk ke antarmuka ISPConfig. Di browser web Anda, masukkan alamat IP server Anda diikuti dengan port • centralsoft.org • linuxnewswire.org Menyiapkan situs web adalah salah satu langkah pertama untuk memiliki server internet Inter yang berfungsi penuh. Bagian ini akan memandu Anda melalui semua langkah yang diperlukan. untuk ISPConfig, :81—dalam kasus kami, http:// 70.253.158.45:81 (gunakan https:// jika Anda memilih domain. Dalam contoh kami, kami akan menyiapkan satu klien (salah satu penulis ini Gambar 4-2 memberi Anda gambaran yang lebih baik tentang daftar domain. Perhatikan pada Gambar 4-2 bahwa a book) yang akan memiliki empat domain: Menyiapkan Server dan Pengguna dengan ISPConfig Menambahkan Klien dan Situs Web Machine Translated by Google
  95. Dialog Ubah Kata Sandi yang ditunjukkan pada Gambar 4-5 akan

    muncul, dan Anda dapat mengisi formulir. Kemudian, segera ubah kata sandi menjadi kata sandi yang hanya Anda yang tahu. Untuk mengubah kata sandi, pilih Alat dari bilah alat dan kemudian klik simbol kata sandi (Gambar 4-4). Logout dan login lagi dengan kata sandi baru. www.it-ebooks.info Gambar 4-1. Antarmuka Manajer ISP Gambar 4-2. Daftar domain Manajer ISP 84 | Bab 4: Lingkungan Awal yang Siap-Internet Machine Translated by Google
  96. Sebelum Anda dapat menyiapkan situs web, Anda harus membuat pemilik

    situs tersebut. Pilih ISP Manager di toolbar atas. Anda akan melihat menu navigasi yang mirip dengan yang ditunjukkan pada Gambar 4-6. www.it-ebooks.info Gambar 4-5. Formulir ISPConfig untuk mengubah kata sandi Menyiapkan Server dan Pengguna dengan ISPConfig | 85 Gambar 4-3. Layar masuk ISPConfig Gambar 4-4. Menu Alat Machine Translated by Google
  97. Sekarang mari kita lihat bagaimana kita membuat klien tadelstein dan

    situs web linhelp. Klik "Klien baru" di menu Manajer ISP. Anda akan melihat dialog yang mirip dengan yang ada pada Gambar 4-7. www.it-ebooks.info 86 | Bab 4: Lingkungan Awal yang Siap-Internet Gambar 4-6. Menu Manajer ISP dengan klien dan domain ditambahkan Gambar 4-7. Formulir informasi klien Machine Translated by Google
  98. Menyiapkan Server dan Pengguna dengan ISPConfig | 87 Gambar 4-8.

    Formulir yang sudah diisi untuk klien administrasi www.it-ebooks.info Beri situs web nama dan alamat IP, dan buat catatan DNS. Perhatikan juga tab di dalam formulir, di bagian atas area tempat Anda memasukkan nama situs: • Faktur • Pilihan Di sisi kiri menu navigasi, Anda sekarang akan melihat ikon baru yang mewakili seseorang, disertai dengan nama klien. Sekarang Anda dapat membuat situs web. Cukup pilih "Situs baru" dari toolbar, dan Anda akan melihat dialog pada Gambar 4-9. Gambar 4-9 tidak menampilkan semua opsi pada tab Basis. Anda juga akan menemukan beberapa opsi lain yang dapat Anda berikan kepada administrator situs. Untuk situs kami, kami akan menyediakan akses shell, pembuatan database, FTP, dan opsi login, seperti yang ditunjukkan pada Gambar 4-10. • Statistik • Pengguna & Email Masing-masing tab ini menyediakan berbagai konfigurasi dan fungsi manajemen. • Co-Domain • Dasar Masukkan informasi yang relevan untuk klien. Gambar 4-8 menunjukkan bagaimana kita mengisi formulir. Perhatikan bahwa kami menggunakan Linhelp.org sebagai nama perusahaan. Machine Translated by Google
  99. www.it-ebooks.info 88 | Bab 4: Lingkungan Awal yang Siap-Internet Gambar

    4-9. Formulir yang digunakan untuk membuat situs web linhelp.org Gambar 4-10. Opsi situs web Machine Translated by Google
  100. Menyiapkan Server dan Pengguna dengan ISPConfig | 89 Gambar 4-11.

    Menggunakan gftp untuk mentransfer file ke direktori root linhelp.org www.it-ebooks.info Mengarahkan browser di http:// linhelp.org sekarang menampilkan halaman index.html kami . Anda dapat melihat rendering halaman pada Gambar 4-12. ISPConfig menggunakan model hierarkis dengan /var/ www/ web1/ web sebagai root untuk port 80. Itu memungkinkan situs untuk menyediakan ruang disk FTP tanpa batas. Anda mungkin ingin memberikan akses tersebut jika Anda mencerminkan situs unduhan; jika tidak, Anda mungkin lebih suka menetapkan batas sehingga tidak ada yang dapat mengunggah data yang cukup untuk menekan ruang disk yang digunakan oleh layanan lain Kami sekarang memiliki situs web yang sederhana namun fungsional. Lihatlah Gambar 4-13 untuk mendapatkan pemahaman tentang apa yang telah kita siapkan. Di setiap direktori yang Anda buat di bawah jalur ini, Apache membuat cabang lain tempat Anda dapat meletakkan halaman. Secara default, ketika browser meminta direktori, Apache mencari file HTML bernama index.html untuk ditampilkan. Jika Anda tidak menyediakan file index.html , nama file dan direktori di bawah root akan ditampilkan. Perhatikan juga pada Gambar 4-10, di bawah Anon. FTP MB, bahwa sistem default ke -1. Pada titik ini Anda memiliki situs web yang dapat digunakan. Cara mudah untuk menambahkan halaman adalah dengan menggunakan klien FTP seperti gftp grafis untuk mentransfer situs yang telah Anda buat dari folder di desktop Anda, seperti yang ditunjukkan pada Gambar 4-11. Machine Translated by Google
  101. www.it-ebooks.info <a href="./about_us.html">Tentang Kami </ a><br><br> <a href="./products.html">Produk </a><br><br> <a

    href ="./services.html">Layanan </a><br><br> <a href="./support.html">Dukungan </a><br><br> Gambar 4-13 memberikan contoh direktori root dari sebuah situs web. Halaman beranda ditampilkan setiap kali browser menentukan nama direktori, karena memiliki judul default. Halaman beranda berisi tautan ke halaman lain di situs. Contoh diagram pada Gambar 4-13 dapat diperlakukan seperti diagram alir. Kode aktual di dalam halaman beranda akan terlihat seperti ini: Biasanya, tim web yang Anda dukung akan membuat struktur direktori dan halaman web. Anda mungkin juga perlu menawarkan database kepada mereka, tetapi itu adalah topik untuk bab lain. Untuk saat ini, Anda hanya perlu mengetahui cara membuat situs web dan keberadaan domain Internet. Gambar 4-12. Situs web Linhelp.org di browser Firefox 90 | Bab 4: Lingkungan Awal yang Siap-Internet Machine Translated by Google
  102. www.it-ebooks.info Mengelola Pengguna dan Email Salah satu tugas utama administrasi

    sistem Linux adalah mengelola pengguna dan akun mereka. Anda dapat melakukannya menggunakan panel grafis ISPConfig. Setelah Anda menyiapkan domain, memilih salah satunya dari bagian ISP Manager pada toolbar akan menampilkan layar Situs ISP yang ditunjukkan sebelumnya pada Gambar 4-9. Mari kita kembali dan melihat lagi. Formulir memiliki enam tab. Tab kedua dari kiri disebut Pengguna & Email. Dari tab ini, Anda dapat menambahkan pengguna baru dan mengelola pengguna yang sudah ada. Ketika Anda memilih New, Anda akan melihat form lain seperti pada Gambar 4-14. Menyiapkan Server dan Pengguna dengan ISPConfig | 91 Gambar 4-13. Struktur situs web sederhana Halaman web yang ditautkan dari Index.html Halaman web yang ditautkan dari Index.html Tidak bisa Halaman beranda Index.html Halaman web yang ditautkan dari Index.html Halaman web yang ditautkan dari Index.html Navigasi Machine Translated by Google
  103. Pada formulir ini, Anda dapat memasukkan detail pengguna baru dan

    menetapkan batas ruang penyimpanan. Nilai -1 memberikan ruang tak terbatas, tetapi Anda dapat mengelola kuota dengan cara apa pun yang Anda inginkan. Email Alias Pertahankan Salin Memilih opsi ini bila Anda telah menyiapkan penerusan email, akan menyimpan salinan semua pesan masuk di kotak surat lokal pengguna. Ini berguna jika untuk pesan yang diteruskan tidak sampai ke alamat email tujuan (karena penyaringan spam atau masalah lain). Pada tab Pengaturan Lanjutan (Gambar 4-15), Anda dapat menggunakan opsi penerusan untuk mengizinkan email yang dikirim ke pengguna untuk diteruskan ke alamat lain. Dengan kata lain, jika pengguna sudah memiliki alamat email utama yang ingin dia gunakan, Anda dapat menggunakan opsi penerusan untuk mengirim emailnya ke akun tersebut. Jika Anda tidak ingin menampilkan kotak surat pengguna secara publik, pengunjung situs dapat mengirim email ke nama umum seperti [email protected] atau webmaster@central soft.org. Anda dapat melakukan ini dengan memberikan akun alias. Opsi lain pada tab ini meliputi: www.it-ebooks.info Gambar 4-14. Formulir Pengguna ISP 92 | Bab 4: Lingkungan Awal yang Siap-Internet Machine Translated by Google
  104. catchAll-Email Autoresponder Opsi ini memungkinkan Anda untuk mengirim balasan otomatis

    ke email masuk yang ditujukan kepada pengguna tertentu, saat pengguna tidak berada di kantor untuk waktu yang lama. Opsi ini mengalihkan ke kotak surat yang ditentukan setiap email yang ditujukan ke akun pengguna yang tidak ada. Orang terkadang menulis ke alamat yang umum digunakan seperti [email protected] atau [email protected] tanpa memverifikasi bahwa alamat tersebut valid. Anda dapat mengumpulkan pesan semacam itu di satu akun pengguna per situs domain. MailScan Jika Anda ingin email dipindai untuk virus atau kode JavaScript di server, gunakan opsi ini. www.it-ebooks.info Menyiapkan Server dan Pengguna dengan ISPConfig | 93 Gambar 4-15. Opsi email lanjutan Machine Translated by Google
  105. 94 | Bab 4: Lingkungan Awal yang Siap-Internet Gambar 4-16.

    Tab Filter Spam & Antivirus www.it-ebooks.info Pindah ke tab Spamfilter & Antivirus, yang ditunjukkan pada Gambar 4-16, Anda dapat mempertimbangkan strategi spam apa yang akan digunakan. Aktifkan Spamfilter untuk sebuah akun; Anda kemudian dapat menentukan perilaku filter. Tulis Ulang Subjek Dalam mode terima , memilih opsi ini menunjukkan bahwa baris subjek setiap email yang diidentifikasi sebagai spam harus mendapatkan awalan pengenal (secara default, ***SPAM***). Ini memungkinkan pengguna untuk mengurutkan email berdasarkan baris subjek. Hit Spam Filter spam menjalankan sejumlah tes pada email masuk dan memberikan poin untuk setiap tes. Jika jumlah poin untuk pengujian ini mencapai atau melampaui nilai yang ditentukan di bidang Klik Spam, email dikategorikan sebagai spam dan ditangani sesuai dengan strategi spam pengguna. Jika Anda memilih strategi terima spam, Anda mengizinkan spam masuk ke kotak masuk pengguna dan membiarkan agen pengguna email (MUA) pengguna mengurutkan spam. Banyak administrator lebih memilih strategi ini pada awalnya, sampai pengguna memiliki database email yang diidentifikasi sebagai spam. Setelah itu, pengguna dapat beralih ke mode buang , di mana semua email yang diidentifikasi sebagai spam akan dihapus di server. Untuk memungkinkan pengguna membuat perubahan pada akun emailnya sendiri (termasuk kata sandi, filter spam, dan pengaturan antivirus), Anda harus memilih opsi Pengguna surat untuk pengguna tersebut pada tab Basis formulir Situs ISP (lihat Gambar 4-10). Untuk membuat perubahan, pengguna email dapat dengan mudah masuk ke situs dengan nama seperti http:// centralsoft.org:81/ mailuser. Sekarang mari kita lihat opsi spam lainnya: Machine Translated by Google
  106. Gambar 4-17. Tampilan direktori pengguna bergaya penjelajah Menyiapkan Server dan

    Pengguna dengan ISPConfig | 95 www.it-ebooks.info Pengguna, email, rumah, dan direktori web publik Setiap pengguna domain di bawah ISPConfig memiliki direktori home sendiri di bawah folder pengguna. Jika akses FTP diperbolehkan untuk domain, pengguna ditempatkan di direktori home mereka saat mereka masuk melalui FTP. Setiap direktori home juga berisi folder bernama web yang dapat diakses pengguna dengan mengunjungi URL seperti http:// www.centralsoft.org/ ~user atau http:// www.centralsoft.org/ users/ user. Gambar 4-17 menunjukkan struktur direktori home untuk pengguna yang kita buat untuk centralsoft.org. Dengan sebagian besar klien email modern, Anda memiliki opsi untuk memilih Transport Layer Security (TLS). Pilih TLS jika memungkinkan saat mengonfigurasi server keluar. Karena sebagian besar klien email menggunakan server keluar ISP mereka untuk SMTP, Anda dapat memilih TLS jika ISP Anda menggunakannya. Dalam sebagian besar kasus, ID pengguna dan kata sandi Anda akan melewati garis ISP Anda dalam teks yang jelas. Untuk menerima email, siapkan server masuk (kami menggunakan server1.centralsoft.org), dan pilih POP3 atau IMAP. Gunakan nama sistem Anda (misalnya, web1_adelstein) dan tentukan alamat email Anda sebagai alias (misalnya, [email protected]). Konfigurasi Klien Email Pada titik ini, Anda harus memahami dasar-dasar menyiapkan situs web, membuat pengguna, dan menangani email. Tetapi Anda mungkin harus membantu pengguna Anda mengonfigurasi klien email mereka, menentukan server email keluar dan masuk. Pada sistem kami, ISPConfig menggunakan server1.centralsoft.org sebagai server SMTP keluar dan server POP3/IMAP yang masuk. Machine Translated by Google
  107. Peran Daemon-Monitoring Daemon pesan kesalahan saat mencoba mengambil email Anda

    melalui POP3, Anda memiliki Jika Anda mendapatkan "-ERR Unknown AUTHORIZATION state command" 96 | Bab 4: Lingkungan Awal yang Siap-Internet mungkin lupa mengaktifkan enkripsi SSL/TLS. Konfigurasi ulang Anda klien email, aktifkan POP3-over-SSL, dan coba lagi. Daemon -monitoring daemon (DMD) adalah utilitas yang mengawasi layanan Anda untuk Anda dan secara otomatis mencoba untuk me-restart mereka ketika mereka gagal. Jika layanan gagal, Anda juga harus masuk ke server dan membuka konsol untuk menjalankan perintah Tidak peduli seberapa keras Anda bekerja untuk melindungi server Internet Anda, untuk beberapa Di perusahaan besar, Anda mungkin merasa terisolasi seolah-olah server Anda berada 250 mil jauhnya. dan cacing. Situasi yang dihadapi administrator sistem muncul dari kombinasi unik dari faktor-faktor pergeseran yang tidak dapat dikontrol dengan presisi atau kepastian. Akibatnya, administrator perlu belajar beradaptasi dengan cepat terhadap hal-hal baru (seringkali bermusuhan) Dalam lingkungan bisnis saat ini, kejadian tak terduga sering terjadi. Individu yang bermaksud buruk memindai alamat IP untuk mencari eksploitasi. Mereka menggunakan kamus kata sandi yang canggih untuk mencoba mendapatkan akses root ke server sehingga mereka dapat menyampaikan spam, virus, kombinasi alasan yang tidak diketahui, sesuatu di sistem Anda bisa gagal. Dalam sempurna personel layanan untuk berlari ke rak server dan menyalakannya kembali ke tempat kerja Operator pusat data jarang memberikan akses ke ruang server bahkan untuk administrator sistem, jadi terlepas dari lokasi mereka, penting bagi administrator untuk mengetahuinya beradaptasi, Anda harus bisa mengantisipasi dan berimprovisasi. negara. Namun, orang dukungan teknis di ISP tidak akan langsung tersedia, jadi Anda mungkin harus menunggu sementara aplikasi penting tidak digunakan. Bayangkan Anda menghosting server Anda di ISP 250 mil dari basis operasi Anda. Namun, di lain waktu, Anda harus beradaptasi dengan situasi secara mendadak seperti /etc/ init.d/ mysql restart. Namun, DMD dapat menjalankan perintah itu untuk Jika server itu mati, seseorang harus menelepon ISP dan mendapatkan salah satu dari mereka sesaat, tanpa waktu untuk persiapan. Ini melibatkan improvisasi. Menjadi sepenuhnya Anda tanpa campur tangan dari pihak Anda. situasi. dunia, Anda dapat memantau setiap layanan dan sistem akan segera memperingatkan Anda dari setiap kegagalan. Tapi kemudian, kita tidak hidup di dunia di mana harapan kita selalu Ada dua cara untuk beradaptasi. Pertama, jika Anda memiliki kesadaran yang cukup untuk memahami situasi sebelumnya, Anda dapat mengambil tindakan pencegahan. Kami akan menyebut antisipasi ini. ditanggung. bagaimana mengelola sistem mereka dari jarak jauh. www.it-ebooks.info Melindungi Server Web Linux Machine Translated by Google
  108. Gambar 4-18. Antarmuka web untuk monit yang berjalan di centralsoft.org

    Melindungi Server Web Linux | 97 www.it-ebooks.info Jika layanan dimulai ulang, itulah akhir masalahnya. Jika tidak berhasil memulai ulang, DMD akan melakukan sejumlah upaya (misalnya, lima) dan kemudian menghubungi Anda melalui pesan teks, email, atau bentuk komunikasi lain untuk memperingatkan Anda tentang masalah tersebut. Pada saat itu, Anda harus turun tangan dan mencari tahu mengapa layanan Anda gagal. Perhatikan lima layanan di bawah pengawasan. Pada Gambar 4-19, kami menelusuri untuk menunjukkan bagaimana sistem menangani setiap proses. Dalam hal ini, kami menampilkan sshd. DMD berjalan seperti layanan lain di sistem Anda. Ini memiliki file konfigurasi yang memungkinkan Anda memilih opsi yang paling sesuai dengan kebutuhan Anda. Anda dapat memulainya saat boot atau memulainya secara manual. Pada bagian berikutnya kita akan menyiapkan DMD yang disebut monit, yang memiliki antarmuka web sederhana yang ditunjukkan pada Gambar 4-18. Machine Translated by Google
  109. 98 | Bab 4: Lingkungan Awal yang Siap-Internet Gambar 4-19.

    Mengebor ke sshd # apt-get install monit Jika gagal localhost:22 [SSH] dengan batas waktu 5 detik kemudian restart lagi jika pulih kemudian waspada www.it-ebooks.info Perhatikan pada Gambar 4-19 bahwa status sshd menunjukkan bahwa ia sedang berjalan dan bahwa sistem sedang memantaunya. Tiga baris dari bagian bawah layar, Anda dapat melihat instruksi tentang apa yang harus dilakukan jika sshd gagal: Terakhir, monit menyediakan empat tombol di bagian bawah halaman untuk intervensi manual. Sekarang, mari kita lihat bagaimana sistem ini bekerja. restart. Setelah Anda menginstal monit, edit /etc/ monit/ monitrc. File yang dibuat selama penginstalan berisi banyak contoh, dan Anda dapat menemukan lebih banyak contoh konfigurasi di http:// www.tildeslash.com/ monit/ doc/ examples.php. Dalam kasus kami, kami ingin: Menginstal dan Mengonfigurasi monit Untuk menginstal monit, Anda dapat menggunakan manajer paket sistem Linux atau mengunduh tarball dari http:// www.tildeslash.com/ monit. Jika Anda menggunakan setup Debian dari Bab 2, cukup masukkan: Kebijakan ini hanya memulai ulang layanan yang gagal dan mengirim pesan saat berhasil Machine Translated by Google
  110. www.it-ebooks.info group mail start program = "/etc/init.d/postfix start" stop program

    = "/etc/init.d/postfix stop" jika protokol smtp port 25 gagal maka restart jika 5 restart dalam 5 siklus maka timeout atur daemon 60 atur file log fasilitas syslog log_daemon setel mailserver localhost setel format email { from: [email protected] } setel alert root@localhost setel port httpd 2812 dan grup www start program = "/etc/init.d/apache2 start" stop program = "/etc/init.d/apache2 stop" jika gagal host www.centralsoft.org port 80 protokol http dan minta "/monit/token" kemudian restart jika cpu lebih besar dari 60% untuk 2 siklus kemudian waspada jika cpu > 80% untuk 5 siklus kemudian restart jika totalmem > 500 MB untuk 5 siklus kemudian restart jika anak > 250 kemudian restart jika loadavg (5 menit) lebih besar dari 10 untuk 8 siklus kemudian berhenti jika 3 dimulai ulang dalam 5 siklus maka batas waktu periksa proses postfix dengan pidfile /var/spool/postfix/pid/master.pid SSL AKTIFKAN PEMFILE /var/certs/monit.pem izinkan admin: tes cek proses proftpd dengan pidfile /var/run/proftpd.pid start program = "/etc/init.d/proftpd start" stop program = "/etc/init.d / proftpd stop" jika ftp protokol port 21 gagal kemudian restart jika 5 restart dalam 5 siklus kemudian batas waktu periksa proses sshd dengan pidfile /var/run/ sshd.pid start program "/etc/init.d/ssh start" stop program "/ etc/init.d/ssh stop" jika gagal protokol port 22 ssh kemudian restart jika 5 restart dalam 5 siklus maka batas waktu periksa proses mysql dengan pidfile /var/ run/mysqld/mysqld.pid group database start program = "/etc/init .d/mysql start" stop program = "/etc/init.d/mysql stop" jika host gagal 127.0.0.1 port 3306 kemudian restart jika 5 restart dalam 5 siklus kemudian timeout periksa proses apache dengan pidfile /var/run/apache2. pid • Aktifkan antarmuka web monit pada port 2812. • Pantau layanan proftpd, sshd, mysql, apache, dan postfix . • Buat antarmuka web Secure Sockets Layer (https) tempat kita dapat masuk dengan nama pengguna admin. • Beritahu monit untuk mengirim email peringatan ke root@localhost. File konfigurasi /etc/ monit/ monitrc kami terlihat seperti ini: Melindungi Server Web Linux | 99 Machine Translated by Google
  111. www.it-ebooks.info = Nama Organisasi (misalnya, perusahaan) = Monittown jika gagal

    host www.centralsoft.org port 80 protokol http # buat sertifikat RSA - Server RANDFILE = ./openssl.rnd [ req ] default_bits = 1024 encrypt_key = yes yg dibedakan_name = req_dn x509_extensions = cert_type [ req_dn ] countryName = Nama Negara (kode 2 huruf) countryName_default = MO stateOrProvinceName_default nama_provinsi nama_organisasi default localitynamaprovinsi_nama_negara_negara_nama_provinsi_negara_default Nama Unit Organisasi (mis., bagian) organisasiUnitName organisasiUnitName_default = Dept. Teknologi Pemantauan = Nama Umum (FQDN server Anda) commonName commonName_default = server.monit.mo emailAddress = Alamat Email emailAddress_default = [email protected] [ cert_type ] nsCertType = server = Monit Inc. dan minta "/ monit/token" lalu mulai ulang = Nama Negara Bagian atau Provinsi (nama lengkap) # mkdir /var/certs # cd /var/certs = pemantauan # mkdir /var/www/www.centralsoft.org/web/monit # echo "halo" > /var/www/www.centralsoft.org/web/monit/token = Nama Lokalitas (misalnya, kota) Di bagian apache dari konfigurasi monit , Anda akan melihat pernyataan ini: Pernyataan dan opsi dijelaskan dalam dokumentasi monit di http:// www. tildeslash.com/ monit/ doc/ manual.php. Ini berarti monit mencoba terhubung ke www.centralsoft.org pada port 80 dan mencoba mengakses file /monit/ token. Karena akar dokumen situs web kami adalah /var/ www/ www. centralsoft.org/ web, nama file diperluas ke /var/ www/ www.centralsoft.org/ web/ monit/ token. Jika monit tidak berhasil, ini berarti Apache tidak berjalan, jadi monit mencoba untuk memulai ulang. Anda dapat mengikuti prosedur serupa di sistem Anda sendiri. Selanjutnya, buat direktori untuk menampung file pem cert (/ var/ certs/ monit.pem) yang diperlukan untuk antarmuka web monit terenkripsi SSL : Anda memerlukan file konfigurasi OpenSSL untuk membuat sertifikat. File /var/ certs/ monit.pem yang dihasilkan akan terlihat seperti ini: Sekarang kita harus membuat file /var/ www/ www.centralsoft.org/ web/ monit/ token dan menulis beberapa string arbitrer ke dalamnya: 100 | Bab 4: Lingkungan Awal yang Siap-Internet Machine Translated by Google
  112. Apa Selanjutnya | 101 www.it-ebooks.info # openssl req -new -x509

    -days 365 -nodes -config ./monit.cnf -out \ /var/certs/ monit.pem -keyout /var/certs/monit.pem # openssl gendh 512 >> /var/certs / monit.pem # openssl x509 -subject -dates -fingerprint -noout -in /var/certs/ monit.pem # chmod 700 /var/certs/monit.pem CHECK_INTERVALS=60 startup=1 # Untuk mengubah interval monit mana yang harus dijalankan batalkan komentar # dan ubah variabel ini. # /etc/init.d/monit start # Default untuk skrip init monit # bersumber dari /etc/init.d/monit # diinstal di /etc/default/monit oleh skrip pengelola # Fredrik Steen <[email protected]> # Anda harus menyetel variabel ini ke untuk memulai monit Apa berikutnya Kemudian edit /etc/ default/ monit untuk mengaktifkan daemon monit . Ubah startup ke 1 dan atur CHECK_INTERVALS ke interval dalam detik di mana Anda ingin memeriksa sistem Anda. Kami memilih 60. File sekarang akan terlihat seperti ini: Akhirnya, mulai monit: Sekarang arahkan browser Anda ke https:// your_domain:2812/ (pastikan port 2812 tidak diblokir oleh firewall Anda) dan login dengan username admin dan password test. Kami memulainya dengan mengaktifkan dan menjalankan server Anda sehingga Anda dapat menggunakannya sebagai platform Inter net. Kami memasang server berbasis teks tanpa Sistem X Window (untuk alasan keamanan dan kinerja) dan kemudian menyiapkan antarmuka berbasis web untuk memungkinkan Anda mengelola dan memantau platform layanan web Anda dengan aman. Sekarang buat sertifikat: Anda akan melihat antarmuka web monit , yang ditunjukkan sebelumnya pada Gambar 4-18. Dalam bab-bab selanjutnya, kita akan memperdalam eksplorasi kita tentang administrasi sistem Linux. Dimulai dengan Bab 5, Anda akan kehilangan ketergantungan pada perangkat lunak administratif yang dapat diinstal sendiri. Kami akan mengonfigurasi aplikasi Linux utama yang digunakan orang dalam kehidupan sehari-hari di perusahaan dan dalam bisnis skala kecil hingga menengah. Machine Translated by Google
  113. Kami akan mengonfigurasi Postfix untuk menggunakan otentikasi berbasis file tradisional,

    yang akan menskalakan ke ribuan pengguna. Penginstalan email yang lebih besar mungkin menyimpan nama akun email dan kata sandi dalam database relasional atau direktori LDAP. Untuk contoh server email yang sangat skalabel berdasarkan Postfix dengan otentikasi LDAP, lihat Zimbra (http:// www.zimbra.com). www.it-ebooks.info 102 • Server Post Office Protocol (POP) dan Interactive Mail Access Protocol (IMAP), untuk mengirimkan email di situs Anda kepada pengguna Anda. • Simple Authentication and Security Layer (SASL) untuk mengautentikasi email, untuk pra spoofing ventilasi. • Server Postfix sebagai agen transfer surat SMTP (MTA), yang menerima surat dari pengguna Anda dan berinteraksi dengan situs lain di Internet untuk mempengaruhi pengiriman surat. Bab 5 Bab 5 • Cara mengamankan email, media yang tidak dirancang dengan mempertimbangkan keamanan, terhadap upaya spoofing dan serangan lain oleh penyerang jahat • Cara melindungi data perusahaan yang sensitif • Cara memberikan akses email ke pengguna jarak jauh di luar jaringan perusahaan Unsur-unsur layanan tersebut antara lain: Solusi dalam bab ini menyatukan beragam komponen untuk membuat sistem pengiriman email yang kuat, aman, dan efisien. Saat ini, orang-orang seperti Wietse Venema (penemu Postfix) telah mengurangi banyak kerumitan dan ketidakpastian yang terlibat dalam konfigurasi sistem email. Alih- alih memusingkan konfigurasi MTA server email yang rumit, administrator sistem Linux memiliki masalah menarik lainnya untuk dipecahkan: Bab ini menunjukkan cara membangun layanan email untuk situs berukuran kecil hingga menengah. Surat Machine Translated by Google
  114. www.it-ebooks.info Pengguna biasanya mengambil email menggunakan POP3 atau IMAP4 melalui

    TCP/IP. Hampir semua MUA modern mendukung POP3 dan IMAP4. MUA mengirim email dengan melampirkan ke MTA dan mentransfer email melalui SMTP. Sendmail dikembangkan sebelum spam dan malware berkembang, dan akibatnya memiliki beberapa kelemahan keamanan. Salah satu masalah paling serius dengan Sendmail adalah bahwa, secara default, ini memungkinkan relai terbuka—yaitu , ia akan merelai surat yang berasal dari mana saja di luar jaringan lokal server. Masalah keamanan ini diilustrasikan pada Gambar 5-1. Agen transfer surat melakukan pekerjaan berat dalam komunikasi Internet, memindahkan surat dari situs ke situs di Internet. Untuk mengirim email, pengirim email melampirkan sistemnya ke MTA, yang kemudian menggunakan SMTP untuk mentransfer email ke MTA yang bertanggung jawab untuk mengirimkan email ke penerima. Terlepas dari metode mana yang digunakan penerima ini, dia mengambil emailnya melalui agen pengiriman email (MDA) seperti Courier IMAP. MDA berbicara dengan MTA untuk mendapatkan surat dan menyediakan kotak masuk sehingga dia dapat mengambil suratnya. Mail kemudian dapat ditampilkan di sistem pengguna melalui agen pengguna email (MUA), seperti Out look, Evolution, atau Thunderbird. Kebanyakan orang menyimpan buku alamat yang mencantumkan kontak mereka sehingga MUA mereka dapat mencari alamat email orang lain. Di lingkungan perusahaan, daftar kontak tersebut sering disimpan di server direktori LDAP. Banyak pengguna bahkan tidak tahu bahwa daftar kontak mereka memiliki backend LDAP. Anda mungkin bertanya-tanya mengapa kami memilih untuk menggunakan Postfix sebagai MTA kami daripada Sendmail, server email Internet asli yang dikembangkan pada awal 1980- an oleh Eric All man di UC Berkeley. Sendmail telah lama memiliki basis instalasi MTA terbesar di Internet, meskipun kami tidak yakin hal itu masih terjadi sampai sekarang. Banyak survei menunjukkan bahwa popularitas Sendmail telah memudar dengan cepat; memiliki kurang dari 40 persen pangsa server di Internet. Sementara beberapa pendukung keras Sendmail mengatakan itu fleksibel dan terukur, banyak administrator sistem menganggap Sendmail sangat kompleks dan sulit untuk diatur dan dipelihara. Penerima memiliki beberapa cara untuk mengambil email dari MTA, tidak satu pun dari mereka menggunakan SMTP: dia dapat masuk sebagai pengguna pada sistem yang menjalankan MTA, melampirkan ke MTA melalui koneksi langsung (seperti saluran dial-up ke ISP), atau terowongan melalui Internet ke MTA jarak jauh. (Kami mengabaikan metode yang dihapus lebih lanjut, seperti mengambil email melalui antarmuka web seperti Gmail atau menggunakan po Ketentuan Layanan Surat Utama Postfix, Sendmail, dan MTA Lainnya Postfix, Sendmail, dan MTA Lainnya | 103 Machine Translated by Google
  115. www.it-ebooks.info Gambar 5-1. Masalah keamanan di lingkungan email yang tidak

    bersahabat 104 | Bab 5: Surat Pengguna seluler Mekanisme keamanan back-end yang digunakan untuk host jarak jauh untuk menyampaikan email dari luar jaringan. Pengguna Server email yang memblokir relay luar secara default. Surat massal yang tidak diminta. * Lihat BusinessWire, 25 Mei 2006, “Satu dari Tiga Perusahaan Beroperasi Tanpa Kebijakan Penggunaan Email, Mempertaruhkan Kerusakan pada Sistem dan Reputasi Mereka, Menemukan Sendmail” (http://goliath.ecnext.com/ coms2/ summary_ 0199-5568576_ITM). Mail server yang memungkinkan relaying dari luar jaringan. Host di jaringan Pengguna Pengirim email massal yang tidak diminta (UBE), juga dikenal sebagai spammer atau pengirim email komersial yang tidak diminta (UCE), saat ini bertanggung jawab atas lebih dari 50 persen lalu lintas email di Internet. Ini sangat mengikat antrian email, server DNS, CPU dan kapasitas penyimpanan, dan sumber daya infrastruktur. UBE menggunakan berbagai teknik untuk menyembunyikan identitas aslinya, termasuk memalsukan alamat IP, memalsukan amplop surat, dan menyampaikan melalui server SMTP terbuka. MTA yang dikonfigurasi dengan baik menerima (relay) surat keluar hanya dari alamat jaringan milik pengguna yang sah, biasanya terbatas pada subnet tertentu. Namun, secara default, Sendmail akan merelai email yang dikirim oleh siapa saja. Jika Anda menggunakan Sendmail dan tidak berhati-hati untuk mematikan relai terbuka, UBE dapat memanfaatkan MTA Anda untuk menyembunyikan asalnya. Server email Anda kemudian dapat dimasukkan dalam daftar hitam sebagai relai terbuka, yang akan menyebabkan semua email sah yang mengalir melaluinya diperlakukan sebagai spam. Secara teori, Anda bahkan bisa mendapat masalah hukum jika materi terlarang dikirim Basis pengguna Sendmail yang besar dan mengakar, sering kali beroperasi dengan versi aplikasi yang belum ditambal, tidak didokumentasikan, dan versi lama, membantu UBE. Pengembang Sendmail menyadari masalah ini* dan bekerja keras untuk membuatnya lebih aman, tetapi yang terba Machine Translated by Google
  116. www.it-ebooks.info Sendmail menyediakan solusi perusahaan untuk pesan yang aman, andal,

    dan sesuai termasuk email, suara, dan pesan instan. Solusi Sendmail mengontrol keamanan dan kepatuhan email masuk, keluar, dan intra-terikat. Sendmail adalah penerapan agnostik, dapat diterapkan dalam perangkat lunak atau peralatan. Produk Sendmail bekerja dalam infrastruktur email heterogen yang mendukung Exchange, Notes, Groupwise, dan solusi email lainnya. Server Surat SMTP Postfix di Debian | 105 Untuk mengkomersialkan Sendmail dan menawarkan produk bernilai tambah yang secara signifikan meningkatkan penyebarannya, Sendmail, Inc. dibentuk. Produk terkemuka, Sendmail Switch, dibangun di atas Sendmail gratis. Itu berada di atas inti Sendmail dan menambahkan konsol manajemen grafis terpusat; pemeliharaan keamanan berkelanjutan; dukungan sepanjang waktu; filter manajemen konten (termasuk pertahanan anti-spam dan anti-virus); dukungan untuk direktori SSL, SASL, dan LDAP; dan kemampuan audit, pengelompokan, dan manajemen jarak jauh. Semua ini dibungkus dengan penginstal grafis dan penyihir berbasis tugas. Postfix dirancang dari awal sebagai pengganti Sendmail yang aman dan kuat. MTA default Debian adalah Exim 4, tetapi kami lebih memilih Postfix karena Exim memiliki beberapa masalah dengan skalabilitas. Itu tidak memiliki manajer antrian pusat dan penyeimbangan beban terpusat. Selain itu, ada beberapa indikasi bahwa pengembang distribusi Debian akan menjadikan Postfix sebagai MTA default mereka dalam waktu dekat. Sementara itu, Anda dapat dengan mudah menukar Exim dengan Postfix sendiri, seperti yang akan Anda lihat di bagian selanjutnya. Untuk membangun server kami, kami akan menggunakan instalasi baru Debian. Jika Anda memilih untuk menggunakan distribusi lain, Anda dapat menerapkan prosedur yang serupa dengan yang diuraikan dalam bab ini untuk mencapai hasil yang sama. Paket Terkait Postfix Debian Gunakan versi stabil terbaru dari Debian dan konfigurasikan dengan jumlah paket minimum. Jika Anda belum memiliki disk instalasi Debian net, unduh dari http:// www.us.debian.org/ CD/ netinst. Kemudian lakukan netinstall, dan pastikan untuk memberikan nama domain yang sepenuhnya memenuhi syarat. Konfigurasikan Debian seperti yang kami sarankan di bagian ini. kemajuan keamanan telah dibuat dalam versi produk berbasis biaya. Aaron Weiss membantu menjernihkan beberapa kebingungan tentang versi Sendmail gratis dan berbasis biaya dalam artikelnya, “The Fee vs. Free Divide” (http://www.serverwatch.com/ tutorials/ article.php/ 3580006 ): Singkatnya, Sendmail Consortium (bertanggung jawab atas MTA Sendmail open source gratis) disponsori oleh Sendmail, Inc., yang menyediakan add-on anti-spam, anti-virus, dan manajemen kebijakan untuk MTA tersebut. Berikut adalah deskripsi model bisnis Sendmail, Inc. (dari http:// www.sendmail.com/ company): Server Surat SMTP Postfix di Debian Machine Translated by Google
  117. 106 | Bab 5: Surat www.it-ebooks.info ( ) Server DNS

    # apt-get remove lpr nfs-common portmap pidentd pcmcia-cs pppoe \ pppoeconf ppp pppconfig ( ) Server Cetak ( ) Database SQL ( ) pemilihan paket manual # /etc/init.d/inetd memuat ulang ( ) Server Web # apt-get install postfix postfix-doc postfix-tls libsasl2 \ sasl2- bin libsasl2-modules ( ) Server Surat ( ) Lingkungan Desktop ( ) Server Berkas # update-inetd --hapus siang hari # update-inetd --hapus telnet # update-inetd --hapus waktu # update-inetd --hapus jari # update- inetd --hapus pembicaraan # update-inetd --hapus ntalk # update -inetd --hapus ftp # update- inetd --hapus buang Menginstal Postfix di Debian dan restart superserver inetd : Pada titik ini Anda harus menghapus beberapa program yang tidak perlu menggunakan utilitas apt-get Debian. Jika Anda memutuskan untuk menggunakan distribusi lain, Anda dapat menghapus paket sesuai dengan prosedurnya. Di bawah Debian, jalankan: Jangan pilih salah satu opsi; Anda tidak akan menggunakan server surat Debian default (Exim) karena Anda akan menginstal Postfix sebagai gantinya. Cukup tekan tombol Tab dan klik tombol OK yang muncul. Penginstal Debian kemudian akan melanjutkan untuk mengunduh dan menginstal paket. Selama pengunduhan, itu akan menampilkan satu layar grafis lagi yang menanyakan apakah Anda ingin Anda mengonfigurasi Exim (Exim-config). Pilih "tidak ada konfigurasi." Saat Anda menginstal paket-paket ini, Debian dapat memilih untuk menginstal libldap2 secara bersamaan. libsasl2 mungkin sudah diinstal pada sistem Anda. Kemudian jawab ya ketika ditanya, “Benar-benar membiarkan sistem email tidak dikonfigurasi?” Penginstal Debian membawa Anda melalui skrip standar sebelum konfigurasi. Ikuti rutinitas penyetelan standar hingga Anda melihat layar grafis yang meminta Anda untuk memilih jenis penginstalan yang Anda inginkan. Layar akan terlihat seperti ini: Sekarang, nonaktifkan beberapa skrip layanan: Perintah berikut menginstal paket-paket yang diperlukan untuk menjalankan Postfix, bersama dengan: Pemasang Debian akan terus mengunduh dan mengonfigurasi paket. Ketika Debian menyelesaikan tugasnya, Anda akan melihat layar ucapan terima kasih karena Anda telah menggunakan Debian. Keamanan TLS dan SASL, yang memungkinkan Anda mengautentikasi pengguna: Machine Translated by Google
  118. www.it-ebooks.info Root pengguna (dan pengguna lain dengan uid 0) harus

    memiliki email yang dialihkan melalui alias, atau email mereka dapat dikirim ke /var/mail/nobody. Tidak ada konfigurasi 'Nama email' Anda adalah bagian hostname dari alamat yang akan ditampilkan pada berita keluar dan pesan email (mengikuti nama pengguna dan tanda @). Situs internet Ini dirancang: surat tidak dikirim ke agen pengiriman eksternal karena Nama ini akan digunakan oleh program lain selain Postfix; itu harus satu, nama domain lengkap (FQDN) dari mana surat akan muncul. Internet dengan smarthost akar. Nama surat? mail.centralsoft.org_________________________ Sistem satelit Jika Anda sudah memiliki file /etc/aliases, maka Anda mungkin perlu menambahkan entri ini. (Saya hanya akan menambahkannya jika saya membuat /etc/aliases baru.) <Oke> Membaca Daftar Paket... Selesai Membangun Pohon Ketergantungan... Selesai Hanya lokal Alamat apa yang harus saya tambahkan ke /etc/aliases, jika saya membuat file? (Masukkan NONE untuk tidak menambahkannya.) <Batal> <Oke> Ke mana email untuk root pergi NONE_________________________________________ Anda memiliki beberapa pilihan untuk konfigurasi umum pada saat ini... <Batal> <Oke> <Batal> Jenis konfigurasi umum? Server Surat SMTP Postfix di Debian | 107 Selanjutnya, Anda akan melihat layar verbose yang dimulai dengan: Pilih "Situs Internet" bahkan jika Anda berencana untuk menggunakan Postfix hanya untuk pengiriman lokal. Selanjutnya, sebuah dialog informasi akan memberitahu Anda bahwa instalasi sedang menulis file konfigurasi Postfix. Jika Anda sudah memiliki server dalam produksi menggunakan Sendmail, Anda akan memiliki file alias yang sudah ada. Dalam bab ini kami menganggap Anda memulai dari awal, jadi masukkan NONE di layar berikut: Pertanyaan berikutnya selama instalasi menyangkut FQDN Anda. Postfix mengharuskan perintah hostname mengembalikan FQDN seperti mail.centralsoft.org. Tetapi secara default, pada Debian perintah hostname hanya menghasilkan email. Agar Anda dapat mengonfigurasi FQDN, skrip penginstalan menawarkan dialog berikut: Pada titik ini, utilitas instalasi Debian akan mulai mengunduh dan mengonfigurasi beberapa file. Anda akan melihat dialog panjang selama proses ini yang dimulai dengan baris berikut: Di bagian bawah layar Anda akan menemukan pertanyaan yang menarik bagi kami: Machine Translated by Google
  119. 108 | Bab 5: Surat www.it-ebooks.info Domain yang terdaftar akan

    muncul di file konfigurasi main.cf Anda. Dialog berikutnya mencantumkan nilai default untuk domain yang harus dijawab oleh server Anda: Pada titik ini, instalasi selesai dan menulis file konfigurasi Postfix. Parameter dan nilai yang dicetak di sini mungkin tidak masuk akal bagi Anda saat ini, tetapi Anda akan menemukannya di file konfigurasi dan dapat mengubahnya jika perlu. Pertanyaan terakhir relevan dengan sistem dengan sistem file non-jurnal: Karena hampir semua distribusi saat ini menggunakan filesystem penjurnalan ext3 secara default, Anda dapat menjawab <Tidak> di sini. Jawab <Ok> untuk menerima nilai default yang muncul di kotak teks biru. Postfix menggunakan sintaks sederhana di mana setiap baris terdiri dari parameter konfigurasi diikuti dengan tanda sama dengan dan nilai. Setelah parameter ditentukan, baris selanjutnya dalam file dapat merujuk ke parameter dengan mengawalinya dengan tanda dolar. Dengan demikian: Jika Anda sedang membangun Postfix dengan tangan, Anda harus mengisi banyak dari nilai-nilai ini sendiri. Penyediaan file ini membuat orang menghargai proses instalasi Debian. Konfigurasi Dasar Postfix Berikut ini adalah file konfigurasi minimal Postfix, /etc/ postfix/ main.cf: akhirnya menetapkan nilai centralsoft.org untuk parameter mydomain dan myorigin . Jika pembaruan sinkron dipaksakan, maka email diproses lebih lambat. smtpd_banner = $myhostname ESMTP $mail_name (Debian/ GNU) biff = tidak ada append_dot_mydomain = tidak myhostname = mydomain = myorigin = $mydomain inet_interfaces = mydestination = $mydomain, localhost. $mydomain, localhost mynetworks = 127.0.0.0/8 Paksa pembaruan sinkron pada antrean email? mydomain = centralsoft.org myorigin = $mydomain <Oke> Standarnya adalah "mati". Tujuan lain untuk menerima email? (kosongkan untuk tidak ada) server2.centralsoft.org, localhost.centralsoft.org, , localhost <Batal> <Tidak> Jika tidak dipaksa, maka ada kemungkinan kecil kehilangan beberapa email jika sistem mogok pada waktu yang tidak tepat, dan Anda tidak menggunakan sistem file jurnal (seperti ext3). Berikan daftar domain yang dipisahkan koma yang harus dianggap sebagai tujuan akhir oleh mesin ini. Jika ini adalah gerbang domain email, Anda mungkin ingin menyertakan domain tingkat atas. <Ya> Machine Translated by Google
  120. www.it-ebooks.info host estafet = myorigin = mydomain tujuan saya =

    server2.centralsoft.org, localhost.centralsoft.org, , localhost myhostname = server2.centralsoft.org append_dot_domainsaya = tidak .smtpd_banner = $myhostname ESMTP $mail_ name (Debian/GNU) #delay_warning_time = 4j alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases biff = tidak File konfigurasi dasar hanya melakukan pengiriman lokal. Ia mengharapkan penerima email memiliki akun shell dan direktori home di server email itu sendiri. Itu tidak memerlukan sistem untuk menambahkan akhiran @ (seperti yang akan ditentukan oleh parameter append_dot_mydomain ). Itu juga mengapa proses instalasi Debian meminta Anda untuk domain, nama host, dan alamat tujuan. Manajer paket Debian mengonfigurasi banyak parameter di /etc/ postfix/ main.cf untuk Anda. Tabel 5-1 menunjukkan garis-garis kunci. Daftar parameter yang lebih lengkap dapat ditemukan pada sistem Debian di file contoh /usr/ share/ postfix/ main.cf.dist. Menentukan host default yang akan digunakan server ini untuk meneruskan email saat tidak tahu cara menjangkau penerima. Kami membiarkan ini kosong, hanya mengandalkan parameter mynetworks yang mengikuti. Kami tidak akan mengaktifkan opsi ini karena kami akan memulai dengan volume pengguna yang rendah dan tidak mengharapkan penundaan. Menentukan daftar nama host atau domain, dipisahkan dengan koma dan/atau spasi, yang akan menerima email dari server ini. Penjelasan Menentukan teks dalam spanduk yang mengidentifikasi server ini saat berkomunikasi melalui SMTP dengan server lain. Penggunaan banner adalah wajib sesuai dengan spesifikasi SMTP. biff adalah proses Postfix kecil yang dapat memberi tahu pengguna lokal bahwa email telah tiba. Jika Anda tidak memiliki pengguna lokal, Anda harus mematikannya. Default dalam instalasi Debian tidak aktif. Alias hanyalah nama alternatif yang digunakan seseorang alih-alih yang asli. Misalnya, Anda dapat menentukan admin sebagai alias untuk root. Peran kedua parameter ini tidak penting untuk dipahami pada saat ini; perlu diketahui bahwa Postfix menyimpan daftar semua alias dalam satu file dan parameter ini memberi tahu sistem di mana lokasinya dan format file database yang digunakan. Batalkan komentar pada baris ini untuk menghasilkan peringatan "email tertunda". Menentukan domain tempat email yang diposting secara lokal muncul. Parameter Menentukan database alias yang digunakan oleh agen pengiriman lokal. Dalam lingkungan seperti kita, menambahkan nama domain ke alamat email adalah tugas MUA. Nilai ini berarti Postfix tidak akan menambahkan sufiks seperti @centralsoft.org. Server Surat SMTP Postfix di Debian | 109 Tabel 5-1. Parameter konfigurasi kunci Postfix Menentukan nama host Internet dari sistem email ini. Standarnya adalah menggunakan nama domain yang sepenuhnya memenuhi syarat. $myhostname digunakan sebagai nilai default untuk banyak parameter konfigurasi lainnya. Machine Translated by Google
  121. www.it-ebooks.info mydestination = $myhostname, localhost.$mydomain, $mydomain • Anda dapat memberitahu

    Postfix host mana yang ingin Anda izinkan untuk merelay email dengan mengatur parameter mynetworks . (Jika Anda menyetel mynetworks, Postfix mengabaikan parameter gaya mynetworks_ .) Anda dapat memberikan satu atau lebih alamat IP dan/atau menggunakan notasi net work/ netmask (misalnya, 151.164.28.0/28). Parameter ini berguna ketika Anda ingin memberikan relai ke host di luar jaringan Anda—misalnya, ke eksekutif yang bekerja di rumah, salesm Menguji Email Dengan konfigurasi Debian, Anda dapat menerima dan mengirim email dari akun shell Anda. Berikut ini adalah contoh dari dua pesan percobaan yang dikirim oleh salah satu penulis buku ini. Pertama, saya menggunakan akun Gmail untuk mengirim pesan email ke akun pengguna di sistem server2.centralsoft.org . Saya membaca pesan dari shell menggunakan perintah email standar Unix : Beberapa penyesuaian sederhana dan berguna yang mungkin perlu Anda lakukan meliputi: • Biasanya, mydestination mencantumkan domain yang muncul di alamat email pengguna lokal; yaitu, domain tempat Postfix menerima dan mengirimkan email. Secara default, Postfix menerima email yang ditujukan untuk $myhostname dan localhost.$mydomain, host yang menjalankan Postfix. Anda dapat menentukan bahwa sistem harus menerima email untuk seluruh domain Anda dengan menambahkan $mydomain k Kami akan membuat beberapa perubahan lain pada /etc/ postfix/ main.cf nanti di bab ini, untuk menambahkan izin otentikasi dan enkripsi kata sandi. Menentukan pemisah yang digunakan antara nama pengguna dan ekstensi alamat dalam tabel pencarian. Penjelasan Menentukan host yang dipercaya server ini bukan spammer. Parameter Menetapkan kuota pada email yang disimpan untuk setiap pengguna. 0 menonaktifkan batas kuota sama sekali. Tabel 5-1. Parameter konfigurasi kunci Postfix (lanjutan) 110 | Bab 5: Surat mailbox_command = procmail -a "$EXTENSION" Menentukan perintah eksternal opsional yang digunakan untuk mengirim ke kotak surat pengguna lokal. Perintah dijalankan sebagai penerima dengan pengaturan lingkungan HOME, SHELL, dan LOGNAME yang tepat. Di sini, kami hanya menentukan host lokal kami. Anda dapat menentukan parameter mynetworks_style = class ketika Postfix harus mempercayai klien SMTP di kelas jaringan (A/B/C) yang sama dengan mesin lokal. Jangan percaya seluruh kelas di situs dial-up, karena itu akan menyebabkan Postfix menjadi relai terbuka untuk seluruh jaringan penyedia Anda. Menentukan alamat antarmuka jaringan (kartu jaringan) tempat sistem email ini menerima email. Ini berguna hanya jika Anda memiliki lebih dari satu kartu jaringan. Pesan 1: kotak_ukuran_batas = 0 inet_interfaces = semua jaringan saya = 127.0.0.0/8 penerima_pembatas = + ~$ surat Machine Translated by Google
  122. Administrator sistem dapat menggunakan SASL untuk menambahkan otentikasi ke banyak

    interaksi klien/server, tetapi setiap layanan yang menggunakan SASL pada sistem operasi Linux memerlukan file konfigurasi yang berbeda. Anda tidak bisa hanya menginstal SASL dan mengonfigurasinya di seluruh sistem. Menambahkan Otentikasi dan Enkripsi | 111 www.it-ebooks.info Kami sekarang telah mengonfigurasi server SMTP default. Apa lagi yang bisa kita lakukan dengan Postfix? Di bagian ini kita akan menambahkan otentikasi (menggunakan SASL) dan enkripsi (menggunakan TLS) ke file konfigurasi kita, /etc/ postfix/ main.cf. Dengan otentikasi, kami memastikan hanya pengguna dengan kredensial yang tepat yang dapat menggunakan server SMTP kami. Dengan enkripsi, kami memastikan bahwa kami tidak mengirimkan ID dan kata sandi pengguna di seluruh jaringan dalam bentuk akun. Menggunakan perintah mail adalah cara primitif untuk mengelola email dalam jumlah besar, bahkan dalam akun shell. Alternatifnya adalah mutt, yang memiliki antarmuka yang kuat dan fitur yang jauh lebih banyak. Sebagai administrator, Anda mungkin ingin menggunakan salah satu agen pengguna email baris perintah ini saat menerima email dari layanan sistem Kemudian saya membalas email asli dan menerimanya di akun Gmail saya: Gambar 5-1 menggambarkan sekelompok pengguna ponsel yang perlu menyampaikan surat melalui server surat dari luar jaringan lokal server. Ini adalah skenario umum. Untuk membedakan pengguna yang sah ini dari spammer acak, Anda memerlukan mekanisme keamanan di backend Anda. Lapisan Otentikasi dan Keamanan Sederhana, dikembangkan sebagai bagian dari proyek Cyrus Universitas Carnegie Mellon, menyediakan Postfix sarana untuk mengidentifikasi sumber surat yang dikirim ke server dan mengontrol p Otentikasi SASL Kami mengirim email ini untuk menguji kemampuan server email kami untuk mengirim dan menerima email SMTP sederhana Kepada:[email protected] Perihal: Re: menguji surat SMTP sederhana In-Reply-To [email protected] (Tom Adelstein) Tanggal: Sel, 11 Jul 2006 17:38:32 -0500 Dari: "Tom Adelstein" <[email protected]> Kepada: [email protected] Perihal: Menguji layanan STMP sederhana Kami mengirim email ini untuk menguji kemampuan server surat kami untuk mengirim dan menerima surat SMTP sederhana. Dikirim-Ke: [email protected] Diterima: dari server2.centralsoft.org Sel, 11 Jul 2006 16:10:44 -0700 (PDT) Menambahkan Otentikasi dan Enkripsi Machine Translated by Google
  123. # postconf -e 'smtpd_sasl_auth_enable = ya' www.it-ebooks.info 112 | Bab

    5: Surat Masuk dapat dianggap sebagai proses dua tahap. Pertama, ini menetapkan bahwa pengguna yang meminta adalah yang dia klaim. Kedua, ia menyediakan layanan yang diminta, yang dapat berupa shell perintah (bash, tcsh, zsh, dll.) atau sesi X Window yang berjalan di bawah identitasnya. Ketika Anda menginstal paket Anda sebelumnya, Anda menyediakan ekstensi dan pustaka SASL yang diperlukan (postfix-tls, libsasl2, sasl2-bin, dan libsasl2-modules). Sekarang Anda perlu mengkonfigurasi /etc/ postfix/ main.cf. Pertama, kami akan menunjukkan cara menambahkan parameter ke file menggunakan perintah postconf ; maka kami akan menunjukkan kepada Anda cara alternatif yang hanya melibatkan pengeditan /etc/ postfix/ main.cf secara langsung. IETF mendasarkan ekstensi layanan ESMTP-nya pada SASL. Sebagai bagian dari protokol SMTP, ESMTP hanya menambahkan perintah yang disebut AUTH ke perintah yang digunakan server untuk menghubungkan dan bertukar data. Aktifkan otentikasi di server SMTP Postfix dengan menambahkan parameter smtpd (server) ke file main.cf Anda dengan perintah postconf ini: Kerangka autentikasi SASL memungkinkan berbagai cara untuk menyimpan dan bertukar kredensial pengguna. Itu dapat menggunakan kata sandi sistem Linux (/ etc/ passwd, / etc/ shadow, atau Modul Otentikasi Plugga ble); file terpisah; atau layanan eksternal seperti LDAP, Ker beros, atau sasldb (direktori yang dikembangkan oleh proyek Cyrus dan disertakan dengan SASL). Bagaimana SASL menjadi bagian dari solusi Postfix? Untuk menemukan jawabannya, kita harus kembali ke tahun 1999, ketika IETF menulis standar yang disebut Ekstensi Layanan SMTP untuk Otentikasi. Anda akan melihat hasil kerjanya jika Anda melihat akronim ESMTP— misalnya, itu ada di baris pertama file / etc/ postfix/ main.cf (lihat Tabel 5-1). ESMTP mencegah pengirim massal dan/atau penyerang menggunakan MTA yang tidak diketahui sebagai relai mereka. Dalam bab ini kami akan menunjukkan dua cara untuk menggunakan Postfix dengan SASL. Pertama, kami akan mengonfigurasi metode sederhana yang bekerja dengan baik di situs kecil tempat Anda dapat memberikan akun pengguna kepada setiap pengguna email di server Linux; metode ini menggunakan PAM, otentikasi default yang digunakan untuk login. Kedua, kami akan mengonfigurasi sistem yang lebih kompleks yang memungkinkan Anda mengautentikasi pengguna yang tidak memiliki akun di server. Konfigurasi Postfix dengan SASL untuk mengotentikasi pengguna dengan akun Untungnya, Debian mengemas SASL dengan Postfix. Anda dapat memanfaatkan perpustakaan SASL Debian untuk memungkinkan pengguna seluler mengautentikasi dari luar jaringan. Dalam contoh berikut, kami akan menggunakan SASL untuk memverifikasi bahwa orang yang mencoba terhubung memiliki akun yang valid di server Linux; yaitu, sistem kami akan mengizinkan hanya orang yang memiliki akun di server untuk terhubung dan mengirim email. Kami akan menggunakan mekanisme login Linux default, PAM, untuk melakukannya. Ini juga memberikan keamanan dengan mengautentikasi pengguna dan mencatat aktivitas mereka. Machine Translated by Google
  124. www.it-ebooks.info smtpd_sasl_local_domain = # isi ulang postfix # postconf -e

    'broken_sasl_auth_clients = ya' # postconf -e 'smtpd_sasl_security_options = noanonymous' # postconf -e 'smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination' # postconf -e 'smtpd_sasl_local_domain =' smtpd_sasl_local_domain = $myhostname smtpd_sasl_auth_enable = ya broken_sasl_auth_clients = ya smtpd_sasl_security_options = smtpd_recipient_restrictions tidak anonim = izin_sasl_authenticated Menambahkan Otentikasi dan Enkripsi | 113 Terakhir, parameter smtpd_sasl_local_domain menetapkan nama domain otentikasi lokal. Secara default, Postfix menganggap nama mesin sebagai nama domain otentikasi lokal. Untuk menggunakan perilaku default, tentukan string nol: Postfix tidak mengizinkan pengiriman surat yang tidak sah secara default. Jadi, untuk memungkinkan pengguna email Anda menyebarkan server Anda dari Internet, Anda perlu menambahkan parameter lain (catatan: ini akan muncul dalam satu baris): Anda baru saja selesai mengonfigurasi SASL sehingga Anda dapat mulai menggunakannya. Sebelum kita membahas langkah terakhir, jalankan perintah ini untuk membuat file konfigurasi SASL di direktori tempat Postfix mencarinya ( -p menghindari kesalahan jika direktori sudah ada): Parameter smtpd_sasl_security_options memungkinkan Anda mengontrol mekanisme kata sandi saat klien terhubung ke server SMTP Anda. Konfigurasi berikut memblokir otentikasi anonim: Itu melengkapi konfigurasi SASL untuk Postfix. Sebagai alternatif, daripada menjalankan perintah postconf sebelumnya , Anda dapat mengedit file /etc/ postfix/ main.cf , menambahkan entri berikut, dan memuat ulang Postfix: Selanjutnya, tambahkan parameter untuk mengakomodasi beberapa klien tidak standar yang tidak mengikuti # mkdir -p /etc/postfix/sasl # cd /etc/postfix/sasl Buat file smtpd.conf dengan dua baris berikut: pwcheck_method: saslauthd mech_list: plain login Sekarang Anda dapat me-restart Postfix: Otentikasi SMTP dengan benar: Machine Translated by Google
  125. 114 | Bab 5: Surat www.it-ebooks.info Port Postfix Debian berjalan

    dengan chroot di /var/ spool/ postfix. Akibatnya, Anda perlu meletakkan daemon saslauthd Anda di namespace yang sama. Ikuti langkah ini: 4. Selanjutnya, edit /etc/ init.d/ saslauthd untuk mengubah lokasi ID proses saslauthd Backend kata sandi kami menggunakan PAM, dan proses yang tidak memiliki hak istimewa tidak memiliki akses ke file kata sandi. Karena akun layanan Postfix berjalan dengan hak istimewa terbatas, akun tersebut tidak dapat mengautentikasi pengguna secara langsung. 3. File Anda sekarang akan terlihat seperti ini: mengajukan. Ubah nilai PIDFILE menjadi berikut ini: 2. Edit /etc/ default/ saslauthd untuk mengaktifkan saslauthd. Hapus penanda komentar (#) Pustaka SASL yang dikemas dengan Debian menangani situasi ini dengan menambahkan daemon autentikasi yang disebut saslauthd yang menangani permintaan untuk Postfix. Daemon berjalan dengan hak pengguna super dalam proses terpisah dari Postfix, sehingga server email yang disusupi tidak dapat mengambil manfaat dari hak istimewa saslauthd . saslauthd tidak berkomunikasi di luar jaringan Anda, jadi Anda dapat mempertimbangkan dampak keamanan menjalankan daemon menjadi minimal meskipun saslauthd menggunakan kata sandi teks biasa. saslauthd membutuhkan kata sandi yang sebenarnya karena menggunakan layanan masuk yang sama yang Anda gunakan untuk membuka sesi konsol Linux Anda. dari baris START=yes, lalu tambahkan baris: Sekarang, mari konfigurasikan saslauthd untuk dijalankan dengan server email. Petunjuk berikut ini disesuaikan untuk Debian, tetapi Anda dapat melakukan hal yang sama dengan sedikit perubahan pada direktori dan perintah pada sistem Linux lainnya. 1. Buat direktori yang diperlukan untuk daemon: 5. Mulai saslauthd: Dalam file smtpd.conf , kami menetapkan saslauthd sebagai metode kami untuk memverifikasi kredensial pengguna. Mengapa? Daemon saslauthd # Anda harus menentukan mekanisme otentikasi yang ingin Anda gunakan. PIDFILE="/var/spool/postfix/var/run/${NAME}/saslauthd.pid" # Ini default ke "pam" untuk dukungan PAM, tetapi mungkin juga menyertakan # "bayangan" atau "sasldb", seperti ini: # MECHANISMS="pam shadow" PARAMS="-m /var/spool/postfix/var/run/saslauthd -r" MEKANISME = "pam" # mkdir -p /var/spool/postfix/var/run/saslauthd # /etc/init.d/saslauthd start # Ini perlu dihapus komentarnya sebelum saslauthd dijalankan secara otomatis START=yes PARAMS="-m /var/spool/postfix/var/run/saslauthd -r" Machine Translated by Google
  126. Menambahkan Otentikasi dan Enkripsi | 115 www.it-ebooks.info pwcheck_method: auxprop pwcheck_method:

    saslauthd #saslauthd -a pam Saat menggunakan saslauthd, Anda terbatas pada transmisi kata sandi teks biasa dan otentikasi login. Oleh karena itu, Postfix juga menawarkan metode auxprop alternatif , yang mendukung metode otentikasi teks biasa, login, CramMD5, DigestMD5, OPT, dan NTLM. Jika Anda menggunakan distribusi Linux selain Debian, Anda akan bekerja dengan file, direktori, dan perintah yang berbeda. Misalnya, pada banyak sistem, cara standar untuk memulai saslauthd untuk pertama kalinya adalah melalui perintah ini: berikut ini, yang menyediakan kerangka kerja untuk plugin properti tambahan: Dari semua mekanisme otentikasi yang dibahas dalam bab ini, LDAP adalah yang paling kuat dan dapat diskalakan, tetapi memiliki keterbatasan terutama menggunakan kata sandi teks biasa. Untuk mengatasi masalah ini, administrator sistem biasanya menggunakan Transport Layer Security untuk mengenkripsi kata sandi yang berpindah dari klien ke server (seperti yang dibahas di bagian berikutnya). Kombinasi LDAP dan TLS saat ini memberikan keamanan terbaik. Dalam jaringan kecil, sasldb dapat memberikan solusi sederhana untuk mengaktifkan beberapa pengguna jarak jauh. Untuk situs yang sangat besar dengan lebih banyak pengguna, Anda mungkin menemukan MySQL lebih terukur dan lebih mudah digunakan dan dikelola. Debian menentukan penggunaan PAM melalui file konfigurasi sebagai gantinya. Enkripsi TLS Kelemahan menggunakan metode auxprop untuk validasi pengguna adalah, tanpa perlindungan tambahan, metode ini menggunakan validasi teks biasa. Saat Anda masuk ke stasiun kerja Anda sendiri, itu tidak menimbulkan masalah. Tetapi ketika Anda mengirim ID pengguna Anda dan Metode direktori sasldb dan MySQL mengharuskan Anda untuk menginstal perangkat lunak tambahan yang disebut plug-in properti tambahan. Jika Anda mengkonfigurasi sasldb atau MySQL, Anda harus mengedit file smtpd.conf dan mengubah baris: Mengkonfigurasi Postfix dengan SASL untuk mengautentikasi pengguna tanpa akun Menggunakan file kata sandi untuk otentikasi Postfix pada sistem Linux mengharuskan setiap orang yang mengirimkan email melalui server untuk memiliki akun pengguna. Jelas, solusi ini tidak memiliki skalabilitas dan membutuhkan lebih banyak waktu administratif. Untuk mendukung pengguna yang tidak memiliki akun di server SMTP, SASL memungkinkan Anda menggunakan opsi penyimpanan lain; pilihan populer termasuk sasldb, LDAP, Kerberos, dan MySQL. Saslauthd dae mon tidak berjalan saat Postfix menggunakan salah satu dari metode ini; program terpisah dengan hak pengguna super tidak diperlukan karena SASL tidak memerlukan akses ke file kata sandi sistem operasi. Machine Translated by Google
  127. www.it-ebooks.info Bagian sebelumnya tentang SASL dan bagian saat ini sama-sama

    membahas keamanan, tetapi dengan tujuan yang berbeda. Bagian SASL menangani autentikasi, yang menentukan siapa yang berhak mengirim email melalui server Anda. Bagian ini menangani perlindungan kata sandi, yang memastikan bahwa penyusup potensial tidak dapat membaca kredensial rahasia pengguna. Anda memerlukan kedua layanan untuk email yang aman. 116 | Bab 5: Surat Mulai dengan kunci server: Selanjutnya, buat kunci lain dan sertifikat: Di Bab 2, kita telah membahas penggunaan TLS, versi terbaru dari enkripsi SSL, untuk mengirim kata sandi dari stasiun kerja Anda ke server email Anda dengan aman. Di sini, kami akan memperluas solusi ini untuk mengenkripsi informasi pengenal dengan membuat sertifikat menggunakan OpenSSL. Mulailah dengan membuat direktori untuk sertifikat SSL. Jadikan subdirektori di bawah lokasi utama Postfix di Debian: Selanjutnya, buat dua sertifikat dan dua kunci enkripsi. Anda memerlukan kunci pribadi yang tidak diketahui siapa pun dan kunci publik yang memungkinkan orang lain mengirim kredensial aman kepada Anda. sandi melalui jaringan dalam teks biasa untuk mengirim email, baik di dalam jaringan lokal atau melalui Internet, siapa pun dapat dengan mudah memperoleh kredensial Anda. Ubah izin pada file yang dihasilkan yang berisi kunci server OpenSSL: ..........................................++++++ # mkdir /etc/postfix/ssl # cd / etc/postfix/ssl/ # chmod 600 smtpd.key .................................................++++++ Nama Negara (kode 2 huruf) [AU]: Nama Negara Bagian atau Provinsi (nama lengkap) [Some- State]: Nama Lokal (misalnya, kota) []: Nama Organisasi (misalnya, perusahaan) [Internet Widgits Pty Ltd]: centralsoft .org Nama Unit Organisasi (misalnya, bagian) []: web Nama Umum (misalnya, nama ANDA) []: Alamat Email []: e adalah 65537 (0x10001) Masukkan frasa sandi untuk smtpd.key: Memverifikasi - Masukkan frasa sandi untuk smtpd.key: # openssl req -new -key smtpd.key -out smtpd.csr Anda akan diminta untuk memasukkan informasi yang akan dimasukkan ke dalam permintaan sertifikat Anda. # openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024 293 semi- acak byte dimuat Menghasilkan kunci pribadi RSA, modulus panjang 1024 bit Apa yang akan Anda masukkan adalah apa yang disebut Distinguished Name atau DN. Ada beberapa bidang tetapi Anda dapat mengosongkannya Untuk beberapa bidang akan ada nilai default, Jika Anda memasukkan '.', bidang tersebut akan dikosongkan. Machine Translated by Google
  128. www.it-ebooks.info Ada beberapa perdebatan mengenai apakah sertifikat yang dibuat sendiri

    memerlukan informasi yang diminta saat diminta atau tidak. Kami menyarankan Anda memasukkan informasi yang sesuai untuk situs produksi Anda. Menambahkan Otentikasi dan Enkripsi | 117 ..........................++++++ Apa yang akan Anda masukkan adalah apa yang disebut Distinguished Name atau DN. menulis kunci pribadi baru ke 'cakey.pem' Kata sandi tantangan []: Silakan masukkan atribut 'ekstra' berikut untuk dikirim dengan permintaan sertifikat Anda # openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out \ smtpd.crt Tanda tangan ok subject=/C=US/ST=Texas/L=Dallas/ O=centralsoft.org/OU=web /CN=Tom_Adelstein/ [email protected] Mendapatkan kunci Pribadi Masukkan frasa sandi untuk smtpd.key: # openssl rsa -in smtpd.key -out smtpd.key.unencrypted Masukkan frasa sandi untuk smtpd.key: menulis RSA key # mv -f smtpd.key.unencrypted smtpd.key # chmod 600 smtpd.key # openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out \ cacert.pem -days 3650 Menghasilkan kunci privat RSA 1024 bit Masukkan frasa sandi PEM: Memverifikasi - Masukkan frasa sandi PEM: Nama perusahaan opsional []: cso ----- .....................++++++ Ada beberapa bidang tetapi Anda dapat mengosongkannya Untuk beberapa bidang akan ada nilai default, Jika Anda memasukkan '.', bidang tersebut akan dikosongkan Nama Negara (kode 2 huruf) [AU]: Nama Negara Bagian atau Provinsi (nama lengkap) [Some-State]: Nama Lokalitas (misalnya, kota) []: Nama Organisasi (misalnya, perusahaan) [Internet Widgits Pty Ltd]: Nama Unit Organisasi (misalnya, bagian) []: Nama Umum (misalnya, nama ANDA) []: Alamat Email []: Anda akan diminta untuk memasukkan informasi yang akan dimasukkan ke dalam permintaan sertifikat Anda. # postconf -e 'smtpd_tls_auth_only = tidak' # postconf -e 'smtp_use_tls = yes' # postconf -e 'smtpd_use_tls = ya' Perintah selanjutnya menghasilkan kunci tanda tangan dan mengubah kunci yang ada menjadi yang baru: Sekarang Anda perlu memberi tahu Postfix tentang kunci dan sertifikat Anda menggunakan perintah postconf berikut : Machine Translated by Google
  129. www.it-ebooks.info File /etc/ postfix/ main.cf sekarang akan terlihat seperti ini:

    Anda sekarang dapat memulai ulang daemon Postfix: # /etc/init.d/postfix restart Menghentikan agen transport email: Postfix. Memulai agen transportasi surat: Postfix. # postconf -e 'smtp_tls_note_starttls_offer = yes' # postconf -e 'smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key' # postconf -e 'smtpd_tls_cert_file = /etc/postfix/sdconf./smt' smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem' # postconf -e 'smtpd_tls_loglevel = 1' # postconf -e 'smtpd_tls_received_header = yes' # postconf -e 'smtpd_tls_session = 3600_cache_session_cache_postconf dev/urandom' # Lihat /usr/share/postfix/main.cf.dist untuk komentar, versi lebih lengkap smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) biff = no # menambahkan .domain adalah tugas MUA. append_dot_mydomain = no # Batalkan komentar pada baris berikutnya untuk menghasilkan peringatan "delayed mail" #delay_warning_time = 4 jam myhostname = server1.example.com alias_maps = hash:/etc/aliases alias_database = hash:/ etc/aliases myorigin = /etc/mailname mydestination = server1.example.com, localhost.example.com, localhost relayhost = mynetworks = 127.0.0.0/8 mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 penerima_delimiter = + inet_interfaces = semua smtpd_sasl_local_domain = smtpd_sasl_name yes smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_ unauth_destination smtpd_tls_auth_only = no smtp_use_tls = yes smtpd_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_key_file = /etc/postfix/ssl/ smtpd.key smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt smtpd_tls_CAfile = /etc/ postfix/ssl/cacert.pem smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session _cache_timeout = 3600 detik tls_random_source = dev:/dev/urandom 118 | Bab 5: Surat Machine Translated by Google
  130. www.it-ebooks.info Berasal dari University of Washington, paket ipopd-ssl sekarang dikelola

    oleh Debian. Anda hanya perlu menginstalnya; itu pada dasarnya mengonfigurasi dirinya sendiri untuk menggunakan direktori surat rumah yang ada di server surat seperti yang kita atur di Bab 4. Anda juga dapat menyediakan email web di server email Anda menggunakan SSL (https), sehingga memudahkan pengguna untuk mengakses email mereka dari browser web. Di bagian ini kami akan menambahkan agen pengiriman email untuk melengkapi Postfix. Gunakan perintah berikut di Debian untuk menambahkan IMAP dan server POP3: Kami telah memilih ipopd-ssl untuk menyediakan agen pengiriman email POP2 dan POP3 dan uw imapd-ssl untuk IMAP. Jangan biarkan sufiks ssl menipu Anda—kedua paket menyediakan layanan yang tidak dienkripsi dan juga yang dienkripsi. IMAP standar menggunakan port 143, dan POP3 menggunakan port 110. Protokol dan port yang dienkripsi adalah POP3S (port 995) dan IMAPS (port 993). ISP terus menggunakan POP3, tetapi jarang digunakan di perusahaan. uw-imapd-ssl menyediakan server IMAP. Meskipun membutuhkan lebih banyak ruang disk, IMAP lebih unggul daripada POP karena meninggalkan email di server dan memungkinkan pengguna melihat pesan dari lokasi mana pun yang memiliki akses Internet dan klien email. Kami tidak mengetahui klien email saat ini yang tidak dapat memahami IMAP, sehingga sebagian besar pengguna email ingin menggunakannya. uw-imapd memiliki kelebihan dan kekurangan. Di sisi positifnya, ia menggunakan penyimpanan email mbox bergaya Unix , yang menyimpan semua email pengguna dalam satu file di direktori rumahnya. Anda juga akan menemukan layanan ini mudah dikelola. Di sisi negatifnya, uw-imapd tidak mengizinkan pengguna virtual atau mereka yang tidak memiliki akun shell dan direktori home untuk mengakses email. Selain itu, banyak administrator tidak menyukai format penyimpanan mbox yang sederhana, lebih memilih format maildir yang lebih hierarkis . Sebagai format file tunggal, mbox hanya mengizinkan satu aplikasi untuk mengaksesnya pada saat yang sama, yang memerlukan penguncian file dan mungkin memperlambat sistem di bawah beban berat. Dalam konfigurasi kami, pengguna memerlukan akun Linux standar di server email Anda, meskipun mereka membaca email mereka dengan klien email di sistem lain. Postfix biasanya mengizinkan pengiriman lokal di dalam domain, tetapi memerlukan relai backend (seperti yang dibahas sebelumnya di bagian "Mengonfigurasi Postfix dengan SASL untuk mengotentikasi pengguna tanpa akun") jika pengguna berada di luar domain. Mengonfigurasi Agen Pengiriman Surat POP3 dan IMAP | 119 Mengonfigurasi Agen Pengiriman Surat POP3 dan IMAP # apt-get install ipopd-ssl uw-imapd-ssl Machine Translated by Google
  131. www.it-ebooks.info Banyak orang menganggap penguncian file sebagai masalah dalam kasus

    surat. Banyak sistem file terdistribusi tidak memiliki mekanisme penguncian yang andal. Beberapa orang juga percaya penguncian file tidak cukup untuk mencegah korupsi mbox sesekali. Dengan Linux, korupsi mungkin terjadi jika proses email dihentikan di tengah memperbarui mbox. Dalam pengantar kami ke /etc/ postfix/ main.cf file konfigurasi Postfix sebelumnya dalam bab ini, kami menyerahkannya kepada klien email pengguna untuk menambahkan nama domain ketika pengguna mengetikkan nama akun: Saat Anda tidak berada di jaringan yang ditentukan Postfix dan tidak bergerak (berlawanan dengan pengguna seluler), gunakan server keluar ISP Anda untuk SMTP. Dalam hal ini, Anda harus memilih TLS jika penyedia server Anda menggunakannya. Dalam sebagian besar kasus, ID dan kata sandi Anda akan melewati garis ISP Anda dalam teks yang jelas. Server IMAP selain uw-imapd sulit dan memerlukan pengetahuan yang signifikan untuk mengkonfigurasi, jadi Anda harus menilai sendiri apakah ukuran organisasi Anda menjamin penggunaannya. Jika demikian, Anda perlu melihat sumber informasi lain, seperti The Book of Postfix oleh Ralf Hildebrandt dan Patrick Katter (No Starch Press). Sebagian besar klien modern mendukung ini dan menyediakan antarmuka grafis untuk mengaktifkan TLS untuk digunakan dengan server keluar. Server IMAP lainnya, seperti Cyrus, Courier, dan Dovecot, menggunakan format maildir dan memungkinkan pengguna virtual dan akun pengguna tanpa akses shell dan direktori home untuk mengakses email. Dikonfigurasi bersama dengan Postfix, akun pengguna hanya memiliki kotak surat. Ini memungkinkan administrator untuk memelihara MTA dan MDA tanpa harus mengelola akun pengguna standar di server itu sendiri. Jika Anda mengonfigurasi Postfix untuk menggunakan enkripsi, seperti yang ditunjukkan sebelumnya dalam bab ini, pengguna email juga harus mengonfigurasi MUA-nya untuk menggunakan enkripsi TLS untuk mengirim email. Format maildir , sebaliknya, memungkinkan akses bersamaan oleh beberapa aplikasi dan tidak memerlukan penguncian file. append_dot_mydomain = no Ini cocok dengan perilaku sebagian besar klien, yang dapat diterapkan pada domain seperti @centralsoft.org ketika pengguna mengetikkan nama akun ke dalam bidang “Kepada” dari pesan email. 120 | Bab 5: Surat Penguncian file adalah mekanisme yang memaksa akses ke file komputer hanya oleh satu pengguna atau proses pada waktu tertentu. Tujuan penguncian adalah untuk mencegah pembaruan yang saling bertentangan. Konfigurasi Klien Email Machine Translated by Google
  132. Apa Selanjutnya | 121 www.it-ebooks.info Apa berikutnya Pada titik ini,

    Anda telah menginstal dan mengkonfigurasi Postfix dan layanan IMAP dan POP3. Anda memiliki komponen penting dari sistem surat yang dapat Anda gunakan di perusahaan sebagai OpenLDAP atau Fedora Directory Server untuk memvalidasi sejumlah besar pengguna dan menyediakan daftar pengguna email di perusahaan Anda. lingkungan. Bab berikutnya membahas layanan yang dilihat sebagian besar orang sebagai layanan yang paling baik bagi organisasi Jika ini adalah pertama kalinya Anda membuka email, sekarang Anda mungkin mengerti mengapa perusahaan membelanjakan penawaran penting: server web. Setelah kami memperkenalkan pengaturan server Web yang paling populer, Apache, kami akan melanjutkan untuk menambahkan berbagai fitur penting, seperti Agar server email Anda menerima email, Anda harus menyiapkan server masuk dengan sejumlah besar uang untuk membeli sistem paket berlisensi per kursi. Anda dukungan untuk situs web dinamis dan statistik pelaporan, dan memberi Anda beberapa kiat pemecahan masalah. DNS, seperti yang dibahas dalam Bab 3. Sebagai pengingat singkat, Anda akan menggunakan data MX untuk melakukan ini. mungkin juga memahami mengapa mereka mempekerjakan selusin atau lebih administrator sistem untuk mengelola infrastruktur komunikasi email mereka. Bidang ini membutuhkan keahlian khusus. Data MX khas terlihat seperti ini: Setelah Anda menguasai informasi dalam buku ini, Anda mungkin ingin mempelajari lebih lanjut komponen sistem email canggih. Anda harus memahami cara menginstal dan Catatan ini mengatakan bahwa email yang dialamatkan ke domain centralsoft.org harus dikirim ke server1.centralsoft.org (yang merupakan server email untuk domain). mengonfigurasi server email yang dapat diskalakan dan aman dan seberapa banyak upaya yang diperlukan untuk mendapatkan keahlian di bidang ini. Anda juga akan memerlukan pemahaman tentang layanan direktori seperti MX 10 server1.centralsoft.org. Machine Translated by Google
  133. 122 www.it-ebooks.info File Statis dan Dinamis Banyak situs juga memiliki

    beberapa aspek dinamis , termasuk pembuatan konten, kontrol akses, dan penyimpanan serta pengambilan basis data. Cara paling sederhana untuk membuat file HTML statis menjadi dinamis adalah dengan menyertakan sisi server (SSI), yang secara khusus diformat HTML Server web besar dan kompleks, dan ketika mengonfigurasinya, tidak selalu jelas bagaimana atau mengapa sesuatu dilakukan. Sepanjang jalan, kami akan menunjukkan mengapa kami memilih beberapa alternatif dan melewati yang lain. Untuk menjaga agar penjelasan tetap singkat dan sederhana, kami akan menggunakan prosedur standar dan default Debian. Kami akan mengamankan instalasi saat kami pergi, untuk menggarisbawahi pelajaran bahwa Anda harus memikirkan keamanan dan membangunnya dari awal. Menjelang akhir bab, Anda akan menemukan bagian Sebuah situs web dasar terdiri dari file: HTML, grafik, JavaScript, stylesheet, dan jenis lainnya. Isi file ini statis— tidak berubah di server, dan satu-satunya tugas server web adalah mengembalikannya ke browser berdasarkan permintaan. Server web hanya membutuhkan sedikit konfigurasi untuk melayani file statis. Bab 6 Bab 6 Dalam bab ini, kita akan membangun server web Linux dari awal. Anda akan mempelajari cara: • Menginstal dan mengonfigurasi Apache, PHP, dan MySQL • Mengelola beberapa situs web dengan host virtual • Mengenkripsi halaman sensitif dengan SSL • Mengaktifkan penyertaan sisi server dan skrip CGI • Menguji masalah kinerja dan keamanan • Menginstal vlogger dan Webalizer untuk melihat statistik situs • Instal Drupal, sistem manajemen konten yang akan berguna bagi Anda di banyak lingkungan dan yang menggunakan banyak elemen ini Bab ini menjelaskan lingkungan dengan server web tunggal; di Bab 7, kami akan menunjukkan cara menyiapkan sepasang server web untuk penyeimbangan beban. Mengelola Apache Machine Translated by Google
  134. www.it-ebooks.info Pengaturan LAMPU Sederhana biaya startup meningkatkan beban sistem karena

    situs menjadi lebih sibuk, sehingga alternatif dikembangkan. server web itu sendiri: penerjemah Perl menjadi mod_perl, PHP menjadi mod_php, dan bab, tetapi Anda dapat melewati bagian tersebut jika Anda lebih suka belajar melalui pengalaman pahit. Kita sudah memiliki L, jadi mari kita jelajahi A; M dan P tidak akan jauh di belakang. Orang sering mengacaukan protokol CGI dengan metode implementasi awal ini dan mod_squad menjadi permainan kata-kata tahun 70-an yang mengerikan. Kinerja program FastCGI dan Apache bukanlah server web tercepat, atau yang termudah untuk dikonfigurasi, atau yang paling aman, tetapi berpikir bahwa CGI secara inheren lambat. Namun, standar CGI tidak mendefinisikan implementasi. Ada metode yang lebih cepat yang mengikuti protokol CGI yang sama. Modul Apache kira-kira serupa, dan modul memiliki kelebihan dan kekurangan. Mereka memiliki akses ke semua struktur dan fungsi data internal server, sehingga mereka dapat digunakan dalam berbagai tahap transaksi web, tidak hanya untuk menghasilkan itu cukup baik untuk mendominasi semua yang lain. Menurut Netcraft, Apache lebih bertenaga komentar yang diinterpretasikan Apache untuk menggemakan nilai variabel atau menyertakan konten file HTML lainnya. Penyertaan file SSI adalah cara sederhana bagi situs untuk menentukan header dan footer umum untuk halamannya, misalnya. Salah satu metode yang lebih cepat adalah FastCGI, yang memulai program CGI sebagai proses jangka panjang yang terpisah dan mengelola komunikasi dua arah antara program tersebut dan web konten HTML. Namun, modul juga meningkatkan ukuran dan penggunaan memori dari SSI memiliki batasannya, dan sebagian besar situs dinamis menggunakan Common . yang jauh lebih kuat server. Ini menghindari biaya isi ulang yang konstan, dan pemisahan proses memastikan bahwa server web, dan bug modul dapat merusak server web. Program Gateway Interface (CGI). Program yang dapat dieksekusi ini dapat ditulis dalam format apa pun: jika program CGI macet, itu tidak akan menjatuhkan server web dengannya. CGI cepat bahasa yang didukung Linux, meskipun pilihan yang paling populer adalah bahasa dinamis (“script ing”) seperti Perl, PHP, Python, dan Ruby, diikuti oleh Java. CGI adalah protokol yang menentukan bagaimana klien dan server web harus bertukar permintaan dan tanggapan. memang memiliki satu kelemahan, meskipun: Program FastCGI, seperti program CGI mandiri, tidak dapat mengakses internal server web, yang mungkin diperlukan oleh beberapa kompleks Pengaturan LAMP (Linux, Apache, MySQL, PHP/Perl/Python) standar menggunakan Apache Ketika CGI pertama kali muncul di Web, program CGI benar-benar terpisah dari aplikasi. modul untuk menjalankan fungsi CGI. Pendekatan ini berkinerja dan berskala dengan baik, server web. Setiap permintaan menyebabkan server web memulai proses CGI baru. Itu Beberapa program CGI telah berkembang menjadi modul Apache yang dimuat sebagai bagian dari meskipun ada batasan untuk semuanya. Kami akan menunjukkan beberapa batasan itu dalam hal ini Pengaturan LAMPU Sederhana | 123 Machine Translated by Google
  135. 124 | Bab 6: Mengelola Apache www.it-ebooks.info Instalasi # apt-get

    install apache2 Jika Anda dapat melihat ini, berarti instalasi perangkat lunak server web Apache pada sistem ini berhasil. Anda sekarang dapat menambahkan konten ke direktori ini dan mengganti halaman ini. # cd /var/ www # echo testing > test.html Browser Anda juga harus menunjukkan bahwa Apache telah memetakan ulang alamat yang Anda ketikkan sebagai berikut: http:// server1.centralsoft.org/ Apache2-default. Di bagian ini, kita akan menginstal Apache, PHP, dan MySQL. Kami akan menguji masing-masing dengan pengaturan default untuk memastikan semuanya berjalan dengan benar. Di bagian berikut, kita akan menyelami file konfigurasi Apache dan menjelajahi cara menyesuaikan pengaturan kita. dari 60 persen dari semua situs web publik (http:// news.netcraft.com/ archives/ web_server_ survey.html). Apache berjalan di Linux, Mac OS X, dan semua sistem mirip Unix lainnya, serta banyak inkarnasi Microsoft Windows. Kemudian ketik URL-nya (misalnya, http:// server1.centralsoft.org/ test.html) ke dalam browser Anda. Ketik URL server Anda ke browser web, dan Anda akan melihat halaman yang diawali dengan: Seperti program Unix lainnya, Apache dapat dibangun dengan semua modulnya digabungkan menjadi satu program besar (tautan statis), atau dengan modul yang dimuat ke dalam memori sesuai kebutuhan (objek bersama dinamis, atau DSO). Metode DSO lebih mudah dan lebih fleksibel, karena memungkinkan Anda untuk menambahkan modul ke Apache setelah Anda membuatnya. Instalasi Debian untuk PHP dan modul Apache lainnya menggunakan metode DSO. Ini harus menginstal Apache dan memulainya. Apa itu bekerja? Untuk mengetahuinya, masukkan URL situs Anda di browser web. Untuk contoh dalam bab ini, kami akan menggunakan nama server pengujian kami (http:// server1.centralsoft.org). Saat Anda melihat URL ini dalam contoh, ganti URL server Anda sendiri. Jika Anda menjalankan browser pada mesin yang sama dengan server web Anda dan mungkin memiliki masalah dengan resolusi DNS nama server Anda, Anda dapat menggunakan http:// localhost atau http:// 127.0.0.1. Jika Anda menguji dari luar, Anda dapat menggunakan alamat IP server, seperti http:// 70.253.158.41. Kami akan menjelaskannya nanti saat kami masuk ke file konfigurasi Apache. Tapi untuk sekarang, mari kita buat file web pertama kita. Buka direktori yang dianggap Apache sebagai direktori home untuk situs web Anda dan buat file teks kecil: Apache Anda harus menjadi pengguna root untuk menginstal paket. Pertama dapatkan server Apache: Machine Translated by Google
  136. Instalasi | 125 www.it-ebooks.info # apt-get install mysql-client # apt-get

    install php4 # apt-get install libapache2-mod-php4 <? php phpinfo(); ?> # apt-get install mysql-server # apt-get install php4-mysql Anda akan melihat kata testing di layar. Server Apache Anda berjalan tanpa batasan akses, melayani semua file dan direktori yang ada di /var/ www. Anda akan melihat halaman dengan tabel yang penuh dengan informasi konfigurasi PHP. Informasi ini memberi tahu banyak tentang mesin Anda yang mungkin tidak ingin Anda bagikan kepada dunia, jadi Anda harus menghapus skrip ini setelah mengujinya. Jika Anda tidak melihat apa pun, lihat bagian "Pemecahan Masalah" di akhir bab ini. Untuk set LAMP lengkap , dapatkan server database MySQL dan modul PHP MySQL: Kemudian masukkan URL skrip (http:// server1.centralsoft.org/ info.php) di browser Anda. PHP adalah modul Apache CGI yang paling populer. Dalam bab ini, kita akan menggunakan PHP 4, yang tetap lebih populer daripada penerus akhirnya, PHP 5. Menggunakan salah satu versi adalah cara yang baik untuk membuat halaman web dinamis, dan perpustakaan besar modul PHP menambahkan banyak fungsi yang berguna. Mulailah dengan mendapatkan program dan pustaka PHP: MySQL Jika Anda tidak membutuhkan database, Anda memiliki platform LAP dan Anda dapat melewati bagian ini. Ini semua yang Anda butuhkan untuk membuat skrip PHP CGI yang dapat mengakses server database MySQL, tetapi kami juga akan menginstal klien baris perintah MySQL standar (mysql) untuk membantu kami menguji database tanpa melibatkan PHP atau Apache: Buat skrip PHP pengujian ini dan simpan ke /var/ www/ info.php: Omong-omong, jika Anda seorang pemula, Anda baru saja menulis skrip CGI pertama Anda! (Di bagian selanjutnya tentang CGI, kami akan memberikan detail lebih lanjut tentang bagaimana server web menjalankan program dan skrip eksternal.) Sekarang dapatkan modul PHP Apache, mod_php. Perintah ini akan menginstal mod_php dan memberitahu Apache untuk membiarkannya mengeksekusi file dengan akhiran .php : PHP Machine Translated by Google
  137. www.it-ebooks.info Sekarang coba masuk lagi tanpa kata sandi: Catat kata

    sandi root MySQL ini, karena Anda harus memberikannya nanti di bab saat kita menginstal aplikasi Drupal, serta kapan pun Anda ingin mengakses MySQL sebagai administrator utama. Gunakan perintah ini untuk melihat apakah server database aktif dan berjalan: Untuk sekali ini, kami senang sesuatu gagal, karena memang seharusnya begitu. Coba lagi: Jika ini berhasil, server MySQL Anda sedang berjalan. Berita buruknya adalah pengguna root MySQL memulai tanpa kata sandi. Mari kita tetapkan satu (gunakan beberapa kata sandi omong kosong pilihan Anda di mana kami telah menulis kata sandi mysql baru): 126 | Bab 6: Mengelola Apache Jika Anda menjalankan klien mysql tetapi tidak menentukan nama akun MySQL dengan opsi -u , ia mencoba menggunakan nama akun Linux Anda. Dalam contoh kami, kami masuk sebagai root, jadi namanya adalah root. Akun administrator MySQL juga disebut root, dan memiliki kendali penuh atas database. Namun, akun root MySQL dan Linux tidak ada hubungannya satu sama lain. MySQL menyimpan nama akun dan kata sandinya di databas +----------+ mysql> keluar; | Basis Data | # mysqladmin -u kata sandi root newmysqlpassword +----------+ | mysql | uji # mysql -u root | | GALAT 1045: Akses ditolak untuk pengguna: 'root@localhost' (Menggunakan kata sandi: TIDAK) # mysql -u root Selamat datang di monitor MySQL. Perintah diakhiri dengan ; atau \g. +----------+ ID koneksi MySQL Anda adalah 5 ke versi server: 4.0.24_Debian-10sarge2-log 2 baris dalam set (0,00 detik) # mysql –u root -p Masukkan kata sandi: newmysqlpassword Selamat datang di monitor MySQL. Perintah diakhiri dengan ; atau \g. Ketik 'bantuan;' atau '\h' untuk bantuan. Ketik '\c' untuk menghapus buffer. mysql> keluar; ID koneksi MySQL Anda adalah 8 ke versi server: 4.0.24_Debian-10sarge2-log mysql> tampilkan database; Selamat tinggal # Ketik 'bantuan;' atau '\h' untuk bantuan. Ketik '\c' untuk menghapus buffer. Machine Translated by Google
  138. www.it-ebooks.info # netstat -tlnp tcp 0 127.0.0.1:3306 0.0.0.0:* # Sertakan

    konfigurasi modul: Proto Recv-Q Send-Q Alamat Lokal Alamat Asing NegaraPID/Nama program # Sertakan semua konfigurasi pengguna: Sertakan /etc/Apache2/ports.conf 0 Sertakan /etc/Apache2/mods-enabled/*.conf # Sertakan cuplikan umum pernyataan # Sertakan daftar port DENGARKAN25948/mysqld Sertakan /etc/Apache2/mods-enabled/*.load Sertakan /etc/Apache2/conf.d/[^.#]* Sertakan /etc/Apache2/httpd.conf File/Direktori di bawah /etc/apache2 apache2.conf file karena dibaca terakhir. Diizinkan hanya jika AllowOverride tidak disetel ke none. Dapat diubah tanpa memuat ulang Apache. Ini adalah berapa banyak webmaster yang mengizinkan Apa pun yang Anda suka bisa pergi ke sini. Secara default, itu kosong. Definisi untuk setiap modul yang diaktifkan. Debian menyertakan programa2enmod untuk klien untuk menyesuaikan situs mereka tanpa menyentuh file konfigurasi Apache utama. | 127 aktifkan modul anda2dismod untuk menonaktifkannya. Efeknya ke movexyz.conf andxyz. conf.d/ * File Konfigurasi Apache memuat file antara /etc/ Apache/ mods-available dan/ etc/ Apache2/ mods-enabled untuk mods-enabled/ *.conf modul bernama xyz. File Theapache2.conf menggunakan file di bawah mods-enabled. situs-diaktifkan/ * Tabel 6-1. File konfigurasi Apache Definisi untuk setiap situs web. Defaultnya adalah 000-default, tapi tidak ada yang ajaib .htaccess menggunakan tentang nama itu. Anda dapat memiliki banyak file di sini sesuka Anda. File konfigurasi utama. Termasuk file lain melalui arahan berikut: Definisi direktori, terdapat dalam direktori tersebut. Mengganti konfigurasi lainnya mereka. Ini memperlambat Apache. Lebih penting lagi, ia menyebarkan beberapa konfigurasi Apache di seluruh sistem file, sehingga sulit untuk mengetahui opsi apa yang berlaku untuk sebuah server MySQL ke klien lokal seperti skrip web PHP atau baris perintah mysql periksa setiap direktori dari root dokumen ke bawah untuk file .htaccess apa pun , dan baca alamat server adalah 127.0.0.1 (alamat lokal atau loopback ) menggunakan perintah ini: Untuk alasan keamanan, instalasi default MySQL yang kami lakukan membatasi Jika AllowOverride diaktifkan untuk direktori apa pun, pada setiap permintaan klien, Apache harus akan menjadi hal yang kejam untuk database yang tidak bersalah. Anda dapat memeriksa bahwa MySQL direktori setiap saat. Jika Anda tidak membutuhkan file .htaccess , jangan gunakan. Mereka dinonaktifkan secara default. klien. Jika tidak, orang dapat terhubung ke database Anda melalui Internet, yang Apache menggunakan file konfigurasi ASCII biasa. Lokasi mereka bervariasi di seluruh distribusi Linux; Tabel 6-1 menunjukkan di mana Debian menempatkannya. File Konfigurasi Apache Machine Translated by Google
  139. www.it-ebooks.info Berikut salinan file yang telah kami beri anotasi dengan

    baris komentar: Bagian "Pemecahan Masalah" di akhir bab ini memiliki panduan langkah demi langkah untuk membantu Anda mendiagnosis masalah server web. Setelah Anda menjalankan Apache dengan sukses, Anda dapat melihat arahan Apache mana yang saat ini dapat digunakan dengan mengetikkan perintah ini: Direktif File Konfigurasi Setiap file konfigurasi Apache dibagi menjadi beberapa bagian yang berisi arahan Apache (perintah atau pengaturan) dan nilainya. Beberapa arahan adalah bagian dari inti Apache, sementara hanya modul tertentu yang menggunakan yang lain. Jika arahan merujuk ke modul yang belum Anda konfigurasikan untuk digunakan oleh Apache, Apache akan gagal untuk memulai, dan pesan yang berisi baris yang salah akan ditulis ke log kesalahan. Dengan asumsi file pengujian berfungsi, Anda sekarang dapat beralih ke konfigurasi Apache. Berikut ini adalah isi dari file konfigurasi default Apache, /etc/ apache2/ sites-enabled/ 000-default. Bagian dimulai dan diakhiri dengan tag bergaya HTML, seperti: 128 | Bab 6: Mengelola Apache </VirtualHost> <VirtualHost*> NamaVirtualHost * ... # File situs web kami akan berada di bawah direktori ini: DocumentRoot /var/www/ # Jawaban untuk nama atau alamat IP apa pun: # DocumentRoot itu sendiri: <Directory /var/ www/> Options Indexes FollowSymLinks MultiViews # Melarang file .htaccess: AllowOverride None Order allow,deny allow from all # Maps / to /apache2-default, sambutan awal ServerAdmin webmaster@localhost # Direktif keseluruhan, jika kita memindahkan DocumentRoot # atau lupa menentukan sesuatu nanti: <Directory /> # Biarkan Apache mengikuti tautan simbolik: Opsi FollowSymLinks # Menonaktifkan file .htaccess di subdirektori: AllowOverride None </Directory> # /usr/sbin/apache2 -L # Untuk semua host virtual di alamat mana pun, port apa pun: <VirtualHost *> # Jika Apache bermasalah, siapa yang harus dihubungi? Machine Translated by Google
  140. www.it-ebooks.info Default Debian di /etc/ apache2/ apache2.conf adalah: Arahan Pengguna

    dan Grup Pengaturan penting ini memberi tahu Apache untuk dijalankan dengan ID pengguna dan ID grup tertentu. Sebagian besar perubahan yang akan kita buat pada file konfigurasi Apache di bagian ini akan berada di file ini. File konfigurasi server secara keseluruhan, /etc/ apache2/ apache2.conf, berisi banyak pengaturan seluruh server yang biasanya tidak perlu diubah; beberapa pengecualian penting mengikuti. File Konfigurasi Apache | 129 Pesan izinkan, tolak ServerSignature Aktif Grup www-data Izinkan dari semua # Menampilkan dokumen Apache (hanya untuk pengguna lokal) # jika Anda menginstal Apache2- docs; # untuk menekan tampilan dokumen, # Anda dapat mengomentari baris ini atau menghapusnya: Alias / doc/ "/usr/share/doc/" </Direktori> <Directory "/usr/share/doc/"> Opsi Indeks MultiViews FollowSymLinks AllowOverride Tidak Ada Pesanan tolak, izinkan Tolak dari semua Izinkan dari 127.0.0.0/255.0.0.0 ::1/128 # halaman yang mengatakan "Jika Anda dapat melihat ini...": RedirectMatch ^/$ /Apache2-default/ </Directory> # Log kesalahan untuk satu situs: ErrorLog /var/log/Apache2/error.log </Direktori> # Mengizinkan skrip CGI: # Nilai yang mungkin termasuk: debug, info, pemberitahuan, # warning, error, crit, alert, dan emerg: </VirtualHost> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ Peringatan Level Log <Direktori "/usr/lib/cgi-bin"> # Akses log untuk satu situs: CustomLog /var/log/Apache2/access.log digabungkan AllowOverride Tidak Ada # Mengirim informasi versi Apache dan PHP ke browser; Opsi ExecCGI -MultiViews +SymLinksIfOwnerMatch # Atur ke Mati jika Anda paranoid, atau memiliki alasan untuk menjadi: Pengguna www-data Machine Translated by Google
  141. Otentikasi dan Otorisasi www.it-ebooks.info Dengarkan arahan Arahan DocumentRoot File pengguna

    DocumentRoot /var/www/ # cd /var/www # mkdir secret Dengarkan 443 Dengarkan 81 130 | Bab 6: Mengelola Apache Setiap situs web memiliki root dokumen, yang merupakan direktori yang berisi file dan skrip konten situs. Ini ditentukan dengan direktif DocumentRoot . Dalam pengaturan Apache Debian default, ini ditentukan di /etc/ Apache2/ sites-enabled/ 000-default: Di Apache, tempat biasa untuk menyimpan informasi otentikasi adalah dalam file pengguna teks biasa (sering disebut file .htpasswd , setelah program yang memodifikasinya). File pengguna berisi ID pengguna dan kata sandi terenkripsi. File grup opsional berisi ID grup teks biasa dan ID pengguna; ini berguna untuk situs yang lebih besar karena memungkinkan Anda menentukan per misi untuk grup secara keseluruhan daripada untuk masing-masing pengguna individu. Apache biasanya merespons permintaan pada port TCP 80, tetapi Anda dapat mengarahkannya untuk mendengarkan port lain alih-alih, atau sebagai tambahan, port 80. Adalah umum untuk menggunakan port lain untuk pengujian; banyak orang menggunakan 81 karena mudah diingat dan tidak digunakan untuk hal lain. Untuk menentukan satu atau beberapa port, gunakan satu atau beberapa arahan Lis • Membaca file Sebagai contoh, buat direktori yang dilindungi kata sandi dan tempatkan file teks kecil di dalamnya: • Gunakan sisi server termasuk Semua file dan direktori yang dilayani oleh Apache harus dapat dibaca oleh pengguna dan grup ini. Izin file dan direktori yang salah adalah penyebab paling umum dari kesalahan Apache, seperti ketidakmampuan untuk melihat halaman (atau kemampuan untuk melihat sesuatu yang seharusnya tidak Anda lihat). Jika Anda akan menggunakan enkripsi SSL untuk beberapa halaman, Anda harus menyertakan petunjuk ini untuk menggunakan port web aman standar: • Jalankan program CGI • Buat halaman indeks untuk direktori yang tidak memilikinya Beberapa bagian situs web Anda mungkin terbuka untuk umum, tetapi Anda mungkin ingin membatasi bagian lain untuk pengunjung tertentu. Otentikasi menentukan siapa pengunjung. Otorisasi menentukan apa yang dapat dilakukan pengunjung, seperti: Machine Translated by Google
  142. www.it-ebooks.info File pengguna terdiri dari baris yang masing-masing berisi nama

    pengguna dan kata sandi terenkripsi, dipisahkan oleh titik dua, sebagai berikut: Sekarang edit file konfigurasi situs Apache /etc/ Apache2/ sites-enabled/ 000-default dan tambahkan (sebelum baris </VirtualHost> terakhir ): AuthName adalah wajib dan harus diikuti oleh string yang dikutip. Kami menggunakan "tes" di sini; Anda dapat menggunakan "" jika Anda mau, tetapi untuk beberapa alasan Anda tidak dapat menghilangkan arahan ini. Kata sandi Anda tidak akan digemakan saat Anda mengetiknya. Anda perlu menyertakan argumen -c ini pertama kali Anda menjalankan program htpasswd pada file, sehingga akan membuat file. Sekarang buat file pengguna: AuthType Basic berarti kita menggunakan file pengguna bergaya htpasswd . AuthUserFile menentukan lokasi file pengguna. Perintah Order mengatakan bahwa Apache harus menolak akses secara default, dan mengizinkan akses hanya jika ditentukan dalam file pengguna. Terakhir, perintah require mengatakan bahwa setiap pengguna dalam file pengguna diperbolehkan. Untuk mengizinkan hanya jack pengguna untuk melihat rahasianya, Anda akan mengganti: Jika Anda ingin mengubah kata sandi jack nanti, masukkan: Karena Anda belum melindunginya, file tersebut akan terlihat di browser Anda (http:// server1.centralsoft.org/ secret/ file.html): Ketik ulang kata sandi baru: black_pearl Menambahkan kata sandi untuk jack pengguna jack:OSRBcYQ0d/qsI membutuhkan jack # cd secret # echo "sekarang Anda melihatnya" > file.html <Lokasi /rahasia> AuthName "tes" sekarang kamu melihatnya # htpasswd /tmp/users jack AuthType Dasar Kata sandi baru: kraken AuthUserFile /tmp/users # cd /tmp # htpasswd -c /tmp/users jack Ketik ulang kata sandi baru: kraken Pesanan ditolak, izinkan memerlukan pengguna yang valid Kata sandi baru: black_pearl Memperbarui kata sandi untuk jack pengguna </Lokasi> Jangan gunakan argumen -c saat Anda menambahkan lebih banyak pengguna nanti, karena hal itu akan menyebabkan file ditimpa. | 131 File Konfigurasi Apache Machine Translated by Google
  143. Wadah dan Alias www.it-ebooks.info sekarang kamu melihatnya Masukkan nama pengguna

    dan kata sandi untuk "tes" di server1.centralsoft.org Nama pengguna: Kata sandi: bajak laut: bajak laut jack: bajak laut akan: elizabeth AuthName "tes" AuthType Dasar AuthUserFile /tmp/users Perintah tolak, izinkan # /etc/init.d/apache2 reload # /etc/init.d/apache2 reload bajak laut: jack will elizabeth AuthGroupFile /tmp/groups membutuhkan bajak laut grup <Lokasi /rahasia> </Lokasi> membutuhkan jack will elizabeth 132 | Bab 6: Mengelola Apache Kemudian tambahkan direktif AuthGroupFile ke 000-default: Dan jika Anda memiliki lebih dari satu pengguna yang diizinkan, Anda akan menambahkannya seperti ini: File grup Cara lain untuk menangani banyak pengguna adalah dengan menggunakan file grup. Buat file /tmp/ groups yang berisi nama grup, titik dua, dan satu atau beberapa nama pengguna yang dipisahkan spasi: Apache harus diberi tahu untuk membaca ulang file konfigurasinya agar perubahan ini diterapkan: Muat ulang Apache seperti biasa sehingga perubahan Anda berlaku: Apache menerapkan batasan otorisasi ke container, atau file dan direktori di server. Salah satu wadah tersebut adalah bagian Lokasi yang dibahas sebelumnya. Kami akan meninjau berbagai arahan kontainer di sini. Masukkan nama pengguna dan kata sandi (Anda akan melihat tanda bintang saat Anda memasukkan kata sandi), dan klik OK. Anda harus melihat: Juga legal untuk membuat daftar grup dan pengguna satu per satu: Sekarang coba akses file rahasia ini (http:// www.example.com/ secret/ file.html) dari salah satu akun yang terdaftar di file pengguna. Anda akan mendapatkan kotak dialog yang mengatakan sesuatu seperti ini: Machine Translated by Google
  144. File Konfigurasi Apache | 133 www.it-ebooks.info memungkinkan program CGI dalam

    /var/ www/ cgi. Kita akan melihat ini lagi di bagian CGI. Pencocokan pola: Files and FilesMatch Anda mungkin perlu menentukan file atau direktori berdasarkan beberapa pola teks. Berikut adalah contoh yang mencegah orang mengunduh gambar dari situs Anda tanpa izin, dengan memeriksa asal permintaan. Ini menggunakan arahan FilesMatch , yang memungkinkan Anda menentukan ekspresi reguler (pola) dalam tanda kutip: Arahan Alias memberikan nama ke direktori: Nama path absolut: Direktori Direktif ini menentukan direktori di server. Berikut ini contoh dari konten asli file konfigurasi Apache kami: Nama path relatif: Lokasi Direktif ini menetapkan file dan direktori relatif terhadap akar dokumen. Misalnya, contoh berikut: Alias # Ekspresi reguler akan mencocokkan file dengan akhiran <Lokasi /cgi> Opsi ExecCGI .gif, .jpg, .jpeg, atau .png. </Lokasi> <FilesMatch "\.(gif|jpg|jpeg|png)$"> Alias /test /tmp/test # <Direktori /> # Atur variabel lingkungan lokal ke 1 # jika halaman rujukan (URL dari gambar ini # dipanggil) ada di situs ini. Opsi IkutiSymLinks # Beberapa catatan tentang ekspresi reguler: \. berarti karakter titik literal. # Setel lokal ke 0 jika URL ada di situs lain # yang ingin mencuri gambar indah kita. AllowOverride Tidak Ada # (gif|jpg|jpeg|png) berarti salah satu dari empat string ini. $ berarti akhir dari nama file. SetEnvIfNoCase Referer "^http://server1.centralsoft.org/" local=1 Order Allow, Deny # Ini memeriksa variabel lokal dan # mengizinkan akses hanya jika perujuk itu lokal. </Direktori> # Izinkan dari env=local # </FilesMatch> Machine Translated by Google
  145. www.it-ebooks.info Batas Sisi Server Termasuk </Lokasi> MaxRequestsPerChild Pilihan Termasuk 15

    256 Opsi + Termasuk KeepAliveTimeout <Lokasi /ssi> Klien Maks #mkdir /var/www/ssi pada <Lokasi /ssi> </Lokasi> Berusaha agar hidup dari memori. Hal ini dapat meningkatkan rata-rata beban dan membuat sistem lamban atau bahkan di /var/ www/ ssi tetapi tidak ada opsi lain, buat direktori: tidak responsif. Tabel 6-2 menunjukkan bagaimana Anda dapat membatasi beberapa nilai runtime Apache SSI memungkinkan Anda memasukkan konten file, tetapi juga dapat menjalankan program apa pun dan menyertakan outputnya. Ini bisa jadi tidak aman, jadi untuk membatasi penyertaan SSI ke konten file saja, gunakan: dalam file konfigurasi situs. dan beri tahu Apache untuk mengizinkan hanya SSI di dalamnya: Alias (nama baru) muncul pertama kali dalam arahan, diikuti oleh lokasi sebenarnya dari direktori. Direktori mungkin berada di luar root dokumen. Dalam hal ini, file /tmp/ test/ button.gif akan dapat diakses sebagai URL http:// www.example.com/ test/ button.gif, meskipun tidak ada di /var/ www/ test. Untuk menambahkan SSI ke opsi yang ada, gunakan: SSI dapat digunakan untuk memasukkan konten file, output program, atau konten variabel lingkungan sebagai bagian dari file HTML. Sintaks untuk menentukan SSI di Apache Pada server yang sibuk, Apache dapat membuat banyak proses anak secara simultan dan menggunakan banyak hal file konfigurasi dapat menyesatkan. Misalnya, untuk mengizinkan hanya menyertakan sisi server Bawaan Apache. Meningkatkan throughput dengan mengambil semua konten Permintaan simultan maksimum. Jika ada permintaan lagi Pengarahan Gunakan kembali koneksi TCP antara klien web dan 134 | Bab 6: Mengelola Apache Penggunaan Permintaan maksimum dilayani sebelum proses Apache anak dimulai ulang. Digunakan untuk menghindari kebocoran memori. Tabel 6-2. Arahan sumber daya Apache koneksi yang sama. 0 (tak terbatas) tiba, mereka akan ditolak. halaman melalui koneksi yang sama. Detik maksimum untuk menunggu permintaan lain di Machine Translated by Google
  146. www.it-ebooks.info Perintah SSI terlihat seperti komentar HTML. Mereka memiliki bentuk:

    Agar SSI berfungsi, Apache termasuk modul yang menjalankannya harus dimuat. Karena tidak dimuat dalam pengaturan Apache atau PHP default, kami akan melakukannya sekarang: Jika Anda ingin memiliki file SSI di berbagai tempat daripada terbatas pada direktori ini, Anda dapat memberi tahu Apache untuk mengaitkan akhiran file tertentu dengan SSI: Perhatikan bahwa file yang menyertakan (middle.shtml) memerlukan akhiran .shtml , tetapi file yang disertakan (top.html dan bottom.html) tidak. Sekarang arahkan browser kerja keras Anda ke http:// server1.centralsoft.org/ middle.shtml, dan Anda akan melihat: Jika opsi Termasuk diatur untuk wadah, SSI juga dapat menjalankan perintah, tetapi pengguna (biasanya, di browser web) tidak dapat meneruskan arahan apa pun kepada mereka. Eksekusi perintah SSI digunakan untuk hal-hal yang cukup sederhana seperti daftar direktori: Sekarang buat file middle.shtml dengan konten berikut: Nilai yang mungkin dari perintah adalah include (termasuk file), echo (variabel lingkungan tampilan), exec (termasuk output perintah), dan config (memformat beberapa variabel echo ). Penggunaan terakhir SSI adalah untuk menampilkan variabel lingkungan CGI dan beberapa variabel praktis lainnya. Cara cepat untuk mencetak semua variabel adalah: Mari kita uji penyertaan file terlebih dahulu. Buat dua file: | 135 File Konfigurasi Apache Opsi TermasukNoExec <!--#echo var="DATE_GMT"--> # a2enmod include Module include terpasang; jalankan /etc/init.d/apache2 force-reload untuk mengaktifkan. # /etc/init.d/apache2 force-reload <!--#printenv--> Untuk variabel tertentu, baris ini: AddHandler server-parsing .shtml <!--#include virtual="top.html"--> hal tengah! <!--#include virtual="bottom.html"-- > <Lokasi /ssi> </Lokasi> <!--#exec cmd="ls -l /tmp"--> <!--# argumen perintah="nilai"--> # cd /var/www/ssi # echo "barang atas" > top.html # echo "barang bawah" > bottom.html barang atas barang tengah! barang bawah Machine Translated by Google
  147. www.it-ebooks.info Selasa, 01-Agustus-2006 02:42:24 GMT </Lokasi> </Lokasi> ScriptAlias /cgi /var/cgi

    </JikaModul> Opsi TermasukNoExec Opsi ExecCGI AddType application/x-httpd-php .php <Lokasi /cgi> <Lokasi /> <IfModule mod_php4.c> AddType application/x-httpd-php .php .phtml .php3 AddType application/x-httpd-php-source .phps Lokasi Akhiran file 136 | Bab 6: Mengelola Apache Metode sufiks mengaitkan tipe MIME (standar penamaan tipe file) dengan sufiks. CGI adalah cara yang jauh lebih fleksibel (dan berbahaya) untuk menjalankan program di server web, karena pengguna dapat meneruskan informasi ke program. Apache memiliki dua cara untuk menentukan program apa yang dapat dijalankan sebagai program CGI. Berikut adalah isi lengkap dari file konfigurasi Apache untuk mod_php (/ etc/ apache2/ mods-enabled/ php4.conf), yang juga memperlakukan file dengan akhiran .phtml atau .php3 sebagai PHP: Baris AddType pertama menyebabkan semua file yang diakhiri dengan .php, .php3, atau .phtml akan dieksekusi sebagai program PHP CGI. Baris AddType kedua menyebabkan Apache mencetak konten file dengan akhiran .phps , daripada menjalankannya dan mengembalikan hasilnya. Penulis web menggunakan ini untuk menjalankan skrip (.php) dan membiarkan pengguna melihat versi yang dapat dicetak (.phps). Jika Anda secara tidak sengaja menggunakan akhiran .phps ketika Anda bermaksud .php, skrip Anda tidak akan dijalankan; sebagai gantinya, isinya akan ditampilkan. akan menampilkan sesuatu seperti: Salah satu dari arahan berikut akan mengaitkan program CGI di direktori / var/ cgi dengan URL yang dimulai dengan http:// server1.centralsoft.org/ cgi/: Modul PHP menggunakan metode ini untuk membuat Apache meneruskan file .php ke penerjemah mod_php : Jika Anda hanya memiliki file statis, atau campuran file statis dan skrip CGI, paling aman untuk menonaktifkan eksekusi perintah SSI: atau: CGI Machine Translated by Google
  148. www.it-ebooks.info Masukkan URL http:// server1.centralsoft.org/ db.php di browser Anda, dan

    itu akan menampilkan: Jika Anda telah menggunakan perintah SQL yang sama dengan klien mysql baris perintah , Anda akan mendapatkan hasil yang sama (dua database, bernama mysql dan test), tetapi dengan format yang berbeda: Sekarang mari kita coba sesuatu yang lebih menarik: kita akan terhubung ke server MySQL, menjalankan kueri SQL (database), dan mencetak hasilnya sebagai HTML. Kami akan kembali membutuhkan kata sandi pengguna root MySQL . Simpan file ini sebagai /var/ www/ db.php: Saat menguji instalasi PHP Anda sebelumnya, Anda membuat program PHP CGI kecil ini: File Konfigurasi Apache | 137 Jangan pernah menaruh juru bahasa skrip seperti Perl, PHP, atau shell Linux di direktori CGI. Siapa pun dapat menjalankan ini dengan izin penuh dari pengguna dan grup Apache. } # print_r mencetak semua isi variabel while ($row = mysql_fetch_assoc($result)) print_r($row); +----------+ ?> | Basis Data | +----------+ Array ( [Database] => mysql ) Array ( [Database] => test ) | mysql | uji | | <? php phpinfo(); ?> $ mysql -u root -p Masukkan kata sandi: Selamat datang di monitor MySQL. Perintah diakhiri dengan ; atau \g. +----------+ ID koneksi MySQL Anda adalah 2996 ke versi server: 4.0.24_Debian-10sarge2-log 2 baris dalam set (0,00 detik) <? php $link = mysql_connect("localhost", "root", "newmysqlpassword"); if (! $link) { echo "Tidak dapat terhubung ke database. Drat.\n"; KELUAR( ); Ketik 'bantuan;' atau '\h' untuk bantuan. Ketik '\c' untuk menghapus buffer. } $hasil = mysql_query("tampilkan database"); if (!$result) { echo "Arggh, database error: ", mysql_error(); KELUAR( ); mysql> tampilkan database; Machine Translated by Google
  149. www.it-ebooks.info Meskipun Anda dapat menggunakan server Apache untuk satu situs,

    Anda mungkin ingin menangani lebih dari satu situs. Apache memanggil host virtual ini, dan memiliki lebih dari satu cara untuk menentukannya. Ketika klien web menghubungi server web melalui HTTP, ia mengirimkan alamat IP tujuan dan (dalam HTTP 1.1, standar protokol web saat ini) nama server di alamat itu. Jika Anda memiliki lebih dari satu alamat IP di server Anda dan ingin mendedikasikan alamat tertentu ke situs tertentu, Anda dapat memilih untuk menggunakan host virtual berbasis IP (atau berbasis alamat): Dalam pengaturan Apache default, tidak ada host virtual independen. Apache akan dengan senang hati melayani halaman web tidak peduli berapa banyak nama yang dimiliki server, dan semua nama domain berbagi konfigurasi yang sama. Ini biasa terjadi pada masa-masa awal Web, karena HTTP 1.0 tidak memiliki cara untuk menentukan server mana yang ingin Anda jangkau di alamat itu. Dengan HTTP 1.1, hosting berbasis nama lebih populer. Direktif Khusus Modul PHP Direktif PHP dapat ditempatkan di file konfigurasi PHP sendiri (/ etc/ php4/ apache2/ php.ini), atau di file konfigurasi Apache. Biasanya Anda tidak perlu berurusan dengan mereka kecuali Anda menginstal modul ekstensi PHP atau ingin mengubah tempat PHP mencari perpustakaan atau mengubah pengaturan keamanan (seperti mode aman). Modul Apache normal memiliki file konfigurasi dengan akhiran .conf , terletak di bawah /etc/ apache2/ mods-enabled. Dengan metode ini, direktif NameVirtualHost mendefinisikan alamat mana yang dapat menjadi host virtual; * berarti nama atau alamat apa pun yang dimiliki server ini, termasuk localhost, 127.0.0.1, www.centralsoft.org, www2.centralsoft.org, atau lainnya. Arahan Nama Server Individu Dalam contoh berikut, mari kita asumsikan kita ingin menempatkan setiap situs dalam direktorinya sendiri di bawah /var/ www/ vhosts. DocumentRoot "/var/www/vhosts/www1.example.com" DocumentRoot "/var/www/vhosts/www2.example.com" <VirtualHost 192.168.6.1> Nama Server "www1" </VirtualHost> <VirtualHost 192.168.6.2> Nama Server "www2" </VirtualHost> 138 | Bab 6: Mengelola Apache Host Virtual Host virtual berbasis nama Host virtual berbasis IP Machine Translated by Google
  150. | 139 File Konfigurasi Apache www.it-ebooks.info # Terima nama situs

    apa pun di port apa pun: NameVirtualHost * <VirtualHost *> ServerName www1.example.com DocumentRoot "/var/www/vhosts/ www1.example.com" # /etc/init.d/apache2 reload </VirtualHost> <VirtualHost *> ServerName www2.example.com # Sebuah virtual host dapat memiliki beberapa nama: ServerAlias backup.example.com DocumentRoot "/var/www/vhosts/www2.example.com" Mati </VirtualHost> GunakanCanonicalName VirtualDocumentRoot /var/www/vhosts/%0 # a2enmod vhost_alias # cd /var/www/vhosts # mkdir www1.centralsoft.org # echo "test www1.centralsoft.org" > www1.centralsoft.org/index.html # mkdir www2.centralsoft.org # echo "test www2.centralsoft. org"> www2.centralsoft.org/ index.html kaitkan nama server dari permintaan browser dengan direktori penyimpanan file yang tepat untuk dilayani: dan konfigurasikan nama yang akan disajikan dalam file yang ditentukan. Vhost_alias pada perintah sebelumnya diperluas ke /etc/ Apache2/ mods-enabled/ vhost_alias.conf . Konten sampel mungkin: Alternatif ini berguna jika Anda memiliki banyak host virtual. Jika Anda selalu memiliki nama domain dasar yang sama, seperti centralsoft.org, dan situs yang disebut www1.centralsoft.org, www2.centralsoft.org, dan seterusnya, Anda dapat menggunakan %1 untuk mendapatkan direktori / var/ www/ vhosts/ www1, / var/ www/ vhosts/ www2, dll. Arahan VirtualDocumentRoot sangat fleksibel. %0 yang kami tentukan di sini diperluas ke nama situs lengkap (server1.centralsoft.org). Kita bisa menggunakan %2 untuk mendapatkan bagian kedua dari kiri (centralsoft), %-2 untuk bagian kedua dari kanan (juga centralsoft), %2+ untuk yang kedua melalui bagian terakhir (centralsoft.org), dan segera. Untuk saat ini, cukup gunakan %0 untuk nama lengkap dan buat direktori untuk setiap host virtual: Kemudian dorong Apache untuk mendapatkan perhatiannya: Jika Anda ingin mengelola beberapa host tanpa perlu menentukan nama masing-masing dalam file konfigurasi, Anda dapat mengaktifkan modul mod_vhost_alias Apache : mod_vhost_alias Machine Translated by Google
  151. 140 | Bab 6: Mengelola Apache www.it-ebooks.info file log 1.

    Mengganti nama access.log menjadi access.log.1 dan error.log menjadi error.log.1 2. Menambah sufiks nomor dari log lama yang diputar (misalnya, access.log.1 adalah Apache menulis file log ASCII dari dua jenis: akses (permintaan yang datang ke server) dan kesalahan (kesalahan yang terjadi selama permintaan). Anda mengontrol berapa banyak yang ditulis ke file-file ini, tergantung pada apa yang ingin Anda ketahui tentang pengunjung situs Anda, berapa banyak ruang disk yang Anda miliki (log menjadi besar), dan alat analisis log apa yang ingin Anda terapkan. Pesan akses tipikal (dipecah menjadi beberapa baris agar sesuai dengan halaman) adalah: bertambah ke access.log.2) Jika Anda memiliki catatan DNS yang mengarahkan www1.centralsoft.org dan www2.centralsoft.org ke server Anda, Anda dapat mengarahkan browser Anda ke http:// www1.centralsoft.org/ index.html dan http:// www2.centralsoft.org/ index.html dan lihat isi file test index.html yang baru saja anda buat. Log default adalah /var/ log/ apache2/ access.log dan /var/ log/ apache2/ error.log. 3. Menghapus access.log.7 dan error.log.7 4. Membuat access.log dan error.log baru Secara default, semua host virtual Anda berbagi akses dan log kesalahan yang sama. Namun, jika Anda memiliki lebih dari satu host, Anda mungkin ingin membagi log untuk menyediakan analisis kecepatan terpisah untuk masing-masing. Pemisahan dan Rotasi Log Pengaturan Apache default mencakup tugas cron harian yang memutar log akses dan kesalahan. Ia melakukan rotasi sebagai berikut: Pesan kesalahan tipikal adalah: Apache memiliki dua format file log akses standar: umum dan gabungan. Anda akan menemukan definisinya di file konfigurasi master Apache, /etc/ Apache2/ Apache.conf: File tidak ada: /var/www/index.html # Direktif berikut menentukan beberapa nama panggilan format untuk digunakan dengan # direktif CustomLog (lihat di bawah). 200 580 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7" LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" gabungan LogFormat "%h %l % u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agen [Jumat 29 Sep 10:13:11 2006] [kesalahan] [klien www.centralsoft.org] 192.168.0.1 - - [22/Sep/2006:15:04:05 -0400] "GET / HTTP/1.1" Machine Translated by Google
  152. file log | 141 www.it-ebooks.info Kemudian gelitik Apache: Karena vlogger

    bukan bagian dari paket standar Debian, instal: vlogger akan membuat direktori di bawah /var/ log/ apache2 untuk setiap virtual host yang telah Anda tentukan. Ini akan membuat log akses waktu harian, dengan tautan simbolis dari access.log ke yang terbaru: Daripada mendapatkan sidik jari Anda di seluruh file konfigurasi master Apache, lanjutkan untuk membuat perubahan pada file situs yang telah kami gunakan sejauh ini (/ etc/ apache2/ sites-enabled/ 000-default). Letakkan baris ini di atas salah satu arahan VirtualHost Anda: Semua % hal itu mewakili variabel konfigurasi Apache; misalnya, %h berarti nama host. Format gabungan hanyalah format umum ditambah perujuk dan agen pengguna (browser). Sayangnya, tidak ada format yang menyertakan nama host virtual ( variabel %v ), yang Anda perlukan untuk membagi log berdasarkan host. Oleh karena itu, jika Anda ingin melakukan ini, Anda harus menentukan jenis file log baru. Menganalisis Log dengan Webalizer Banyak tersedia penganalisis log Apache open source dan komersial. Kami pikir Webalizer adalah pilihan yang baik karena mudah dipasang, berjalan dengan baik, dan menghasilkan keluaran yang bermanfaat. Memisahkan Log dengan vlogger Anda mungkin bertanya-tanya apakah akan membagi baris informasi logging menjadi file terpisah saat Apache sedang diakses, atau membagi file akses sekali sehari dengan utilitas seperti file log split Apache. Kami lebih memilih opsi pertama, karena langsung mengalihkan baris ke log akses yang tepat, dan kami tidak perlu menulis tugas cron . Pembagi yang baik adalah program vlogger . Apache memungkinkan Anda untuk menyalurkan log melalui beberapa program eksternal, yang kami inginkan. Tambahkan ini tepat di bawah baris LogFormat yang baru saja Anda masukkan: # Tentukan format log umum host virtual baru: # cd /var/log/apache2/www1.example.com # ls -l total 4 -rw-r--r-- 1 root root 984 3 Agustus 23:19 08032006-access.log lrwxrwxrwx 1 root root 19 Agustus 3 23:19 access.log -> 08032006- access.log LogFormat "%v %h %l %u %t \"%r\" %s %b" vcommon # Pisahkan log dengan cepat ke direktori host virtual # di bawah /var/log/Apache2: CustomLog "| /usr/sbin/ vlogger -s access.log /var/log/apache2" vcommon # /etc/init.d/apache2 restart # apt-get install vlogger Machine Translated by Google
  153. www.it-ebooks.info ... Direktori mana webalizer harus memasukkan output? / var/www/webalizer

    Masukkan judul laporan yang akan dihasilkan webalizer. # apt-get install webalizer Dengarkan 443 # a2enmod ssl Modul ssl terpasang; jalankan /etc/init.d/apache2 force-reload untuk mengaktifkan. # /etc/init.d/apache2 force-reload Statistik Penggunaan untuk server1.centralsoft.org Apa nama file dari log server web yang diputar? /var/log/apache2/access.log.1 Enkripsi SSL/TLS Hari berikutnya (setelah pekerjaan cron harian Webalizer /etc/ cron.daily/ webalizer pertama kali dijalankan), Anda akan melihat halaman tabel yang menjelaskan akses ke server web Anda. Anda tidak perlu mengedit file konfigurasi (/ etc/ webalizer.conf) kecuali jika Anda ingin mengubah pengaturan yang Anda berikan selama instalasi. Serangan internet semakin ditujukan pada tingkat aplikasi untuk alasan yang sama. Menjadi penting untuk mengenkripsi data sensitif seperti nomor kartu kredit dan kata sandi. Kemudian nyalakan modul Apache SSL dan beri tahu Apache untuk menggunakannya: Akses dengan URL http:// server1.centralsoft.org/ webalizer. Mari kita coba: Willie Sutton pernah berkata bahwa dia merampok bank karena "di situlah uangnya." Mari kita siapkan SSL untuk Apache. Edit /etc/ Apache2/ ports.conf dan tambahkan baris ini: Standar Secure Sockets Layer dikembangkan untuk mengenkripsi lalu lintas web, dan sangat penting dalam memungkinkan ledakan situs komersial dan e-commerce di Web. Apache memiliki kemampuan untuk mengenkripsi lalu lintas web dengan SSL, yang, dengan sedikit modifikasi, dikenal sebagai Transport Layer Security. Anda mendapatkan enkripsi ini saat mengakses situs dengan awalan https:// . Pikirkan lalu lintas web terenkripsi sebagai amplop tertutup. Saat Anda meminta halaman dari server web dengan awalan http:// , semua data yang lewat antara server dan browser web Anda tidak dienkripsi. Siapa pun yang memiliki akses ke jaringan yang mengintervensi dapat mengintip konten. Pikirkan akses web biasa (seperti email standar) sebagai kartu pos daripada surat. 142 | Bab 6: Mengelola Apache Spammer memiliki cara untuk memanipulasi log web seperti Webalizer, jadi ada baiknya membatasi akses ke halaman keluaran Webalizer. Machine Translated by Google
  154. www.it-ebooks.info <VirtualHost www2.example.com> SuExecUserGroup www-user2 www- group2 </VirtualHost> Dukungan suEXEC

    | 143 CA adalah perusahaan yang menjual sertifikat kepada organisasi Anda dan menginginkan uang tunai untuk melakukan kerja keras guna memverifikasi identitas Anda. Situs web komersial hampir selalu menggunakan CA komersial, karena browser secara diam-diam menerima sertifikat yang dikeluarkan oleh CA tepercayanya. Metode yang populer adalah menggunakan suEXEC, sebuah program yang berjalan dengan izin root dan membuat program CGI berjalan dengan ID pengguna dan grup dari pengguna tertentu, bukan pengguna dan grup yang menjalankan server Apache. Misalnya, menggunakan host virtual kedua kami yang tidak imajinatif bernama www2.example.com, akun pengguna www-user2, dan grup www-group2, kami dapat mengubah izin untuk host virtual tersebut dengan menentukan: Atau, Anda dapat menjadi CA Anda sendiri dan membuat sertifikat yang ditandatangani sendiri. Ini berfungsi dengan SSL seperti halnya sertifikat komersial, tetapi browser web akan meminta pengguna tentang apakah akan menerima sertifikat Anda atau tidak. Sertifikat yang ditandatangani sendiri adalah umum dalam proyek open source kecil dan selama pengujian proyek yang lebih besar. Agar SSL berfungsi, server Anda juga memerlukan sertifikat. Ini adalah file terenkripsi yang membuktikan kepada browser pengguna bahwa Anda adalah yang Anda klaim. Bagaimana browser mengetahui siapa yang harus dipercaya? Peramban web memiliki daftar bawaan otoritas sertifikat (CA) tepercaya. Rantai perintah/opsi/tab untuk melihatnya adalah: Firefox 2.0 Tools Advanced Encryption View Certificates Authorities Internet Explorer 6.0 Tools Internet Options Content Certificates Trusted Root Certification Authorities Sekarang coba akses halaman beranda Anda dengan URL https:// (misalnya, https:// server1. centralsoft.org). Apache dapat melayani beberapa situs secara bersamaan, tetapi masing-masing situs akan memiliki halaman, skrip CGI, pengguna, dan sebagainya yang berbeda. Karena Apache berjalan sebagai pengguna dan grup tertentu (default kami adalah setiap www-data), pengguna tersebut dapat membaca dan menulis konten semua situs. Namun kami ingin memastikan bahwa hanya anggota situs tertentu yang dapat menjalankan program situs tersebut dan mengakses data situs tersebut. Seperti biasa, ada lebih dari satu cara untuk melakukan ini, menggunakan berbagai kombinasi Apache, PHP, dan alat lainnya. Dukungan suEXEC Machine Translated by Google
  155. www.it-ebooks.info Tujuan utama kami adalah menginstal dan mengkonfigurasi server web

    kami dengan benar dan aman. Di luar ini, kami ingin memastikan bahwa itu dapat menangani beban yang diharapkan untuk situs web kami. Web memiliki banyak bagian yang bergerak, dan mudah bagi seseorang untuk terjebak atau terbang dengan peluit samar. Untuk melihat bagaimana kinerja sistem kami, kami akan menggunakan alat pembandingan untuk mensimulasikan ratusan pengguna yang mengetik cepat (yang jauh lebih murah daripada benar-benar mempekerjakan ratusan pengguna yang mengetik cepat). Setidaknya satu file HTML statis diperlukan untuk pembandingan. Buat file bernama /var/ www/ bench.html. Seharusnya kira-kira ukuran yang Anda harapkan dari halaman web khas di situs Anda. Anda dapat membuat teman Anda terkesan dengan membuat teks Latin di http:// www. lipsum.com untuk memotong dan menempelkan ke bench.html. Program pembandingan, ab, ada dalam paket apache2-utils , dan seharusnya sudah diinstal dengan Apache. Mari buat 1.000 permintaan terpisah untuk file yang sama, dengan konkurensi (permintaan simultan) 5: Nama Host Server: Panjang Dokumen: Pembandingan server1.centralsoft.org (sabar) Pelabuhan Server: # ab -n 1000 -c 5 http://server1.centralsoft.org/bench.html Ini ApacheBench, Versi 2.0.41-dev <$Revision$> apache-2.0 Hak Cipta (c) 1996 Adam Twiss, Zeus Technology Ltd , http://www.zeustech.net/ Hak Cipta (c) 1998-2002 Yayasan Perangkat Lunak Apache, http://www.apache.org/ Menyelesaikan 100 permintaan Menyelesaikan 200 permintaan Menyelesaikan 300 permintaan Menyelesaikan 400 permintaan Menyelesaikan 500 permintaan Menyelesaikan 600 permintaan Menyelesaikan 700 permintaan Menyelesaikan 800 permintaan Menyelesaikan 900 permintaan Menyelesaikan 1000 permintaan /bench.html 1090 byte Apache/2.0.54 server1.centralsoft.org 80 Level Concurrency: Waktu yang dibutuhkan untuk pengujian: 2.799386 detik 5 Perangkat Lunak Server: Jalur Dokumen: Pembandingan Apache dapat berjalan dengan versi yang berbeda, yang disebut model. Instalasi default di bawah Debian adalah model prefork , di mana beberapa proses Apache mulai menangani permintaan. Ini tampaknya menjadi model yang bekerja paling baik di Linux. 144 | Bab 6: Mengelola Apache Machine Translated by Google
  156. dan berguna dalam dirinya sendiri. Menurut situs webnya (http:// www.drupal.org):

    www.it-ebooks.info Orang biasanya ingin melihat permintaan per detik atau sebaliknya, waktu per permintaan. apt-get Sekarang setelah Apache, PHP, dan MySQL berjalan, mari kita instal paket yang Angka-angka ini akan memberi tahu Anda hal terbaik yang dapat Anda lakukan dengan perangkat keras server Anda dan Ini termasuk weblog, forum, manajemen dokumen, galeri, buletin, dan menggunakan mereka. Sayangnya, kami tidak dibayar untuk penempatan produk di sini, jadi kami akan memilih Lebih mudah, jadi coba ini dulu. Namun, kami memiliki beberapa masalah dengan Debian Drupal bentuk lain dari kolaborasi berbasis web. konfigurasi Apache. sesuatu yang open source, cukup besar untuk mewakili perangkat lunak dunia nyata, paket. Dua bagian berikut menjelaskan dua metode instalasi untuk Drupal: Drupal adalah perangkat lunak yang memungkinkan individu atau komunitas pengguna untuk dengan mudah mempublikasikan, mengelola dan mengatur berbagai macam konten di situs web. Menginstal dan Mengelola Drupal | 145 Permintaan yang gagal: Permintaan per detik: 496,89 [Kbytes/dtk] diterima 0 5 10 2.3 6 11 2.2 22 14 15 Jumlah yang ditransfer: 13,997 [md] (rata-rata) 1090000 byte Pengolahan: Total: 11 13 1000 0 Tarif transfer: 3 0 11 Tulis kesalahan: Waktu per permintaan: Waktu Koneksi (md) 0 0.1 Persentase permintaan yang dilayani dalam waktu tertentu (md) 14 16 Permintaan lengkap: HTML yang ditransfer: Menunggu: 2,799 [md] (rata-rata, di semua permintaan bersamaan) Menghubung: 11 18 13 Respons non-2xx: 357,22 [#/dtk] (rata-rata) 0 1425000 byte 22 11 12 1000 Waktu per permintaan: min mean[+/-sd] median maks 6 11 2.2 50% 66% 75% 80% 90% 95% 98% 99% 100% 22 (permintaan terpanjang) Menginstal dan Mengelola Drupal Machine Translated by Google
  157. www.it-ebooks.info 146 | Bab 6: Mengelola Apache Menginstal Drupal dengan

    apt-get Cara termudah untuk menginstal Drupal adalah dengan apt-get. Anda dapat membuka situs web Drupal dan mencari paket untuk diunduh, atau Anda dapat menanyakan apt-cache apakah paket tersebut ada di repositori Debian: # apt-get install drupal Proses instalasi memberitahu Anda bahwa ia membutuhkan beberapa paket yang tidak Anda miliki, mendapatkannya, dan mengobrol lagi saat menginstalnya. Kemudian ia meminta Anda untuk mengonfigurasi Drupal melalui urutan menu teks. Gunakan tombol Tab untuk berpindah di antara pilihan, bilah Spasi untuk beralih pilihan, dan Enter untuk membuka halaman berikutnya. Kami hanya akan menyertakan satu atau dua baris terakhir dari setiap layar di sini, dan tanggapan yang disarankan: Lebih banyak pekerjaan, tetapi Anda dapat melihat apa yang terjadi; coba ini jika metode apt-get gagal. Sumber Yang pertama adalah yang kita inginkan, jadi mari kita instal: Secara otomatis membuat database Drupal? Kata sandi untuk root administrator server basis data di localhost newmysqlpassword Ya Nama database Drupal drupal Jalankan skrip pembaruan basis data? Hapus database Drupal saat paket diperbarui? Ya Tidak Mesin basis data untuk digunakan dengan Drupal Hapus cadangan basis data sebelumnya saat paket dihapus? MySQL Ya # pencarian apt-cache drupal drupal - manajemen konten/mesin diskusi berfitur lengkap drupal-theme- marvinclassic - Tema "Marvin Classic" untuk Drupal drupal-theme-unconed - Tema "UnConeD" untuk Drupal Server basis data untuk localhost basis data Drupal Nama pengguna administrator server basis data di host localhost akar Machine Translated by Google
  158. www.it-ebooks.info Instalasi akan menyalin file program, membuat database MySQL, dan

    membuat file konfigurasi Apache (/ etc/ apache2/ conf.d/ drupal.conf): Jika Anda mengalami keluhan aneh seperti ini: Anda dapat memukul kepala Anda berulang kali seperti yang kami lakukan, atau menginstal dari sumber. Jika semuanya terlihat bagus, lewati bagian berikutnya. Unduh distribusi sumber terbaru dan pindahkan direktorinya ke direktori root dokumen web Anda: Kami akan mengutip langkah-langkah instalasi dari INSTALL.txt dan INSTALL.mysql.txt. Buat database Drupal (kami akan menyebutnya drupal), pengguna administratif (juga drupal, karena kami tidak memiliki imajinasi), dan kata sandi administratif (silakan gunakan sesuatu selain drupal): Menginstal dan Mengelola Drupal | 147 <Direktori /usr/share/drupal/> # wget http://ftp.osuosl.org/pub/drupal/files/projects/drupal-4.7.3.tar.gz # tar xvzf drupal-4.7.3.tar.gz # mv drupal-4.7.3 /var /www/drupal# cd /var/www/drupal Penggantian untuk "/var/lib/drupal/files" sudah ada, tetapi –force ditentukan jadi mari kita abaikan saja. mysql> buat database drupal; Kueri OK, 1 baris terpengaruh (0,00 detik) ID koneksi MySQL Anda adalah 37 ke versi server: 4.0.24_Debian-10sarge2-log Alias /drupal /usr/share/drupal mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, -> INDEX, ALTER, CREATE SEMENTARA TABLES, LOCK TABLES -> pada drupal.* ke -> "drupal"@"localhost" yang diidentifikasi oleh "drupalw"; Ketik 'bantuan;' atau '\h' untuk bantuan. Ketik '\c' untuk menghapus buffer. AllowOverride Semua pesanan izinkan, tolak izinkan dari semua # mysql -u root -p Masukkan kata sandi: Selamat datang di monitor MySQL. Perintah diakhiri dengan ; atau \g. </Direktori> Opsi +IkutiSymLinks Server web yang harus dikonfigurasi secara otomatis [ ] apache [ ] apache-ssl [ ] apache-perl [*] apache2 Menginstal Drupal dari Sumber Machine Translated by Google
  159. www.it-ebooks.info Selanjutnya, muat definisi database Drupal ke MySQL: ke: Klik

    tautan "buat akun pertama". Pada halaman kedua ini, ketik nama akun yang Anda inginkan (atau nama lengkap Anda) di kolom teks “Nama Pengguna” dan alamat email Anda di kolom “Alamat email”. Kemudian tekan tombol "Buat akun baru". 1. Buat akun administrator Anda Periksa email Anda untuk kata sandi satu kali yang dibuat, dan masuk ke Drupal di area "Login pengguna". Anda akan diarahkan ke halaman untuk menentukan kata sandi permanen. Setelah mengatur ini, Anda dapat pergi ke halaman rumah Anda, di mana Anda akan melihat pilihan berikut: Setelah masuk, kunjungi bagian administrasi, tempat Anda dapat menyesuaikan dan mengonfigurasi semua aspek situs web Anda. Kemudian edit file sites/ default/ config.php dan ubah baris: Konfigurasi Drupal Di browser web Anda, buka http:// server1.centralsoft.org/ drupal. Halaman pertama (dalam versi yang kami uji) mengatakan: 2. Konfigurasikan situs web Anda Anda akan diarahkan kembali ke halaman pertama, yang sekarang tertulis di bagian atas: Untuk memulai, buat akun pertama. Akun ini akan memiliki hak administrasi penuh dan memungkinkan Anda untuk mengonfigurasi situs web Anda. 148 | Bab 6: Mengelola Apache $db_url = 'mysql:// drupal:drupalw@localhost/ drupal'; Selamat tinggal Ikuti langkah-langkah ini untuk menyiapkan dan mulai menggunakan situs web Anda: Buat akun administrator Anda Untuk memulai, buat akun pertama. Akun ini akan memiliki hak administrasi penuh dan memungkinkan Anda untuk mengonfigurasi situs web Anda. Kata sandi Anda dan instruksi lebih lanjut telah dikirim ke alamat email Anda. mysql> keluar; Selamat datang di situs web Drupal baru Anda ! $db_url = 'mysql://username:password@localhost/databasename'; # mysql -u root -p drupal < database/database.4.0.mysql Masukkan kata sandi: # mysql> HAK ISTIMEWA FLUSH; Kueri OK, 0 baris terpengaruh (0,00 detik) Kueri OK, 0 baris terpengaruh (0,01 detik) Machine Translated by Google
  160. Pemecahan masalah | 149 www.it-ebooks.info Penyelesaian masalah ... ;; BAGIAN

    JAWABAN: server1.centralsoft.org. 106489 IN # ping server1.centralsoft.org PING server1.centralsoft.org (192.0.34.166) 56(84) byte data. 64 byte dari server1.centralsoft.org (192.0.34.166): icmp_seq=1 ttl=49 waktu=81,6 ms SEBUAH # Anda server1.centralsoft.org 192.0.34.166 ... Untuk mengubah "tampilan dan nuansa" situs web Anda, kunjungi bagian tema. Anda dapat memilih dari salah satu tema yang disertakan atau mengunduh tema tambahan dari bagian unduhan tema Drupal. Jika Anda suka mendiagnosis masalah, Anda akan menyukai Web. Ada begitu banyak hal yang harus dipecahkan, di banyak tempat dan dalam banyak cara, sehingga Anda akan tetap sibuk selama berabad-abad. Pesan kesalahan browser seperti "Server Not Found" menyiratkan masalah DNS. Pertama, pastikan server1.centralsoft.org memiliki entri DNS di server nama publik: 4. Sesuaikan desain situs web Anda Halaman Web Tidak Muncul di Browser Mari kita asumsikan root dokumen Anda adalah /var/ www, file Anda adalah test.html, dan server Anda adalah server1.centralsoft.org. Saat Anda menggunakan browser web eksternal untuk mengakses http:// server1.centralsoft.org/ test.html, Anda mendapatkan halaman kesalahan di jendela browser Anda. Karena Anda telah membuat akun (administrator) pertama, Anda sekarang dapat mencoba semua fungsi lainnya sendiri. Drupal aktif. Akhirnya, Anda dapat membuat konten untuk situs web Anda. Pesan ini akan hilang setelah Anda memublikasikan posting pertama Anda. Selanjutnya, kunjungi daftar modul dan aktifkan fitur yang sesuai dengan kebutuhan spesifik Anda. Anda dapat menemukan modul tambahan di bagian unduhan modul Drupal. Mari kita lihat beberapa masalah web klasik. (Pesan kesalahan browser adalah yang digunakan oleh browser Firefox, tetapi pesan Internet Explorer serupa.) Untuk informasi lebih lanjut, silakan merujuk ke bagian Bantuan, atau buku pegangan Drupal online. Anda juga dapat memposting di forum Drupal atau melihat berbagai opsi dukungan lain yang tersedia. 5. Mulai memposting konten Kemudian lihat apakah server dapat dijangkau dari Internet. Jika firewall Anda mengizinkan ping, colok server dari luar untuk melihat apakah masih hidup: 3. Aktifkan fungsionalitas tambahan Machine Translated by Google
  161. www.it-ebooks.info # nmap -P0 -p 80 server1.centralsoft.org Mencoba 192.0.34.166... Terima-Rentang:

    byte COMMAND PID apache2 10678 www-data apache2 10679 www-data apache2 10680 www-data apache2 20188 root apache2 20190 www-data apache2 20191 www-data apache2 20192 www-data apache2 20194 www-data apache2 20197 www-data apache2 20198 www-data apache2 20199 www-data TCP *:www (DENGARKAN) TCP *:www (DENGARKAN) Terakhir Dimodifikasi: Sel, 15 Nov 2005 13:24:10 GMT Tanggal: Rab, 26 Jul 2006 04:52:13 GMT TCP *:www (DENGARKAN) Nmap selesai: 1 alamat IP (1 host ke atas) dipindai dalam 0,186 detik LAYANAN NEGARA PELABUHAN TCP *:www (DENGARKAN) KEPALA / HTTP/1.0 Tipe-Konten: teks/html; rangkaian karakter = UTF-8 TCP *:www (DENGARKAN) Memulai nmap 3.81 ( http://www.insecure.org/nmap/ ) pada 25-07-2006 23:50 CDT Terhubung ke server1.centralsoft.org. Konten-Panjang: 438 USER FD TIPE UKURAN PERANGKAT NAMA NAMA TCP *:www (DENGARKAN) # telnet server1.centralsoft.org 80 ETag: "63ffd-1b6-80bfd280" Dengarkan 80 # lsof -i :80 TCP *:www (DENGARKAN) TCP *:www (DENGARKAN) # ps -efl | grep apache2 Server: Apache/2.0.54 (Fedora) HTTP/1.1 200 Oke TCP *:www (DENGARKAN) 80/tcp buka http Koneksi ditutup oleh host asing. TCP *:www (DENGARKAN) Port menarik di server1.centralsoft.org (192.0.34.166): Karakter pelarian adalah '^]'. Koneksi: tutup 3u IPv6 300791 3u IPv6 300791 3u IPv6 300791 3u IPv6 300791 3u IPv6 300791 3u IPv6 300791 3u IPv6 300791 3u IPv6 300791 3u IPv6 300791 3u IPv6 300791 3u IPv6 300791 3u IPv6 300791 TCP *:www (DENGARKAN) Jika tidak berhasil, pastikan baris ini ada di /etc/ Apache2/ ports.conf: dan lihat apakah ada hal lain yang memonopoli port 80: Periksa apakah port 80 terbuka dan tidak diblokir. Dari mesin eksternal, coba nmap: Jika Anda tidak memiliki nmap, berpura-pura menjadi browser web. Gunakan telnet untuk terhubung ke Jika Anda tidak melihat apache2 dalam output ini, cari tahu apakah Apache sedang berjalan: port web standar (80) dan membuat permintaan HTTP sesederhana mungkin: 150 | Bab 6: Mengelola Apache Machine Translated by Google
  162. www.it-ebooks.info # tail -f /var/log/apache2/error.log -rw-r----- 1 root adm 1969

    25 Juli 23:09 error.log 1K-blok 193406200 453368 -rw-r----- 1 root adm 1492 23 Juli 06:25 error.log.1 Tidak ditemukan URL yang diminta /wrong.html tidak ditemukan di server ini. -rw------- 1 root root 0 26 Juli 00:01 permissions.html -rw-r----- 1 root adm 306 23 Juli 06:25 error.log.2.gz 453368 0% /dev/shm Terlarang 5 S root 7692 1 0 76 0 - 2991 415244 Jul16 ? /usr/sbin/apache2 -k start -DSSL # ls -l /var/log/apache2 0 Anda tidak memiliki izin untuk mengakses /permissions.html di server ini. jumlah 84 # df #id www-data 00:00:00 -rw-r----- 1 root adm 31923 25 Juli 23:09 access.log Sistem file / dev/hda1 tmpfs uid=33(www-data) gid=33(www-data) groups=33(www-data) # /etc/init.d/apache2 start -rw-r----- 1 root adm 32974 22 Juli 20:50 access.log.1 Digunakan Tersedia Penggunaan% Dipasang pada # cd /var/www -rw-r----- 1 root adm 379 23 Juli 06:25 access.log.2.gz 455292 183126360 1% / # ls -l permissions.html Pemecahan masalah | 151 Jika tampilan mengatakan: Apache sedang berjalan. Jika tidak, tendang di celana: file ada di sana, tetapi pengguna Apache tidak dapat membacanya: Jika Anda tidak memiliki izin untuk melihat file ini, Anda pasti mengalami hari yang berat. Jika Jika Anda menggunakan arahan Pengguna atau Grup yang berbeda dalam konfigurasi Apache Anda, periksa log kesalahan kosong, mungkin juga memiliki izin yang salah. Konfirmasikan bahwa /var/ bahwa pengguna dan grup ada: URL mungkin salah ketik. Jika kamu melihat: Jika browser mengembalikan pesan kesalahan Apache, Anda harus menggali lagi. direktori log/ apache2 dan /var/ log/ apache2/ error.logfile ada: Jika ekor log kesalahan menunjukkan informasi lama, Anda mungkin kehabisan ruang disk. Dia Kemudian jalankan kembali perintah ps . Jika Apache masih tidak muncul, lihat log kesalahan: Jika output berisi baris seperti ini: mengejutkan betapa sering kita lupa untuk memeriksa ini sebelum menyelidiki lebih banyak kecurigaan esoteris, seperti firewall. Jenis: Machine Translated by Google
  163. www.it-ebooks.info Host Virtual Tidak Berfungsi SSL Tidak Berfungsi SSI Tidak

    Bekerja 152 | Bab 6: Mengelola Apache Jika Anda melihat baris seperti ini di log kesalahan Anda (/ var/ log/ Apache2/ error.log): seperti .php? • Apakah file dapat dibaca? Jika tidak, gunakan chmod. • Apa yang dikatakan oleh log kesalahan Apache? • Bagaimana dengan log kesalahan sistem, /var/ log/ messages? Menggunakan Jika arahan tidak ada, tambahkan dan mulai ulang Apache. Kemudian coba akses URL ini di browser Anda: https:// server1.centralsoft.org. Jika masih tidak berfungsi, port 443 mungkin diblokir oleh firewall. Anda dapat memeriksa ini dengan nmap: Anda tidak mengaktifkan mod_include. Jalankan perintah: untuk pemeriksaan cepat arahan host virtual Anda. Periksa apakah Anda mengaktifkan modul Apache SSL (a2enmod ssl) dan meminta Apache untuk mendengarkan port 443 di /etc/ Apache2/ ports.conf: Masalah izin dapat diperbaiki dengan mengubah pemilik file ke proses yang menjalankan Apache. Program CGI Tidak Berjalan Jika Anda tidak bisa menjalankan program CGI, kerjakan daftar periksa berikut: • Apakah CGI telah diaktifkan, dengan salah satu metode yang dibahas sebelumnya? • Apakah program CGI dalam direktori CGI seperti /var/ cgi-bin, atau memiliki akhiran # nmap -P0 -p 443 server1.centralsoft.org Dengarkan 443 LAYANAN NEGARA PELABUHAN Nmap run selesai -- 1 alamat IP (1 host up) dipindai dalam 0,254 detik # a2enmod termasuk ... (...): # apache2ctl -S Memulai nmap 3.70 ( http://www.insecure.org/nmap/ ) pada 01-08-2006 22:38 CDT Port yang menarik di 443/tcp buka https [kesalahan] filter yang tidak dikenal tidak ditambahkan: TERMASUK Machine Translated by Google
  164. www.it-ebooks.info Anda dapat menjelajahi relung gelap Web dalam buku-buku seperti

    Apache Cookbook oleh Ken Coar dan Rich Bowen (O'Reilly), Pro Apache oleh Peter Wainwright (Apress), dan Jalankan Server Web Anda Sendiri Menggunakan Linux & Apache oleh Stuart Langridge dan Tony Steidler-Dennison (Titik Situs). Bacaan lebih lanjut Bacaan Lebih Lanjut | 153 Machine Translated by Google
  165. www.it-ebooks.info Cluster biasanya, tetapi tidak selalu, terhubung melalui jaringan area

    lokal yang cepat. Cluster biasanya digunakan untuk meningkatkan kecepatan dan/atau keandalan dari yang disediakan oleh satu komputer, sementara biasanya jauh lebih hemat biaya daripada komputer tunggal dengan kecepatan atau keandalan yang sebanding. Cluster komputer adalah sekelompok komputer yang digabungkan secara longgar yang bekerja bersama secara erat sehingga dalam banyak hal mereka dapat dilihat seolah-olah mereka adalah satu komputer. 154 Cluster adalah solusi yang baik ketika Anda ingin meningkatkan kecepatan, keandalan, dan skalabilitas dengan harga yang wajar. Amazon, Yahoo!, dan Google telah membangun bisnis mereka di ribuan server komoditas dalam konfigurasi cluster yang berlebihan. Lebih murah dan lebih mudah untuk ditingkatkan ( secara horizontal, hanya dengan menambahkan lebih banyak server) daripada meningkatkan (secara vertikal, ke mesin yang lebih mahal). Ada banyak solusi cluster Linux, baik open source maupun komersial. Dalam bab ini kita akan membahas cluster berbasis Linux Virtual Server gratis (http:// www.linuxvirtualserver.org). Kami akan menunjukkan cara menggabungkan kotak sereal, karet gelang, dan tiga komputer ke dalam kluster server web Apache yang seimbang beban. Kami juga akan membahas ketersediaan tinggi dan, akhirnya, alternatif untuk cluster. Kami tidak akan membahas klaster komputasi berkinerja tinggi, komputasi grid, paralelisasi, atau komputasi terdistribusi; di area ini, perangkat keras dan perangkat lunak sering kali dikhu Load Balancing dan Ketersediaan Tinggi Load balancing (LB) memberikan skalabilitas: distribusi permintaan di beberapa server. LB terdiri dari penerusan paket ditambah beberapa pengetahuan tentang layanan yang diseimbangkan (dalam bab ini, HTTP). Itu bergantung pada monitor eksternal untuk melaporkan beban pada server fisik sehingga dapat memutuskan ke mana harus mengirim paket. Bab 7 Bab 7 Lebih dari 10 tahun yang lalu, orang menemukan bahwa mereka dapat menghubungkan beberapa mesin murah untuk melakukan tugas komputasi yang biasanya memerlukan mainframe atau superkomputer. Cluster Beowulf NASA adalah contoh awal yang masih digunakan sampai sekarang (http:// www.beowulf.org). Entri Wikipedia (http:// en.wikipedia.org/ wiki/ Computer_cluster) menjabarkan karakteristik utama sebuah cluster secara ringkas: Cluster Seimbang Beban Machine Translated by Google
  166. www.it-ebooks.info 70.253.158.45 Tabel 7-1. Alamat dan peran untuk server di

    cluster kami (VIP) Nama 70.253.158.42 alamat IP Keterangan lb Penyeimbang beban—alamat layanan web publik 70.253.158.44 Server web pertama—salah satu IP asli (RIP) web1 Server web kedua—RIP lainnya 70.253.158.41 Virtual IP (VIP) bersama olehlb, web1, dan web2, selain mereka web2 alamat IP asli Load Balancing dan Ketersediaan Tinggi | 155 tiga alamat publik dan satu alamat virtual, semuanya tercantum dalam Tabel 7-1. VIP adalah alamat yang diekspos ke klien eksternal oleh penyeimbang beban, yang akan dapatkan sedikit lebih canggih dan gunakan dua alat: menyampaikan permintaan ke server web. • IP Virtual Server (IPVS), modul load-balancer level transport (TCP) yang sekarang menjadi komponen Linux standar Ketersediaan tinggi (HA) memberikan keandalan: menjaga layanan tetap berjalan. Itu bergantung pada Bentuk penyeimbangan beban yang paling sederhana adalah DNS round-robin, di mana beberapa catatan A • ldirectord, utilitas yang memantau kesehatan server fisik dengan beban seimbang server yang berlebihan, pertukaran detak jantung untuk mengatakan "Saya masih hidup," dan prosedur failover untuk dengan cepat mengganti server yang sehat dengan yang sakit. didefinisikan untuk nama yang sama; ini menghasilkan server bergiliran menanggapi Petunjuk penginstalan didasarkan pada distribusi Linux Debian 3.1 (Sarge). Dalam bab ini, kami terutama membahas LB, yang biasanya akan dilakukan oleh administrator setiap permintaan yang masuk. Ini tidak berfungsi dengan baik jika server gagal, dan itu tidak bertemu lebih dulu dan membutuhkan lebih sering. Sebagai situs menjadi lebih penting untuk sebuah organisasi, HA mungkin juga menjadi perlu. Menjelang akhir bab ini, kami akan menyediakan mempertimbangkan kebutuhan khusus apa pun yang mungkin dimiliki layanan tersebut. Dengan HTTP, misalnya, Karena IPVS sudah ada di kernel Linux, kita tidak perlu menginstal perangkat lunak apa pun, tetapi beberapa tautan berguna untuk informasi tentang pengaturan sistem LB/HA gabungan. kami mungkin perlu memelihara data sesi seperti autentikasi atau cookie dan memastikan kita perlu mengkonfigurasinya. Contoh konfigurasi LB yang akan kita gunakan dalam bab ini adalah konfigurasi sederhana yang terdiri dari: bahwa klien yang sama selalu terhubung ke server yang sama. Untuk memenuhi kebutuhan tersebut, kami akan Perangkat Lunak Penyeimbang Beban IPVS pada Load Balancer Machine Translated by Google
  167. www.it-ebooks.info deb http://www.ultramonkey.org/download/3/ sarge main deb-src http://www.ultramonkey.org/download/3 sarge main net.ipv4.ip_forward

    = 1 ip_vs_dh ip_vs_ftp ip_vs ip_vs_lblc ip_vs_lblcr ip_vs_lc ip_vs_nq ip_vs_rr ip_vs_sed ip_vs_sh ip_vs_wlc ip_vs_wrr # modprobe ip_vs_dh # modprobe ip_vs_ftp # modprobe ip_vs # modprobe ip_vs_lblc # modprobe ip_vs_lblcr # modprobe ip_vs_lc # modprobe ip_vs_nq # modprobe ip_vs_lblc_probe # sysctl -p net.ipv4.ip_forward = 1 # apt-get update # apt-get install ultramonkey 156 | Bab 7: Cluster Seimbang Beban Untuk mengaktifkan penerusan paket di kernel Linux pada lb, edit file /etc/ sysctl.conf dan tambahkan baris ini: Kemudian muat modul ke dalam kernel: Pada lb, tambahkan baris ini ke /etc/ modules. Kemudian muat pengaturan ini ke dalam kernel: Meskipun kami dapat memperoleh ldirectord sendiri, kami akan mendapatkannya sebagai bagian dari paket kunci Ultra Mon , yang mencakup perangkat lunak detak jantung untuk HA. Karena Ultra Monkey bukan bagian dari distribusi Debian standar, Anda perlu menambahkan dua baris ini ke file repositori Debian Anda (/ etc/ apt/ sources.list) di mesin lb : Kemudian perbarui repositori dan dapatkan paketnya: ldirektur Machine Translated by Google
  168. www.it-ebooks.info tidak ada Tidak Pilih metode daemon. # apt-get install

    apache2 Apakah Anda ingin memuat aturan IPVS secara otomatis saat boot? Load Balancing dan Ketersediaan Tinggi | 157 1. Jika server belum menginstal Apache, instal: LVS-TUN Realservers dapat berada di jaringan yang berbeda dari direktur. Mereka berkomunikasi dengan tunneling dengan enkapsulasi IP-over-IP (IPIP). Jika Anda belum menginstal file konten untuk situs web Anda, Anda dapat melakukannya sekarang atau setelah penyeimbangan beban diatur. Kami akan menggunakan DR, karena mudah, cepat, dan skalanya bagus. Dengan metode ini, kami menetapkan VIP yang dibagikan oleh penyeimbang beban dan server nyata. Proses instalasi akan menanyakan beberapa pertanyaan kepada Anda: 2. Instal iproute (paket jaringan Linux dengan lebih banyak fitur daripada utilitas lama) Ini menyebabkan masalah langsung: jika semua mesin berbagi VIP yang sama, bagaimana kita menyelesaikan VIP ke satu alamat MAC fisik? Ini disebut masalah ARP, karena sistem pada LAN yang sama menggunakan Address Resolution Protocol (ARP) untuk menemukan satu sama lain, dan ARP mengharapkan setiap sistem memiliki alamat IP yang unik. ikatan seperti ifconfig dan route): # apt-get install iproute Banyak solusi memerlukan patch atau modul kernel, dan berubah seiring dengan perubahan kernel Linux. Dalam 2.6 dan di atasnya, solusi populer adalah membiarkan penyeimbang beban menangani ARP untuk VIP dan, pada server nyata, untuk mengonfigurasi VIP pada alias perangkat loopback. Alasannya adalah bahwa perangkat loopback tidak menanggapi permintaan ARP. Konfigurasi kita akan memiliki satu server virtual (alamat yang dilihat klien, menjalankan ldirectord), yang akan kita sebut sebagai direktur, dan dua server nyata (menjalankan Apache). Realservers dapat dihubungkan ke direktur dengan salah satu dari tiga cara: Itulah pendekatan yang akan kami ambil. Kami akan mengkonfigurasi server web terlebih dahulu. LVS-NAT Realserver berada di subnet NAT di belakang direktur dan mengarahkan respons mereka kembali melalui direktur. LVS-DR Realserver merutekan respons mereka langsung kembali ke klien. Semua mesin berada di subnet yang sama dan dapat menemukan alamat level-2 (Ethernet) satu sama lain. Mereka tidak perlu melakukan ping dari luar subnet mereka. Pada setiap realserver (web1 dan web2), lakukan hal berikut: Mengkonfigurasi Realservers (Node Apache) Machine Translated by Google
  169. 158 | Bab 7: Cluster Seimbang Beban www.it-ebooks.info # echo

    "Saya web2" > /var/www/which.html Aku hidup! checktimeout=10 checkinterval=2 autoreload=tidak ada file log="local0" diam=tidak ada virtual=70.253.158.42:80 real=70.253.158.41:80 gerbang real=70.253.158.45:80 gerbang layanan=http request="director.html" accept="Aku hidup!" auto lo: 0 iface lo: 0 inet statis # /etc/init.d/apache2 restart # echo "Saya web1" > /var/www/which.html net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.eth0.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.eth0.arp_announce = 2 alamat 70.253.15.42 netmask 255.255.255.255 pra- up sysctl -p > /dev/null 3. Tambahkan baris berikut ke /etc/ sysctl.conf: 10. Mulai Apache, atau restart jika sudah berjalan: 9. Di web2: 6. Aktifkan alias loopback: # ifup lo:0 7. Buat file /var/ www/ ldirector.html dengan isi: Log akses Apache seharusnya belum menunjukkan aktivitas apa pun, karena lb belum berbicara dengan mereka. Mengkonfigurasi Load Balancer Pada lb, buat file konfigurasi load balancer, /etc/ ha.d/ ldirectord.cf: 4. Masukkan perubahan ke dalam kernel: # sysctl -p net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.eth0.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 net.ipv4. conf.eth0.arp_announce = 2 8. Di web1: 5. Dengan asumsi bahwa server nyata Anda adalah sistem Debian, edit file /etc/ network/ interfaces , kaitkan VIP (70.253.15.42) dengan alias loopback lo:0: Machine Translated by Google
  170. Load Balancing dan Ketersediaan Tinggi | 159 www.it-ebooks.info File startup

    sistem di /etc untuk ldirectord seharusnya sudah dibuat selama instalasi. Ultra Monkey juga menginstal Heartbeat, yang belum kita gunakan, jadi mari kita nonaktifkan untuk saat ini: Karena server ini akan menanggapi permintaan web di alamat VIP (70.253.158.42), sebaiknya kami memberi tahu server tentang hal itu. Edit /etc/ network/ interfaces dan tambahkan baris ini untuk membuat perangkat alias eth0:0: Anda akan melihat sesuatu seperti ini: Jika diam adalah ya, server nyata yang rusak mendapat bobot 0 tetapi tetap berada di tabel perutean LVS; kami telah menyetelnya ke no, jadi server yang mati akan dihapus dari kumpulan. Bobot server mencerminkan kapasitasnya relatif terhadap server lain. Untuk skema LB sederhana seperti kami, semua server hidup memiliki bobot 1 dan yang mati memiliki bobot 0. Terakhir, nyalakan mesin Anda dengan lb: Penyeimbang beban memantau kesehatan server web dengan secara teratur meminta file yang kami tentukan di ldirectord.cf (request="director.html"). Jika checktype dinegosiasikan, direktur akan membuat permintaan HTTP ke masing-masing server nyata untuk permintaan URL, dan melihat apakah isinya berisi nilai string untuk diterima. Jika nilainya dicentang, hanya pemeriksaan TCP cepat yang akan dilakukan, dan permintaan dan penerimaan akan diabaikan. Mari kita periksa apakah penyeimbang beban berjalan di lb: Sekarang, jalankan alamat IP baru ini: Menguji Sistem scheduler=protokol rr=tcp checktype=negosiasi siaran jaringan ... # update-rc.d detak jantung hapus update-rc.d: /etc/init.d/heartbeat ada selama pembersihan rc.d (gunakan -f untuk memaksa) # ifup eth0:0 ... # ldirectord ldirectord.cf status ldirectord untuk /etc/ha.d/ldirectord.cf berjalan dengan pid: 1455 auto eth0:0 iface eth0:0 inet alamat statis 70.253.158.42 netmask 255.255.255.248 # /etc/init.d/ldirectord start Memulai ldirectord... sukses pintu gerbang ... # Ini harus memiliki nilai yang sama seperti untuk eth0: Machine Translated by Google
  171. www.it-ebooks.info DEBUG2: Memulai Linux Director v1.77.2.32 dengan pid: 12984 Memulai

    Linux Director v1.77.2.32 dengan pid: 12984 DEBUG2: Running system(/ sbin/ipvsadm -A -t 70.253.158.42:80 -s rr ) # ipvsadm -L -n IP Server Virtual versi 1.2.0 (ukuran=4096) 1 Menjalankan sistem(/sbin/ipvsadm -A -t 70.253.158.42:80 -s rr ) Alamat Lokal Prot: Bendera Penjadwal Port 0 DEBUG2: Menambahkan server virtual: 70.253.158.42:80 Menambahkan server virtual: 70.253.158.42:80 DEBUG2: Server yang dinonaktifkan=70.253.158.45 DEBUG2: Server yang dinonaktifkan=70.253.158.41 DEBUG2: Memeriksa negosiasi: server nyata=negosiasi:http:tcp: 70.253.158.41:80:::\/director\.html:Saya\'m\ hidup\! (virtual=tcp:70.253.158.42:80) -> RemoteAddress:Port TCP 70.253.158.42:80 rr -> 70.253.158.45:80 -> 70.253.158.41:80 2 DEBUG2: check_http: url="http://70.253.158.41:80/director.html" virtualhost="70.253.158.41" 3 ldirectord dihentikan untuk /etc/ha.d/ldirectord.cf LWP :: UserAgent :: baru: () 11 Sep 22:59:45 mail ldirectord[8543]: Menambahkan server cadangan: 127.0.0.1:80 ( x 70.253.158.44:80) (Berat disetel ke 1) LWP::UserAgent::permintaan: ( ) # tail /var/log/syslog 11 Sep 22:59:45 mail ldirectord[8543]: Menambahkan server virtual: 70.253.158.44:80 11 Sep 22:59:45 mail ldirectord[8543]: Menambahkan server nyata: 70.253.158.41:80 ( x 70.253.158.44:80) (Berat disetel ke 1) # /usr/sbin/ldirectord /etc/ha.d/ldirectord.cf stop # /usr/sbin/ ldirectord -d /etc/ha.d/ldirectord.cf start LWP::UserAgent::send_request: DAPATKAN http://70.253.158.41:80/director.html LWP::UserAgent::_need_proxy: Tidak diproksi LWP::Protocol::http::request: ( ) Bobot Maju ActiveConn InActConn DEBUG2: Menjalankan exec(/usr/sbin/ldirectord -d /etc/ha.d/ldirectord.cf start) Rute 1 Menjalankan exec(/usr/sbin/ldirectord -d /etc/ha.d/ldirectord.cf start) Rute 1 160 | Bab 7: Cluster Seimbang Beban LWP::Protocol::collect: read 11 bytes LWP::UserAgent::request: Simple response: OK 45:80/ director.html sudah habis Outputnya lebih pendek jika checktype dicentang . Ini menunjukkan bahwa server nyata pertama kami aktif, tetapi yang kedua tidak. Kami juga akan memeriksa log sistem pada lb: Hanya untuk usil, kita akan melihat apa yang dikatakan server virtual IP tingkat rendah: Jika Anda melihat sesuatu seperti ini sebagai gantinya: ada beberapa masalah. Anda dapat menghentikan direktur dan memulai kembali dengan flag debug -d, dan melihat apakah ada kesalahan yang muncul di output: Machine Translated by Google
  172. Load Balancing dan Ketersediaan Tinggi | 161 www.it-ebooks.info Menambahkan HA

    ke LB Penyeimbang beban adalah satu titik kegagalan. Jika ia mulai mencari fjord, server web di belakangnya akan menjadi tidak dapat diakses. Untuk membuat sistem lebih andal, Anda dapat memasang penyeimbang beban kedua dalam konfigurasi HA dengan penyeimbang beban pertama. Instruksi terperinci, yang menggunakan paket Ultra Monkey yang telah Anda instal, dapat ditemukan di “Cara Menyiapkan Cluster Apache Ketersediaan Tinggi yang Berimbang,” (http://www.howtoforge.com/ high_availability_loadbalanced Kembali ke web1 dan web2, periksa log akses Apache. Direktur harus meminta director.html setiap detik checkinterval : atau: Anda mungkin tidak memerlukan HA untuk server Apache itu sendiri, karena ldirectord sudah mendorong mereka setiap detik interval pemeriksaan untuk status dan menyesuaikan bobot, yang mirip dengan detak jantung HA. Muat ulang/refresh halaman browser Anda untuk mengakses http:// 70.253.158.42/ which.html lagi. Menambahkan Layanan LB Lainnya Kami telah menggunakan server web Apache sebagai contoh bab ini karena mereka kemungkinan besar menjadi bagian dari server farm. Layanan lain yang dapat memanfaatkan LB/HA termasuk MySQL, server email, atau server LDAP. Lihat “Cara Mengatur Cluster MySQL Seimbang Beban” (http:// www.howtoforge.com/ loadbalanced_mysql_cluster_debian) untuk contoh MySQL. Anda harus selalu mendapatkan respons: Jika penyeimbang beban rusak atau salah satu server web tidak berfungsi, Anda mungkin selalu mendapatkan respons dari server web yang sama. Di browser Anda, buka URL situs virtual http:// 70.253.158.42/ which.html, dan Anda akan melihat: Sekarang, hentikan Apache di web1: saya web1 # /etc/init.d/apache stop 70.253.158.44 - - [11/Sep/2006:22:49:37 -0500] "DAPATKAN /director.html HTTP/1.1" 200 11 "-" "libwww-perl/5.803" saya web2 70.253.158.44 - - [11/Sep/2006:22:49:39 -0500] "DAPATKAN /director.html HTTP/1.1" 200 11 "-" "libwww-perl/5.803" 11 Sep 22:59:45 mail ldirectord[8543]: Server cadangan yang dihapus: 127.0.0.1:80 ( x 70.253.158.44:80) saya web2 11 Sep 22:59:46 mail ldirectord[8543]: Menambahkan server nyata: 70.253.158.45:80 ( x 70.253.158.44:80) (Berat disetel ke 1) Machine Translated by Google
  173. 162 | Bab 7: Cluster Seimbang Beban www.it-ebooks.info Setelah Anda

    mencapai batas perangkat lunak server web Anda, pertimbangkan alternatifnya. Dalam banyak kasus, server web seperti lighttpd (http:// www.lighttpd.net), Zeus (http:// www.zeustech.net ), dan litespeed (http:// litespeedtech.com) lebih cepat dari Apache dan menggunakan lebih sedikit memori. Rincian lebih lanjut tentang perangkat lunak yang digunakan dalam bab ini tersedia melalui halaman web produk: Anda juga bisa mendapatkan peningkatan besar dari caching. Cache kode, yang mencakup akselerator PHP seperti e-accelerator (http:// eaccelerator.net) dan APC (http:// apc.communityconnect.com ), simpan bytecode PHP dan hindari overhead parsing pada setiap akses halaman. Cache data seperti cache kueri MySQL menyimpan hasil kueri yang identik. Replikasi adalah bentuk LB. memcached (http:// danga.com/ memcached) adalah cara cepat untuk menyimpan data seperti hasil pencarian basis data. Cumi -cumi (http:// www.squid cache.org), ketika digunakan sebagai caching reverse proxy, adalah cache halaman yang dapat melewati server web sepenuhnya. • Proyek Server Virtual Linux (http:// www.linuxvirtualserver.org) • Ultra Monyet (http:// www.ultramonkey.org) • Detak Jantung/Proyek Linux Ketersediaan Tinggi (http:// linux-ha.org) Ketika server berada dalam tingkatan terpisah (misalnya, MySQL PHP Apache ) , peningkatan bersifat multiplikasi; misalnya presentasi “Menjadi Kaya dengan PHP 5” (http:// talk.php.net/ show/ oscon06) menggabungkan banyak perbaikan kecil untuk menskalakan aplikasi PHP dari 17 panggilan/detik menjadi 1.100 panggilan/detik pada satu mesin. Anda mungkin juga ingin melihat Red Hat Cluster Suite (http:// www.redhat.com/ software/ rha/ cluster ), produk LB/HA komersial untuk Linux yang dibangun di atas LVS. Perangkat lunak yang sama tersedia secara bebas (tetapi tanpa dukungan) di CentOS. Jika Anda sudah menggunakan teknik ini dan masih berusaha keras untuk memenuhi permintaan, pasti coba LB, dan berikan HA jika stabilitas sangat penting. Jika Anda menawarkan layanan yang luar biasa, apakah server Anda akan bertahan dari Slashdotting (yaitu, lonjakan aktivitas yang sangat besar)? Jika tidak, kredibilitas Anda bisa menurun dan banyak pengunjung mungkin tidak akan pernah kembali. Tetapi karena penerapan LB dan HA memerlukan upaya yang signifikan dan investasi perangkat keras, ada baiknya mempertimbangkan solusi lain. Ada cara untuk mendapatkan lebih banyak dari server Anda saat ini. Misalnya, Anda dapat menonaktifkan file .htaccess di konfigurasi Apache Anda (AllowOverride None), dan menggunakan mod_expires untuk menghindari panggilan stat untuk file yang jarang diubah seperti gambar. Buku dan situs web Apache berisi banyak tip pengoptimalan semacam itu. Bacaan lebih lanjut Penskalaan Tanpa LB dan HA Machine Translated by Google
  174. www.it-ebooks.info BAB 8 163 Beberapa dari kita lebih suka membaca

    tentang perkembangan teknologi Internet daripada jaringan area lokal, yang kita anggap rutin dan tidak menantang. Tetapi ketika kita perlu mengonfigurasi atau memperbaiki sesuatu yang penting bagi lingkungan kerja kita, kerja jaringan lokal meningkatkan rantai nilai. Misalnya, hal lain tampaknya tidak penting ketika email CEO tidak berfungsi. Dalam bab ini, kita akan menjelajahi sistem file terdistribusi dengan sudut pandang yang unik, cara mengatur DHCP dan layanan gateway (termasuk perutean antara LAN dan Internet), kegilaan pencetakan perusahaan, dan manajemen pengguna. Layanan email lokal juga cocok di bawah payung topik LAN, tetapi kami membahas masalah tersebut di Bab 5. Apakah Anda menyukai model Red Hat atau tidak, Anda dapat menerapkan materi di bab ini ke distro Linux lainnya. Kami menyarankan Anda menggali materi ini: itu menyenangkan, Anda akan membutuhkannya di hampir semua lingkungan tempat Anda bekerja, dan Anda tidak akan menemukan sebagian besar materi ini di tempat lain. Dalam bab ini kita akan melihat beberapa keterampilan yang dibutuhkan administrator sistem untuk mengelola host di belakang firewall atau gateway perusahaan, organisasi, atau bahkan jaringan rumah. Jaringan lokal dapat mengambil sebagian besar waktu administrator sistem jika dia tidak pintar tentang hal itu. Jadi, jika Anda baru saja memulai administrasi sistem, Anda akan menginginkan sebuah primer tentang LAN dan cara menginstal, mengkonfigurasi, dan memelihara sejumlah server berbeda yang akan Anda temukan di sana. Untuk dasar-dasarnya, lihat edisi terbaru dari Panduan Administrator Jaringan Linux Terry Dawson, dkk (O'Reilly). Namun, selama Anda memiliki keterampilan dasar pengguna Linux, bahkan tanpa latar belakang seperti itu, topik-topik dalam bab ini tidak boleh dilebih-lebihkan—dan kami menganggapnya menarik. Bab 8 Kami akan menggunakan distribusi Fedora Core Linux untuk bab ini. Red Hat mensponsori proyek Fedora dan biasanya menggunakannya untuk menguji rilis perusahaan stabil berikutnya. Fedora bukan versi Red Hat Enterprise Linux yang sangat stabil, tetapi cukup stabil dan kuat. Red Hat menyediakan paket asli dari banyak alat untuk Fedora, menempatkan Fedora di ujung tombak distribusi Linux gratis yang tersedia untuk penggunaan komersial. Layanan Jaringan Lokal Machine Translated by Google
  175. www.it-ebooks.info Anda mungkin sulit membayangkan saat PC hanya berdiri sendiri

    tanpa manfaat dari jaringan atau koneksi ke Internet. Tetapi PC pada awalnya tidak dirancang dengan mempertimbangkan jaringan. Anda mungkin atau mungkin tidak ingat ketika orang mentransfer file dengan berjalan floppy disk dari satu PC ke PC lain, atau membalik saklar sehingga dua hingga empat pengguna dapat berbagi printer. Itu adalah saat-saat yang menyakitkan. PC menjadi lazim dalam bisnis menjelang akhir 1980-an, dan jaringan area lokal muncul saat penggunaan PC berkembang dan orang-orang menemukan kebutuhan untuk berbagi. sumber daya. Berbagi file dan printer SMB berkembang di bawah panduan Microsoft menjadi protokol Common Internet File System (CIFS). CIFS telah diterbitkan sebagai standar, tetapi tidak didokumentasikan dengan baik dan mengandung banyak perilaku rahasia yang terus dilakukan Microsoft Sistem file terdistribusi memungkinkan pengguna membuka, membaca, dan menulis file yang disimpan di komputer selain milik mereka. Di beberapa lingkungan, satu komputer besar menyimpan file yang diakses oleh semua pengguna di LAN; komputer pusat bahkan dapat menyimpan direktori home pengguna, sehingga semua pekerjaan mereka pada dasarnya disimpan di dalamnya. Di lingkungan lain, pengguna menyimpan file di PC mereka tetapi mengizinkan orang lain untuk mengakses file tersebut. Kedua lingkungan dapat dicampur juga. Apa pun konfigurasinya, praktik ini disebut berbagi file, dan direktori (folder, dalam istilah PC) yang dapat diakses pengguna pada mesin jarak jauh disebut berbagi. Jaringan menjadi lebih tersedia dan terjangkau ketika seorang peneliti IBM, Barry Feigenbaum, mengubah sistem file DOS lokal menjadi sistem terdistribusi. Upayanya membantu menciptakan protokol aplikasi Server Message Block (SMB), dan era administrator sistem dan insinyur jaringan dimulai. Saat ini, banyak situs menyimpan file penting penggunanya di server pusat, yang mengontrol hak akses pengguna ke file tersebut. Kita akan membahas manajemen pengguna nanti di bab ini Setelah pengenalan PC, butuh beberapa tahun dan inovasi untuk menciptakan kenyamanan jaringan dasar seperti sistem file terdistribusi. Membuat sistem file tersebut bekerja di PC mengubah lanskap bisnis, karena memungkinkan kami untuk meletakkan komputer di meja semua orang. Kami tidak lagi harus mengisi formulir secara manual untuk operator keypunch untuk menyalurkan ke sistem mainframe batch. Coba bayangkan seperti apa pengenalan LAN bagi sekelompok pengguna PC yang tidak pernah memiliki layanan jaringan. Tiba-tiba, rekan kerja dapat dengan mudah berbagi dokumen, mencetak ke perangkat yang agak jauh dari meja mereka, dan menjawab email dari supervisor yang berlokasi di kantor, kampus, atau negara. Itu membuka mata banyak orang. Sistem File Terdistribusi Pengantar Samba 164 | Bab 8: Layanan Jaringan Lokal Machine Translated by Google
  176. www.it-ebooks.info Mengkonfigurasi Jaringan Berbagi file Microsoft pada sistem non-Microsoft: Samba.

    Samba semakin populer; ia memiliki dukungan signifikan untuk desktop Windows dan Linux dan bahkan digunakan di Fungsi sentral tertentu dalam jaringan CIFS (kebanyakan melibatkan cara sistem menemukan Pengguna desktop dapat berbagi printer dan file mereka dengan orang lain tanpa harus diautentikasi oleh orang lain. Jika fungsi sensitif seperti akuntansi dan pencatatan keuangan Sistem Linux terlihat sama dengan sistem Windows jika dilihat dari Jaringan cukup detail bagi Anda untuk membuatnya berfungsi di lingkungan Anda. Untungnya, sebagian besar distribusi menyediakan antarmuka grafis sederhana untuk Samba, dan kami akan membahas beberapa di antaranya Samba juga dapat memainkan peran berbagi file di lingkungan yang lebih sederhana di mana anggota dikombinasikan dengan LDAP juga dapat berfungsi sebagai server otentikasi yang kuat, menggantikan Athlon, Atlanta, Dallas, dan Dell. Dallas menawarkan printer, bersama dengan beberapa direktori, ke sistem lain; Dell juga memiliki printer. Salah satu komputer lain berjalan di luar cakupan buku ini.” Sebenarnya, kami tidak melihat alasan untuk menduplikasi Samba. Jika Anda ingin menelusuri lebih dalam ke Samba (dan Anda harus melakukannya), banyak buku pinjaman unggul yang ada tentang masalah ini, termasuk panduan dokumentasi online di http:// jaringan sebagai file dan server cetak, pengontrol domain, atau anggota kelompok kerja. Sekarang, mari kita lihat jaringan Linux/Windows dan lihat bagaimana Anda dapat mengaturnya Mac OS X. satu sama lain) berlangsung di pengontrol domain: server yang menyediakan file, printer, dan penyimpanan ditangani pada satu mesin, kebijakan keamanan tingkat mesin yang lebih kuat dapat Lingkungan atau Tempat Jaringan Saya di salah satu sistem tersebut. berkembang. Namun, tim pengembang yang pemberani terus merekayasa balik protokol, dan telah menciptakan salah satu proyek perangkat lunak bebas paling populer untuk diimplementasikan mereka di sini. Gambar 8-1 merepresentasikan jaringan seperti yang dapat dilihat dari sistem Linux (distribusi Xan dros, yang merupakan Linux desktop nyaman yang cocok untuk lingkungan perusahaan). Tampilan pohon di sisi kiri layar menunjukkan empat komputer bernama kantor kecil dan/atau departemen dari organisasi yang lebih besar menggunakan jaringan peer-to-peer. Windows XP, dan dua lainnya menjalankan Windows 98. Linux mengikat semuanya bersama-sama. Itu bahan yang sangat baik sudah tersedia. Namun, kami ingin membahas Samba di pengontrol domain Microsoft NT dan server Active Directory. samba.org. Untuk menggunakan frasa umum, “Diskusi mendalam tentang topik ini berjalan jauh Iterasi terbaru dari Samba bekerja sama dengan Microsoft's Active Directory. Samba Samba untuk pengguna desktop Anda. Sebagai administrator sistem Linux, Anda memerlukan setidaknya pemahaman tingkat tinggi tentang berbagai operasi pengendalian. Samba dapat mengintegrasikan mesin Linux ke Microsoft diimplementasikan untuk melindungi mesin itu dari pengguna lain tanpa mengurangi kemampuannya untuk mengakses sumber daya jaringan peer-to-peer. Mengonfigurasi Jaringan | 165 Machine Translated by Google
  177. 166 | Bab 8: Layanan Jaringan Lokal Gambar 8-1. File

    dan direktori yang dibagikan oleh sistem Linux, seperti yang dilihat dari PC Windows Setelah sistem Windows menetapkan konfigurasi jaringannya dan dapat menjangkau Internet, kami mengeklik kanan Network Neighborhood, memilih Properties, dan mengubah alamat dinamis menjadi alamat statis. Ini memungkinkan workstation untuk bertindak sebagai server cetak dan menyediakan akses bersama ke Internet. Seberapa sulit untuk mengatur jaringan ini? Selain kabel standar, koneksi internet Ether, dan instalasi firewall dan modem, sistem pada dasarnya diinstal sendiri. Kami mengikuti prosedur pengaturan standar pada kedua mesin Windows 98. Sistem menggunakan DHCP untuk mendapatkan alamat IP, server DNS, dan rute ke gateway. Router menyediakan layanan DHCP dan skema alamat Internet pribadi menggunakan jaringan Kelas C (192.168.0.0 hingga 192.168.0.255). (Kita akan membahas DHCP di bagian berikutnya.) Sisi kanan layar pada Gambar 8-1 menyoroti folder dokumen bersama pada node yang disebut Dallas, yang merupakan sistem Windows XP. Anda juga dapat melihat file pengolah kata bernama xp_network_setup.sxw, yang disimpan dalam OpenOffice asli. org format Penulis (Versi 1). Menyiapkan sistem Windows XP sedikit lebih rumit, karena pada awalnya mesin XP dan (sekarang tidak didukung) Windows 98 tidak saling bertemu. Ke www.it-ebooks.info Machine Translated by Google
  178. Distribusi Linux lainnya, seperti Fedora dan Ubuntu, juga menawarkan alat

    yang mudah untuk mengatur berbagi file Windows. Gambar 8-3 menunjukkan dua layar konfigurasi untuk desktop Ubuntu. membuat mereka sadar satu sama lain, kami harus mengaktifkan Simple File Sharing melalui panel kontrol XP dan menjalankan Network Setup Wizard. Wizard bertanya apakah kami ingin mengaktifkan berbagi di komputer lain, mengacu pada mesin Windows 98. Menjawab ya memungkinkan kami untuk membuat floppy disk yang dapat kami gunakan untuk menginstal protokol XP pada komputer Windows 98. Proses ini meningkatkan sistem lama ke protokol yang lebih baru, memungkinkan kotak XP dan Windows 98 untuk berkomunikasi. (Program yang disediakan oleh Microsoft disebut netsetup.exe.) Perhatikan bahwa kami dapat mengonfigurasi Jaringan Windows melalui kotak dialog. Desktop Linux memungkinkan kami untuk mengaktifkan berbagi file dan printer, memberi nama komputer, menentukan kelompok kerja, dan mengaktifkan keamanan tingkat berbagi, yang memungkinkan node Windows menggunakan fungsionalitas CIFS. Kami kemudian menginstal desktop Xandros Linux dan mengaktifkan Jaringan Windows di atasnya, seperti yang ditunjukkan pada Gambar 8-2. Ubuntu juga memberi Anda opsi untuk menyiapkan Network File System (NFS), sistem berbagi file Unix-ke-Unix populer yang tidak kompatibel dengan CIFS. Kotak dialog pada Gambar 8-4 memungkinkan Anda memilih salah satu atau kedua sistem; Anda dapat menggunakan Samba untuk beroperasi dengan Windows dan Mac OS X, sementara menggunakan NFS untuk beroperasi dengan sistem Unix/ Linux lainnya. Layanan berbagi di Ubuntu tidak diinstal secara default, tetapi jika Anda memilih Folder Bersama (di bawah menu Administrasi di Ubuntu 6.10), Ubuntu mengunduh file yang diperlukan; Anda kemudian siap menjadi anggota domain atau grup kerja. Gambar 8-2. Mengonfigurasi Jaringan Windows Mengonfigurasi Jaringan | 167 www.it-ebooks.info Machine Translated by Google
  179. www.it-ebooks.info DHCP Layanan Dynamic Host Configuration Protocol (DHCP) dapat membantu

    Anda dengan sejumlah masalah yang terkait dengan lingkungan jaringan lokal, termasuk masalah penetapan alamat IP dan masalah administrasi. Sulit membayangkan jaringan tanpa DHCP. Kami akan menggali lebih dalam masalah Samba di bagian "Layanan Cetak" nanti di bab ini, • PC dan workstation memerlukan alamat IP unik, informasi DNS, dan lokasi gateway. • Pelacakan alamat IP secara manual menyebabkan pekerjaan yang berlebihan. • Duplikasi alamat IP yang tidak disengaja menciptakan konflik pada jaringan. Mari kita lihat beberapa masalah yang mungkin Anda hadapi, dan pertimbangkan bagaimana DHCP dapat membantu: 168 | Bab 8: Layanan Jaringan Lokal Gambar 8-4. Layar pengaturan Ubuntu untuk layanan berbagi file Gambar 8-3. Menyiapkan share Ubuntu di lingkungan Windows Machine Translated by Google
  180. www.it-ebooks.info opsi nis-domain "domain.org"; opsi nama domain "domain.org"; # opsi

    subnet-mask 255.255.255.0; # --- # -- kecuali jika Anda memahami Netbios dengan baik ddns-update-gaya sementara; opsi waktu-offset -18000; opsi ntp-server 192.168.1.1; # opsi domain-nama-server 192.168.1.1; # --- Memilih node point-to-point (default adalah hybrid). Jangan ubah ini subnet 192.168.1.0 netmask 255.255.255.0 { # --- # opsi netbios-name-server 192.168.1.1; # Waktu Standar Timur router opsi 192.168.1.1; abaikan pembaruan klien; opsi netbios-node-type 2; # --- gerbang default # --- Menginstal DHCP jaringan Anda. Contoh berikut adalah tipikal. Sintaksnya menggunakan tanda pound (#) untuk file dan serahkan sisanya ke server DHCP (dhcpd). Server ini mengelola IP Setelah Anda menginstalnya, konfigurasikan DHCP di /etc/ dhcpd.conf. Sebagai langkah pertama, salin alamatnya unik. Layanan ini membutuhkan sedikit keterlibatan manusia dalam penetapan dan pemeliharaan alamat IP. Administrator dapat menulis konfigurasi file /usr/ share/ doc/ dhcp/ dhcpd.conf.sample ke /etc/ dhcpd.conf. Selanjutnya, edit file agar pas lokasi menciptakan pekerjaan yang tidak perlu. • Memecahkan masalah alamat (seperti alamat duplikat) dan perubahan dalam kumpulan alamat, membebaskan administrator jaringan manusia dari tugas itu. • Pergerakan pengguna ponsel yang sering membuat kebutuhan untuk mengkonfigurasi ulang jaringan di bab berfokus pada Fedora, Anda dapat menginstal paket RPM dengan Yum atau manajer usia paket /usr/ bin/ gnome-app-install; versi paket saat ini adalah dhcp-3.0. komentar: • Perubahan personil biasanya berarti bahwa seseorang harus memeriksa setiap komputer untuk mengkonfigurasi database baru dari penetapan IP. Untuk memulai dengan DHCP, Anda harus menginstal server DHCP terlebih dahulu. Karena ini DHCP memecahkan masalah ini dengan membagikan alamat IP yang diperlukan untuk setiap sistem pada LAN saat sistem tersebut boot. Server DHCP memastikan bahwa semua IP Konsorsium. laptop. 3-28.i386. (Pengguna Debian dapat menginstal paket dhcp3-server dan mengedit file konfigurasi / etc/ dhcp3/ dhcpd.conf). Perangkat lunak ini berasal dari Sistem Internet DHCP | 169 Machine Translated by Google
  181. www.it-ebooks.info 170 | Bab 8: Layanan Jaringan Lokal Kami menentukan

    alamat gateway di baris kedua, router opsi, dan server nama caching di baris ketiga, server nama domain opsi. Alamat IP sama di kedua jalur, yang mencerminkan praktik umum. Ketika penerusan paket dan firewall iptables diaktifkan, server Linux mana pun dapat bertindak sebagai gateway/firewall. Dalam hal ini, kami juga mengaktifkan BIND dalam mode caching untuk berfungsi sebagai server DNS jaringan. Kami mengonfigurasi beberapa item dalam file konfigurasi kami setelah kami menyalinnya ke direktori /etc : Dua baris terakhir menentukan jumlah waktu klien dapat menyimpan alamat, diukur dalam detik. Sebuah server tunggal dengan dua kartu jaringan sering bertindak sebagai pintu gerbang dalam jaringan area lokal. Satu kartu, diwakili oleh nama perangkat seperti eth0, memiliki alamat di Internet, sedangkan kartu lainnya (misalnya, eth1) memiliki alamat di jaringan pribadi. Baris pertama menetapkan rentang atau kumpulan alamat IP yang tersedia untuk pengguna di subnet LAN. Dalam hal ini kami menggunakan jaringan Kelas C pribadi yang dicadangkan 192.168.1.0, yang menyediakan 254 node (192.168.1.1 hingga 192.168.1.254). Netmask ini harus cocok dengan netmask yang digunakan untuk mendefinisikan LAN Anda. Dalam file konfigurasi DHCP kami, kami juga menambahkan klausa untuk menentukan alamat statis untuk server DNS perusahaan: # kita ingin server nama muncul di host alamat tetap ns { next-server server1.centralsoft.org; perangkat keras ethernet 00:16:3E:63:C7:76; alamat tetap 70.253.158.42; subnet 192.168.1.0 netmask 255.255.255.0 { router opsi 192.168.1.1; opsi domain- nama-server 192.168.1.1; opsi subnet- mask 255.255.255.0; default-sewa-waktu 21600; max-lease-time 43200; } # --- rentang dynamic-bootp 192.168.0.128 192.168.0.254; default-sewa-waktu 21600; max-lease-time 43200; # kita ingin server nama muncul di host alamat tetap ns { next-server server1.centralsoft.org; perangkat keras ethernet 00:16:3E:63:C7:76; alamat tetap 70.253.158.42;} } Machine Translated by Google
  182. www.it-ebooks.info Untuk server DHCP sederhana, pemeliharaan sebenarnya lebih mudah jika

    Anda DHCP | 171 hilangkan komentar dan jaga agar file konfigurasi tetap pendek. Memulai Layanan DHCP Anda # chkconfig –-daftar # ps ke | grep dhcpd akar 9028 0,0 0,0 2552 636 opsi subnet-mask 255.255.255.0; 5: pada dhcpd router opsi 192.168.1.1; 6: mati server2.centralsoft.org; Ss 09:40 0:00 /usr/sbin/dhcpd [ OKE ] opsi domain-nama-server server.centralsoft.org, # sentuh /var/lib/dhcp/dhcpd.leases waktu-sewa-maksimum- waktu-sewa-default 0:mati 1:mati 2:aktif # chkconfig dhcpd aktif ddns-update-gaya sementara; kisaran 192.168.1.2 192.168.1.254; 4: pada 3:pada ....dari daftar: 7200; subnet 192.168.1.0 netmask 255.255.255.0 { } [root@host2 ~]# layanan dhcpd mulai 600; Memulai dhcpd: [root@host2 ~]# gunakan dhcpd untuk membagikan alamat IP statis berdasarkan alamat MAC kartu jaringan klien. Tetapi sebelum kita melakukannya, mari kita lihat versi sederhana dari /etc/ dhcpd.conf: benar. Anda juga ingin mengonfigurasi server untuk memulai saat boot. Untuk mencapai Gunakan perintah chkconfig untuk memulai DHCP saat boot: Anda akan ingin memulai server DHCP Anda sekarang, untuk memeriksa apakah konfigurasinya dhcpd.conf file secara global atau untuk mesin klien atau subnet. Ini berarti Anda dapat menetapkan default yang berguna untuk jaringan Anda, lalu menimpanya untuk grup tertentu Di bagian mendatang “Menetapkan Alamat IPv6 dengan radvd” kita akan membahas bagaimana caranya tugas pertama, masukkan: Seperti layanan lain di Linux, Anda harus me-restart daemon DHCP setiap kali Anda membuat perubahan pada file konfigurasi Anda. Anda dapat mengatur opsi lain di file kosong di direktori yang sama dengan file dhcpd.conf : Anda juga dapat menguji apakah proses DHCP berjalan dengan perintah berikut (jika layanan berjalan, sebuah baris akan ditampilkan dengan statistik proses): Beberapa layanan DHCP memerlukan file dhcpd.leases . Gunakan perintah sentuh untuk membuat Machine Translated by Google
  183. www.it-ebooks.info # alamat MAC ethernet sebagai berikut (Nama host adalah

    "printer laser"): subnet 192.168.1.0 netmask 255.255.255.0 opsi broadcast-address 192.168.1.255; router opsi 192.168.1.1; pilihan nama domain "host2.centralsoft.org"; } host laser-printer { hardware ethernet 08:00:2b:4c:59:23; alamat tetap 192.168.1.10; host1.centralsoft.com { perangkat keras ethernet 01:0:cO:2d:8c:33; alamat tetap 192.168.1.5; } Beberapa administrator sistem menyadari bahwa IPv6 dan metode barunya untuk menetapkan alamat IP mulai populer. Meskipun banyak orang mencemooh IPv6, mengatakan bahwa itu tidak perlu atau bahwa beban praktik yang ada akan menghalangi Buat klausa konfigurasi seperti ini untuk setiap server yang membutuhkan alamat LP statis, dan tambahkan ke file konfigurasi. Menetapkan Alamat IPv6 dengan radvd Kembali pada tahun 1995, Steve Deering dan Robert Hinden menyadari perlunya sistem pengalamatan Protokol Internet yang baru. Spesifikasi pertama mereka untuk IPv6 muncul pada tahun 1995, di IETF Request for Comments (RFC) 1883; yang kedua muncul pada tahun 1998, di RFC 2460. Deering dan Hinden mengartikulasikan apa yang sudah diketahui banyak orang: bahwa ruang alamat 32-bit lPv4 akan membatasi pertumbuhan eksplosif Internet. Pertama, atur subnet, alamat broadcast, dan router: Selanjutnya, tambahkan bagian host untuk setiap mesin di jaringan Anda. Untuk melakukan ini, Anda perlu mengetahui alamat perangkat keras (sering disebut alamat MAC) untuk setiap kartu jaringan, yang dapat Anda tentukan dengan menggunakan perintah ifconfig pada host. Berikut ini contoh bagian host : mesin atau bahkan mesin individu. Berikut adalah contoh bagian konfigurasi global di bagian atas file dhcpd.conf : Penyediaan Alamat IP Statis Stasiun kerja biasanya berfungsi baik dengan alamat dinamis (yaitu alamat yang dapat berubah secara berkala atau saat reboot), tetapi server biasanya mendapat manfaat dari alamat statis sehingga alamatnya tidak berubah saat berada di tengah sesi hubungan dengan klien. Dengan demikian, DHCP memungkinkan Anda menentukan alamat IP statis untuk sistem tertentu di dhcpd.conf. Mari kita lakukan ini dalam langkah-langkah. 172 | Bab 8: Layanan Jaringan Lokal Machine Translated by Google
  184. www.it-ebooks.info antarmuka etO { AdvSendIklan aktif; awalan 0:70:lfOQ:96::/64 { };

    }; Layanan Gerbang | 173 Diskusi ekstensif tentang IPv6, sekali lagi, di luar cakupan buku ini; untuk informasi lebih lanjut tentang protokol dan daemon IPv6, serta untuk mendapatkan alamat IPv6 publik, Anda harus mencari di tempat lain. radvd mendengarkan permintaan router dan mengirimkan iklan router seperti yang dijelaskan dalam RFC 2461, "Penemuan Tetangga untuk IP Versi 6 (IPv6)." Host dapat secara otomatis mengonfigurasi alamat mereka dan memilih router default mereka berdasarkan iklan ini. radvd mendukung protokol sederhana. Anda juga akan menemukan konfigurasinya yang sederhana. Contoh file /etc/ radvd.conf yang terkonfigurasi penuh terlihat seperti ini: Alamat IPv6 sering kali menyertakan alamat perangkat keras kartu jaringan. Properti ini memungkinkan pengguna IPv6 untuk mendapatkan alamat IP statis tanpa memerlukan konfigurasi apa pun di sisi server untuk mendukung alamat tersebut. Penetapan alamat IPv6 secara otomatis dapat dilakukan dengan bantuan daemon radvd periklanan router. Jika Anda ingin menggunakan radvd, Anda harus mengubah awalan menjadi satu untuk jaringan Anda dan mengatur layanan. Anda juga perlu mengonfigurasi DNS pada workstation klien Anda secara terpisah. Linux memiliki fasilitas bagi pengguna LAN untuk menjelajah Internet tanpa memaparkan alamat IP individu mereka kepada publik. Pengaturan tipikal menyembunyikan aktivitas di dalam organisasi dari publik dengan menggunakan Linux sebagai router. Di sisi pribadi router, aktivitas lokal tidak terdeteksi oleh siapa pun di sisi publik. Pengguna Fedora dapat menginstal paket radvd-0.9.1 dari repositori Yum mereka. Anda dapat menemukan halaman beranda proyek radvd di http:// www.litech.org/ radvd. agar tidak pernah memasuki arus utama, cukup banyak aplikasi dan lingkungan yang mengharuskan arus berbalik ke arahnya. Pengguna Debian dapat menginstal paket radvd dan membaca file /usr/ share/ doc/ radvd/ README.Debian. Orang terkadang juga menyebut gateway sebagai bastion host. Anda mungkin menganggapnya sebagai entitas jaringan yang menyediakan satu titik masuk dan keluar ke Internet. Host Bastion membantu mencegah retaknya jaringan dengan menyediakan penghalang antara area pribadi dan publik. Kami mengacu pada layanan yang mereka berikan sebagai layanan gateway. Layanan Gerbang Machine Translated by Google
  185. www.it-ebooks.info DMZ digunakan untuk menampung server yang perlu diakses dari

    dunia luar, seperti email, web, dan server DNS. Koneksi dari Internet ke DMZ biasanya dikontrol menggunakan Port Address Translation (PAT). DMZ biasanya berada di tengah dua gateway atau firewall dan terhubung ke keduanya, dengan satu kartu antarmuka jaringan terhubung ke jaringan internal dan yang lainnya ke Internet. DMZ dapat mencegah kesalahan konfigurasi yang tidak disengaja yang memungkinkan akses dari Internet ke jaringan internal. Kami menyebutnya firewall subnet yang disaring. Sumber dan tujuan untuk setiap paket IP berisi alamat IP dan port. Terjemahan port membuat perubahan pada alamat pengirim dan penerima pada paket data. Nomor port, bukan alamat IP, digunakan untuk menunjuk komputer yang berbeda di jaringan dalam. Dalam keamanan komputer, istilah zona demiliterisasi mengacu pada jaringan perimeter, yang merupakan subnet atau jaringan yang berada di antara jaringan internal dan Internet. Misalnya, jaringan pribadi Anda mungkin menggunakan jaringan internal 192.168.1.0, DMZ 10.0.0.0, dan blok Internet publik 70.253.158.0. ONBOOT=ya USERCTL=tidak IPV6INIT=tidak Peran DMZ Untuk tujuan kami, kami akan membatasi konfigurasi gateway untuk penerusan paket; kami tidak akan menghabiskan waktu di DMZ, yang membutuhkan lebih banyak peralatan dan usaha. Untuk membangun gerbang, Anda perlu: Administrator sistem Linux menerapkan layanan gateway dengan menggunakan kombinasi penerusan paket dan aturan firewall yang dikenal sebagai iptables. Anda mungkin juga melihat nama lain untuk layanan gateway, seperti penyamaran atau Terjemahan Alamat Jaringan (NAT). • Sebuah saklar kecil untuk mesin klien untuk terhubung ke gateway • iptables terpasang Kami akan menganggap bahwa eth0 adalah koneksi Internet Anda dan eth1 adalah gateway internal Anda dalam konfigurasi ini. Edit file konfigurasi untuk eth0, yang ada di /etc/ sysconfig/ networking/ devices/ ifcfg-eth0, untuk memasukkan baris berikut: • Komputer khusus untuk bertindak sebagai gateway • Koneksi ke Internet dan dua kartu jaringan Di organisasi kecil dan jaringan rumah, gateway dapat berada di satu server dan mencakup keamanan dasar, firewall, dan DHCP, caching DNS, dan layanan email. Di organisasi yang lebih besar, layanan tersebut umumnya tersebar di beberapa server, dengan zona demiliterisasi (DMZ) mengisolasi gateway. 174 | Bab 8: Layanan Jaringan Lokal Machine Translated by Google
  186. www.it-ebooks.info Layanan Gerbang | 175 Fedora 5 akan menginstal iptables

    menggunakan aplikasi Tambah/ Hapus Perangkat Lunak, yang terletak tepat di atas menu Aplikasi pada panel GNOME. Itu juga memuat modul kernel sebagai bagian dari proses instalasi. Demikian pula, konfigurasi untuk eth1 akan terlihat seperti ini: Informasi tentang parameter konfigurasi ini dapat ditemukan di file sysconfig.txt, yang akan Anda temukan di direktori dengan nama yang mirip dengan /usr/ share/ doc/ initscripts-7.93.7. Jika Anda belum menginstal iptables , instal sekarang dan muat modul. Lalu lari: Dengan kartu jaringan Anda dikonfigurasi, Anda perlu memastikan bahwa Anda telah menginstal ipta bles. Anda akan melihat hasil berikut: [root@host2 devices]# rpm -q iptables iptables-1.3.5-1.2 [root@host2 devices]# Sekarang edit /etc/ sysctl.conf, ubah net.ipv4.ip_forward = 0 menjadi 1 agar ini tetap aktif saat reboot. Anda membuat sistem membaca ulang /etc/ sysctl.conf dengan mengetik: Terakhir, jika Anda memiliki organisasi kecil, Anda dapat menambahkan DHCP ke server menggunakan versi sederhana dhcpd.conf: HWADDR=00:04:61:43:75:ee ONBOOT=ya USERCTL=tidak IPV6INIT=tidak PEERDNS=ya TYPE=Ethernet DEVICE=eth1 HWADDR=00:13:46:e6:e5:83 BOOTPROTO=tidak ada NETMASK=255.255.255.0 IPADDR=192.168.1.1 waktu-sewa-maksimum- waktu-sewa-default # sysctl -p PEERDNS=ya GATEWAY=70.253.158.46 TYPE=Perangkat Ethernet=eth0 NETMASK=255.255.255.248 IPADDR=70.253.158.43 600; 7200; BOOTPROTO=tidak ada # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # service iptables simpan # echo 1 > /proc/sys/net/ipv4/ip_forward ddns-update-gaya sementara; Machine Translated by Google
  187. www.it-ebooks.info Untuk digunakan dalam bab ini, kami memilih Firestarter. Namun,

    Anda mungkin ingin melihat Shorewall, utilitas konfigurasi untuk Netfilter (alat baris perintah). Firestarter Firewall Wizard (Gambar 8-5) diluncurkan saat administrator memulai program untuk pertama kalinya. Anda dapat meluncurkan kembali wizard dari menu Firewall di antarmuka utama, serta mengubah pilihan melalui opsi Preferences. 176 | Bab 8: Layanan Jaringan Lokal Gambar 8-5. Wizard Firewall Firestarter Pendekatan Lain untuk Layanan Gateway Bagian ini mencakup penggunaan gateway paket dan produk kombinasi firewall dengan beberapa set fitur. Beberapa paket gratis ada, seperti Firestarter, IPCop, Netfilter, dan Shorewall. Anda akan melihat Smoothwall dan ClarkConnect disebutkan dalam literatur Linux, tetapi ini adalah produk komersial yang menginstal seluruh distribusi Linux, bukan aplikasi yang berdiri sendiri. server2.centralsoft.org; kisaran 192.168.1.2 192.168.100.254; Anda dapat mengunduh Firestarter dari repositori Fedora. Instalasi kami memiliki paket berikut: [root@host2 ~]# rpm -q firestarter firestarter-1.0.3-11.fc5 [root@host2 ~]# subnet 192.168.1.0 netmask 255.255.255.0 { router opsi 192.168.1.1; opsi subnet- mask 255.255.255.0; opsi domain- nama-server server1.centralsoft.org, } Machine Translated by Google
  188. www.it-ebooks.info subnet 192.168.1.0 netmask 255.255.255.0 { router opsi 192.168.1.1; opsi

    subnet- mask 255.255.255.0; opsi domain-nama- server 70.253.158.42, 70.253.158.45, 151.164.1.8; opsi penerusan ip mati; rentang dynamic-bootp 192.168.1.10 192.168.1.254; default-sewa-waktu 21600; max-lease-time 43200; } # Konfigurasi DHCP yang dihasilkan oleh Firestarter ddns-update-style interim; abaikan pembaruan klien; Layanan Gerbang | 177 Gambar 8-6. Layar pengaturan perangkat Jaringan Anda juga dapat melihat di bagian bawah Gambar 8-7 bahwa Firestarter mengizinkan administrator untuk menggunakan konfigurasi DHCP yang ada atau membuat yang baru. Berikut file dhcpd.conf Fire starter : Firestarter mengacu pada fungsi utamanya sebagai berbagi koneksi. Namun, karena menggunakan NAT, ia berfungsi sebagai gateway, sehingga PC klien di LAN internal terlihat seperti satu mesin dengan satu alamat IP ke Internet. Ini menjadi jelas, misalnya, di layar preferensi yang ditunjukkan pada Gambar 8-7. Perhatikan bahwa deskripsi perangkat pertama mengacu pada "perangkat jaringan yang terhubung ke Internet" dan deskripsi kedua mengacu pada "perangkat yang terhubung ke jaringan lokal." Setelah layar pembuka awal akan ada serangkaian layar konfigurasi, dimulai dengan layar pengaturan perangkat Jaringan (Gambar 8-6), yang dapat mengatur kartu jaringan ganda. Machine Translated by Google
  189. Dalam tampilan ini, Anda dapat melihat koneksi yang diblokir. Ikon

    Firestarter berubah menjadi merah ketika melihat potensi eksploitasi sedang dibuat. Perhatikan pesan di atasnya pada Gambar 8-10: “Hit from 221.237.38.68 terdeteksi.” Itu layak diselidiki. File resolv.conf di gateway muncul di pengaturan konfigurasi mesin klien DHCP saat Firestarter membaca file itu dan menempatkan alamat server DNS di dhcpd.conf. Pada Gambar 8-9, Anda dapat melihat tampilan peristiwa dari tab kedua antarmuka utama. Panel Peristiwa menyediakan log upaya untuk mengeksploitasi firewall. Anda mungkin merasa berguna ketika penyusup mencoba masuk ke sistem Anda. Jika tampaknya tetap ada, tambahkan alamat IP mereka ke file /etc/ hosts.deny . Jika seseorang mencoba masuk melalui port 22 ssh menggunakan serangan kamus, Anda cukup menutup port dengan Firestarter. Tab ketiga pada antarmuka utama memungkinkan Anda menetapkan kebijakan untuk layanan yang akan atau tidak akan Anda izinkan. Misalnya, kami mengizinkan koneksi SSH ke firewall dari luar, jadi kami menetapkan kebijakan untuk mengizinkan SSH di port 22. Antarmuka utama Firestarter menyediakan tampilan status gateway dan koneksi ke host DHCP. Ini juga memberikan ringkasan peristiwa dan aktivitas, seperti yang ditunjukkan pada Gambar 8-8. www.it-ebooks.info Gambar 8-7. Layar Preferensi Firestarter 178 | Bab 8: Layanan Jaringan Lokal Machine Translated by Google
  190. Firestarter menggunakan wizard untuk mengonfigurasi kebijakan gateway. Anda dapat melihat

    sekilas cara kerjanya pada Gambar 8-11. Gambar 8-11 menunjukkan jendela bernama “Tambahkan aturan masuk baru.” Layar ini muncul setelah Anda memilih Add Rule pada tab Policy. Di jendela ini, Anda dapat melihat pilihan opsi yang dapat Anda gunakan untuk mengizinkan layanan masuk ke jaringan. Layar serupa muncul untuk layanan keluar yang Anda berikan kepada pengguna Anda. www.it-ebooks.info Anda akan menemukan Firestarter aplikasi yang mudah untuk dikonfigurasi. Komunitas proyek telah melakukan pekerjaan yang luar biasa dalam mendokumentasikan prosedur dalam panduan pengguna yang ditulis dengan baik dan ringkas, yang dapat Anda temukan di http:// fs-security.com/ docs.php. Gambar 8-8. Antarmuka utama Firestarter Layanan Gerbang | 179 Machine Translated by Google
  191. www.it-ebooks.info Pada titik ini, Anda mungkin bertanya-tanya mengapa kami menyertakan

    aplikasi yang bergantung pada desktop GNOME. Ingat itu ketika kita memilih Fedora sebagai distribusi untuk jaringan lokal, kami melakukannya karena Gambar 8-10. Ikon panel menunjukkan upaya penyusupan Gambar 8-9. Panel Acara Firestarter 180 | Bab 8: Layanan Jaringan Lokal set alatnya yang luas. Menambahkan Firestarter sesuai dengan filosofi kami tanpa menghilangkan kemampuan kami untuk menggunakan antarmuka baris perintah. Machine Translated by Google
  192. www.it-ebooks.info Sebagai administrator sistem Linux, printer dapat menyebabkan Anda sakit

    kepala parah. Anda pasti menemukan perangkat keras, perangkat lunak, dan sistem operasi yang tidak kompatibel. Karena ada begitu banyak variasi sistem dan metode untuk mengonfigurasi printer, area administrasi ini berpotensi membuat Anda dalam suasana hati yang buruk selama berbulan-bulan—atau setidaknya sampai Anda menangani situasi tersebut. Mari kita mulai dengan perangkat keras. Kebanyakan administrator sistem akan menemukan empat jenis perangkat keras untuk printer jaringan. Di jaringan yang ada, Anda mungkin menemukan kombinasi dari konfigurasi berikut: • PC khusus yang digunakan sebagai server printer • Printer terpasang ke PC pengguna Layanan Cetak Gambar 8-11. Konfigurasi kebijakan untuk Firestarter Layanan Cetak | 181 Machine Translated by Google
  193. www.it-ebooks.info 182 | Bab 8: Layanan Jaringan Lokal Pertimbangan Perangkat

    Lunak Pencetakan belajar di tempat kerja. Pendekatan terbaik untuk belajar tentang pencetakan melibatkan pengembangan strategi untuk infrastruktur Anda sendiri. Itu mempersempit jumlah informasi yang perlu Anda cerna. Linux dan Windows dimulai dengan model pencetakan yang sama sekali berbeda. Untungnya, kemajuan telah dicapai dalam membuat semua orang bekerja sama dan bermain dengan baik. Tetapi Apa yang ditunjukkan oleh anekdot hipotetis ini adalah bahwa Anda, sebagai administrator sistem, perlu diinstal. sampai Anda mengonfigurasi printer di jaringan Anda, kemungkinan besar printer masih tidak berfungsi ke pencetak itu? Ternyata, itu tidak muncul di jaringan karena tidak ada orang dia mengklik kanan printer di desktopnya dan memilih "Bagikan." Billy Bob mencoba menghubungkan ke printer Sally, tetapi tidak berhasil. Mengapa? Dia tidak memiliki sopir repot-repot untuk menambahkannya ke kontroler domain. • Perangkat server printer yang menghubungkan printer langsung ke LAN Kemudian, Sally Jean menelepon dan mengeluh bahwa PC-nya membutuhkan lebih banyak memori dan lebih cepat Bab ini akan memberi Anda gambaran umum tingkat tinggi dan informasi praktis yang cukup untuk membantu Anda memulai. Anda dapat memulai proses dengan inventaris perangkat keras dan Awalnya, Linux menggunakan standar Unix untuk pencetakan yang dikenal sebagai Line Printer Dae mon (LPD); kemudian, daemon yang ditingkatkan yang disebut LPRng ditambahkan. Distribusi Linux juga menggunakan alat LPD untuk pencetakan dan interoperabilitas dengan varian Unix. bersama. • Printer berkemampuan jaringan dengan kartu Ethernet internal Jadi, kedua pengguna ini memanggil administrator sistem (yaitu Anda) untuk datang memperbaiki masalah. Anda menginstal driver pada PC Billy Bob, dan tiba-tiba, seperti sulap, itu bekerja. digunakan setiap kali Anda berbelok di tikungan. Fleksibilitas yang diberikan oleh sistem desktop modern sering menimbulkan masalah. berbagi, dan itu memperlambatnya. untuk menyiapkan strategi untuk mengelola infrastruktur printer Anda. Bagian ini Di sebagian besar gedung perkantoran berukuran sedang, Anda mungkin akan melihat beberapa solusi ini prosesor. Mengapa? Sepuluh orang sekarang menggunakan printernya karena dia membuka Karena begitu banyak jenis printer dan kombinasi perangkat yang beroperasi beberapa pengambilan keputusan mengenai perangkat lunak dan sistem operasi. jendela kas kecil dan mendapatkan penggantian untuk itu, kemudian menghubungkannya langsung ke PC-nya. Billy Bob, yang duduk di meja di sebelahnya, lalu bertanya apakah dia bisa menggunakan printernya. Jadi, printer laser dengan kartu cetak langsung tidak digunakan. Mengapa tidak semua pengguna itu mencetak sistem, dan perangkat lunak di luar sana, Anda harus melakukan sebagian besar terkait pencetakan Anda Katakanlah salah satu pengguna Anda, Sally Jean, membeli printer inkjet, turun ke Ketika Anda memeriksa situasinya, Anda melihat bahwa di sekitar sudut ada volume besar Machine Translated by Google
  194. Gambar 8-12. Antarmuka konfigurasi CUPS Layanan Cetak | 183 www.it-ebooks.info

    Pencetakan Lintas-Platform Sekarang, mari kita pertimbangkan beberapa dilema pencetakan yang mungkin Anda hadapi di lingkungan perusahaan saat ini. Anda hampir pasti akan menemukan situasi di mana Anda ingin berbagi printer Linux dengan mesin Windows. (Bahkan, Anda mungkin ingin menggunakan Distributor Linux terus mengirimkan LPD dan alatnya, tetapi mereka juga menambahkan dukungan untuk sistem baru yang dikenal sebagai Common Unix Printing System (CUPS). Tidak seperti LPD, CUPS juga kompatibel dengan Windows dan Mac OS. CUPS dan LPD menggunakan protokol pencetakan jaringan yang berbeda. Sedangkan LDP tidak bisa meminta pekerjaan cetak untuk karakteristik dasar, CUPS bisa. CUPS juga bekerja langsung di jaringan heterogen dan dapat dipasangkan dengan Samba jika perlu. Tidak semua distribusi Linux mengaktifkan antarmuka, tetapi Red Hat menyertakan CUPS di Fedora secara default. Antarmukanya cukup jelas, jadi kami akan menyerahkan penjelajahannya kepada Anda. Jika Anda kurang familiar dengan CUPS, lihat antarmuka manajemen atau kunjungi situs web proyek di http:// www.cups.org/ book/ index.php dan membaca buku. Sebagai administrator sistem, Anda perlu membiasakan diri dengan alat administrasi CUPS. Di Fedora, cukup ketik http:// localhost:631 di browser, dan Anda akan melihat antarmuka manajemen yang disajikan pada Gambar 8-12. Machine Translated by Google
  195. www.it-ebooks.info 184 | Bab 8: Layanan Jaringan Lokal # ln

    -s `which smbspool` /usr/lib/cups/backend/smb Selesai. # /etc/init.d/cupsys restart Restart Sistem Pencetakan Unix Umum: cupsd # [ Oke ] ~$ su Password: # adduser cupsys shadow Menambahkan `cupsys' pengguna ke grup `shadow'... [printers] comment = Semua Printer mencetak = cangkir nama printcap = cangkir Pertama, mari kita lihat memberi pengguna Windows akses ke printer yang terhubung ke Linux. Biasanya, Anda harus menyiapkan grup kerja atau domain Samba, dan Anda perlu menginstal CUPS di PC Linux Anda. Anda juga harus mengonfigurasi CUPS untuk Samba, yang dapat Anda lakukan dengan perintah berikut: Sekarang instal printer Windows yang ingin Anda sediakan di server Samba dengan CUPS, menggunakan antarmuka web CUPS. Kemudian Anda dapat masuk sebagai root. Anda harus masuk sebagai root. Pada beberapa sistem Linux, Anda perlu mengatur root sebagai admin sistem CUPS terlebih dahulu. Anda dapat melakukannya dengan perintah adduser : Edit /etc/ samba/ smb.conf untuk membuat share printer di server Samba. Dalam situasi kehidupan nyata Anda cenderung membatasi akses ke sistem atau pengguna tertentu untuk setiap printer, tetapi dalam contoh berikut, PC Linux akan berbagi semua printernya dengan sistem apa pun di jaringan Anda yang telah Anda konfigurasikan Samba untuk melayani: Klik "Tambah Printer" dan masukkan nama printer dari sistem Windows. Kami akan menggunakan "BrotherHL1440" (lihat Gambar 8-13). Kemudian masukkan lokasi dan deskripsi. Linux sebagai server cetak di jaringan Windows untuk menghemat biaya lisensi.) Anda mungkin juga ingin berbagi printer Windows dengan mesin Linux. Bagaimana kamu melakukannya? Saat Anda masuk ke jendela perangkat, klik menu tarik-turun dan pilih "Win dows Printer via SAMBA." Dalam skenario berikutnya, Anda harus mengaktifkan pengguna Linux Anda untuk menggunakan printer yang terhubung ke server Windows. Sekali lagi, Anda perlu CUPS dan Samba untuk melakukan ini. Pada PC Windows, bagikan printer seperti biasa: pada Windows NT, 2000, dan/atau XP, aktifkan akun tamu dan berikan izin kepada semua orang untuk mengakses printer bersama. Kemudian instal CUPS di server Samba dan konfigurasikan untuk Samba seperti yang dijelaskan sebelumnya. PC Windows Anda sekarang dapat mengakses printer melalui jaringan. Anda mungkin memerlukan driver cetak Windows, baik dari media versi Windows atau media yang disertakan dengan printer Anda. Machine Translated by Google
  196. Mengontrol Antrian Cetak dari Baris Perintah Gambar 8-13. Menambahkan printer

    Windows Layanan Cetak | 185 seseorang: //guest@philadelphia/brotherhl1440-2 www.it-ebooks.info Di jendela berikutnya, “URI perangkat untuk”, masukkan URI perangkat. "BrotherHL1440-2" terhubung ke Philadelphia pada Windows 2003, jadi Anda harus memasukkan nama pengguna dan nama host "tamu": Anda dapat ssh ke server cetak Linux jarak jauh dan menggunakan perintah CUPS untuk mengontrol antrian cetak. Perintah CUPS CLI biasanya membutuhkan hak akses root . Mari kita lihat sebentar perintah-perintah itu: Pada titik ini, Anda harus memilih driver printer. Anda juga harus mencetak halaman percobaan. lpc Memungkinkan berbagai bentuk kontrol atas printer. Dengan status lpc, Anda dapat melihat daftar antrian yang tersedia dan statusnya masing-masing. lpstat Menampilkan daftar pekerjaan yang diantrekan untuk dicetak pada printer sistem. Anda dapat menggunakan berbagai opsi untuk mengubah output perintah ini. Pada klien Linux Anda, buka antarmuka CUPS, dan Anda akan melihat printer. lpq Menampilkan status antrian saat ini atau antrian yang ditentukan dengan opsi antrian -P . Klien Linux di LAN sekarang dapat menggunakan printer ini. Machine Translated by Google
  197. manajemen pengguna terima dan tolak Menyebabkan antrian cetak mulai menerima

    atau menolak pekerjaan baru. lprm Menghapus pekerjaan dari antrian. Anda dapat menentukan antrian (-P antrian) dan pengidentifikasi pekerjaan (diperoleh dengan lpstat). lpmove Memindahkan pekerjaan cetak dari satu antrian ke antrian lainnya dengan pengidentifikasi pekerjaan dan nama antrian (misalnya, lpmove queue1-46 queue2). lppasswd Mengubah kata sandi CUPS yang digunakan oleh sistem. Atur AuthType ke Digest di file konfigurasi cupsd.conf . antre. Anda dapat mencoba perintah ini sendiri. Berikut ini contoh yang pertama pada printer yang baru saja kita siapkan menggunakan antarmuka CUPS: Di Linux, Anda dapat mengelola pengguna (menambah, mengubah, menghapus) dengan banyak cara. Di awal bagian ini, kita akan berasumsi bahwa setiap server yang Anda kelola memiliki database pengguna sendiri, yang ditemukan di file /etc/ passwd . Kami juga akan berasumsi bahwa Anda mengetahui dasar- dasar menambah dan menghapus akun pengguna dengan perintah adduser dan useradd untuk distribusi apa pun yang Anda gunakan, karena keduanya berbeda dari distro ke distro. Distribusi Linux yang berbeda telah mengubah perilaku default perintah adduser/ user add . Anda dapat mengakses halaman manual untuk salah satu perintah, tetapi mungkin tidak akan berfungsi seperti yang ditunjukkan oleh halaman manual. Anda harus bereksperimen untuk melihat bagaimana perilaku distribusi Anda. Di Fedora, kedua perintah tersebut tampaknya berperilaku sama: keduanya menambahkan akun dan direktori pengguna. Jika Anda mengetik adduser tadelste atau menggunakan radd tadelste, perintah tersebut akan menambahkan pengguna dan membuat direktori home, tetapi perintah tersebut tidak akan meminta kata sandi sementara atau menjawab pertanyaan standar Linux yang mungkin Anda lihat. mengaktifkan dan menonaktifkan Memulai atau menghentikan antrian yang ditentukan. Perintah yang paling sering digunakan adalah disable dengan opsi -c , untuk menghentikan antrian dan membatalkan semua pekerjaan yang saat ini ada d #status lpc SaudaraHL1440: printer pada perangkat kecepatan 'paralel' -1 antrian diaktifkan pencetakan diaktifkan tidak ada entri daemon hadir 186 | Bab 8: Layanan Jaringan Lokal www.it-ebooks.info Machine Translated by Google
  198. Sebagai pengguna, setelah Anda diberi kata sandi, Anda dapat mengubahnya

    sendiri: Seperti yang Anda lihat, jawabannya adalah tidak. Pengguna tidak hanya memiliki kata sandi kosong; dia tidak memiliki kata sandi sama sekali. File ssh_config memiliki persyaratan kata sandi yang diaktifkan, sehingga pengguna juga tidak dapat menggunakan SSH untuk masuk. Pada distribusi lain, Anda mungkin melihat output seperti ini: Outputnya menyatakan bahwa perintah passwd mengubah kata sandi untuk pengguna, tetapi tidak; itu tidak meminta kata sandi asli (tidak ada). Oleh karena itu, pengguna root harus menambahkan kata sandi untuk pengguna, yang dapat dilakukan oleh administrator sebagai berikut: Manajemen Pengguna | 187 www.it-ebooks.info Masukkan kata sandi UNIX baru: passwd1 Ketik ulang kata sandi UNIX baru: passwd1 passwd: kata sandi berhasil diperbarui Mengubah informasi pengguna untuk tadelste Masukkan nilai baru, atau tekan ENTER untuk default Nama Lengkap []: Nomor Kamar Pengguna Baru []: Telepon Kantor [] : 999-555-1212 Telepon Rumah []: Lainnya []: Apakah informasinya benar? [y/T] y Di Fedora, bagaimanapun, output berhenti di baris “Menyalin file…”. Administrator kemudian diharapkan membuat kata sandi pertama untuk pengguna. Tetapi bagaimana jika adminis trator tidak segera memberikan kata sandi kepada pengguna baru? Bisakah pengguna yang ditambahkan mengakses server melalui ssh, misalnya? Mari kita coba: [root@host2 ~]# passwd tadelste Mengubah kata sandi untuk pengguna tadelste. # adduser tadelste Menambahkan pengguna `tadelste'... Menyalin file dari `/etc/skel' $ passwd Mengubah kata sandi untuk pengguna tadelste. Membuat direktori home `/home/tadelste'. $ ssh [email protected] [email protected] Kata sandi: Izin ditolak, silakan coba lagi. Kata sandi [email protected]: Izin ditolak, silakan coba lagi. [email protected]'s password: Izin ditolak (publickey,gssapi-with- mic,password). $ Kata sandi UNIX baru: passwd1 Ketik ulang kata sandi UNIX baru: passwd1 passwd: semua token otentikasi berhasil diperbarui. [root@host2 ~]# Menambahkan pengguna baru `tadelste' (1001) dengan grup `tadelste'. ... Mengubah kata sandi untuk tadelste Menambahkan grup baru `tadelste' (1001). Machine Translated by Google
  199. (saat ini) kata sandi UNIX: passwd1 Kata sandi UNIX baru:

    passwd1 Kata sandi tidak diubah Kata sandi UNIX baru: passwd2 Ketik ulang kata sandi UNIX baru: passwd2 passwd: semua token otentikasi berhasil diperbarui. $ 188 | Bab 8: Layanan Jaringan Lokal www.it-ebooks.info • Potensi eksploitasi keamanan yang terkait dengan manajemen pengguna, dan cara Akun untuk orang sungguhan Setiap pengguna diberikan akun yang terkait dengan beberapa opsi konfigurasi, seperti kata sandi, direktori home, dan shell yang berjalan saat pengguna masuk. Menyediakan akun terpisah untuk setiap pengguna memungkinkan orang untuk mengatur izin pada file mereka, sehingga mereka dapat mengontrol siapa yang memiliki akses ke file tersebut. Fedora pertama-tama memverifikasi bahwa Anda memiliki kata sandi (jika tidak, Anda tidak akan dapat masuk ke server). Ini juga memverifikasi bahwa kata sandi baru yang Anda masukkan berbeda dari kata sandi yang ada. Jika Anda memasukkan kata sandi yang sama, Fedora tidak akan menerimanya dan meminta Anda lagi. • Cara membuat dan mengatur akun • Cara menghapus atau menonaktifkan akun Akun untuk layanan sistem seperti email atau server basis data Akun ini memastikan bahwa layanan berjalan dengan hak istimewa yang sangat terbatas dan hanya memiliki akses ke beberapa file yang diperlukan, jika terjadi kesalahan pemrograman atau penyusup jahat yang menyebabkannya mencoba memengaruhi bagian lain dari sistem. sistem. Biasanya, ketika layanan diinstal, proses instalasi atau administrator sistem membuat pengguna dan grup dengan nama yang sama (postfix, mysql, dll.) dan menetapkannya ke semua file dan direktori yang dikendalikan oleh layanan. Layanan tidak diberikan kata sandi, direktori home, atau shell, karena hanya penyusup yang mungkin menggunakan ini. akun: Administrator sistem perlu mengetahui: Anda juga harus menyadari bahwa akun pengguna melayani sejumlah tujuan pada sistem Linux, dan bahwa beberapa "pengguna" bukanlah manusia. Anda akan melihat dua jenis utama dari Seperti yang dinyatakan sebelumnya, jika Anda membaca buku ini, Anda seharusnya sudah mengetahui cara menambahkan pengguna, menyetel kata sandi, dan sebagainya. Sekarang, kami ingin fokus pada masalah yang perlu diketahui oleh administrator administrator tentang pengguna dari sudut pandang keamanan. Saat Anda menginstal Fedora, skrip instalasi meminta Anda untuk membuat kata sandi untuk akun root dan akun pengguna utama opsional selain root. Selain itu, Anda mungkin hanya memiliki sedikit pengalaman dengan menambahkan pengguna, dan sedikit jika ada dengan administrasi grup. obati mereka Karena Fedora menggunakan protokol Red Hat, Anda harus berasumsi bahwa beberapa masalah keamanan pasti ada di sekitar penambahan pengguna dan pengaturan kata sandi. Machine Translated by Google
  200. Menghapus Pengguna Perputaran karyawan di banyak organisasi berjalan tinggi. Jadi,

    kecuali Anda menjalankan toko kecil dengan basis pengguna yang stabil, Anda perlu mempelajari cara membersihkan setelah karyawan pergi. # passwd -l tadelste # temukan / -user tadelste [root@host2 ~]# temukan / -user tadelste /home/tadelste /home/ tadelste/.zshrc /home/tadelste/.bashrc / home/tadelste/.bash_profile /home/ tadelste/.gtkrc /home/ tadelste/.bash_logout....... Manajemen Pengguna | 189 www.it-ebooks.info Terkadang perlu untuk menonaktifkan sementara akun tanpa menghapusnya. Misalnya, seorang pengguna mungkin pergi cuti hamil atau mengambil pos selama 90 hari di negara lain. Anda juga dapat menemukan dari log sistem Anda bahwa seseorang telah memperoleh kendali tidak sah atas suatu akun dengan menebak kata sandinya. Perintah passwd -l juga berguna untuk situasi ini. Sebagai keamanan ekstra, Anda dapat mengubah shell login pengguna ke nilai dummy. Cukup ubah kolom terakhir dalam file passwd menjadi /bin/false. Terlalu banyak yang disebut administrator sistem tidak memahami taruhannya ketika mereka mengelola pengguna. Mantan karyawan yang tidak puas seringkali dapat menyebabkan masalah yang signifikan bagi perusahaan dengan mendapatkan akses ke jaringan. Jika organisasi Anda menggunakan Secure Shell (SSH, biasanya disediakan di Linux oleh server OpenSSH) dan Anda mengizinkan otentikasi kunci RSA atau DSA jarak jauh, pengguna bisa mendapatkan akses ke sistem Anda meskipun kata sandinya dinonaktifkan. Ini karena SSH menggunakan kunci terpisah. Anda kemudian dapat memutuskan apakah akan menghapus file-file ini atau menyimpannya. Jika Anda memutuskan untuk menghapusnya, buat cadangannya jika Anda memerlukan data darinya nanti. Tugas pertama adalah menonaktifkan kata sandi pengguna, secara efektif menguncinya. Anda dapat melakukannya dengan perintah seperti berikut: Saat Anda menghapus pengguna, sebaiknya ikuti tindakan yang telah ditentukan sebelumnya sehingga Anda tidak melupakan langkah penting apa pun; Anda bahkan mungkin ingin membuat daftar periksa sehingga Anda memiliki rutinitas yang tertata. Selanjutnya, Anda harus memutuskan apa yang harus dilakukan dengan file pengguna. Ingat bahwa pengguna mungkin memiliki file di luar direktori home mereka. Perintah find dapat menemukannya: Menghapus pengguna bukanlah proses satu langkah—Anda perlu mengelola semua file pengguna, kotak surat, alias surat, pekerjaan cetak, proses pribadi berulang (otomatis) (seperti pencadangan data atau sinkronisasi direktori jarak jauh) , dan referensi lain untuk pengguna. Sebaiknya nonaktifkan akun pengguna terlebih dahulu di /etc/ passwd; setelah itu, Anda dapat mencari file pengguna dan referensi lainnya. Setelah semua jejak pengguna telah dibersihkan, Anda dapat menghapus pengguna sepenuhnya (jika Anda menghapus entri dari /etc/ passwd saat referensi lain ini ada, Anda akan kesulitan menentukannya). Machine Translated by Google
  201. 190 | Bab 8: Layanan Jaringan Lokal Juga, periksa untuk

    melihat apakah pengguna masih memiliki proses yang berjalan di sistem. Proses tersebut mungkin bertindak sebagai pintu belakang untuk memungkinkan pengguna masuk ke jaringan Anda. Perintah berikut akan memberi tahu Anda jika pengguna saat ini memiliki proses yang sedang berjalan: Menyegel Direktori Rumah Anda akan sering menemukan bahwa manajemen ingin menyimpan informasi di direktori asal seorang karyawan yang keluar. Semua email dan dokumen lain dalam akun pengguna pribadi adalah milik perusahaan. Jika mantan karyawan yang tidak puas menjadi orang yang berperkara, penasihat hukum perusahaan mungkin menginginkan akses ke file-file ini. Banyak analis menganggap pemeliharaan direktori tersebut sebagai praktik yang baik. Anda dapat menyimpan konten direktori home pengguna dengan mengganti namanya. Cukup jalankan perintah pindah: Demikian juga, cari file .shosts dan .rhosts di direktori home pengguna (misalnya, ~tadelste/.shosts dan ~tadelste/.rhosts). • Bisakah pengguna menjalankan skrip CGI dari direktori home-nya atau di salah satu server web perusahaan? • Apakah ada file penerusan email seperti ~tadelste/.forward ? Pengguna dapat menggunakan untuk sipir untuk mengirim email ke akun mereka dan menyebabkan program dijalankan pada sistem di mana mereka seharusnya tidak memiliki akses. Misalnya, bahkan setelah Anda menonaktifkan kata sandi Tom Adelstein, dia bisa masuk ke komputer lain di suatu tempat dan menjalankan perintah seperti: Beberapa pertanyaan lain yang mungkin ditanyakan oleh administrator sistem tentang pengguna pribadi yang telah meninggalkan perusahaan meliputi: Jelas, jika sistem Anda menawarkan SSH, Anda harus menghapus kunci resmi dari direktori yang sesuai (misalnya, ~tadelste/.ssh atau .~tadelste/.ssh2) untuk menghentikan pengguna mendapatkan kembali akses ke akunnya dengan cara ini: Ini meneruskan lalu lintas ke port 80 (port tempat server web biasanya mendengarkan) di server internal Anda. www.it-ebooks.info $ cd .ssh :~/.ssh$ ls Author_keys known_hosts :~/.ssh$ rm Authorized_keys :~/.ssh$ ls known_hosts :~/.ssh$ $ ssh -f -N -L8000:intranet.perusahaananda.com:80 domainsaya.com # mv /home/tadelste /home/tadelste.locked # ps aux |grep -i ^tadelste Machine Translated by Google
  202. Gambar 8-14. Manajer Pengguna JDS Sun Microsystems Manajemen Pengguna |

    191 www.it-ebooks.info Manajer Pengguna Grafis Karena penetrasi pasar Linux mulai meningkat pada awal dekade ini, perusahaan seperti Sun Microsystems, Novell, Computer Associates, HP, dan IBM mulai mem-porting perangkat administratif mereka ke Red Hat, SUSE, dan platform Linux lainnya. Selain itu, alat administratif yang dibundel dengan distribusi Linux mulai matang, dengan peningkatan fungsi dan kegunaan. Mari kita lihat contoh salah satu alat tersebut, awalnya dibangun di atas utilitas SUSE yang disebut YaST2. Java Desktop Configurator Sun digambarkan pada Gambar 8-14. Deskripsi fungsi yang dapat Anda lakukan dengan alat ini tersedia di panel di sebelah kiri. Ini mencegah mantan karyawan masuk atau menggunakan file konfigurasi seperti file .forward yang dibahas di bagian sebelumnya. Isinya tetap utuh jika nanti dibutuhkan. Karena Anda sekarang memiliki pengetahuan tentang perintah dan proses yang diperlukan untuk membuat dan membersihkan akun pengguna pribadi, Anda akan menemukan utilitas ini mudah digunakan. Namun, secara umum, Anda akan menemukan mereka kurang fleksibel daripada menggunakan baris perin Machine Translated by Google
  203. Gambar 8-15. Fedora User Manager alat manajemen pengguna grafis 192

    | Bab 8: Layanan Jaringan Lokal www.it-ebooks.info Perhatikan bahwa kotak dialog di atas menanyakan apakah Anda ingin menghapus direktori / home/ tadelste. Seperti yang telah kita bahas sebelumnya, perusahaan Anda mungkin ingin mempertahankan direktori asal mantan karyawan. Dalam hal ini, alat grafis hanya memberi Anda dua opsi: menghapus direktori atau tidak. Itu tidak memberi Anda pilihan untuk mengganti nama direktori, yang, seperti yang telah kita diskusikan sebelumnya, mungkin merupakan jalan yang paling aman dan nyaman untuk diambil. Pada Gambar 8-15, Anda dapat melihat contoh lain yang diambil dari sistem Fedora kami. Dengan alat manajemen pengguna grafis Fedora, Anda dapat melakukan fungsi dasar yang sama seperti yang dijelaskan pada Gambar 8-14. Sekali lagi, ini mungkin tidak menyediakan semua opsi yang Anda perlukan untuk mengelola akun pengguna yang keluar dengan benar. Machine Translated by Google
  204. Manajemen Pengguna | 193 Gambar 8-16. Konfigurator Otentikasi Red Hat

    www.it-ebooks.info Itu tidak mengharuskan Anda untuk menjalankan Sistem X Window. Ini adalah contoh lain dari banyak cara yang disediakan Linux untuk mengelola akun pengguna. Meskipun secara teknis bukan manajer pengguna, Fedora menawarkan alat lain yang dapat Anda gunakan untuk mengonfigurasi sejumlah layanan yang terkait dengan pengguna. Lihatlah Gambar 8-16, alat grafis yang disediakan oleh Fedora saat Anda mengetikkan pengaturan perintah teks. Machine Translated by Google
  205. Mengapa Virtualisasi Populer www.cl.cam.ac.uk/ research/ srg/ netos/ xen). Ini mengacu

    pada satu perangkat keras yang berjalan Pada saat penulisan ini, para pengembang Linux sedang mengerjakan sistem baru yang disebut Virtualisasi adalah konsep yang telah mendapatkan popularitas berkat VMware perusahaan yang sukses (http:// www.vmware.com) dan proyek sumber terbuka Xen (http:// Mesin Virtual berbasis Kernal (KVM), yang akan menjadi bagian dari kernel. sistem operasi yang berbeda) di atas lapisan perangkat lunak yang lebih rendah yang mengelola Seluruh bidang teknologi informasi telah tumbuh secara eksponensial sejak munculnya Bab 9 Bab 9 beberapa kernel (yang terkadang semuanya sama dan terkadang dari sepenuhnya Dalam bab ini, kami membahas area yang mengalami pertumbuhan eksplosif dalam permintaan untuk Tamu yang berbeda terisolasi satu sama lain lebih dari proses yang diisolasi dalam satu sistem operasi. Isolasi ini memberikan keamanan dan ketangguhan, karena kegagalan atau kompromi pada satu tamu tidak mempengaruhi yang lain. Itu Untuk memahami siapa yang menggunakan virtualisasi dan lingkungan di mana itu berharga, Anda harus memahami sedikit tentang kebutuhan bisnis saat ini. Bagian ini memberikan latar belakang itu sebelum kami menjelaskan cara kerja virtualisasi Linux. akses ke perangkat keras. Setiap kernel, yang disebut tamu, bertindak seolah-olah memiliki seluruh proses untuk dirinya sendiri. dari sistem file terdistribusi umum. Organisasi telah melihat infrastruktur mereka konsolidasi pusat data, komputasi kinerja tinggi, penyediaan cepat, kelangsungan bisnis, dan manajemen beban kerja. Perusahaan melihat penghematan biaya nyata akses ke waktu prosesor, perangkat, dan memori untuk setiap tamu. karena virtualisasi Linux, dan analis mencatat bahwa teknologi ini mengubah lanskap bisnis. administrator sistem Linux. Virtualisasi Linux merupakan inti dari tren saat ini di lapisan virtualisasi melakukan banyak fungsi sistem operasi, mengelola Virtualisasi dalam Perusahaan Modern 194 www.it-ebooks.info Machine Translated by Google
  206. Penyebaran server Gambar 9-1. Peternakan server yang luas, satu sistem

    operasi per kotak Mengapa Virtualisasi Populer | 195 www.it-ebooks.info Teknologi komputer telah berkembang dari fokus pada pengelolaan transaksi untuk memanfaatkan proses bisnis. Beberapa perusahaan mengkhususkan diri dalam manajemen sumber daya manusia, yang lain di bidang keuangan dan akuntansi, dan yang lain lagi di bidang manufaktur dan manajemen rantai pasokan. Spesialisasi ini telah menciptakan wilayah kekuasaan di pusat data dan di antara staf TI. Sekarang tambahkan bagian lain ke dalam campuran: aplikasi khusus untuk bidang seperti akuntansi dan keuangan hampir selalu berjalan di server terpisah yang sangat tersedia dengan perangkat keras yang berlebihan demi memastikan kelangsungan bisnis. Kombinasi faktor ini telah mengubah lanskap TI menjadi server fisik yang terisolasi, berfungsi tunggal, berukuran besar, dan kurang dimanfaatkan. Di atas semua ini muncul beban kepatuhan peraturan yang meningkat, yang menyebabkan biaya meningkat lagi: Anda harus meningkatkan kapasitas Anda untuk menyimpan dan mengambil dokumen, dan dalam banyak kasus Anda diharapkan untuk menyimpannya hingga 25 tahun. kapasitas berkembang dari tahun ke tahun. Banyak yang mengaitkan pertumbuhan ini dengan peningkatan konstan dalam komponen komputer dan perangkat lunak. Tapi itu bukan gambaran keseluruhan. • Server dan aplikasi fungsi tunggal (sering dikenal sebagai "silo") dengan penggunaan yang kurang Mari kita lihat lagi hasil pertumbuhan komputer. Kita punya: Jaringan tradisional sekarang dapat menangkap dan mengelola lebih banyak jenis transaksi daripada sebelumnya, dan ini telah menciptakan kebutuhan untuk meningkatkan daya komputasi dan selanjutnya lebih banyak penyimpanan. Pertumbuhan juga terjadi dalam jumlah tempat dan cara kita menyimpan data, yang dengan sendirinya telah menciptakan server sprawl (lihat Gambar 9-1). • Biaya tambahan meningkat karena kompleksitas perangkat lunak dan kebutuhan untuk mengelola jumlah data yang terus meningkat Pertimbangkan apa artinya. Penerus Anda belum tentu memiliki teknologi yang tersedia untuk menghasilkan dokumen yang mungkin diinginkan auditor atau pengacara satu dekade dari sekarang, apalagi dalam seperempat abad. Machine Translated by Google
  207. tanggal • Berkurangnya perangkat keras dan kompleksitas memungkinkan pengurangan staf.

    • Virtualisasi dapat membantu membalikkan tren server sprawl. Kemudian pengembang kernel Linux mengumumkan teknologi simultan multi-threading (SMT) dan hyper-threading mereka yang baru. Linux sekarang dapat mengaktifkan dua utas untuk dieksekusi secara bersamaan pada prosesor yang sama—teknologi penting untuk bertindak sebagai host untuk sistem operasi tamu. Dengan demikian, VMware berjalan dengan baik di atas Linux dan menyediakan lapisan virtualisasi untuk instance lain dari Linux atau sistem operasi lain. • Ini menggantikan susunan sistem yang boros dengan sistem yang lebih sedikit digunakan dengan lebih baik. • Ini menyederhanakan administrasi, karena kernel yang terpisah dengan satu aplikasi yang berjalan pada masing-masing lebih aman dan mudah dikelola daripada satu kernel yang menjalankan banyak aplikasi. Ini juga memelihara lingkungan di mana dokumen dibuat, untuk memenuhi persyaratan peraturan. • Kebutuhan staf untuk berspesialisasi dalam bidang fungsional di mana Anda akan menemukan kurangnya dokumentasi dan tingkat pergantian personel yang tinggi • Kebutuhan untuk melatih dan mendukung pengguna dan administrator dan menjaga perangkat lunak tetap mutakhir Tiba-tiba, Linux menjalankan Mesin Virtualisasi Big Blue dalam bentuk hypervisor open source dan teknologi yang menyertainya. Mesin IBM memungkinkan Linux untuk membuat dan mengelola partisi dan secara dinamis mengalokasikan sumber daya I/O untuk mereka. Dengan gambar virtual, Anda dapat dengan mudah mengompresi data Anda bersama dengan semua program, pengaturan konfigurasi, pustaka sistem operasi, dan metadata lain yang membuat keseluruhan sistem. Memulihkan gambar akan memulihkan sistem persis seperti yang dijalankan pada saat itu, sehingga memudahkan untuk mereproduksi dokumen. Virtualisasi memiliki manfaat sebagai berikut: Kernel Linux 2.6 sangat cocok dengan teknologi SMT IBM. Sebelum versi kernel ini, Linux tidak memiliki penjadwalan thread dan respons arbitrase yang tidak memadai Misalnya, IBM membutuhkan sistem operasi utilitas untuk inisiatif OpenPower-nya. Sekarang Anda mungkin mengerti mengapa virtualisasi perusahaan mendapatkan popularitas dan menjadi salah satu dari sedikit area di mana teknologi dapat mengubah lanskap bisnis. User-Mode Linux (UML) adalah contoh lain dari Linux yang membentuk fondasi untuk virtualisasi. Linux telah menjadi sistem operasi host pilihan untuk mesin virtual karena kemampuannya untuk menjalankan dan mengelola cluster dan grid PC yang besar. Butuh beberapa saat bagi vendor perangkat keras utama untuk menangkapnya, tetapi begitu mereka melakukannya, mereka melihat tanda dolar yang besar. Selama beberapa tahun Linux telah menikmati dermawan yang bersedia menyumbangkan personel dan teknologi canggih untuk upaya pengembangannya. Kontributor tersebut termasuk IBM, Intel, AMD, HP, Novell, Red Hat, Unisys, Fujitsu, dan puluhan lainnya. 196 | Bab 9: Virtualisasi di Perusahaan Modern www.it-ebooks.info Komputasi Berkinerja Tinggi Machine Translated by Google
  208. Komputasi Berkinerja Tinggi | 197 www.it-ebooks.info Ini penting karena dua

    alasan. Pertama, sebagai host untuk mesin virtual, Linux harus berkinerja baik dan unggul dalam mengelola perangkat kerasnya. Kedua, sebagai tamu yang terpisah dari perangkat keras fisiknya, ia harus mempertahankan kinerja dan kapasitasnya untuk menangani berbagai proses sebagai tuan rumah. Saat ini, Linux menjadi tuan rumah yang hebat dan OS tamu yang hebat. Ini mengelola partisi perangkat keras dan virtual dan berjalan dengan baik di partisi tamu, berkat HP dan IBM. Anda dapat membuat instance server terpisah untuk setiap layanan yang ingin Anda berikan: email, DNS, layanan web, dan sebagainya. Jika salah satu gagal, Anda tidak akan merusak yang lain. Mempartisi host fisik juga memungkinkan Anda membuat konfigurasi berbeda untuk setiap server virtual pada perangkat keras fisik yang sama. Dalam satu lingkungan, misalnya, kami membuat mesin virtual (VM) yang lebih kecil untuk server DNS kami dan yang lebih besar untuk layanan email dan web. Ini memungkinkan kami untuk menyebarkan beban kerja dan memelihara perangkat keras fisik yang sama. Gambar 9-2 memberikan gambaran tentang apa yang dapat Anda capai dengan satu server fisik. Dengan virtualisasi Linux, Anda dapat mempartisi satu server fisik menjadi sekelompok server virtual. Setiap server virtual tampak seperti server fisik bagi administrator sistem. karakteristik. Kernel 2.6 memperbaiki masalah itu dan sangat memperluas jumlah prosesor yang dapat dijalankan oleh kernel. Kesinambungan Bisnis dan Manajemen Beban Kerja Bahkan dalam skala kecil, organisasi Anda akan mendapat manfaat dari pemisahan email, DNS, dan server web serta direktori, gateway, dan database. Menempatkan masing-masing layanan ini pada server unik memastikan bahwa jika satu server mati, seluruh infrastruktur Anda tidak runtuh. Tetapi memisahkan layanan Anda pada perangkat keras fisik membutuhkan banyak waktu, ruang, uang, dan overhead. Anda juga perlu mencadangkan dan memulihkan data Anda, menyediakan bencana, dan menggunakan perangkat keras terbaik untuk pekerjaan itu. Jika Anda pernah bertanya-tanya mengapa perusahaan seperti XenSource dan Virtual Iron tiba-tiba muncul begitu saja, sekarang Anda tahu: itu karena kontribusi hypervisor open source. Seperti vendor perangkat keras yang menyadari Linux dapat meningkatkan penjualan komponen PC dan pusat data, vendor perangkat lunak ikut-ikutan. Bahkan Microsoft akhirnya menyadari bahwa mereka perlu masuk ke permainan Linux, berkontribusi pada XenSource dan Virtual Iron. Penyediaan Cepat Kami pertama kali menyelesaikan virtualisasi di jaringan kami dengan membuat instalasi minimal Debian di VM. Setelah kami menyesuaikannya dengan kebutuhan kami, kami mengompresnya dan meletakkannya di media CD-R. Kami kemudian menyiapkan mesin virtual tambahan kami menggunakan VMware dengan konfigurasi berbeda, dan menyalin gambar terkompresi ke setiap direktori yang kami tentukan untuk VM. Machine Translated by Google
  209. Virtualisasi bekerja dengan baik untuk perusahaan kecil, memungkinkan mereka membangun

    infrastruktur dengan perangkat lunak bebas. Bayangkan penghematan biaya hanya dari biaya lisensi! Sekarang, bayangkan strategi seperti apa yang dapat diterapkan oleh perusahaan besar menggunakan Linux. Kami juga menyiapkan mesin virtual Xen menggunakan instalasi minimal Fedora. Kami kemudian menambahkan komponen yang kami butuhkan untuk setiap layanan yang ingin kami berikan. Misalnya, server DNS utama kami berjalan di mesin virtual Xen, sementara server web dan email kami berjalan di VMware instance terpisah. Bagaimana Virtualisasi Membantu Apa yang kami capai dengan virtualisasi? Pertama, kami menghilangkan beberapa server fisik. Kami menerapkan sistem operasi pilihan kami sebagai gambar, jadi kami hanya perlu melalui proses instalasi sekali. Kami kemudian membuat mesin virtual pada perangkat keras cadangan dan secara sistematis menyalin gambar virtual kami untuk memungkinkan pemulihan instan jika terjadi kegagalan sistem. Setelah kami menjalankan server (misalnya, email), kami membuat salinan terkompresi dan membakarnya ke CD-R. Kami secara teratur dan sistematis mencadangkan setiap server virtual ke media visual seperti CD dan DVD. Kami juga mencoba memindahkan gambar ke distribusi Linux yang berbeda, dan mereka berjalan seperti sebelumnya. www.it-ebooks.info Gambar 9-2. Mempartisi satu server fisik menjadi beberapa mesin virtual Server virtual Setiap VM tinggal di direktori. Sebagai contoh, direktori utama kita, /var/ lib/ vmware/ Virtual Machines, berisi beberapa subdirektori seperti debian-31r0a- i386-netinst-kernel2.6. Kami hanya mengompresi sub direktori itu dan menggunakannya untuk penyebaran ke subdirektori lain dengan nama yang sedikit berbeda. Server fisik tunggal 198 | Bab 9: Virtualisasi di Perusahaan Modern Machine Translated by Google
  210. • Sistem harus memiliki setidaknya 256 MB RAM. • grub

    harus menjadi boot loader Anda. • SELINUX harus dinonaktifkan atau permisif, tetapi tidak menegakkan. Di bagian bab ini, kami akan menunjukkan kepada Anda cara menginstal Xen pada satu mesin untuk mengelola dua sistem operasi. Saat Xen masuk ke distribusi Linux standar, instalasi akan menjadi lebih lancar. Tetapi untuk saat ini, beberapa tenaga kerja manual diperlukan. Sekarang, Anda mungkin ingin melihat bagaimana semua ini bekerja. Jadi, mari kita melalui proses menginstal dan mengkonfigurasi Xen dan VMware dan mendemonstrasikan cara memvirtualisasikan jaringan server. Itu terdengar menggembirakan. Mari kita coba, tetapi periksa dulu beberapa persyaratannya: Kami menggunakan Fedora Core 5 (FC5) sebagai sistem operasi host Xen, karena mendukung Xen 3.0 secara langsung. Mari kita tanyakan yum (pengelola paket yang mirip dengan apt-get Debian atau pembaruan Red Hat ) tentang Xen: Paket yang Tersedia inti Jangan heran jika RPM ini memakan data Anda, minum kopi Anda atau mengolok-olok Anda di depan teman-teman Anda. Membaca metadata repositori dari file lokal [1/3] [2/3] [3/3] Memuat plugin "installonlyn" Virtualisasi dapat digunakan untuk menjalankan beberapa versi atau beberapa distribusi Linux pada satu sistem, atau untuk menguji aplikasi yang tidak tepercaya dalam lingkungan kotak pasir. Perhatikan bahwa teknologi Xen masih dalam pengembangan, dan RPM ini telah menerima pengujian yang sangat sedikit. tambahan Menyiapkan repositori #info yum xen Nama : xen Arch : i386 Versi: 3.0.2 Rilis: 3.FC5 Ukuran : 1.4 M Repo : update Ringkasan: Xen adalah monitor mesin virtual Deskripsi: Paket ini berisi alat Xen hypervisor dan Xen, yang diperlukan untuk menjalankan mesin virtual di x86 sistem, bersama dengan paket kernel-xen*. Informasi tentang cara menggunakan Xen dapat ditemukan di halaman proyek Xen. pembaruan Menginstal Xen di Fedora 5 | 199 www.it-ebooks.info Menginstal Xen di Fedora 5 Machine Translated by Google
  211. Kebutuhan akan kernel Linux modifikasi Xen khusus mungkin akan hilang

    di masa mendatang karena Intel dan AMD memperkenalkan dukungan virtualisasi dalam chip mereka. Windows Vista juga diharapkan mendukung virtualisasi di tingkat prosesor. 200 | Bab 9: Virtualisasi di Perusahaan Modern Jalankan program system-config-securitylevel atau edit /etc/ selinux/ config menjadi seperti berikut: Perintah ini akan menginstal hypervisor Xen, kernel Fedora yang dimodifikasi Xen yang disebut domain 0, dan berbagai utilitas: Ini menambahkan xen0 sebagai pilihan kernel pertama di /boot/ grub/ grub.conf, tetapi bukan default: Jika Anda mengubah nilai SELINUX dari penerapan, Anda harus mem-boot ulang Fedora sebelum melanjutkan. www.it-ebooks.info # Perhatikan bahwa Anda tidak perlu menjalankan ulang grub setelah membuat perubahan pada file ini # PEMBERITAHUAN: Anda memiliki partisi /boot. Ini berarti bahwa # # grub.conf dihasilkan oleh anaconda SELINUXTYPE=ditargetkan # # File ini mengontrol status SELinux pada sistem. # # semua jalur kernel dan initrd relatif terhadap /boot/, mis. root (hd0,0) kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00 initrd /initrd- version.img #boot=/dev/hda default=1 timeout=5 menegakkan - kebijakan keamanan SELinux ditegakkan. permisif - SELinux mencetak peringatan alih-alih menegakkan. dinonaktifkan - SELinux sepenuhnya dinonaktifkan. # SELINUX=Disabled # SELINUXTYPE= jenis kebijakan yang digunakan. Nilai yang mungkin adalah: # yum instal kernel-xen0 # # SELINUX= dapat mengambil salah satu dari tiga nilai berikut: # # # tertarget - Hanya daemon jaringan tertarget yang dilindungi. ketat - Perlindungan SELinux penuh. # splashimage=(hd0,0)/grub/splash.xpm.gz judul menu tersembunyi Fedora Core (2.6.17-1.2157_FC5xen0) root (hd0,0) kernel / xen.gz-2.6.17-1.2157_FC5 module / vmlinuz-2.6 .17-1.2157_FC5xen0 untuk root=/dev/VolGroup00/LogVol00 modul /initrd-2.6.17-1.2157_FC5xen0.img judul Fedora Core (2.6.17-1.2157_FC5) root (hd0,0) kernel /vmlinuz-2.6.17 -1.2157_FC5 ro root=/dev/VolGroup00/ LogVol00 initrd /initrd-2.6.17-1.2157_FC5.img judul Fedora Core (2.6.15-1.2054_FC5) root (hd0,0) Machine Translated by Google
  212. Menginstal Xen di Fedora 5 | 201 # /usr/sbin/xm daftar

    standar = 1 0 Nama # xenguest-install.py Apa nama mesin virtual Anda? guest1 Berapa banyak RAM yang harus dialokasikan (dalam megabyte)? 256 Apa yang ingin Anda gunakan sebagai disk (jalur)? /xenguest Di mana lokasi pemasangannya? http://127.0.0.1/dvd 1 r----- Domain-0 # mkdir /var/www/html/dvd # mount -t iso9660 /dev/dvd /var/www/html/dvd # apachectl start default=0 20.5 kernel /vmlinuz-2.6.15-1.2054_FC5 untuk root=/dev/VolGroup00/LogVol00 initrd / initrd-2.6.15-1.2054_FC5.img default=0 ID Mem(MiB) Waktu Status VPU 880 Fedora Inti 5 www.it-ebooks.info Pada titik ini, instalasi FC5 dimulai. Pilih antara mode teks dan mode grafik (jika X sedang berjalan) melalui vnc. Jika Anda memilih mode teks, Anda akan terhubung ke konsol. Lanjutkan seperti biasa untuk instalasi Fedora atau Red Hat. Pada layar alamat IP, berikan tamu alamat yang berbeda dari host, atau gunakan DHCP (jika Anda mengatakan dhcp="dhcp" di file konfigurasi Xen, yang akan dijelaskan di bagian berikutnya). Layar terakhir akan meminta Anda untuk reboot. Lepas DVD dan keluarkan. Anda hanya akan me-reboot sistem tamu baru Anda, bukan Xen atau host. Fedora Core 5 memiliki skrip instalasi tamu Xen yang menyederhanakan proses, meskipun hanya menginstal tamu FC5. Script mengharapkan untuk mengakses pohon instalasi FC5 melalui FTP, Web, atau NFS; untuk beberapa alasan, Anda tidak dapat menentukan direktori atau file. Kami akan menggunakan DVD instalasi FC5 kami dan menyajikannya dengan Apache: ke: Sekarang kita akan menjalankan skrip instalasi dan menjawab pertanyaannya: Output harus menunjukkan bahwa Domain-0 sedang berjalan. Domain 0 mengontrol semua sistem operasi tamu yang berjalan pada prosesor, mirip dengan bagaimana kernel mengontrol proses dalam sistem operasi. Memasang Xen Guest OS Xen sekarang mengendalikan prosesor, tetapi Anda perlu menambahkan setidaknya satu sistem operasi tamu. Kami akan mulai dengan menginstal tamu Fedora Core 5, karena memudahkan pekerjaan, dan kemudian kami akan menawarkan beberapa tip untuk varian Linux lainnya. Untuk menjadikan kernel Xen sebagai default, ubah baris ini: Sekarang Anda dapat melakukan reboot. Xen seharusnya dimulai secara otomatis, tetapi mari kita periksa: Machine Translated by Google
  213. 202 | Bab 9: Virtualisasi di Perusahaan Modern Ketika kami

    menjalankan xenguest-install.py di bagian sebelumnya, itu menghasilkan tamu Xen xmexample1 dan xmexample2 adalah file sampel yang dikomentari. Untuk sintaks file lengkap, konfigurasi /etc/ xen/ guest1, dengan beberapa baris tambahan: Ini berisi beberapa, tetapi tidak semua, arahan yang dibutuhkan tamu. File konfigurasi tamu minimal terlihat seperti ini: Pada titik ini, Anda akan memiliki dua sistem operasi (host1 dan guest1) yang beroperasi secara independen dan hidup dalam harmoni, masing-masing dengan sistem file, koneksi jaringan, dan memorinya sendiri. Untuk membuktikan bahwa kedua server berjalan, coba perintah ini: melihat: Xen tidak memulai sistem operasi tamu secara otomatis. Anda perlu mengetik ini Untuk memulai domain Xen secara otomatis, gunakan perintah ini: Jika Anda menginginkan OS tamu selain FC5, Anda harus mengedit konfigurasi tamu Xen file, yang merupakan file teks (sebenarnya, skrip Python) di direktori /etc/ xen . perintah pada host: Tamu lainnya www.it-ebooks.info # /sbin/chkconfig --level 345 xendomain aktif MEM(k) MEM(%) MAXMEM(k) MAXMEM(%) VCPUS NETS 686 26.7 0 # man xmdomain.cfg bootloader="/usr/bin/pygrub" 3 Mem: 982332k total, 414900k digunakan, 567432k CPU gratis: 1 @ 2532MHz 261996 26,7 256 1 -b----- 1 129 vif = [ 'mac=00:16:3e:63:c7:76' ] xentop - 21:04:38 Xen 3.0-tidak stabil 8 # daftar xm Waktu Status VPU ID Mem(MiB) 1 memori = "256" # xm buat tamu1 NETTX(k) NETRX(k) SSID # File konfigurasi Xen yang dihasilkan secara otomatis 14 131144 13.4 tanpa batas # /sbin/service xendomain dimulai on_reboot = 'mulai ulang' 262144 NAMA NEGARA CPU(dtk) CPU(%) 14.5 0 131 uuid = "bc2c1684-c057-99ea-962b-de44a038bbda" 2 domain: 1 berjalan, 1 diblokir, 0 dijeda, 0 macet, 0 sekarat, 0 mati 0 1 Nama Domain-0 tamu1 # xentop 128 1 r----- 686.0 0,3 disk = [ 'file:/xenguest,xvda,w' ] Domain-0 -----r 1488528 80298 tamu1 --b--- tidak ada 0.1 nama = "tamu1" on_crash = 'mulai ulang' Machine Translated by Google
  214. 4. Alokasi memori awal untuk tamu, dalam megabita: 2. Nama

    path gambar kernel berkemampuan Xen untuk domain tamu: Jika direktif dhcp hilang atau disetel ke "off", Anda harus menentukan informasi jaringan secara statis, seperti yang Anda lakukan saat mengkonfigurasi sistem: ip="192.168.0.101" netmask="255.255.255.0" gateway="192.168.0.1" nama host="vm01.contoh.com" 6. Informasi antarmuka jaringan dalam direktif vif . Arahan ini mungkin berisi bait untuk setiap perangkat jaringan. Jaringan default ditentukan dengan: Sebuah bait terdiri dari string tiga parameter ('host_dev, guest_dev, mode'). host_dev adalah area penyimpanan domain seperti yang terlihat oleh host. Ini mungkin salah satu dari: file:pathname Sebuah gambar file loopback (satu file lokal yang diperlakukan Xen sebagai sistem file); ini dibuat ketika Anda menjalankan xm create atau program xen-create-image . Arahan dhcp mengontrol apakah DHCP digunakan atau informasi antarmuka dikodekan secara keras. Berikut ini menentukan penggunaan DHCP: 3. Perangkat root untuk domain tamu: phy:device Sebuah perangkat fisik. 1. Nama domain tamu yang unik: 5. Ruang disk untuk domain tamu. Ini didefinisikan dalam satu atau lebih blok disk guest_dev adalah perangkat fisik seperti yang terlihat oleh domain tamu, dan modenya adalah r untuk read-only atau w untuk read-write. Jadi, contoh direktif disk untuk dua tamu adalah: bait perangkat, masing-masing diapit oleh tanda kutip tunggal atau ganda: Jumlah memori untuk semua tamu Xen tidak boleh melebihi memori fisik dikurangi 64 MB untuk Xen itu sendiri. Menginstal Xen di Fedora 5 | 203 www.it-ebooks.info disk = [ 'stanza1', 'stanza2' ] disk=['file:/vserver/images/vm01.img, hda1, w', 'file:/vserver/images/vm01-swap. img, hda2, w'] memori=128 dhcp="dhcp" kernel="/boot/vmlinuz-2.6.12.6-xenU" vif=[ '' ] nama="vm01" root="/dev/hda1" Machine Translated by Google
  215. Menginstal VMware Kemudian, kami menginstal FC5 di bawah mesin virtual

    VMware. Kami mengunduh Vmware-server-1.0.1-29996.tar.gz dan mendekompresnya ke direktori instalasi yang disebut vmware-server-distrib. Di dalam direktori kami menemukan vmware install.pl dan menjalankannya dengan perintah ./vmware-install.pl. Segera setelah itu, program penginstalan dimulai dan menampilkan pesan berikut: VMware telah membuat servernya tersedia secara gratis, dan kodenya bahkan open source. Anda dapat menemukannya di http:// www.vmware.com/ products/ server. Kami menemukan itu kuat dan ramah pengguna. Anda dapat membaca tentang inisiatif sumber terbuka dan sumber komunitas VMware di situs webnya. Instalasi VMware Server dimulai dengan beberapa pertanyaan seperti ini, berdasarkan skrip instalasi yang mengendus sistem operasi dan tata letak file Anda. Setelah Anda memiliki file konfigurasi tamu, buat tamu Xen dengan perintah ini: Seperti yang kami sebutkan sebelumnya, startup seperti XenSource dan Virtual Iron telah memanfaatkan dukungan kernel Linux terhadap teknologi hypervisor dari IBM. Di bawah tekanan kompetitif dari Xen, VMware juga telah menyerahkan kontribusi open source-nya sendiri kepada pengembang kernel, menyadari bahwa VMware akan berjalan lebih baik di Linux jika VMware memberikan sedikit bantuan kepada kernel Linux. Halaman manual xm memberikan contoh tamu minimal berikut, dengan gambar file loopback pada host yang muncul sebagai perangkat root pada tamu: Saat kami menjalankan Xen menggunakan Fedora Core 5, kami memutuskan untuk menginstal VMware di server Ubuntu sebagai host kami dan menggunakan Debian sebagai sistem operasi tamu kami. Kami juga mengelola instance VMware jarak jauh dari desktop Ubuntu menggunakan konsol VMware. di mana guest_name bisa menjadi nama path lengkap atau nama file relatif (dalam hal ini Xen menempatkannya di /etc/ xen/ guest_name). Xen akan membuat domain tamu dan mencoba mem-boot-nya dari file atau perangkat yang diberikan. Opsi -c melampirkan konsol ke domain saat dimulai, sehingga Anda dapat menjawab pertanyaan penginstalan yang muncul. 204 | Bab 9: Virtualisasi di Perusahaan Modern www.it-ebooks.info memori = 128 nama = "MyLinux" root = "/ dev/hda1 ro" disk = [ "file:/var/xen/mylinux.img,hda1,w" ] Menginstal konten paket. Di direktori mana Anda ingin menginstal file biner? [/usr/bin] kernel = "/boot/vmlinuz-2.6-xenU" Membuat database installer baru menggunakan format tar3. # xm buat -c guest_name Machine Translated by Google
  216. Selama proses instalasi, skrip meminta Anda untuk menerima lisensi produk

    VMware. Anda harus membacanya sebelum menerimanya. Setelah Anda menyetujui lisensi, VMware memverifikasi bahwa file kompiler dan header di sistem Anda kompatibel satu sama lain dan membangun binari VMware menggunakan kompiler Anda. Anda akan melihat pesan seperti: Selain itu, Anda akan melihat kompilasi kode seperti contoh berikut: Menjelang akhir penginstalan, skrip akan memberi tahu Anda bahwa penginstalan kode telah selesai dan menawarkan Anda sebuah perintah yang dapat Anda gunakan jika Anda ingin unin stall server: Skrip instalasi juga akan meminta Anda untuk menjalankan perintah konfigurasi: Saat proses instalasi berakhir, Anda akan melihat pesan berikut: Menginstal VMware | 205 www.it-ebooks.info Layanan NAT di /dev/vmnet8 selesai Jaringan khusus host di /dev/vmnet1 (latar belakang) selesai Instalasi VMware Server 1.0.1 build-29996 untuk Linux berhasil diselesaikan. Anda dapat memutuskan untuk menghapus perangkat lunak ini dari sistem Anda kapan saja dengan menjalankan perintah berikut: "/usr/bin/vmware-uninstall.pl". Jaringan khusus host di /dev/vmnet8 (latar belakang) selesai Jalur "/usr/lib/vmware" tidak ada saat ini. Program ini akan membuatnya, termasuk direktori induk yang dibutuhkan. Apa ini yang kau inginkan? [Ya] selesai selesai Memulai mesin virtual VMware selesai Sebelum menjalankan VMware Server untuk pertama kalinya, Anda perlu mengkonfigurasinya dengan menjalankan perintah berikut: "/usr/bin/vmware-config.pl". Apakah Anda ingin program ini menjalankan perintah untuk Anda sekarang? [Ya] make[1]: Memasuki direktori '/usr/src/linux-headers-2.6.15-26-k7' Monitor mesin virtual Memulai layanan VMware: Konfigurasi VMware Server 1.0.1 build-29996 untuk Linux untuk kernel yang berjalan ini berhasil diselesaikan. MODPOST Jaringan yang dijembatani di /dev/vmnet0 CC [M] /tmp/vmware-config0/vmnet-only/driver.o CC [M] /tmp/vmware-config0/vmnet-only/hub.o CC [M] /tmp/ vmware-config0/vmnet-only /userif.o CC [M] /tmp/ vmware-config0/vmnet-only/netif.o CC [M] /tmp/vmware- config0/vmnet-only/bridge.o CC [M] /tmp/vmware- config0 /vmnet-only/procfs.o CC [M] /tmp/vmware- config0/vmnet-only/smac_compat.o DIKIRIM /tmp/vmware- config0/vmnet-only/smac_linux.x386.o LD [M] /tmp/ vmware- config0/vmnet-only/vmnet.o Membangun modul, tahap 2. Ethernet Virtual Machine Translated by Google
  217. Anda dapat mengunduh citra sistem operasi yang ada, yang disebut

    VMware sebagai alat, dari http:// www.vmware.com/ vmtn/ appliances/ directory. Kami memilih debian-31r0a-i386-netinst-kernel2.6.zip, yang kami tempatkan di bawah direktori / var/ lib/ vmare/ Virtual Machines dan didekompresi. Tangkapan layar menunjukkan kita menjalankan perintah ifconfig. Kami menguji instance ini untuk memastikan kartu Ethernet virtual kami terikat dengan benar ke alamat IP yang kami siapkan. Dengan VMware Server Console berjalan, kami terhubung ke mesin virtual jarak jauh dan masuk sebagai root, seperti yang ditunjukkan pada Gambar 9-3. Setelah kami terhubung ke host jarak jauh, VMware meminta kami untuk membuat mesin virtual. Karena kami telah membuatnya, kami mengklik menu File dan membuka direktori yang berisi instance Debian kami yang sudah ada. Tindakan ini menambahkan Debian ke inventaris VM. Konsol kami kemudian muncul mirip dengan Gambar 9-4, yang memberi kami gambaran tentang fungsi operasi yang tersedia. Setelah kami memiliki gambar dasar kami, kami memulai konsol manajemen VMware pada desktop Ubuntu jarak jauh di belakang firewall di lokasi yang jauh. Kami menjalankan perintah: Kami kemudian dapat memulai Debian. Saat sistem di-boot, Debian mulai menjalankan fase selanjutnya dari skrip instalasinya. Kami membiarkannya berjalan, dan dalam waktu singkat kami sampai ke layar pada Gambar 9-5. Kami memilih untuk mengonfigurasi Debian secara manual daripada memilih salah satu konfigurasi yang telah ditentukan sebelumnya. Itu memungkinkan kami untuk membuat server Debian default untuk digunakan di instance tambahan VMware Server. Gambar 9-6 menunjukkan sistem Debian yang sedang berjalan. Kami kemudian mengonfigurasi konsol untuk terhubung ke sistem operasi tamu kami dari jarak jauh. Gambar 9-3. Menghubungkan ke host virtual jarak jauh 206 | Bab 9: Virtualisasi di Perusahaan Modern www.it-ebooks.info $ gksu vmware-server-console Machine Translated by Google
  218. Kami kemudian menerapkan gambar itu di host lain, setelah kami

    menentukan peran dan persyaratan sumber daya setiap sistem tamu. Gambar 9-7 memberikan ringkasan gambar Debian. Di sisi kanan layar Anda dapat melihat konfigurasi host. Kami dapat mengubah server virtual secara dinamis untuk menambah memori, ruang disk, kartu Ethernet, prosesor, dan berbagai perangkat sesuai kebutuhan dan saat kami menyiapkan mesin tambahan. Setelah kami memiliki gambar Debian dasar kami, kami zip dan membakarnya ke media CD-R. www.it-ebooks.info Menginstal VMware | 207 Gambar 9-5. Skrip instalasi Debian berjalan di bawah mesin virtual jarak jauh Gambar 9-4. Terhubung ke host jarak jauh siap untuk memulai Machine Translated by Google
  219. www.it-ebooks.info 208 | Bab 9: Virtualisasi di Perusahaan Modern Gambar

    9-7. Ringkasan konsol dari gambar tamu Debian dasar kami Gambar 9-6. Instance Debian yang diinstal pada host jarak jauhnya Machine Translated by Google
  220. Gambar 9-8. VMware bertanya tentang pengidentifikasi unik gambar mesin virtual

    Menginstal VMware | 209 www.it-ebooks.info Konsol manajemen VMware memperhatikan kami menambahkan gambar. Untuk membedakan antara beberapa gambar yang mungkin, itu mendorong kami untuk pengenal unik (UUID) dalam dialog yang ditunjukkan pada Gambar 9-8. Karena kami menyalin Fedora 5 dan memiliki semua file yang menyusun gambar, tidak masalah opsi mana yang kami pilih dari dialog. Saat Anda membuka mesin virtual baru, VMware memberi Anda kesempatan untuk memverifikasi konfigurasi perangkat keras virtual. Gambar 9-9 memberi Anda gambaran tentang inventaris perangkat keras virtual yang tersedia untuk Fedora Core 5. Menginstal VMware Guest OS Untuk tugas terakhir kami, menginstal sistem operasi lain, kami mengunduh Fedora Core 5 dari situs komunitas VMware, memindahkannya ke direktori Mesin Virtual , dan mendekompresinya seperti yang kami lakukan dengan Debian. Selanjutnya, kami menambahkannya ke inventaris kami melalui menu File. Gambar 9-8 menunjukkan pertanyaan tentang pengenal unik; Anda dapat menyimpan yang sudah ada. Selain mengunduh gambar dan memuatnya ke dalam konsol manajemen, Anda dapat menginstal sistem operasi Linux dari CD-ROM distribusi Linux standar. Machine Translated by Google
  221. 210 | Bab 9: Virtualisasi di Perusahaan Modern Gambar 9-9.

    Konfigurasi perangkat keras virtual VMware untuk Fedora Core 5 Bagaimanapun, teknologi seperti Xen dan VMware memiliki manfaat yang tak terbantahkan. Virtualisasi meningkatkan pemanfaatan server dan mengurangi penyediaan perangkat keras yang berlebihan dengan mengkonsolidasikan sumber daya sistem. Dengan menjalankan perangkat lunak Anda saat ini di lingkungan virtual, Anda tidak hanya dapat mempertahankan investasi Anda dalam perangkat lunak tersebut, tetapi juga memanfaatkan server standar industri yang berbiaya rendah. Mudah-mudahan, bab ini telah memberi Anda pengetahuan dan keterampilan yang Anda butuhkan untuk mengimplementasikan lingkungan virtual Anda sendiri. Anda sekarang memiliki kesempatan untuk bereksperimen dan bersenang-senang dengan teknologi virtualisasi gratis. Melakukan hal itu dapat memposisikan Anda sebagai spesialis di bidang yang hanya sedikit dipahami. Banyak analis mengatakan mereka akan duduk di pinggir dan menunggu untuk melihat apakah isasi virtual Linux berlangsung. Sebagai administrator sistem, Anda mungkin ingin mempertimbangkan risiko dan manfaat menguasai teknologi ini. Virtualisasi tidak setara dengan pengenalan PC oleh IBM atau pengenalan sistem file terdistribusi Microsoft. Dampak teknologi hypervisor bahkan tidak dapat dibandingkan dengan program ERP seperti SAP, PeopleSoft, atau Oracle Financials. www.it-ebooks.info Virtualisasi: Iseng-iseng yang Lewat? Machine Translated by Google
  222. 211 Bab 10 Shell (antarmuka ke sistem operasi) adalah salah

    satu dari banyak inovasi yang diwarisi dari kakek buyut Linux, Unix. Pada tahun 1978, peneliti Bell Labs Stephen Bourne mengembangkan Bourne Shell untuk Versi 7 Unix. Itu disebut sh (Unix dihargai singkat ness), dan itu mendefinisikan fitur standar yang masih ditampilkan semua shell. Shell berevolusi dari fondasi itu, mengarah pada pengembangan shell Korn (ksh, atau course), shell C (csh), dan akhirnya shell Bash (bash) yang sekarang menjadi standar pada sistem GNU/Linux. bash adalah plesetan/akronim untuk Bourne-Again Shell, dan masih mendukung skrip yang ditulis untuk shell Bourne asli. Linux sendiri menggunakan skrip shell di mana-mana, terutama untuk tugas yang dapat disesuaikan seperti layanan dan manajemen proses. Jika Anda memahami bagaimana skrip sistem tersebut ditulis, Anda dapat menginterpretasikan langkah-langkah yang mereka ambil dan menyesuaikannya untuk kebutuhan Anda sendiri. Setiap alat memiliki batasannya, dan pada titik tertentu Anda mungkin menemukan bahwa bash bukanlah solusi terbaik untuk semua masalah Anda. Menjelang akhir bab ini kita akan memeriksa aplikasi kecil yang ditulis dalam sejumlah bahasa scripting: bash serta Perl, PHP, dan Python (tiga P yang terkait dengan akronim LAMP yang kami sebutkan di Bab 6). Anda dapat membandingkan gaya, sintaks, ekspresi, kemudahan penggunaan, dan penerapannya ke domain yang berbeda. Tidak setiap masalah adalah paku, tetapi palu yang cukup besar dapat memperlakukannya seperti itu. Bab ini dimulai dengan dasar-dasar bash : prompt shell, perintah dan argumen, variabel, ekspresi, dan pengalihan I/O. Jika Anda sudah terbiasa dengan ini, Anda tidak akan ketinggalan banyak dengan melewatkan beberapa halaman (kecuali mungkin obat untuk insomnia). Sebagai administrator sistem Linux, Anda akan menggunakan dua alat lebih dari yang lain: editor teks untuk membuat dan mengedit file teks, dan shell untuk menjalankan perintah. Pada titik tertentu Anda akan bosan mengetik perintah berulang dan mencari cara untuk menghemat jari Anda dan mengurangi kesalahan. Saat itulah Anda akan menggabungkan editor teks dan shell untuk membuat program Linux paling sederhana: skrip shell. Skrip www.it-ebooks.info BAB 10 Machine Translated by Google
  223. awal bash admin@server1:~$ tanggal Kamis 24 Agustus 09:16:56 CDT 2006

    #!/bin/bash isi skrip... #!/bin/bash echo \ halo\ dunia Microsoft Windows menggunakan akhiran nama file untuk menentukan jenis file dan penerjemah apa yang harus menjalankannya. Jika Anda mengubah akhiran file, itu mungkin berhenti bekerja. Di Linux, nama file tidak ada hubungannya dengan eksekusi (walaupun konvensi berikut dapat berguna untuk alasan lain). 212 | Bab 10: Skrip www.it-ebooks.info Banyak sistem operasi menawarkan antarmuka baris perintah di masa-masa awal, dan mereka biasanya mengizinkan perintah untuk disimpan dalam file teks dan dijalankan sebagai pekerjaan batch (konsep yang mudah dipahami pada saat itu). Segera menjadi wajar untuk memperkenalkan cara-cara untuk mengirimkan parameter ke skrip dan mengizinkan skrip untuk mengubah perilakunya di bawah kondisi yang berbeda. Shell Unix membuat lompatan luar biasa dalam fleksibilitas, mengubah shell menjadi bahasa pemrograman yang sebenarnya. Baris pertama khusus untuk skrip Linux: jika dimulai dengan dua karakter #!, sisa baris pertama adalah nama file dari perintah yang akan dijalankan untuk memproses sisa skrip. (Jika karakter # tidak diikuti oleh !, itu ditafsirkan sebagai komentar yang berlanjut hingga akhir baris.) Trik ini memungkinkan Anda menggunakan program apa pun untuk menginterpretasikan file skrip Anda. Jika programnya adalah shell tradisional seperti sh atau bash, file tersebut disebut skrip shell. Di akhir bab ini, kami akan menampilkan skrip untuk Perl, PHP, dan Python. Gunakan editor teks favorit Anda (atau bahkan yang tidak Anda sukai) untuk membuat file tiga baris ini, dan simpan ke file bernama hello: Contoh interaktif kami akan menampilkan contoh shell prompt, perintah dengan argumen opsional , dan output perintah, seperti ini: #!/bin/bash echo hello world echo bonjour monde File ini belum merupakan skrip yang berfungsi. Kita akan menunjukkan bagaimana menjalankannya di bagian berikutnya, tetapi pertama-tama kita perlu menjelaskan beberapa aturan sintaks dasar. Shell /bin/ bash akan menginterpretasikan skrip ini baris demi baris. Ia mengharapkan setiap perintah berada pada satu baris, tetapi jika Anda mengakhiri baris dengan garis miring terbalik (\), bash akan memperlakukan baris berikutnya sebagai kelanjutan: Kami akan menampilkan isi skrip shell seperti ini: Machine Translated by Google
  224. Pathname dan Izin Ini adalah cara yang baik untuk membuat

    garis yang rumit lebih mudah dibaca. Mengapa bash tidak dapat menemukannya? Saat Anda menentukan perintah, Linux mencari daftar direktori yang disebut path untuk file dengan nama itu dan menjalankan yang pertama ditemukan. Dalam hal ini, hello tidak ada di salah satu direktori ini. Jika Anda memberi tahu sistem di direktori mana hello , itu akan menjalankannya. Nama path bisa absolut (/ home/ admin/ hello) atau relatif (./ hello berarti file hello di direktori saat ini). Kami akan menjelaskan cara menentukan direktori di jalur Anda di bagian berikutnya, tetapi pertama- tama kita harus berurusan dengan izin. A – menunjukkan bahwa bendera tidak disetel. Leading – adalah flag direktori; itu d untuk direktori atau – untuk file. Berikutnya adalah izin untuk pemilik file, grup tempat pemiliknya berada, dan semua orang lainnya. Pemilik (admin) dapat membaca (r) dan menulis (w) file ini, sementara orang lain dalam grup (dalam hal ini, juga bernama admin) dan semua orang hanya dapat membacanya (r--). Tidak ada yang bisa mengeksekusi (menjalankan) file, karena karakter ketiga di setiap set tiga karakter adalah – bukan x. Skrip shell tidak akan berjalan tanpa izin file tertentu. Mari kita periksa izin pada halo: File hello dapat dieksekusi dengan menjalankan perintah bash dengan argumen hello : Shell mengabaikan baris yang diisi dengan spasi (spasi, tab, baris kosong). Itu juga mengabaikan semuanya, mulai dari karakter komentar (#) hingga akhir baris. Ketika bash membaca baris kedua skrip ini (echo hello world), ia memperlakukan kata pertama (echo) sebagai perintah untuk menjalankan dan kata-kata lainnya (hello world) sebagai argumennya. Perintah echo hanya menyalin argumennya ke outputnya. Baris ketiga menjalankan perintah gema lain, tetapi dengan argumen yang berbeda. Sekarang mari kita coba menjalankan hello tanpa bash chaperon-nya: Untuk melihat apa yang telah Anda masukkan ke dalam file hello, Anda dapat mencetak isinya ke layar: admin@server1:~$ bash halo halo dunia bonjour monde admin@server1:~$ admin@server1:~$ hello bash: hello: perintah tidak ditemukan admin@server1:~$ cat hello #!/ bin/bash echo hello world echo bonjour monde admin@server1:~$ ls -l halo -rw- r--r-- 1 admin admin 48 2006-07-25 13:25 halo awal bash | 213 www.it-ebooks.info Machine Translated by Google
  225. Jalur Default Sekarang mari kita coba menjalankan hello dengan nama

    path relatif: Daftar direktori di mana bash harus mencari perintah ditentukan dalam variabel lingkungan shell yang disebut PATH. Untuk melihat apa yang ada di jalur Anda, masukkan: Sekarang kita dapat menjalankan skrip dari baris perintah: Gaya argumen izin lainnya, menggunakan huruf, mungkin lebih intuitif: Untuk menambahkan izin baca dan jalankan dengan cepat untuk diri Anda sendiri, grup Anda, dan orang lain, Linux menyimpan nama-nama khusus . untuk direktori saat ini dan .. untuk direktori induk direktori saat ini. Jika Anda ingin Linux selalu menemukan perintah seperti hello di direktori Anda saat ini, tambahkan direktori saat ini ke PATH: Kali ini Linux menemukannya tetapi tidak menjalankannya. Gagal karena file hello tidak memiliki izin yang dapat dieksekusi. Anda perlu memutuskan siapa yang akan diizinkan untuk menjalankannya: hanya Anda (pemilik), siapa pun di grup Anda, dan/atau pengguna di grup lain. Ini adalah keputusan keamanan praktis yang harus sering dibuat oleh administrator. Jika izin terlalu luas, orang lain dapat menjalankan skrip Anda tanpa sepengetahuan Anda; jika barisnya terlalu sempit, skrip mungkin tidak berjalan sama sekali. memasuki: Perintah untuk mengubah hak akses disebut chmod (untuk mengubah mode), dan dapat menggunakan angka atau huruf oktal Unix gaya lama. Mari kita coba keduanya, memberikan izin baca/tulis/eksekusi untuk diri Anda sendiri, izin baca/eksekusi untuk grup Anda, dan tidak untuk orang lain (apa yang pernah mereka berikan kepada Anda?). Untuk gaya oktal, baca=4, tulis=2, dan eksekusi=1. Nomor pengguna akan menjadi 4+2+1 (7), grup 4+1 (5), dan lainnya 0: 214 | Bab 10: Skrip www.it-ebooks.info admin@server1:~$ ./halo halo dunia bonjour monde admin@server1:~$ chmod u=rwx,g=rx halo admin@server1:~$ ls -l halo -rwxr-x--- 1 admin admin 50 2006-08-03 15:44 halo admin@server1:~$ echo $PATH /bin:/usr/bin admin@server1:~$ ./hello bash: ./hello: Izin ditolak admin@server1:~$ chmod +xr halo admin@server1:~$ ls -l halo -rwxr-xr- x 1 admin admin 50 2006-08-03 15:44 halo admin@server1:~$ PATH=$PATH:. admin@server1:~$ chmod 750 halo admin@server1:~$ ls -l halo -rwxr- x--- 1 admin admin 50 2006-08-03 15:44 halo Machine Translated by Google
  226. Pengalihan I/O Untuk membuat perubahan seperti tongkat yang satu ini,

    Anda harus membuat perubahan permanen pada PATH Anda. Ini dapat dilakukan oleh pengguna individu dalam file .bashrc yang terletak di direktori home pengguna, atau oleh administrator sistem dalam file startup seluruh sistem (biasanya terletak di direktori /etc ); cukup tambahkan pernyataan ke file seperti perintah yang baru saja ditampilkan. Praktik umum adalah meletakkan skrip Anda sendiri di direktori seperti /usr/ local/ bin atau pribadi ~/ bin daripada direktori sistem seperti /bin, / sbin, atau /usr/ bin. Untuk menambahkan direktori ini ke PATH Anda secara permanen, tambahkan baris seperti berikut di akhir file .bashrc Anda: Dalam contoh kedua, pengalihan terjadi secara diam-diam. Jika ada kesalahan yang terjadi, Anda akan melihatnya di layar daripada di file (itulah sebabnya ada kesalahan standar): Atau, Anda dapat memindahkan skrip hello ke salah satu direktori yang sudah ada di PATH. Namun, direktori ini biasanya dilindungi sehingga hanya pengguna root yang dapat meletakkan file di sana, untuk menjaga keamanan. Pengalihan dan pipa I/O lebih merupakan inovasi Unix yang telah disalin oleh Microsoft dan banyak lainnya tanpa rasa malu. Shell memberi Anda akses ke fitur-fitur ini dengan cara yang sangat intuitif. Untuk skrip yang lebih kompleks daripada hello (yaitu, hampir semua skrip), salah satu metode memiliki implikasi keamanan. Jika . ada di PATH Anda, Anda berisiko jika orang lain meletakkan skrip berbeda bernama hello di direktori lain dan Anda melakukan kesalahan ke direktori itu dan mengetik hello, Anda akan mengeksekusi hello pengguna lain dan bukan yang Anda maksudkan. Saat Anda mengetik perintah di konsol atau di jendela teks, jari Anda memberikan masukan standar perintah, dan mata Anda membaca keluaran standar perintah dan keluaran kesalahan standar . Namun, Anda dapat menghasilkan input atau menangkap output tersebut dengan mengganti jari atau mata Anda dengan sebuah file. Mari kita jalankan perintah ls dengan output standarnya ke layar seperti biasa, dan kemudian dialihkan (dengan >) ke file: Kebenaran naskah juga menjadi perhatian. Kami cukup yakin tentang apa yang dilakukan skrip hello kami sekarang, tetapi kami mungkin tidak yakin setelah menambahkan seratus baris lagi. ekspor PATH=$PATH:/usr/local/bin admin@server1:~$ ls halo admin@server1:~$ ls > files.txt admin@server1:~$ admin@server1:~$ ls ciao > files.txt ls: ciao: Tidak ada file atau direktori seperti itu admin@server1:~$ awal bash | 215 www.it-ebooks.info Machine Translated by Google
  227. 216 | Bab 10: Skrip Sadarilah bahwa jika files.txt ada

    sebelum Anda menjalankan perintah ini, itu akan ditimpa sepuluh. Jika Anda ingin menambahkan konten baru ke file daripada menimpanya, gunakan karakter append (>>) sebagai gantinya: Perintah ini akan menghitung berapa kali string foo muncul di salah satu file di direktori saat ini. Langkah pertama membuat file sementara files.txt. Langkah kedua membaca darinya, dan pada langkah ketiga kita mempraktikkan kebersihan disk yang baik dan menyingkirkannya. Masa pakai file sementara itu singkat tetapi produktif. Gunakan >> daripada > di mana pun Anda ingin menambahkan daripada menimpa. Jika Anda ingin mengarahkan output standar dan kesalahan standar ke file yang sama, lakukan ini: 2> yang tidak elegan adalah sihir pengalihan kesalahan standar. Pengalihan kesalahan standar dapat berguna dengan proses panjang seperti kompilasi, sehingga Anda dapat meninjau pesan kesalahan nanti daripada mengarahkan kursor ke layar. Kita dapat menggabungkan ketiga langkah ini menjadi satu dan menghindari file sementara dengan penemuan terbaik Unix, pipa. Sebuah pipa menghubungkan output dari satu perintah ke input dari perintah lain. Simbol pipa adalah |, seperti pertemuan > dan < dengan kecepatan tinggi. Output standar dari perintah pertama menjadi input standar untuk perintah kedua, menyederhanakan langkah kita sebelumnya: admin@server1:~$ ls -l | grep foo Anda juga dapat menyambungkan pipa bersama-sama: Jika files.txt tidak ada, itu akan dibuat sebelum penambahan dimulai. & 1 berarti “tempat yang sama dengan keluaran standar”, yang dalam hal ini adalah files.txt. Jalan pintas untuk perintah sebelumnya adalah: Wajar jika input standar juga dapat dialihkan. Berikut adalah contoh yang dibuat-buat yang mencari nama file yang berisi string foo: Anda juga dapat mengarahkan kesalahan standar. Berikut adalah tampilan memukau yang mengarahkan output standar dan kesalahan standar secara bersamaan: admin@server1:~$ ls -l > files.txt 2> error.txt admin@server1:~$ ls -l >> files.txt admin@server1:~$ ls -l > files.txt admin@server1:~$ grep foo < files.txt admin@server1:~$ rm files.txt admin@server1:~$ ls -l > files.txt 2>&1 admin@server1:~$ ls -l >& files.txt admin@server1:~$ ls -l | grep foo | wc -l www.it-ebooks.info Machine Translated by Google
  228. admin@server1:~$ cat hello2 #!/bin/bash hw="hello world" echo "$hw" echo '$hw'

    admin@server1:~$ ./hello2 hello world $hw admin@server1:~$ admin@server1:~$ cat hari ini #!/bin/bash dt=$(date) dttoo=`date` echo "Hari ini adalah $dt" echo "Dan begitu juga $dttoo" admin@server1:~$ ./ today Hari ini adalah Sel 25 Jul 14:56:01 CDT 2006 Dan begitu juga Sel 25 Jul 14:56:01 CDT 2006 admin@server1:~$ #!/bin/bash hw="halo dunia" echo $hw Variabel awal bash | 217 www.it-ebooks.info Variabel hw dibuat oleh penugasan pada baris 2. Pada baris 3, isi variabel hw akan menggantikan referensi $hw . Karena bash dan shell lainnya memperlakukan karakter spasi (spasi dan tab) sebagai pemisah argumen perintah daripada karakter argumen normal, untuk mempertahankannya, Anda harus mengapit seluruh string dengan karakter tanda kutip ganda (") atau tanda kutip tunggal (') . variabel shell (dan sintaks shell khusus lainnya) diperluas dalam tanda kutip ganda dan diperlakukan secara harfiah dalam tanda kutip tunggal Lihat perbedaan output dari dua perintah echo dalam skrip berikut: Anda dapat menetapkan output standar dari sebuah perintah ke variabel dengan sintaks $ (command) atau `command` (menggunakan sedikit aksen serius): bash adalah bahasa pemrograman, dan bahasa pemrograman memiliki fitur umum. Salah satu yang paling mendasar adalah variabel: simbol yang mengandung nilai. variabel bash adalah string kecuali jika Anda menentukan sebaliknya dengan pernyataan pernyataan. Anda tidak perlu mendeklarasikan atau mendefinisikan variabel bash sebelum menggunakannya, tidak seperti banyak bahasa lainnya. Variabel khusus mewakili argumen baris perintah. Karakter $ diikuti oleh angka n mengacu pada argumen ke-n pada baris perintah, mulai dari 1. $0 Nama variabel adalah string yang dimulai dengan huruf dan berisi huruf, angka, atau garis bawah (_). Nilai variabel diperoleh dengan meletakkan karakter $ sebelum nama variabel. Berikut skrip shell yang memberikan nilai string ke variabel hw, lalu mencetaknya: Machine Translated by Google
  229. Elemen Berguna untuk Skrip bash Variabel lain yang berguna adalah

    $?, yang berisi status pengembalian dari perintah terbaru yang dieksekusi. Kami akan menggunakan ini nanti di bab ini untuk memeriksa keberhasilan atau kegagalan eksekusi program dalam skrip. Kami telah memperkenalkan elemen dasar bash yang akan Anda gunakan dalam menjalankan perintah interaktif sehari-hari. Sekarang mari kita lihat beberapa hal yang akan membantu Anda menulis skrip yang efektif. berjalan: Variabel khusus $$ berisi ID proses proses saat ini. Ini dapat digunakan untuk membuat nama file sementara yang unik. Jika beberapa salinan dari skrip yang sama berjalan pada waktu yang sama, masing-masing akan memiliki ID proses yang berbeda dan dengan demikian nama file tempo rary yang berbeda. Ekspresi ekspresi bash berisi variabel dan operator seperti == (sama dengan) dan > (lebih besar dari). Ini biasanya digunakan dalam tes, yang dapat ditentukan dalam beberapa cara: variabel adalah nama skrip itu sendiri. Variabel $* berisi semua argumen sebagai satu nilai string. Variabel-variabel ini kemudian dapat diteruskan ke perintah skrip Jika Anda menggunakan perintah tes , ingatlah bahwa beberapa simbol memiliki banyak arti (misalnya, di bagian sebelumnya kami menggunakan > untuk pengalihan output), jadi simbol tersebut harus diapit dalam tanda kutip. Anda tidak perlu khawatir tentang tanda kutip jika Anda menggunakan sintaks kurung siku tunggal atau ganda. Tanda kurung ganda melakukan semua yang dilakukan tanda kurung tunggal dan sedikit lebih banyak, jadi paling aman menggunakan tanda kurung ganda dengan ekspresi Anda. bash memiliki beberapa operator bawaan khusus yang berguna: -a file -d file -f file -r file -w file -x file admin@server1:~$ file cat #!/bin/bash ls -Alv $* admin@server1:~$ ./files hello hello2 hari ini -rwxr-xr-x 1 admin admin 48 2006-07-25 13:25 hello -rwxr-xr-x 1 admin admin 51 2006-07-25 14:45 hello2 -rwxr-xr-x 1 admin admin 45 2006-07-25 14:49 hari ini admin@server1:~$ # true jika file ada # true jika file ada dan merupakan direktori # true jika file ada dan merupakan file # true jika file ada dan dapat dibaca # true jika file ada dan dapat ditulis # true jika file ada dan dapat dieksekusi tes $file == "test" [ $file == "test" ] [[ $file == "test" ]] 218 | Bab 10: Skrip www.it-ebooks.info Machine Translated by Google
  230. -6 admin@server1:~$ ./arith "2**60" 1152921504606846976 admin@server1:~$ admin@server1:~$ cat arithexp #!/bin/bash

    a=$1 b=$(( a+2 )) echo "$a + 2 = $b" c=$(( a*2 )) echo "$ a * 2 = $c" admin@server1:~$ ./arithexp 6 6 + 2 = 8 6 * 2 = 12 admin@server1:~$ ... admin@server1:~$ cat arith #!/bin/bash answer=$(( $* )) echo $answer admin@server1:~$ ./arith "(8+1)*(7-1)-60" jika ekspresi1 ; lalu (perintah) elif expression2 ; lalu (perintah) Hitung Jika... ... Elemen Berguna untuk Skrip bash | 219 www.it-ebooks.info Script yang membutuhkan floating-point atau operator yang lebih maju dapat menggunakan program eksternal seperti bc. Itu dapat mengevaluasi ekspresi aritmatika biasa (menggunakan +, -, *, /, dan operator lain) dengan mengelilinginya dengan sepasang tanda kurung ganda: ((ekspresi)). Karena banyak karakter aritmatika—termasuk *, (, dan )—ditafsirkan secara khusus oleh shell, yang terbaik adalah mengutip argumen shell jika mereka akan diperlakukan sebagai ekspresi matematika dalam skrip: Dalam ekspresi aritmatika, Anda dapat menggunakan variabel tanpa karakter $ yang akan digunakan untuk menggantikan nilainya di pengaturan lain: Versi terbaru bash mendukung bilangan bulat 64-bit (–9223372036854775808 hingga 9223372036854775807). Versi yang lebih lama hanya mendukung bilangan bulat 32-bit (dengan kisaran kecil –2147483648 hingga 2147483647). Angka floating-point tidak didukung. bash sangat berbobot terhadap teks seperti perintah, argumen, dan nama file. Ekspresi yang diberikan, Anda dapat mengeksekusi potongan kode yang berbeda tergantung pada hasil pengujian. bash menggunakan sintaks if fi (mundur if) , dengan opsional elif (else if) dan bagian lain : Machine Translated by Google
  231. 220 | Bab 10: Skrip #!/bin/bash USERID="$1" jika ekspresi maka

    (perintah) DETECTED=$( egrep -o "^$USERID:" < /etc/passwd ) if [[ -n "${DETECTED}" ]] ; lalu echo "$USERID adalah salah satu dari kita :-)" else echo "$USERID adalah orang asing :-(" admin@server1:~$ ./friendorfoe root root adalah salah satu dari kami :-) admin@server1:~$ ./friendorfoe sasquatch sasquatch adalah orang asing :-( menjadi menjadi ekspresi elifN ; lalu (perintah) lain (perintah) fi admin@server1:~$ if [[ -x hello ]] > then > echo "hello is executable" > fi hello is executable admin@server1:~$ www.it-ebooks.info Sebut saja skrip ini friendorfoe, buat itu bisa dieksekusi, dan coba dulu dengan akun yang dikenal di sistem kami (root) dan kemudian akun yang dibuat-buat (sasquatch): Jika Anda berada di direktori yang sama dengan skrip hello yang Anda buat sebelumnya, coba ini: Di mana pun pernyataan if mengambil ekspresi, Anda dapat memasukkan perintah, atau bahkan urutan perintah. Jika perintah terakhir dalam urutan berhasil, pernyataan if menganggap bahwa ekspresi mengembalikan hasil yang benar. Jika perintah terakhir dalam urutan gagal, ekspresi dianggap mengembalikan hasil yang salah, dan ekspresi else akan dieksekusi. Kita akan melihat contoh di bagian yang akan datang. ; _ maka frase di akhir baris juga dapat dinyatakan sebagai plain kemudian pada baris berikutnya: Argumen pertama ditetapkan ke variabel shell USERID. Perintah egrep dijalankan dalam $() untuk menetapkan outputnya ke variabel shell DETECTED . egrep -o hanya mencetak string yang cocok, bukan seluruh baris. "^$USERID:" cocok dengan konten variabel USERID hanya jika konten variabel muncul di awal baris dan segera diikuti oleh titik dua. Ekspresi if dikelilingi dengan tanda kurung siku ganda untuk menampungnya, mengevaluasinya, dan mengembalikan hasilnya. Ekspresi -n "${DETECTED}" mengembalikan nilai true jika variabel shell DETECTED adalah string yang tidak kosong. Akhirnya, variabel DETECTED dikutip ("${DETECTED}") untuk memperlakukannya sebagai string tunggal. Berikut skrip yang lebih bagus yang mencari file /etc/ passwd untuk nama akun: Machine Translated by Google
  232. Elemen Berguna untuk Skrip bash | 221 Memecahkan Masalah Skrip

    Sederhana admin@server1:~$ cat delete #!/ bin/bash jika rm $1 maka echo file $1 dihapus lain jika rmdir $1 maka echo direktori $1 dihapus menjadi admin@server1:~$ ./delete file hello2 hello2 dihapus admin@server1:~$ ./ delete hello2 rm: tidak dapat menghapus `hello2': Tidak ada file atau direktori rmdir: `hello2': Tidak ada file atau direktori admin@server1 :~$ mkdir hello3 admin@server1:~$ ./delete hello3 rm: tidak dapat menghapus `hello3': Apakah direktori direktori hello3 dihapus admin@server1:~ admin@server1:~$ cat removefiles #!/ bin/bash # removefiles menghapus file atau direktori echo "$0 berlari pada" $(tanggal) >> delete.log if rm $1 2>> delete-err.log lalu echo "file yang dihapus $1" >> delete.log elif rmdir $1 2>> delete-err.log then echo "direktori terhapus $1" >> delete.log else echo "gagal menghapus $1" >> delete.log menjadi menjadi www.it-ebooks.info Berikut adalah beberapa hasil: Dengan menggunakan pesan kesalahan ini, mari kita coba perbaiki skripnya. Pertama, kita akan menggunakan pengalihan I/O untuk menyimpan hasil ke log dan file kesalahan, yang dapat kita tinjau di waktu luang kita. Mari kita melakukan beberapa operasi pada skrip yang seharusnya menghapus argumennya (file atau direktori) tetapi memiliki beberapa masalah: Script ini dimaksudkan untuk menghapus file yang diteruskan sebagai argumen menggunakan rm, dan untuk mencetak pesan jika berhasil. Jika rm gagal, skrip mengasumsikan argumen merujuk ke direktori dan mencoba rmdir sebagai gantinya. Selanjutnya, kita akan menangkap nilai kembalian dari perintah rm untuk menghasilkan pesan sukses atau gagal. Kami juga akan menangkap tanggal dan waktu saat ini untuk disertakan dalam log keluaran: Machine Translated by Google
  233. 222 | Bab 10: Skrip Kemudian baris terakhir dari delete.log

    akan berisi: Ini terlihat cukup bagus, tetapi kami memiliki satu kurva lagi untuk Anda: bagaimana jika nama file atau direktori berisi spasi? (Anda dijamin akan melihat ini jika Anda mendapatkan file apa pun dari sistem Windows atau Mac.) Buat file bernama file saya, lalu coba hapus dengan skrip terpercaya kami: Karena kami tidak memberikan tanda kutip di sekitar file saya, shell membagi file saya dan menjadi variabel $1 dan $2 skrip . Jadi, mari kita kutip file saya untuk menyimpannya di $1: Ups. Kami memasukkan string file saya ke dalam variabel $ 1 shell , tetapi kami perlu mengutipnya lagi di dalam skrip untuk melindunginya untuk tes nama dan menghapus perintah: Script masih memiliki beberapa kutil: tidak memeriksa apakah file itu ada, dan tidak membedakan antara file dan direktori. Kami dapat menggunakan beberapa operator bawaan yang kami sebutkan sebelumnya untuk memperbaiki masalah ini: www.it-ebooks.info admin@server1:~$ cat removefiles #!/ bin/bash # removefiles menghapus file atau direktori menjadi admin@server1:~$ cat removefiles #!/ bin/bash # removefiles menghapus file atau direktori echo "$0 berlari pada" $(date) >> delete.log if [ ! -e $1 ] lalu echo "$1 tidak ada" >> delete.log elif [ -f $1 ] lalu echo -n "file $1 >> delete.log if rm $1 2>> delete-err.log lalu echo "dihapus " >> delete.log else echo "tidak dihapus" >> delete.log saya tidak ada fi elif [ -d $1 ] lalu echo "direktori $1 >> delete.log if rmdir $1 2>> delete-err.log lalu echo "dihapus" >> delete.log else echo "tidak dihapus" >> delete.log admin@server1:~$ ./removefiles file saya " admin@server1:~$ ./removefiles "file saya" ./ removefiles: [: my: operator biner diharapkan ./ removefiles: [: my: operator biner diharapkan menjadi " Machine Translated by Google
  234. fi elif [ -d "$1" ] lalu echo -n "direktori

    $1 >> delete.log if rmdir "$1" 2>> delete-err.log lalu echo "dihapus" >> delete.log else echo "tidak dihapus" >> hapus.log admin@server1:~$ untuk antek di moe larry curly > do " file file saya dihapus untuk arg dalam daftar lakukan perintah selesai " echo "$0 berlari pada" $(date) >> delete.log if [ ! -e "$1" ] lalu echo "$1 tidak ada" >> delete.log elif [ -f "$1" ] lalu echo -n "file $1 >> delete.log if rm "$1" 2>> delete-err .log lalu echo "dihapus" >> delete.log lain echo "tidak dihapus" >> delete.log menjadi menjadi Elemen Berguna untuk Skrip bash | 223 www.it-ebooks.info Sekarang, akhirnya, ketika Anda menjalankan perintah: For loop yang cantik dan berbakat memiliki penampilan umum ini: Itu mengeksekusi tindakan perintah (yang dapat mencakup sebanyak mungkin baris dan memisahkan perintah yang Anda inginkan) yang ditentukan antara lakukan dan selesai untuk setiap item dalam daftar. Ketika perintah dijalankan, mereka dapat mengakses item saat ini dari daftar melalui variabel $arg, Sintaksnya mungkin sedikit membingungkan pada awalnya: dalam pernyataan for Anda harus menentukan arg tanpa tanda dolar, tetapi dalam perintah Anda harus menentukan $ arg dengan tanda dolar. Beberapa contoh sederhana adalah: admin@server1:~$ ./removefiles "file saya" baris terakhir dari delete.log adalah: Loops Jika Anda ingin melakukan sesuatu lebih dari sekali, Anda memerlukan loop. bash memiliki tiga rasa: untuk, sementara, dan sampai. Machine Translated by Google
  235. 224 | Bab 10: Skrip moe echo -n "Perintah Anda

    ($gameover untuk keluar)?" baca cmd melakukan larry keriting #!/bin/bash MAX=100 if [[ $cmd != $gameover ]]; lalu $cmd; sudah selesai admin@server1:~$ untuk file di * > do > ls -l $file > done -rw-r--r-- 1 admin admin 48 2006-08-26 14:12 halo sampai ekspresi melakukan hal -hal yang dilakukan > echo $stooge > selesai ((cur=1)) # Perlakukan skr seperti bilangan bulat while ((cur < MAX)) do echo -n "$cur " admin@server1:~$ untuk file di $(find / -name \*.gif) > do > cp $file / tmp > done ((cur+=1)) # Kenaikan sebagai bilangan bulat selesai sementara ekspresi melakukan hal -hal yang dilakukan #!/bin/bash gameover="q" hingga [[ $cmd == $gameover ]] www.it-ebooks.info Contohnya adalah: Perulangan while berjalan saat kondisi pengujian benar: Berikut adalah contoh skrip yang menggunakan ekspresi aritmatika yang disebutkan sebelumnya untuk membuat loop while gaya-C (lekukan tidak diperlukan, tetapi kami menyukainya): Perulangan sampai adalah kebalikan dari while. Itu loop sampai kondisi pengujian benar: Machine Translated by Google
  236. pekerjaan cron Skrip shell sering digunakan untuk merekatkan program. Contoh

    umum di Linux adalah definisi pekerjaan cron. cron adalah penjadwal pekerjaan Linux standar. Jika Anda ingin sesuatu terjadi pada hari Selasa ketiga setiap bulan pada jam 01:23 yang tidak beradab, Anda bisa meminta cron untuk melakukannya untuk Anda tanpa umpan balik negatif apa pun yang akan Anda dapatkan dari seseorang. Daemon cron memeriksa setiap menit untuk melihat apakah sudah waktunya untuk melakukan sesuatu, atau jika ada spesifikasi tugas cron yang berubah. • menit adalah antara 0 dan 59. Untuk melewati sisa loop dan melompat kembali ke awal, gunakan lanjutkan: Anda menentukan pekerjaan cron dengan mengedit file crontab . Anda dapat melihat konten crontab Anda, jika ada, sebagai berikut: • jam menggunakan jam 24 jam dan antara 0 dan 23. • day_of_month berkisar dari 1 hingga 31. Setiap baris file crontab berisi spesifikasi hari/waktu dan perintah, dalam format ini: Untuk keluar dari loop, gunakan break. Mari kita tulis ulang contoh sampai kita sebagai loop sementara dengan istirahat: Untuk mengedit crontab Anda, masukkan: Ini membutuhkan lebih dari sedikit penjelasan: echo -n "Perintah Anda ($gameover untuk keluar)?" baca cmd menit jam day_of_month bulan day_of_week perintah #!/bin/bash gameover="q" while [[ true ]] do echo -n "Perintah Anda ($gameover untuk keluar)? " read cmd if [[ $cmd == $gameover ]]; kemudian pecah; fi $cmd selesai #!/bin/bash gameover="q" sementara [[ true ]] lakukan if [[ $cmd != $gameover ]]; lalu $cmd; melanjutkan; istirahat selesai admin@server1:~$ crontab -l tidak ada crontab untuk admin admin@server1:~$ crontab -e Elemen Berguna untuk Skrip bash | 225 www.it-ebooks.info Machine Translated by Google
  237. Adu Bahasa Scripting 2,3,5-6 berarti Februari, Maret, dan Mei hingga

    Juni. • Untuk menentukan lebih dari satu nilai, pisahkan nilai dengan koma. Daftar bulan _ Ketika cron menjalankan perintah, ia mengirimkan output standar dan kesalahan standarnya melalui email ke pemilik crontab. Untuk mencegah dilempari email seperti itu, Anda dapat mengarahkan output standar dan kesalahan standar ke tempat di mana matahari tidak bersinar: nama seperti Selasa. Penggunaan utama shell adalah untuk menjalankan perintah dan memperluas pola nama file, dan shell dirancang untuk memudahkan operasi ini. Tugas lain, seperti melakukan perhitungan aritmatika, lebih sulit, karena teksnya perlu dilindungi dari pemisahan kata dan ekspansi * . Dalam skrip shell yang kompleks, tumpukan tanda kurung, tanda kurung, dan simbol lainnya mulai menyerupai umpatan karakter kartun. Shell menjalankan perintah, sehingga dapat menggunakan fitur-fitur yang disebutkan dalam bab ini. Beberapa contoh menggunakan perintah langsung daripada skrip adalah: • bulan adalah angka antara 1 dan 12 atau nama seperti Februari. • day_of_week adalah angka antara 0 dan 7 (0 atau 7 adalah Minggu, 6 adalah Sabtu) atau a • Pengubah langkah dapat mengikuti nilai dan garis miring (/), dan ini menunjukkan berapa banyak unit yang akan ditambah di antara nilai. Nilai bulan */3 berarti setiap bulan ketiga. Nilai bulan 4-9/2 berarti bulan 4, 6, dan 8 . Misalnya, jika setiap bidang berisi 1, cron akan menjalankan perintah di bulan Januari dan juga pada hari Senin. Biasanya, baris crontab menempatkan nilai tertentu hanya di salah satu bidang ini. • Seiring waktu, aplikasi seperti adduser dan apt-get telah mengotomatiskan beberapa tugas skrip shell tradisional. • Skrip Shell tidak dapat diskalakan dengan baik, dan sulit dipelihara. • day_of_month dan day_of_week di-OR bersama, yang dapat menyebabkan kejutan. Di masa lalu ("Kami memiliki nol dan satu saat itu, dan kami beruntung memilikinya!"), artikel petunjuk sering menampilkan skrip shell panjang untuk menambahkan pengguna, mengunduh dan membangun paket, mencadangkan file, dan sebagainya. Saat ini Anda mungkin lebih suka melakukan tugas-tugas ini menggunakan bahasa skrip yang lebih canggih, karena beberapa alasan: berarti hanya Januari. • Tanda bintang (*) berarti nilai apa pun. • Dua nilai yang dipisahkan oleh tanda hubung menunjukkan rentang. Jadi, 11-12 di bulan itu lapangan berarti November sampai Desember. • Dalam bidang apa pun, nilai berarti sama persis; misalnya, 1 di bidang bulan 5 * * * * * * * * 5 perintah > /dev/null 2>&1 rm /tmp/*.gif # hapus semua file GIF setiap 5 menit rm -v /tmp/*.gif >> /tmp/gif.log # sama, login 226 | Bab 10: Skrip www.it-ebooks.info Machine Translated by Google
  238. Format Data: File /etc/passwd File kata sandi biasanya berisi akun

    sistem standar seperti root yang perkasa, akun aplikasi seperti apache, dan akun pengguna. Berikut adalah potongan dari file tersebut: Perl awalnya mengisi celah karena administrator mencari alat yang lebih produktif, tetapi sekarang PHP telah bermigrasi keluar dari ceruk webnya, dan Python telah mendapatkan reputasi untuk produktivitas. Kami akan menulis satu aplikasi dalam setiap bahasa ini; beberapa lainnya, seperti Ruby dan Tcl, juga tersedia di Linux. Mari ciptakan beberapa persyaratan untuk aplikasi kita dan nyatakan dengan kodesemu ini: Saat ini, banyak programmer akan bergegas masuk dan mulai mengetik (beberapa tanpa membaca format atau persyaratan data). Namun, pembaca buku ini lebih disiplin, serta lebih tampan. Mereka harus memperbaiki kekacauan yang dibuat oleh pemrogram lain dan tidak ingin membuat kesalahan yang sama sendiri. • Skrip shell berjalan lebih lambat. • Sintaks shell menjijikkan. Aplikasi kita akan mencari file /etc/ passwd untuk nama, ID pengguna, ukuran topi, atau apa pun yang dapat kita temukan di sana. Anda akan melihat cara membuka file, membaca catatan, mengurai tikar, mencari pola, dan mencetak hasil. Kemudian kita akan mencari cara untuk menghindari beberapa pekerjaan ini, karena keringat != produktivitas. Anda akan dapat menerapkan teknik ini ke file lain, seperti log atau halaman web. Ini adalah contoh munging data, dan Anda mungkin sudah sering melakukannya. ... ... # Pengguna adedarc:x:500:500:Alfredo de Darc:/home/adedarc:/bin/ bash rduxover:x:501:501:Ransom Duxover:/home/rduxover:/bin/bash # Aplikasi postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/ bash Apache:x:48:48:Apache:/var/www:/bin/false # Sistem root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/ sbin/nlogin membaca string pencarian dari pengguna buka file tempat untuk setiap baris: parsing bidang (kolom) cari bidang nama untuk kecocokan jika ada kecocokan: cetak bidang lain dalam format yang dapat dibaca Adu Bahasa Scripting | 227 www.it-ebooks.info Machine Translated by Google
  239. 228 | Bab 10: Skrip cbarrel:x:502:502:Creighton Barrel:/home/cbarrel:/bin/bash cmaharias:x:503:503:C Maharias:/home/cmaharis:/bin/bash pgasquette:x:504:504:Papa

    Gasquette :/home/pgasquette:/bin/ bash bfrapples:x:505:505:Bob Frapples:/home/bfrapples:/bin/bash #!/bin/bash grep -i "$1" /etc/passwd www.it-ebooks.info Bidang yang dipisahkan titik dua adalah: Versi Skrip Kita akan memulai setiap bagian berikut dengan skrip minimal yang mencari string di mana saja di file /etc/ passwd dan mencetak baris yang cocok. Kami tahu ini terlalu luas, tetapi kami ingin skrip berfungsi sebelum kami menjadi terlalu mewah. Selanjutnya, kami akan membagi baris input menjadi beberapa bidang dan membatasi pencocokan pola ke bidang gecos yang berisi nama pengguna kami. Berikut adalah versi cepat dan kotor (finduser.sh) yang membaca string pencarian pengguna sebagai argumennya, mencari kecocokan case-independen di mana saja pada baris, dan mencetak baris yang cocok kata demi kata: Kami tertarik pada bidang kelima (nama lengkap atau deskripsi). Dalam gulungan Unix kuno, ini disebut bidang gecos , untuk alasan yang bahkan sudah usang. Nama itu tetap ada, dan itu berguna untuk diketahui. Skrip bash Sebagian besar bahasa menyediakan pustaka fungsi untuk berbagai tugas. Program mengisi peran ini untuk shell, dan pembuat skrip shell berpengalaman akrab dengan utilitas Linux yang paling berguna (cat, head, tail, awk, cut, grep, egrep, dan lain-lain). Kami akan menggunakan beberapa di antaranya untuk skrip bash kami. • Kata sandi terenkripsi, atau x jika /etc/ shadow digunakan • ID Pengguna (uid) • ID Grup (gid) • Nama atau deskripsi lengkap • Direktori beranda • Shell Pada titik ini kita akan cukup lelah dengan langkah-langkah sebelumnya, jadi kita akan mencari beberapa alat yang dapat melakukan beberapa pekerjaan ini untuk kita. • Nama akun Kemudian kami akan membatasi pencarian lebih lanjut ke baris di mana nilai bidang uid lebih besar dari 500. Dalam kasus kami, ID pengguna normal mulai dari 501, jadi ini akan mengecualikan akun sistem dan robot lainnya. Machine Translated by Google
  240. Adu Bahasa Scripting | 229 lakukan # Hanya pencocokan huruf

    besar-kecil yang tepat! if [[ $nama == $pola ]]; lalu echo "$account:$password:$uid:$gid:$name: $directory:$shell" selesai < /etc/passwd #!/bin/bash pattern=$1 IFS=":" saat membaca kata sandi akun uid gid nama direktori shell admin@server1:~$ chmod +x finduser.sh admin@server1:~$ ./finduser.sh alf adedarc:x:500:500:Alfredo de Darc:/home/adedarc:/bin/bash echo "$account:$password:$uid:$gid:$name:$directory:$shell" selesai < /etc/passwd lakukan # Hanya pencocokan tepat! if [[ $uid -gt 500 && $(echo $name | egrep -i -c "$pattern") -gt 0 ]]; lalu echo "$account:$password:$uid:$gid:$name:$directory:$shell" selesai < /etc/passwd lakukan jika [[ $(echo $name | egrep -i -c "$pattern") -gt 0 ]]; kemudian #!/bin/bash pattern=$1 IFS=":" saat membaca kata sandi akun uid gid nama direktori shell #!/bin/bash pattern=$1 IFS=":" saat membaca kata sandi akun uid gid nama direktori shell www.it-ebooks.info Menggali melalui dokumentasi bash mengungkapkan bahwa bash dapat membagi inputnya pada karakter selain spasi, menggunakan variabel IFS -nya. Dalam versi skrip berikut, kita membaca /etc/ passwd baris demi baris, membagi setiap baris menjadi variabel bidang. Jika kami menemukan kecocokan, kami perlu membangun kembali baris untuk mencetaknya dalam bentuk aslinya: admin@server1:~$ grep -i alf /etc/passwd Tapi bagaimana jika alf juga cocok dengan akun sistem bernama gandalf, atau string di bidang lain? Jika kita ingin membatasi pencarian pada bidang nama dan ke akun pengguna biasa (yaitu, akun dengan ID pengguna lebih besar dari 500), skrip kita akan bertambah sedikit. Tapi sekarang kita mengalami masalah dengan pencocokan: tidak seperti grep, bash tidak memiliki kecocokan string parsial case-insensitive bawaan. Kita harus memasukkan pencocokan pola yang lebih canggih dengan pembantu eksternal, egrep: Untuk skrip terakhir kami, mari tambahkan tanda centang kami pada nomor uid : Ini tidak lebih cepat dari sekedar mengetik: Machine Translated by Google
  241. Perl memiliki alternatif mundur jika sintaks yang menyimpan beberapa karakter:

    Skrip (sebut saja finduser.pl) mengasumsikan file kata sandi dibaca dari input standar, jadi Anda akan menjalankannya seperti ini: / pattern/ cocok dengan pola sementara saya mengabaikan huruf besar-kecil . Berikut adalah versi skrip yang setara yang akan kami gunakan untuk meningkatkan program agar memenuhi persyaratan kami yang lain: Skrip Perl Perl singkat, dan sangat bagus dalam teks. Perl yang setara dengan skrip bash pertama kami adalah: Jika Anda menjalankan skrip shell dengan opsi -v atau -x , bash akan mencetak setiap perintah sebelum menjalankannya. Ini dapat membantu Anda melihat apa yang sebenarnya dilakukan skrip. Banyak elemen sintaks Perl yang samar, tetapi beberapa mengingatkan sintaks shell (atau alat Unix umum lainnya) dan karena itu tidak terlalu sulit untuk diingat setelah Anda mengetahui alat-alat tersebut. Secara khusus, Anda dapat melihat pernyataan while dan if dalam skrip sebelumnya, dan mereka berperilaku seperti yang Anda harapkan setelah mempelajari tentang persamaan shell. Sintaks <> juga mengingatkan pada < dan > dari pengalihan shell; itu menyebabkan setiap iterasi dari loop sementara untuk membaca satu baris input. Perhatikan bahwa tidak seperti bash, variabel di Perl memerlukan $ awal bahkan ketika Anda menetapkan nilai. Pernyataan cetak menampilkan apa yang ditemukan <> . admin@server1:~$ ./finduser.pl alf < /etc/passwd Versi berikutnya membuka file kata sandi secara langsung: } } } } #!/usr/bin/perl my $pattern = shift; while (<>) { if (/ $pattern/i) { print; #!/usr/bin/perl my $fname = "/etc/passwd"; $pola saya = shift; open(FILE, $fname) or die("Tidak dapat membuka $fname\n"); while (<FILE>) { if (/$pattern/i) { print; #!/usr/bin/perl my $pattern = shift; while (<>) { print if / $pattern/i; admin@server1:~$ perl -ne 'print if /alf/i' /etc/passwd } tutup(FILE); 230 | Bab 10: Skrip www.it-ebooks.info Machine Translated by Google
  242. Adu Bahasa Scripting | 231 Semua skrip ini melibatkan pembacaan

    baris input teks dan pola pencocokan. Fungsi split Perl menempatkan setiap elemen baris yang dipisahkan titik dua ke dalam satu elemen array. Kami kemudian dapat mengekstrak elemen nomor 4 (yang sebenarnya merupakan elemen kelima, karena elemen diberi nomor mulai dari 0) dan membandingkannya dengan cara yang tidak peka terhadap argumen pengguna. Untuk membatasi kecocokan pada bidang nama seperti yang kami lakukan di bagian bash , kami memainkan kekuatan Perl: Karena /etc/ passwd adalah file penting di Linux, Anda akan berpikir seseorang akan mengotomatiskan beberapa pekerjaan ini sekarang. Untungnya, seseorang memiliki: Perl tua yang baik menyediakan fungsi bawaan yang disebut getpwent yang mengembalikan konten /etc/ passwd baris sekaligus sebagai array string. Dalam versi skrip berikut, kami menetapkan setiap bidang variabelnya sendiri; di versi berikutnya, kita akan menggunakan array @list untuk menampung semuanya. Dalam setiap kasus, kami menginginkan bidang gecos (disebut gcos dalam dokumentasi Perl). Perhatikan bahwa ini adalah bidang 6 yang dikembalikan oleh getpwent, bukan bidang 4, karena getpwent mendukung dua bidang lain yang muncul di file passwd pada beberapa sistem: Argumen yang diberikan oleh pengguna dibacakan ke dalam variabel $pattern menggunakan pernyataan shift . Script juga mendefinisikan jenis variabel lain: sebuah array bernama @fields. www.it-ebooks.info #!/usr/bin/perl my $fname = "/etc/ passwd"; $pola saya = shift; open(FILE, $fname) or die("Tidak dapat membuka $fname\n"); while (<FILE>) { $baris = $_; @bidang = split/:/; if ($bidang[4] =~ / $pattern/i) { print $baris; } } } if ($gcos =~ /$pattern/i) { print "$gcos\n"; #!/usr/bin/perl $pattern = shift; while (@fields = getpwent) { if ($fields[6] =~ /$pattern/i) { print "$fields[6]\n"; } tutup(FILE); #!/usr/bin/perl $pattern = shift; while (($name,$passwd,$uid, $gid, $quota,$comment, $gcos,$dir, $shell,$expire) = getpwent) { } } Machine Translated by Google
  243. 232 | Bab 10: Skrip Untuk bagian terakhir dari penyiksaan

    diri, mari batasi pencarian untuk pengguna normal (uid > 500). Ini adalah tambahan yang mudah: Ini menggemakan teks ke output standar. Fungsi eregi melakukan perbandingan ekspresi reguler dengan cara yang tidak peka huruf besar-kecil. Berkat asalnya sebagai pengiring halaman web, PHP membuat asumsi yang tidak biasa bahwa konten default dari file yang akan ditafsirkan adalah teks biasa, dan bahwa kode PHP hanya dikenali antara pembukaan <? atau tag <?php dan tag penutup ?> . Karena PHP telah banyak meminjam dari Perl, tidak mengherankan jika ia memiliki fungsi split : Skrip PHP PHP dapat dijalankan oleh server web (menggunakan CGI) atau sendiri (menggunakan CLI). Kami akan menggunakan versi CLI. Jika Anda tidak memiliki versi CLI, Anda dapat menginstalnya pada sistem berbasis Debian dengan apt-get install php4-cli. * Skrip PHP pertama kami akan terlihat seperti skrip Perl awal kami: www.it-ebooks.info #!/usr/bin/perl $pattern = shift; while (@fields = getpwent) { * Atau php5-cli, jika tersedia. #!/usr/bin/php <? $pola = $argv[1]; $file = fopen("/etc/passwd", "r"); while ($line = fgets($file, 200)) { if (eregi($pattern, $line)) echo $line; } } fclose($file); ? > $pola = $argv[1]; $file = fopen("/etc/passwd", "r"); while ($line = fgets($file, 200)) { $fields = split(":", $line); if (eregi($pattern, $fields[4])) echo $line; } if ($fields[6] =~ /$pattern/i dan $fields[2] > 500) { print "$fields[6]\n" #!/usr/bin/php <? } fclose($file); ? > Machine Translated by Google
  244. Iterasi berikutnya, yang membagi baris input menjadi beberapa bidang, melibatkan

    penambahan langsung ke yang pertama: Skrip Python Skrip Python terlihat berbeda dari skrip Perl dan PHP, karena pernyataan diakhiri dengan spasi daripada titik koma gaya-C atau kurung kurawal. Karakter tab juga penting. Skrip Python pertama kami, seperti upaya kami sebelumnya dalam bahasa lain, mencari file kata sandi dan mencetak baris apa pun yang berisi kecocokan Python memiliki ruang nama (seperti halnya Perl) untuk mengelompokkan fungsi, itulah sebabnya fungsi dalam skrip ini didahului oleh string sys. dan kembali.. Ini membantu menjaga modul kode sedikit lebih, baik, modular. " (?i)" di baris ketiga skrip membuat kecocokan tidak peka huruf besar/kecil, mirip dengan /i di Perl. Tapi bisakah kita memanggil fungsi seperti getpwent Perl untuk mengiris dan memotong file kata sandi untuk kita? PHP tampaknya tidak memiliki padanan, jadi kami akan tetap menggunakan pendekatan penguraian untuk membatasi pencarian ke nilai uid lebih dari 500: teks: #!/usr/bin/php <? #!/usr/bin/python import re, sys pattern = "(?i)" + sys.argv[1] file = open("/etc/passwd") untuk baris dalam file: field = line.split(" :") jika re.search(pola, bidang[4]): baris cetak $pola = $argv[1]; $file = fopen("/etc/passwd", "r"); while ($line = fgets($file, 200)) { $fields = split(":", $line); if (eregi($pattern, $fields[4]) dan $fields[2] > 500) echo $line; #!/usr/bin/python import re, sys pattern = "(?i)" + sys.argv[1] file = open("/etc/passwd") untuk baris dalam file: if re.search(pattern, garis): garis cetak } fclose($file); ? > Adu Bahasa Scripting | 233 www.it-ebooks.info Machine Translated by Google
  245. Dalam skrip ini, baris yang kami cetak adalah daftar Python

    daripada string, dan itu dicetak dengan cantik. Untuk mencetak baris dalam format aslinya, gunakan ini: Langkah terakhir adalah membatasi pencarian ke akun dengan uid > 500: Memilih Bahasa Scripting Pilihan bahasa pemrograman, seperti pilihan editor teks atau sistem operasi, sebagian besar adalah masalah selera. Beberapa orang menganggap Perl tidak dapat dibaca, dan yang lain menolak aturan spasi putih Python. Seringkali perbandingan tidak berlanjut; jika Anda tidak suka bit, mengapa memakannya? Jika Anda merasa nyaman dengan gaya bahasa, kriteria yang paling penting adalah produktivitas untuk tugas tersebut. bash adalah cara cepat untuk membuat satu baris dan skrip pendek, tetapi itu menyeret ketika skrip mendapatkan lebih dari seratus baris atau lebih. Perl mungkin sulit dibaca, tetapi kuat dan memiliki manfaat dari perpustakaan CPAN yang besar. PHP terlihat seperti C, tidak memiliki ruang nama, mudah menggabungkan kode dan keluaran, dan memiliki beberapa pustaka yang bagus. Python mungkin yang paling mudah untuk dibaca dan ditulis, yang merupakan keuntungan khusus untuk skrip besar. Baris terakhir diperlukan untuk mengubah setiap bidang menjadi string (pw_uid dan pw_gid adalah bilangan bulat) sebelum menggabungkannya menjadi satu string panjang yang dipisahkan titik dua. Meskipun Perl dan PHP memungkinkan Anda memperlakukan variabel sebagai string atau angka, Python lebih ketat. Python memiliki fungsi getpwent yang setara dengan Perl yang memungkinkan kita membatasi pencarian ke bidang yang berisi nama. Simpan skrip berikut sebagai finduser.py: Sekarang mari kita lihat cara kerjanya: #!/usr/bin/python import re, sys, pwd pattern = "(?i)" + sys.argv[1] untuk baris di pwd.getpwall( ): if re.search(pattern, line.pw_gecos): garis cetak #!/usr/bin/python import re, sys, pwd pattern = "(?i)" + sys.argv[1] untuk baris di pwd.getpwall( ): if re.search(pattern line.pw_gecos): #!/usr/bin/python import re, sys, pwd pattern = "(?i)" + sys.argv[1] untuk baris di pwd.getpwall( ): jika line.pw_uid > 500 dan re.search(pattern line.pw_gecos): print ":".join(["%s" % v untuk v dalam baris]) print ":".join(["%s" % v untuk v sejalan]) admin@server1:~$ ./finduser.py alf ('adedarc', 'x', 501, 501, 'Alfredo de Darc', '/home/adedarc', '/bin/bash') 234 | Bab 10: Skrip www.it-ebooks.info Machine Translated by Google
  246. Bacaan lebih lanjut Bacaan Lebih Lanjut | 235 www.it-ebooks.info bagian

    anak-anak). Lampiran berisi beberapa skrip bash yang lebih panjang yang mungkin berguna untuk administrator sistem. Linux Shell Scripting dengan Bash oleh Ken Burtch (Sams) dan Panduan Skrip Bash Tingkat Lanjut (http:// www.tldp.org/ LDP/ abs/ html) adalah sumber daya yang baik. Jika Anda menjelajah ke bahasa skrip lain, buku komputer apa pun dengan hewan di penutup harus menjadi taruhan yang aman (kecuali jika Anda menemukan Curious George Learns COBOL di Machine Translated by Google
  247. 236 mengambil Mengotomatiskan backup ke tape; berguna di lingkungan dengan

    data dalam jumlah besar alat MySQL Cukup untuk sebagian besar file pengguna; mentransfer file secara efisien melalui jaringan ke sistem lain, dari mana Anda dapat mengambilnya kembali jika terjadi bencana pada sistem lokal Bab 11 BAB 11 amanda rsync Merekam file ke CD-R atau DVD Menyediakan cara untuk memecahkan persyaratan tertentu dari database Dalam bab ini kita akan membahas beberapa alat untuk mencadangkan data yang dapat berguna dalam berbagai keadaan: Program Unix tradisional untuk membuat kumpulan file terkompresi; membuat bundel data yang nyaman yang dapat Anda cadangkan menggunakan alat lain di bab ini cdrecord/ cdrtools Komputer gagal—disk pecah, keripik menggoreng, kabel korsleting, dan minuman mengalir ke dalam kotak. Terkadang komputer dicuri atau menjadi korban kesalahan manusia. Anda mungkin kehilangan tidak hanya perangkat keras dan perangkat lunak tetapi, yang lebih penting, data. Mengembalikan data yang hilang membutuhkan waktu dan uang. Sementara itu, pelanggan Anda tidak akan senang, dan pemerintah mungkin tertarik jika data tersebut diperlukan untuk kepatuhan terhadap peraturan. Membuat salinan cadangan dari semua data penting adalah asuransi murah terhadap bencana yang berpotensi mahal, dan kelangsungan bisnis memerlukan rencana pencadangan dan pemulihan. Mencadangkan Data www.it-ebooks.info Machine Translated by Google
  248. Dasar-dasar rsync Mencadangkan Data Pengguna ke Server dengan rsync #

    apt-get install rsync # rsync --help bash: rsync: perintah tidak ditemukan rsync pilihan sumber tujuan Mencadangkan Data Pengguna ke Server dengan rsync | 237 www.it-ebooks.info Buat salinan cadangan dari file tujuan yang sudah ada alih-alih menggantinya. Anda biasanya tidak ingin menggunakan opsi ini kecuali jika Anda ingin menyimpan versi lama dari setiap file. Ini dapat mengakibatkan server cadangan terisi dengan sangat cepat. Arsip. Opsi ini memenuhi sebagian besar persyaratan yang disebutkan sebelumnya, dan lebih mudah untuk mengetik dan mengucapkan daripada yang setara, -Dgloprt. memasuki: -b Data yang paling penting untuk dicadangkan adalah data yang tidak mungkin, atau sangat mahal, untuk dibuat ulang. Biasanya ini adalah data pengguna yang telah berkembang selama berbulan-bulan atau bertahun-tahun bekerja. Anda biasanya dapat memulihkan data sistem dengan relatif mudah dengan menginstal ulang dari media distribusi asli. Pertahankan perangkat. Opsi ini digunakan saat mereplikasi file sistem; itu tidak diperlukan untuk file pengguna. Bekerja hanya ketika rsync dijalankan sebagai root. Termasuk dalam -a. Biasanya, Anda ingin cadangan Anda mempertahankan kepemilikan dan izin asli. Dengan demikian, Anda harus memastikan bahwa semua pengguna memiliki akun dan direktori home di server cadangan. -D Utilitas Linux rsync adalah program penyalinan yang dirancang untuk mereplikasi sejumlah besar data. Itu dapat melewati file dan fragmen yang disalin sebelumnya dan mengenkripsi transfer data dengan ssh, membuat pencadangan jarak jauh dengan rsync lebih cepat dan lebih aman daripada dengan alat tradisional seperti cp, cpio, atau tar. Untuk memeriksa apakah rsync ada di sistem Anda, Sintaks dari perintah rsync adalah: Kami akan fokus di sini untuk membuat cadangan data pengguna dari komputer desktop Linux. Server cadangan membutuhkan ruang disk yang cukup untuk menyimpan semua file pengguna Anda. Sebuah mesin khusus dianjurkan. Untuk kantor besar, disk mungkin memiliki konfigurasi RAID (Redundant Array of Independent Disks) untuk lebih melindungi dari beberapa kegagalan. -sebuah Jika Anda melihat pesan itu, Anda harus mendapatkan paket rsync . Untuk menginstalnya di Debian, memasuki: Opsi baris perintah utama untuk rsync adalah: Machine Translated by Google
  249. 238 | Bab 11: Mencadangkan Data www.it-ebooks.info --rsh='ssh' -HAI Seperti

    -vv, tetapi juga mencetak info debug rsync . -r Seperti -v, tetapi juga daftar file yang dilewati. -p Pertahankan kepemilikan grup dari file yang direplikasi. Ini penting untuk cadangan. Termasuk dalam -a. -t Aktifkan kompresi; lebih berguna melalui Internet daripada di LAN berkecepatan tinggi. Pertahankan waktu modifikasi pada setiap file. Termasuk dalam -a. -H Pertahankan izin file. Ini penting untuk cadangan. Termasuk dalam -a. -n Daftar file yang sedang ditransfer. -l Aktifkan --partial dan --progress. -- partial Mengaktifkan transfer file sebagian. Jika rsync dibatalkan, ia akan dapat menyelesaikan sisa transfer file saat dilanjutkan nanti. -kantor pariwisata Dry run: lihat file apa yang akan ditransfer, tetapi jangan benar-benar mentransfernya. Aktifkan rekursi, mentransfer semua subdirektori. Termasuk dalam -a. -Dengan -g Pertahankan kepemilikan pengguna atas file yang direplikasi. Ini penting untuk cadangan. Termasuk dalam -a. Gunakan SSH untuk transfer file. Ini direkomendasikan karena transfer pro tocol (rsh) default tidak aman. Anda juga dapat mengatur variabel lingkungan RSYNC_RSH ke ssh untuk mendapatkan efek yang sama. -P Pertahankan tautan keras. Jika dua nama yang direplikasi merujuk ke inode file yang sama, ini mempertahankan hubungan yang sama di tujuan. Opsi ini agak memperlambat rsync , tetapi penggunaannya disarankan. -di Salin symlink sebagai symlink. Anda hampir selalu ingin menyertakan opsi ini; tanpa itu, symlink ke file akan disalin sebagai file biasa. Termasuk dalam -a. --progress Menampilkan kemajuan transfer file. -vv Machine Translated by Google
  250. 0:00:00 (3, 75,0% dari 16) 43900 100% 691,47kB/dtk 0:00:00 (2,

    68,8% dari 16) sales-plan-2006-08.sxw 59513 100% 1.46MB/s sales- plan-2006-09.sxw 00:00:00 (1, 62,5% dari 16) 41285 100% 453.00kB/dtk amy@desk12:~$ ./backup Password: membangun daftar file ... 14 file untuk dipertimbangkan ./ new- brochure.sxw 37412 100% 503.91kB/s 0:00:00 (4, 81,2% dari 16) #!/bin/bash ekspor RSYNC_RSH=/usr/bin/ssh dest=backup1 pengguna=$(whoami) cd || keluar 1 . "${pengguna}@$ {tujuan}:." rsync -aHPvz rencana penjualan-2006-10.sxw Setelah opsi, argumennya adalah sumber dan tujuan. Baik sumber maupun tujuan dapat berupa jalur ke file lokal di komputer tempat rsync berjalan, penunjukan server rsync (umumnya digunakan untuk server file unduhan), atau pengguna@host:path des ignations untuk ssh. Karena rsync membutuhkan begitu banyak opsi dan argumen panjang yang tidak akan berubah secara teratur, selanjutnya kita akan menulis skrip bash untuk menjalankannya. Berikut skripnya: Variabel lingkungan RSYNC_RSH berisi nama shell yang akan digunakan rsync . Defaultnya adalah /usr/ bin/ rsh, jadi kami mengubahnya menjadi /usr/ bin/ ssh di sini. Menjalankan skrip ini mereplikasi semua file di direktori home pengguna yang menjalankannya ke direktori home pengguna tersebut di server cadangan. Mari kita lihat cara kerjanya dengan menjalankannya untuk pengguna sampel kami (setelah masuk ke desktopnya): Ada banyak lagi opsi rsync yang mungkin berguna dalam situasi khusus. Anda dapat menemukannya di halaman manual. Membuat Skrip Cadangan Pengguna Bagian ini menyajikan skrip bash sederhana yang membuat cadangan dari desktop pengguna ke server cadangan. Nama server cadangan ditetapkan ke tujuan variabel dalam skrip ini. Pengguna variabel diberi nama pengguna akun yang menjalankan skrip dengan menjalankan perintah whoami dan menangkap output sebagai string. Perintah cd mengubah direktori saat ini ke direktori home pengguna. Kondisi pengujian logis-ATAU yang mengikuti perintah cd membatalkan skrip jika ada kegagalan. Satu titik (.) dengan sendirinya menentukan direktori saat ini sebagai argumen sumber . Untuk argumen tujuan , kami menentukan nama pengguna dan nama host untuk masuk melalui ssh, diikuti dengan titik untuk menentukan direktori home saat ini pada host tujuan. Mencadangkan Data Pengguna ke Server dengan rsync | 239 www.it-ebooks.info Machine Translated by Google
  251. amy@desk12:~$ ./backlist Kata sandi: drwx------ 4096 2006/08/09 13:20:41 . -rw-------

    10071 2006/08/09 12:35:21 .bash_history -rw-r--r-- 632 2006/07/27 23:03:06 .bash_profile -rw-r-- r-- 1834 2006/07/26 19:59:08 .bashrc -rwxr-xr-x 108 2006/07/27 23:06:51 .path 79 2006/08/09 13:18:34 backlist terkirim 185942 byte diterima 136 byte 24810,40 byte/dtk ukuran total 210691 percepatan adalah 1,13 amy@desk12:~$ liburan-permintaan.sxw -rwxr-xr-x 0:00:00 (5, 87,5% dari 16) -rwxr-xr-x #!/bin/bash dest=server1 pengguna=$ (whoami) cd || keluar dari 1 rsync "${pengguna}@${tujuan}:." | lagi 15198 100% 154,60kB/dtk -rwxr-xr-x 137 2006/08/09 13:19:29 backrestore 88 2006/08/09 13:03:46 backup -rw-r--r-- 37412 2006/07/17 14:40:52 new-brochure.sxw -rw-r--r-- 59513 2006/07/19 09:16:41 sales-plan-2006-08.sxw -rw-r--r-- 43900 2006/07/19 22 :51:54 sales-plan-2006-09.sxw -rw-r--r-- 41285 2006/07/17 16:24:19 sales-plan-2006-10.sxw -rw-r--r- - 15198 2006/07/10 14:42:23 holiday- request.sxw drwx------ 4096 2006/08/09 13:12:25 .ssh amy@desk12:~$ 240 | Bab 11: Mencadangkan Data www.it-ebooks.info Menjalankan skrip ini menghasilkan hasil yang mirip dengan berikut ini: Untuk mendapatkan daftar ini, hilangkan opsi dan argumen tujuan . Berikut skrip bash sederhana yang mendapatkan hasil yang diinginkan: Mendaftar File di Server Cadangan rsync juga dapat memberikan daftar file di server cadangan. Ini berguna untuk memverifikasi apakah file baru dan penting benar-benar ada, serta untuk menemukan file yang perlu dipulihkan karena hilang atau karena pengguna perlu memulihkan versi lama. rsync memberitahu kita bahwa sedang mempertimbangkan 14 file. Ini hanya mencadangkan lima file, karena sembilan file lainnya sudah ada di server cadangan dan belum diubah. Output ini menunjukkan output kemajuan sebagai 100 persen saat file selesai dan menunjukkan berapa lama waktu yang dibutuhkan setiap transfer. Pada LAN berkecepatan tinggi, waktu transfer biasanya kurang dari satu detik untuk file berukuran kecil atau sedang. Pada koneksi yang lebih lambat atau untuk file yang sangat besar, Anda akan melihat status kemajuan yang memberikan ukuran dan persentase yang ditransfer sejauh ini, dan perkiraan waktu penyelesaia Machine Translated by Google
  252. Mencadangkan Data Pengguna ke Server dengan rsync | 241 Memulihkan

    File yang Hilang atau Rusak Tidak ada sistem cadangan yang baik jika file yang hilang tidak dapat dipulihkan. Kita tidak hanya harus siap jika terjadi bencana, tetapi kita juga harus menguji rencana pemulihan dan pemulihan kita untuk memastikan mereka akan bekerja pada saat paling dibutuhkan. 0:00:00 (1, 100,0% dari 1) #!/bin/bash dest=server1 pengguna=$ (whoami) cd || exit 1 untuk file di "$@" ; lakukan rsync -aHPvz "${user}@${dest}:./${file}" "./ ${file}" selesai amy@desk12:~$ rm sales-plan-2006-10.sxw amy@desk12:~$ ./backrestore sales-plan-2006-10.sxw Password: menerima daftar file ... 1 file untuk dipertimbangkan sales-plan- 2006-10.sxw 41285 100% 6.56MB/dtk terkirim 42 byte diterima 39299 byte 6052.46 byte/dtk ukuran total 41285 percepatan adalah 1,05 amy@desk12:~$ www.it-ebooks.info Kami telah menambahkan cara untuk menentukan file individual yang akan dipulihkan: Kami juga dapat mengembalikan semua file sekaligus dengan menggunakan titik sebagai nama file. Anda memiliki banyak opsi untuk membuat cadangan. Anda mungkin ingin menjalankan skrip pekerjaan cron di server setiap hari atau setiap minggu, untuk membuat cadangan di server lain. Bisnis dengan kantor jarak jauh mungkin ingin membuat cadangan data secara teratur dari kantor tersebut melalui Internet. Cadangan juga dapat dibakar ke CD-R, DVD, atau kaset, untuk membuat salinan arsip jangka panjang yang dapat diangkut ke luar kantor. Skrip restorasi kami hanya sedikit lebih rumit dari skrip sebelumnya. Pencadangan Otomatis Pencadangan dapat diotomatisasi menggunakan skrip yang serupa dengan menjalankan sebagai tugas cron (dibahas di Bab 10). SSH memerlukan kata sandi pengguna untuk dimasukkan, jadi Anda harus menyertakan kunci publik pengguna Anda dalam konfigurasi SSH mereka untuk membuat login SSH berfungsi saat pengguna tidak ada (misalnya, setiap malam pukul 3 pag Untuk memulihkan file, kami cukup menjalankan skrip, meneruskan nama file yang akan dipulihkan sebagai argumen di baris perintah. Dalam contoh berikut, kami akan dengan sengaja menghapus salah satu file kami dan kemudian melihatnya dipulihkan: Machine Translated by Google
  253. Arsip tar argumen opsi tar 242 | Bab 11: Mencadangkan

    Data www.it-ebooks.info .tar.gz atau .tgz Untuk arsip tar yang telah dikompresi dengan program kompresi gzip -, Buat (tulis) arsip baru. -f nama file Membaca dari atau menulis ke nama file arsip . Jika nama file dihilangkan atau file arsip ditulis ke output standar atau dibaca dari input standar. Untuk arsip tar yang tidak terkompresi itu Perintah tar membuat file arsip dari satu atau lebih file atau direktori tertentu. Itu juga dapat membuat daftar isi arsip, atau mengekstrak file dan direktori dari arsip. File arsip tar juga dikenal sebagai tarfile atau tarball. Kompres atau buka kompresi arsip menggunakan bzip2 atau bunzip2. Arsip yang dikompres dengan bzip2 biasanya memiliki akhiran .bz2 . .tar.bz2 atau .tbz Untuk arsip tar yang telah dikompresi dengan program kompresi bzip2 Sintaks perintah tar adalah: -j Penggunaan umum untuk arsip tar adalah untuk membantu distribusi file program sumber untuk perangkat lunak bebas atau sumber terbuka. Dalam kebanyakan kasus, arsip tar dikompresi dengan program gzip atau bzip2 . Namun, jika semua file yang diarsipkan sudah dikompresi (yang biasanya berlaku untuk file audio, video, dan OpenOffice.org), mengompres arsip itu sendiri tidak akan banyak bermanfaat. -b File arsip tar menawarkan beberapa keunggulan dibandingkan direktori file terpisah. Misalnya, itu membuat pengiriman seluruh direktori melalui email menjadi jauh lebih mudah. Direktori yang berisi banyak file serupa dapat dikompresi lebih efisien ketika kompresi beroperasi pada semua data dalam satu file. Opsi secara tradisional diberikan sebagai huruf tunggal tanpa karakter tanda hubung (-) , meskipun banyak versi tar juga menerima tanda hubung. Opsi yang paling berguna adalah: adalah: -c .mengambil Tentukan ukuran blok (standarnya adalah unit 512 byte). Anda dapat memberi nama file tar apa pun yang Anda inginkan, tetapi ekstensi file tertentu biasanya digunakan untuk memberi tahu penerima cara membongkar file. Ekstensi paling umum Machine Translated by Google
  254. Arsip tar | 243 -Dengan File dalam arsip harus diatur

    di dalam direktori, tetapi tidak semua orang melakukan ini, jadi Anda harus berhati-hati untuk menghindari mengekstrak file ke direktori Anda saat ini. Biasanya ide yang baik untuk membuat direktori baru di komputer Anda untuk mengekstrak arsip tar . Ini membuat file yang diekstrak terpisah dari file Anda yang lain, sehingga tidak tercampur. Itu juga dapat mencegah ekstraksi dari menimpa file yang ada. Mengekstrak dari Arsip Pada waktu yang berbeda, Anda mungkin perlu mengekstrak file dari arsip yang Anda buat sebelumnya (seperti cadangan), dari arsip yang dikirimkan seseorang kepada Anda, atau dari arsip yang telah Anda unduh dari Internet (misalnya, kode sumber untuk beberapa perangkat lunak yang Anda butuhkan). Ekstrak (baca) file dari arsip yang ada. Sebelum mengekstrak arsip, Anda harus membuat daftar dan meninjau isinya. Anda tidak ingin secara tidak sengaja mengganti file yang ada di sistem Anda dengan file dari arsip, Anda juga tidak ingin berakhir dengan kekacauan file yang harus Anda bersihkan. Pertahankan izin file. Membuat Arsip Baru Anda dapat membuat arsip tar hanya untuk menyimpan sekelompok file untuk tujuan pengarsipan Anda sendiri, mengirimnya ke orang lain melalui email, atau membuatnya tersedia untuk umum (misalnya, di server FTP ). Beberapa perintah umum untuk mengarsipkan direktori work-docs adalah sebagai berikut: -p Kompres atau buka kompresi arsip menggunakan gzip atau gunzip. Arsip yang dikompresi dengan gzip biasanya memiliki akhiran .gz . Daftar file dalam arsip yang ada. -t • Untuk membuat arsip work-docs.tar dari direktori work-docs: Saat membuat atau membongkar arsip, buat daftar isinya. Dengan opsi -t , berikan lebih banyak detail tentang file yang terdaftar. -x -di • Untuk membuat arsip terkompresi work-docs.tar.gz dari direktori work-docs: $ tar -czf work-docs.tar.gz work-docs • Untuk membuat arsip terkompresi work-docs.tar.bz2 dari direktori dokumen kerja: $ tar -cjf work-docs.tar.bz2 work-docs $ tar -cf work-docs.tar work-docs www.it-ebooks.info Machine Translated by Google
  255. 244 | Bab 11: Mencadangkan Data • Untuk membuat daftar

    file di koleksi arsip.tar.bz2 dengan detail tambahan: Opsi -t mencantumkan nama file dalam arsip dan direktori tempat mereka berada saat arsip dibuka. Menambahkan opsi -v meningkatkan verbositas untuk memberikan detail tentang setiap file dalam arsip tar , termasuk ukuran setiap file dan waktu modifikasi terakhirnya. Berikut adalah beberapa contoh perintah: ing izin asli: $ tar -xpzf collection.tar.gz • Untuk mengekstrak file di collection.tar.bz2 ke direktori saat ini, sambil mempertahankan • Untuk membuat daftar file dalam koleksi arsip.tar: Untuk mengekstrak file di collection.tar ke direktori saat ini, sambil mempertahankan izin asli: Opsi -x mengekstrak file ke direktori saat ini. tar bekerja secara diam-diam kecuali opsi -v juga digunakan untuk membuat daftar file. Opsi -p mempertahankan izin asli, sehingga file yang diekstrak akan memiliki pengaturan izin yang sama dengan file yang diarsipkan. Sesi shell berikut menunjukkan pembuatan arsip tar dari direktori file: ing izin asli: Sesi shell berikut menunjukkan daftar isi arsip tar : • Untuk mengekstrak file di collection.tar.gz ke direktori saat ini, sambil mempertahankan $ tar -xpjf collection.tar.bz2 • Untuk membuat daftar dan mengekstrak file di collection.tar.bz2 ke dalam direktori saat ini, sambil mempertahankan izin aslinya: $ tar -xpvjf collection.tar.bz2 Contoh Lengkap Packing dan Unpacking dengan tar www.it-ebooks.info amy@desk12:~$ ls -l bulanan-laporan-aug.tar.gz -rw-r--r-- 1 amy amy 199015 2006-08-14 12:46 bulanan-laporan-aug.tar.gz -rw-r--r-- 1 amy amy 50552 2006-05-09 11:09 mr-2006-04.sxw -rw- r--r-- 1 amy amy 51284 2006-06-06 15:44 mr -2006-05.sxw -rw-r--r-- 1 amy amy 51428 2006-07-06 14:30 mr-2006-06.sxw -rw-r--r-- 1 amy amy 54667 2006-08 -07 10:06 mr-2006-07.sxw amy@desk12:~$ tar -czf bulanan-laporan-aug.tar.gz laporan bulanan amy@desk12:~$ ls -l bulanan-laporan-aug.tar. gz -rw-r--r-- 1 amy amy 199015 2006-08-14 12:46 bulanan-laporan-aug.tar.gz $tar -tvjf collection.tar.bz2 $ tar -tf koleksi.tar amy@desk12:~$ ls -dl laporan bulanan drwxr-xr-x 2 amy amy 4096 2006-08-11 14:15 laporan bulanan amy@desk12:~$ ls -l laporan bulanan total 228 $tar -xpf collection.tar Machine Translated by Google
  256. Menyimpan File di Media Optik amy@desk12:~/extract.dir$ tar -xvzf ../monthly-reports-aug.tar.gz -rw-r--r--

    amy/amy 50552 2006-05-09 11:09:12 bulanan-laporan/mr-2006-04.sxw -rw-r--r-- amy/amy 51284 2006-06-06 15:44:33 bulanan-laporan/mr-2006-05.sxw amy@desk12:~$ cd extract.dir drwxr-xr-x amy/amy 0 2006-08-11 14:15:12 laporan bulanan/ -rw-r--r-- amy/amy 51428 2006-07-06 14:30:19 bulanan-laporan/mr-2006-06.sxw laporan bulanan/ bulanan-laporan/mr-2006-04.sxw -rw-r--r-- amy/amy 54667 2006-08-07 10:06:57 bulanan-laporan/mr-2006-07.sxw bulanan-laporan/mr-2006-05.sxw bulanan-laporan/mr-2006-04.sxw -rw-r--r-- amy/amy 54667 2006-08-07 10:06:57 bulanan-laporan/mr-2006-07.sxw amy@desk12:~$ tar -tvzf bulanan-laporan-aug.tar.gz amy@desk12:~/extract.dir$ cd bulanan-laporan/mr-2006-07.sxw bulanan-laporan/mr-2006-06.sxw -rw-r--r-- amy/amy 50552 2006-05-09 11:09:12 bulanan-laporan/mr-2006-04.sxw drwxr-xr-x amy/amy 0 2006-08-11 14:15:12 laporan bulanan/ amy@desk12:~/extract.dir$ tar -xzf ../monthly-reports-aug.tar.gz -rw-r--r-- amy/amy 51428 2006-07-06 14:30:19 bulanan-laporan/mr-2006-06.sxw amy@desk12:~$ tar -tzf bulanan-laporan-aug.tar.gz -rw-r--r-- amy/amy 51284 2006-06-06 15:44:33 bulanan-laporan/mr-2006-05.sxw laporan bulanan/ amy@desk12:~$ amy@desk12:~$ bulanan-laporan/mr-2006-05.sxw bulanan-laporan/mr-2006-06.sxw bulanan-laporan/mr-2006-07.sxw amy@desk12:~$ mkdir extract.dir amy@desk12:~/extract.dir$ tar -xvvzf ../monthly-reports-aug.tar.gz Ringkasan Menyimpan File di Media Optik | 245 www.it-ebooks.info • -x mengekstrak (membaca dari) file tar dan menulis ke file Anda. menyimpan file dalam bentuk yang nyaman dan ringkas. Mereka dapat digunakan untuk membuat cadangan Sesi shell berikut mendemonstrasikan penggalian konten arsip tar : • Sebagian besar administrator Unix dan Linux telah mencampuradukkan opsi ini setidaknya sekali. Hal yang paling penting untuk diingat tentang tar adalah: yang dapat disimpan di luar lokasi, dan untuk mendistribusikan perangkat lunak atau data kepada pengguna atau pelanggan. CD-R dapat menampung hingga 700 MB data, sedangkan DVD-R atau DVD+R dapat sebesar 8,55 GB. tahan hingga 4,7 GB. Versi dual-layer DVD+R juga ada, dengan kapasitas -c membaca dari file Anda dan membuat (menulis ke) file tar . Media CD dan DVD yang dapat direkam, disebut CD-R, DVD-R, dan DVD+R, memungkinkan Anda untuk Machine Translated by Google
  257. Untuk merekam data, semua CD dan sebagian besar perekam DVD

    mengharuskan data dialirkan ke drive secara terus-menerus. Jika data tidak dapat tersedia saat laser mencoba merekamnya, laser harus berhenti, yang memecah kesinambungan perekaman. Metode yang digunakan untuk merekam CD dirancang untuk sistem komputer yang lebih lambat, untuk memaksimalkan keandalan rekaman ini. Komputer yang lebih cepat saat ini masih menghadapi tantangan untuk menyediakan data tanpa henti ke perangkat perekaman yang lebih cepat saat ini; namun, banyak perekam sekarang mendukung teknologi Buffer Underrun Free yang memungkinkan mereka untuk melanjutkan proses penulisan bahkan jika buffer data menjadi kosong di beberapa titik. Perbedaan antara DVD-R dan DVD+R adalah teknologi yang digunakan untuk menempatkan laser ke dalam alur trek untuk perekaman. Kedua metode tersebut tidak kompatibel, jadi jika drive Anda hanya mendukung DVD-R atau DVD+R, Anda harus menggunakan media yang dapat merekam yang cocok. (Drive memang ada yang mendukung keduanya, memungkinkan penggunaan salah satu jenis media DVD yang dapat direkam.) File yang akan direkam biasanya dikumpulkan terlebih dahulu ke dalam file yang disebut file gambar ISO, yang biasanya memiliki ekstensi .iso. File ini kemudian direkam langsung ke CD-R. Perangkat lunak yang diperlukan untuk merekam CD atau DVD di Linux terletak dalam paket yang disebut cdrecord (perhatikan bahwa paket ini sedang mengalami perubahan nama menjadi cdrtools). Jika paket ini belum terinstal di sistem Anda, Anda harus menginstalnya sekarang menggunakan metode yang telah Anda pelajari. Di Debian Sarge, Anda akan menjalankan perintah: Merekam file di CD atau DVD tidak semudah atau sefleksibel menyimpan file di hard disk. Media yang dapat ditulis ulang dapat mengatasi beberapa keterbatasan, tetapi memiliki biaya yang lebih tinggi dan kompatibilitas yang lebih rendah. Di bagian ini, kita akan fokus pada penyimpanan file pada CD-R. Metode untuk DVD serupa. Dimungkinkan untuk merekam file langsung ke CD-R tanpa membuat file .iso terlebih dahulu, tetapi metode ini meningkatkan risiko bahwa sesuatu yang berjalan di komputer Anda dapat memperlambat segalanya pada waktu yang salah. CD data terdiri dari array sektor masing-masing 2048 byte. Sistem file khusus yang dikenal sebagai ISO-9660 digunakan untuk mengatur file pada CD sehingga dapat dibaca di berbagai komputer dan perangkat lain. Pemutar musik CD yang lebih baru juga mendukung CD data yang ditulis dalam format ISO-9660, sehingga mereka dapat mengakses file musik dalam format terkompresi seperti MP3. DVD menggunakan sistem file yang lebih baru yang disebut Universal Disk Format (UDF). Debian 4.0 mem-forking paket cdrecord ke paket yang disebut wodim. Paket lainnya termasuk dvd+rw-tools (dijelaskan di http:// www.debianhelp.co.uk/ burningdvd.htm) dan K3b (http:// www.k3b.org). 246 | Bab 11: Mencadangkan Data www.it-ebooks.info # apt-get install cdrecord mkisofs Machine Translated by Google
  258. Menyimpan File di Media Optik | 247 Cdrecord-Clone 2.01 (i686-pc-linux-gnu)

    Hak Cipta (C) 1995-2004 J&#246;rg Schilling cdrecord: Tidak ada file atau direktori seperti itu. Tidak dapat membuka '/dev/pg*'. Tidak dapat membuka driver SCSI. cdrecord: Untuk kemungkinan target coba 'cdrecord -scanbus'. cdrecord: Untuk penentu transport yang memungkinkan, coba 'cdrecord dev=help'. cdrecord: cdrecord: Untuk informasi lebih lanjut, instal paket cdrtools-doc cdrecord: dan baca /usr/share/doc/cdrecord/ README.ATAPI.setup . ' 'ZYS5' CD-ROM yang Dapat Dilepas # cdrecord -scanbus Cdrecord-Clone 2.01 (i686-pc-linux-gnu) Hak Cipta (C) 1995-2004 J&#246;rg Schilling scsidev: 'ATA' devname: 'ATA' scsibus: -2 target: -2 lun: -2 Linux sg versi driver: 3.5.27 Menggunakan versi libscg 'schily-0.8'. scsibus1: 1,0,0 100) 'SONY ' 'CD-RW CRX195E1 1,1,0 101) 'DVD-16X ' 'DVD-ROM BDV316E 1,2,0 102) * 1,3,0 103) * 1,4,0 104) * 1,5,0 105) * 1,6,0 106) * 1,7,0 107) * ' '0052' CD-ROM yang Dapat Dilepas www.it-ebooks.info Mengakses Drive CD-R Anda Linux mendukung perekaman pada drive CD-R IDE ATAPI melalui driver khusus yang disebut ide-scsi. Sebagian besar distribusi Linux juga menyertakan driver ini di kernel. Jika sistem Anda tidak memiliki driver, Anda perlu memuat modul driver (menginstalnya jika diperlukan), atau mungkin mengkompilasi ulang kernel Anda. Output setidaknya harus mencantumkan CD-R atau CD-RW dalam deskripsi. Dalam contoh ini, perekam CD kami ada di perangkat SCSI yang diemulasi 1,0,0. Outputnya mungkin terlihat seperti ini: Jika driver ide-scsi tidak diinstal atau tidak aktif, Anda mungkin mendapatkan output seperti ini: Driver ide-scsi mengemulasi perangkat SCSI untuk perangkat lunak yang dirancang hanya untuk perangkat SCSI. Drive CD dan DVD IDE ATAPI Anda akan muncul seolah-olah mereka adalah perangkat SCSI ketika driver ide-scsi aktif. Perintah berikut akan mencantumkan perangkat SCSI di sistem Anda, sehingga Anda dapat menemukan nomor perangkat SCSI yang diemulasi untuk drive CD-R Anda. Ini mungkin mencantumkan perangkat lain juga, termasuk perangkat SCSI nyata jika komputer Anda benar- benar memilikinya. Jalankan perintah sebagai root: Cari deskripsi perangkat yang cocok dengan perekam CD-R Anda. Jika Anda memiliki lebih dari satu perangkat, nama merek dan model akan membantu mengidentifikasi perangkat yang benar. Jika Anda mendapatkan output seperti ini, Anda perlu mengaktifkan driver ide-scsi sebelum melakukan langkah perekaman yang sebenarnya. Machine Translated by Google
  259. Mengatur Default Mempersiapkan File untuk Direkam pada CD-R -1 ""

    -1 -1 "" -1 CDR_DEVICE=cd "" CDR_DEVICE=cd cd=1,0,0 DVD=1,1,0 "" # vi /etc/default/cdrecord -1 -1 cd=ATA:1,0,0-1 dvd=ATA:1,1,0-1 248 | Bab 11: Mencadangkan Data www.it-ebooks.info nilai untuk perangkat Anda sendiri. Gunakan nama apa pun yang Anda pilih sebagai pengganti cd dan dvd. Itu -di terhadap buffer underruns. ini adalah yang penting yang akan kita gunakan: dengan awalan ATA:, karena desain ulang driver. Dalam hal ini, konfigurasi Sejumlah parameter cdrecord dapat dikonfigurasi. Misalnya, Anda dapat mengonfigurasi nomor. -1 menunjukkan bahwa nilai default harus digunakan. Angka selanjutnya adalah -V id_string Perintah mkisofs membuat file gambar sistem file ISO. Itu harus berisi semua file mungkin terlihat seperti ini: cdrecord untuk mengenali nama alat perekam (jadi Anda tidak perlu menghafal ukuran penyangga FIFO; sekali lagi, -1 menentukan default pada sistem Linux. Yang terakhir -J Kami akan menempatkan baris teks berikut dalam file ini agar sesuai dengan perangkat yang ditampilkan di . kami -r rangkaian. masuk sebagai (atau gunakan su - untuk beralih ke) root. Kemudian buat file teks dengan editor Anda: Atur mode verbose untuk menunjukkan status kemajuan. cdrecord -scanbus keluaran sebelumnya . Anda perlu mengubah nilai-nilai ini agar sesuai dengan Tentukan ID volume untuk memberi nama disk yang akan dibuat. Anda juga dapat mengatur kecepatan perekaman default untuk setiap perangkat, tepat setelah perangkat spasi putih di antara bidang pada setiap baris harus berupa tab, bukan spasi: Jika kernel Linux Anda adalah Versi 2.6, kemungkinan besar Anda perlu menentukan perangkatnya file yang akan direkam pada CD-R. Ada banyak pilihan untuk perintah ini, tapi item di telepon memungkinkan Anda untuk melewati opsi khusus pengemudi; kami membiarkannya kosong Sertakan nama Joliet untuk kompatibilitas Windows. nomor perangkat), dan Anda dapat menetapkan perangkat default. Untuk mengkonfigurasi cdrecord, Versi cdrecord yang lebih baru mendukung opsi driveropts=burnfree untuk melindungi Sertakan nama Rock Ridge untuk kompatibilitas Unix/Linux. Machine Translated by Google
  260. Berikut adalah contoh perintah untuk memasukkan semua file dari direktori

    tertentu: Beberapa drive modern memiliki fitur khusus seperti burnfree yang membantu menghindari masalah saat komputer tidak beroperasi dengan cukup cepat. Disk yang direkam dengan perbaikan ini mungkin tidak kompatibel dengan beberapa perangkat lama. Jika Anda menemukan bahwa rekaman Anda terkadang gagal, lakukan dengan kecepatan yang lebih lambat. Anda dapat mengubah kecepatan dengan menyertakan opsi speed= , yang didokumentasikan di halaman manual cdrecord . Memperlambat kecepatan perekaman mungkin sangat penting jika file gambar yang direkam berada pada sistem file jaringan. Untuk merekam gambar ISO yang dibuat di bagian sebelumnya, masukkan: Anda akan melihat banyak output dari perintah ini. Outputnya berguna untuk koleksi file besar untuk menunjukkan perkiraan berapa banyak waktu yang tersisa. Jika Anda memilih untuk tidak memiliki output ini, hilangkan opsi -v dari perintah. Padding diperlukan untuk beberapa pembaca CD IDE ATAPI untuk bekerja dengan benar dengan operasi baca ke depan yang biasanya dilakukan oleh Linux dan sistem lain. Anda mungkin menemukan bahwa menghilangkan padding berfungsi dengan drive yang lebih baru, tetapi karena masalah terjadi selama membaca, Anda harus menyertakan padding untuk memastikan bahwa drive yang lebih lama akan dapat membaca CD-R yang Anda rekam. Jika tidak, Anda mungkin menemukan bahwa file cadangan penting Anda tidak dapat dibaca di komputer pengganti sementara. -o filename Tentukan nama file dari image ISO yang sedang dibuat. Merekam CD-R Sekarang Anda dapat merekam CD-R dengan image ISO yang Anda buat. Untuk melakukan perekaman yang sebenarnya, masuk sebagai (atau gunakan su - untuk beralih ke) root. Izin root diperlukan oleh program cdrecord untuk mengakses lapisan SCSI mentah, untuk mengubah prioritas proses, dan untuk mengunci ruang buffer ke dalam RAM untuk menghindari pertukaran. Penulisan CD memiliki ketergantungan waktu yang kritis, jadi ini membantu menjaga sisa sistem senyaman mungkin. Hindari melakukan pekerjaan lain di komputer yang merekam CD atau DVD. Jika Anda menggunakan disk CD-RW yang dapat ditulis ulang di drive CD-RW, Anda perlu menghapus (mengosongkan) CD-RW sebelum melakukan perekaman: # cdrecord blank=fast padsize=63s -pad -dao -v -eject # cdrecord padsize=63 -pad -dao -v -eject backup.iso # mkisofs -JrvV "nama disk" -o backup.iso /home/amy Beberapa drive memerlukan media untuk dikeluarkan untuk mengatur ulang drive untuk operasi berikutnya. Kecuali Anda telah menemukan bahwa drive Anda tidak memerlukan ini, gunakan opsi -eject , seperti yang ditunjukkan di sini. Menyimpan File di Media Optik | 249 www.it-ebooks.info Machine Translated by Google
  261. 250 | Bab 11: Mencadangkan Data Memverifikasi Rekaman Setelah Anda

    merekam CD atau DVD, ada baiknya untuk memastikan bahwa rekaman terbaca kembali dengan benar. Media mungkin rusak, atau komputer mungkin terbentur selama perekaman, menyebabkan laser keluar dari alu \ \ \ \ \ #!/bin/bash jika [[ $# -lt 1 ]] ; kemudian fi rm -f /tmp/isomd5.$$.err echo "${md5:0:32}" "" "${name}" selesai amy@desk12:~$ isomd5 backup.iso /dev/ sr0 d41d8cd98f00b204e9800998ecf8427e backup.iso echo "penggunaan: isomd5 <file_or_device> ..." 1>&2 keluar 1 fi untuk nama di "$@" ; do isoinfo -di "${name}" 1>/dev/null || exit 1 selesai untuk nama di "$@" ; lakukan count=( $ ( isoinfo -di "${name}" | egrep "^Ukuran volume adalah: " ) ) count="${count[3]}" bsize=( $ ( isoinfo -di "${name} " \ \ | egrep "^Ukuran blok logis adalah: " ) ) bsize="${bsize[4]}" md5=$( dd if="${name}" ibs="${bsize}" obs=4096 count="$ {size}" 2>/ tmp/isomd5.$$.err | md5sum ) jika [[ $? != 0 ]] ; lalu cat /tmp/isomd5.$$.err rm -f /tmp/ isomd5.$$.err exit 1 www.it-ebooks.info Kami menyebut skrip ini isomd5. Berikan nama file gambar ISO, serta nama perangkat CD yang biasanya digunakan untuk membaca CD-R (dengan kendali CD-R yang baru direkam). Anda harus mendapatkan hasil yang mirip dengan ini: Script ini bekerja dengan mendapatkan jumlah sektor yang digunakan oleh sistem file ISO dalam file gambar. Ini membatasi jumlah sektor yang dibaca ke dalam program hashing checksum MD5 ke jumlah persis yang digunakan. Ini menghindari membaca sektor padding apa pun, yang dapat bervariasi jumlahnya. Cara yang benar untuk memverifikasi rekaman adalah dengan membandingkan sektor- sektor yang direkam dengan sektor-sektor pada hard disk atau membuat checksum dari sektor-sektor tersebut dan membandingkannya. Kedua metode harus digunakan hanya dengan sektor data aktual, bukan sektor padding. Skrip bash shell berikut memudahkan verifikasi ini ketika file gambar ISO asli tersedia: Machine Translated by Google
  262. Pencadangan DVD Langkah-langkah yang ditunjukkan di bagian ini khusus untuk

    media CD, tetapi media DVD dapat direkam dengan cara yang sama, menggunakan perangkat lunak yang sama dalam paket cdrecord atau cdrtools . Beberapa media DVD—khususnya, DVD-RAM yang langka—dapat beroperasi seperti hard drive, tetapi ini memerlukan drive khusus yang mendukung mode operasi ini. d41d8cd98f00b204e9800998eff8427e /dev/sr0 amy@desk12:~$ Mencadangkan dan Mengarsipkan ke Tape dengan Amanda | 251 Mencadangkan dan Mengarsipkan ke Tape dengan Amanda www.it-ebooks.info Checksum dari program MD5 adalah bagian heksadesimal 32 karakter. Jika tidak sama untuk file gambar ISO dan konten drive CD-R, perekaman rusak. Rekaman yang gagal secara ejekan disebut "coaster." Anda dapat menggunakannya untuk melindungi meja biaya kopi Anda dari cincin yang tidak sedap dipandang, tetapi tidak seperti tatakan gelas minuman asli, itu akan meledak menjadi hujan pecahan tajam dan percikan api dalam microwave. Tape masih merupakan media backup yang populer. Advanced Maryland Automated Net work Disk Archiver ( Amanda) adalah paket open source yang mengelola backup tape. Dikembangkan di University of Maryland, itu termasuk dalam banyak distribusi Linux, termasuk Debian. Fitur Amanda meliputi: • Kemampuan untuk menyeimbangkan pencadangan penuh selama siklus pencadangan multi-hari • Dukungan untuk pencadangan tambahan untuk menulis perubahan harian • Kompresi data pada klien atau server, atau melalui perangkat yang menyertakan kompresi perangkat keras • Pencegahan penimpaan media yang salah secara tidak sengaja Ketika menulis ke disk gagal, coba secara bergantian: 1. Mengulangi perekaman dengan disk kosong lain 2. Merekam dengan kecepatan lebih lambat 3. Menggunakan batch yang berbeda atau merek disk kosong yang berbeda • Penggunaan format pencadangan Unix tradisional seperti tar dan dump • Operasi melalui LAN, mencadangkan data klien ke server tape pusat • Dukungan untuk membackup klien Windows melalui berbagi file • Dukungan untuk perangkat tape standar dan banyak tape changer, jukebox, dan Jika kegagalan terus berlanjut, Anda mungkin memiliki drive perekaman yang rusak. penumpuk Machine Translated by Google
  263. 252 | Bab 11: Mencadangkan Data / etc/ amanda /

    usr/ lib / usr/ share/ doc/ amanda-client Status berjalan, log, dan file lainnya Amanda menggunakan file di banyak direktori berbeda. Pengaturan ini dapat dikonfigurasi, tetapi defaultnya adalah: File dokumentasi khusus klien Instalasi Amanda Amanda memiliki komponen klien dan server. Klien digunakan pada sistem yang memiliki data yang perlu dicadangkan. Server digunakan pada sistem yang melakukan pekerjaan pencadangan dan menulis data ke tape. / root File /root/.amandahosts / usr/ lib/ amanda • Strategi penyimpanan disk yang memungkinkan penulisan bertahap atau tertunda ke media • Otentikasi melalui Kerberos atau skema otentikasinya sendiri • Enkripsi data untuk perlindungan melalui jaringan yang tidak aman File konfigurasi (server) Pustaka bersama yang digunakan oleh program Amanda halaman manual / usr/ sbin Jalankan perintah berikut untuk menginstal Amanda di server cadangan: / usr/ man/ man8 Program daemon dan utilitas internal File dokumentasi / var/ lib/ amanda Saat Anda menginstal paket-paket ini, paket-paket lain yang diperlukan akan disertakan. Jika Anda ingin menggunakan program amplot di Amanda, Anda juga perlu menginstal paket gnuplot . Jalankan perintah berikut untuk menginstal Amanda di setiap mesin Linux klien: / usr/ share/ doc/ amanda-common Program perintah # apt-get install amanda-client # apt-get install amanda-server www.it-ebooks.info Machine Translated by Google
  264. Mencadangkan dan Mengarsipkan ke Tape dengan Amanda | 253 dgram

    udp tunggu cadangan /usr/sbin/tcpd /usr/lib/amanda/amandad /etc/services: amanda amandaidx di tengahxtape /etc/inetd.conf: (untuk klien) amanda # layanan backup amanda # layanan backup amanda # layanan backup amanda /etc/inetd.conf: (untuk server) amandaidx stream tcp sekarang cadangan /usr/sbin/tcpd /usr/lib/amanda/amindexd amidxtape streaming tcp sekarang cadangan /usr/sbin/tcpd /usr/lib/amanda/amidxtaped www.it-ebooks.info 10080/ udp 10082/ tcp 10083/tcp Anda mungkin juga perlu mengedit file /etc/ inetd.conf , yang seharusnya berisi berikut ini Server Amanda harus terhubung dengan baik ke jaringan lokal, dengan bandwidth yang cukup untuk volume data yang akan ditransfer. Itu harus memiliki disk penahan yang sangat besar, dengan ruang yang cukup untuk menampung dua kali ukuran dump per-lari terbesar. CPU yang cepat juga diperlukan jika server akan melakukan kompresi perangkat lunak. Amanda mendukung beberapa konfigurasi. Setiap konfigurasi terdiri dari satu set tiga file dalam subdirektori /etc/ amanda: amanda.conf File konfigurasi utama. Anda mengedit ini untuk menentukan daftar disk (lihat item berikutnya), perangkat pita, frekuensi pencadangan, alamat email Anda, format pelaporan, dan sejumlah besar opsi lainnya. Entri pertama, bernama amanda, diperlukan pada semua klien. Dua entri lainnya hanya diperlukan di server. Jika baris ini tidak ada, edit file /etc/ inetd.conf dan tambahkan di akhir. entri: disklist File ini menentukan host dan disk yang akan dicadangkan. tapelist File ini berisi daftar kaset aktif, termasuk tanggal ketika masing-masing ditulis. Amanda man menua file ini, jadi Anda dapat melihatnya tetapi tidak boleh mengeditnya. Mengkonfigurasi Amanda File /etc/ services seharusnya sudah memiliki entri dengan nama dan nomor port berikut. Jika entri ini tidak ada, edit file /etc/ services dan tambahkan di akhir. Komentar bersifat opsional: Amanda menggunakan port acak setelah komunikasi awal. Anda harus menggunakan Amanda melalui Internet hanya melalui VPN. Ini mencegah kebutuhan untuk membuka berbagai port dari Internet ke LAN Anda. Amanda berjalan sebagai cadangan pengguna dengan izin grup disk . Anda perlu mengatur izin akses untuk semua file yang ingin Anda buat cadangannya agar dapat dibaca oleh Amanda. Machine Translated by Google
  265. # /etc/init.d/mysqld stop # cp -r /var/lib/mysql /tmp/mysql-backup # /etc/init.d/mysqld

    start Melaporkan detail lengkap dari semua opsi Amanda akan membutuhkan beberapa halaman, jadi kami akan menyerahkan penjelajahan mereka kepada Anda. Contoh file dengan komentar yang berguna disediakan di direktori /etc/ amanda/ DailySet1 saat Anda menginstal paket amanda-server Debian . Untuk detail tentang file konfigurasi ini, lihat halaman manual Amanda atau http:// wiki. zmanda.com. 254 | Bab 11: Mencadangkan Data Mencadangkan Data MySQL www.it-ebooks.info Sampai sekarang, kami telah membuat cadangan file dan direktori. Basis data memiliki beberapa kebiasaan khusus yang perlu kita atasi. Contoh kami menggunakan MySQL, tetapi prinsip yang sama berlaku untuk PostgreSQL dan database relasional lainnya. Anda harus meninjau laporan secara teratur, terutama memeriksa kesalahan dan meninjau waktu proses. Pencadangan online lebih rumit. Jika Anda memiliki tabel MyISAM yang saling independen (tidak ada kunci asing atau transaksi), Anda dapat mengunci masing-masing secara bergantian, menyalin filenya, dan Jika server MySQL Anda tidak perlu tersedia 24x7, metode pencadangan mentah offline yang cepat dan mudah adalah: Memulihkan File yang Dicadangkan oleh Amanda Amanda menggunakan format cadangan Unix standar (tar atau dump), yang Anda tentukan di file konfigurasi. Ini memungkinkan kaset cadangan digunakan untuk memulihkan file sistem bahkan jika sistem Amanda tidak ada. Ini bisa menjadi sangat penting ketika memulihkan file setelah kegagalan total disk. Alih-alih cp, Anda dapat menggunakan rsync, tar, gzip, atau perintah lain yang disebutkan sebelumnya dalam bab ini. 1. Hentikan server MySQL: Amanda juga menyediakan alat pemulihan terindeks untuk memungkinkan pemulihan file yang dipilih. Pastikan untuk mengonfigurasi indeks ya agar Amanda membuat file indeks yang diperlukan. Halaman manual amrecover memberikan detail lengkap. 3. Mulai server lagi: Amanda membuat laporan untuk setiap proses pencadangan. Laporan terperinci ini dikirim melalui email ke pengguna yang ditentukan dalam opsi mailto di file konfigurasi amanda.conf . 2. Salin file dan direktori data MySQL. Misalnya, jika direktori data MySQL Anda adalah /var/ lib/ mysql dan Anda ingin menyimpannya ke /tmp/ mysql-backup: Machine Translated by Google
  266. mysqlsnapshot bahkan lebih mudah. Ini mencadangkan semua tabel ISAM atau

    MyISAM di server Anda ke satu file tar per database: Anda akan menemukan mysqlsnapshot di http:// jeremy.zawodny.com/ mysql/ mysqlsnapshot. Untuk perlindungan ekstra dari kerusakan perangkat keras (tetapi bukan kesalahan manusia), atur replika dan berikan disk RAID 1 (tercermin) pada slave (dan/atau master) Anda. membukanya. Tetapi Anda mungkin memiliki tabel InnoDB, atau seseorang dapat menulis transaksi yang melibatkan banyak tabel. Untungnya ada beberapa solusi nonkomersial yang masuk akal, termasuk mysqlhotcopy, mysqlsnapshot, replikasi, dan mysqldump. mysqlhotcopy adalah skrip Perl yang melakukan pencadangan mentah online dari tabel ISAM atau MyISAM. Halaman manual mencakup banyak opsi, tetapi inilah cara mencadangkan satu basis data bernama drupal: Jika Anda telah menyiapkan replikasi MySQL untuk ketersediaan 24x7, Anda dapat mencadangkan dari server budak menggunakan salah satu metode yang baru saja dijelaskan. Anda juga harus menyimpan info replika (log, file konfigurasi, dan sebagainya). Lihat Bab 7 dan 9 dari MySQL Kinerja Tinggi oleh Jeremy D. Zawodny dan Derek J. Balling (O'Reilly) untuk detailnya. Mencadangkan Data MySQL | 255 www.it-ebooks.info Menyalin 171 file... Tabel tidak terkunci. mysqlhotcopy menyalin 57 tabel (171 file) dalam 1 detik (keseluruhan 1 detik). Tabel memerah (`drupal`.`access`, `drupal`.`accesslog`, `drupal`.`aggregator_ category`, `drupal`.`aggregator_category_feed`, `drupal`.`aggregator_category_item`, `drupal`.`aggregator_feed `, `drupal`.`aggregator_item`, `drupal`.`authmap`, `drupal`. `blocks`, `drupal`.`book`, `drupal`.`boxes`, `drupal`.`cache`, `drupal`.`client`, `drupal`.`client_system`, `drupal`.`comments`, `drupal`.`contact`, `drupal`.`file_ revisions`, `drupal`.`files`, ` drupal`.`filter_formats`, `drupal`.`filters`, `drupal`.`flood`, `drupal`.`forum`, `drupal`.`history`, `drupal`.`locales_meta`, `drupal` .`locales_source`, `drupal`.`locales_target`, `drupal`.`menu`, `drupal`. `node`, `drupal`.`node_access`, `drupal`.`node_comment_statistics`, `drupal`.` node_ counter`, `drupal`.`node_revisions`, `drupal`.`permission`, `drupal`.`poll`, `drupal`.`poll_choices`, `drupal`.`poll_votes`, `drupal`.`profile_fields `, `drupal`. `profile_values`, `drupal`.`role`, `drupal`.`search_dataset`, `drupal`.`search_ index`, `drupal`.`se arch_total`, `drupal`.`sequences`, `drupal`.`sessions`, `drupal`. `system`, `drupal`.`term_data`, `drupal`.`term_hierarchy`, `drupal`.`term_node`, `drupal`.`term_relation`, `drupal`.`term_synonym`, `drupal`.`url_alias `, `drupal`. `users`, `drupal`.`users_roles`, `drupal`.`variable`, `drupal`.`vocabulary`, `drupal`.`vocabulary_node_types`, `drupal`.`watchdog`) dalam 0 detik. Menyalin indeks untuk 0 file... # ./mysqlsnapshot -u user -p password -s /tmp --split -n memeriksa binary logging... ok back up db drupal... selesai back up db mysql... selesai back up db test... snapshot selesai selesai di /tmp # mysqlhotcopy -u user -p password drupal / tmp Mengunci 57 tabel dalam 0 detik. Machine Translated by Google
  267. Metode terakhir biasanya yang pertama disebutkan di sebagian besar dokumentasi:

    mysqldump. Anda dapat menyalurkan output melalui gzip untuk menghemat waktu dan ruang: • Mencadangkan database lokal, atau database jarak jauh melalui SSL. • Mengirim email tentang status prosedur pencadangan. • Menangani semua jenis tabel, termasuk InnoDB. • Tidak menyediakan metode pencadangan baru. Sebagai gantinya, ia memilih di antara mysql dump, mysqlhotcopy, replikasi MySQL, atau snapshot LVM. • Mendukung pemulihan ke transaksi atau titik waktu tertentu. Untuk mengunci semua tabel Anda dan membuangnya ke satu file, masukkan: • Memiliki antarmuka baris perintah. Ini relatif lambat dan file teks yang dihasilkannya besar, meskipun dikompres dengan cukup baik. Sangat berguna untuk membuat dump ini dari waktu ke waktu, karena berisi skrip langsung untuk membuat ulang database dan tabel Anda dari awal. Anda dapat menggunakan editor, grep, dan alat teks lainnya untuk menelusuri atau memodifikasi file dump. Alat open source baru (unduh gratis, bayar untuk dukungan) yang disebut Zmanda Recovery Manager untuk MySQL menyediakan antarmuka yang berguna untuk banyak alternatif ini. Situs web Zmanda (http:// www.zmanda.com/ backup-mysql.html) memiliki detailnya, tetapi kami akan menyebutkan beberapa fitur penting di sini: Daripada salinan mentah (verbatim), mysqldump menghasilkan dump ASCII dari database dan tabel yang ditentukan. Ia bekerja dengan semua jenis tabel MySQL, termasuk InnoDB. Zmanda menyediakan file .tar.gz dan .rpm untuk banyak distribusi Linux. Untuk cara penginstalan Debian, lihat http:// www.howtoforge.com/ mysql_zrm_debian_sarge. 256 | Bab 11: Mencadangkan Data www.it-ebooks.info Banyak situs MySQL memigrasikan data dari MyISAM ke tabel InnoDB untuk mendapatkan transaksi basis data yang sebenarnya dan kinerja penulisan yang lebih baik. Penulis modul InnoDB memiliki produk komersial untuk pencadangan InnoDB online bernama InnoDB Hot Backup, yang dapat Anda pesan dari http:// www.innodb.com/ order.php. # mysqldump -u pengguna -ppassword -x --all-databases > /tmp/ mysql.dump # mysqldump -u pengguna -ppassword -x --all-databases | gzip > /tmp/ mysql.dump.gz Machine Translated by Google
  268. Menambahkan Pengguna serta berfungsi sebagai model untuk menulis skrip lainnya.

    Anda dapat mengunduh skrip detail tentang useradd dan variannya): Lampiran Jika Anda memiliki banyak omset (seperti di universitas, tempat siswa baru masuk Lampiran ini berisi beberapa skrip yang dapat berguna bagi Anda dalam pekerjaan sehari-hari, dengan argumen yang tepat (lihat bagian “Manajemen Pengguna” di Bab 8 untuk tandan sekali atau beberapa kali setahun), skrip ini dapat membantu Anda menambahkannya ke sistem Anda dengan cepat. Itu membaca informasi daftar file tentang setiap pengguna dan memanggil useradd Contoh Skrip bash " menjadi echo echo echo echo "Contoh baris: nama asli pribadi" echo "File akan memiliki satu pengguna per baris." " echo "Setiap baris akan memiliki:" melanjutkan keluar 1 menjadi echo "pemasaran alfredo Alfredo de Darc" "" kadaluarsa=2009-02-18 " melakukan #!/bin/bash "" kucing "$1" | saat membaca nama pengguna nama grup nama asli echo echo "Tolong berikan tepat satu nama file." kelompok" jika [[ -z $namapengguna || -z $nama grup || -z $nama asli ]]; kemudian jika [[ -z "$1" ]] ; kemudian nama belakang" # Lewati baris kosong. 257 www.it-ebooks.info dari http:// www.centralsoft.org. LAMPIRAN Machine Translated by Google
  269. 258 | Lampiran: Contoh Skrip bash -s /bin/bash "$namapengguna" |

    tr -cd 'a-zA-Z0-9' \ | potong -c 1-$n ) menjadi -m p=$( dd if=/dev/urandom bs=512 count=1 2>/dev/null \ # Jika demikian, laporkan ini dan lewati pengguna ini. result=$( egrep "^$username:" < /etc/passwd ) if [[ -n "$result" ]] ; lalu echo "User '$username' sudah ada" lanjutkan menjadi # Periksa apakah pengguna sudah ada. jika [[ $? == 0 ]]; lalu echo "Berhasil menambahkan pengguna '$username'." else echo "Kesalahan menambahkan pengguna '$username' (grup \ '$groupname', nama asli '$realname')" exit 1 # Periksa apakah grup sudah ada. gema "${p}" menjadi selesai menjadi #!/bin/bash n="$1" [[ -n "$n" ]] || n=12 jika [[ $n -lt 8 ]]; lalu echo "Kata sandi dengan panjang $n akan terlalu lemah" keluar 1 # Tambahkan pengguna. useradd -c "$realname" \ -d "/home/$username" \ -e "$expiredate" \ -f 365 \ -g "$groupname" \ \ \ # Jika tidak, tambahkan grup. result=$( egrep "^$groupname:" < /etc/group ) if [[ -z "$result" ]] ; lalu groupadd "$groupname" Berikut adalah skrip yang menghasilkan kata sandi dengan panjang apa pun yang diminta, dalam karakter ASCII: www.it-ebooks.info Pembuat Kata Sandi Acak Machine Translated by Google
  270. * Pergi ke Starbucks. Pesan Venti Mocha Frappuccino. Beritahu mereka

    itu di rumah. Lari. Jika ini masuk akal bagi Anda sebagaimana adanya, Anda layak mendapatkan hadiah.* Saat Anda keluar, kita semua akan melihat lebih dekat kekurangan yang melekat pada kode ini. Secara keseluruhan, Anda harus mendokumentasikan hasil yang Anda cari dengan set perintah, dan mengapa Anda mengejar hasil tersebut dengan cara yang Anda pilih. Dua batang vertikal akan menjalankan penetapan berikut jika pengujian gagal. Ini memaksa panjang default 12 untuk kata sandi kami. Empat baris berikutnya memeriksa untuk melihat apakah panjang yang diberikan terlalu kecil; kami telah memutuskan (berdasarkan rekomendasi klasik oleh pakar keamanan) bahwa panjang minimum harus 8. Nah, berikut ini penjelasan kode untuk pembuat password, secara detail yang mungkin tidak akan Anda lihat di dunia nyata. Skrip dimulai dengan komentar awal biasa yang memberi tahu sistem untuk menjalankan penerjemah bash . Selanjutnya, kami menetapkan string argumen pertama ke variabel n, yang akan menjadi jumlah karakter yang akan dihasilkan. Kami menempatkan ini dalam tanda kutip karena mungkin string nol ketika skrip dijalankan tanpa argumen. String itu kemudian diuji untuk menentukan apakah itu benar-benar nol. Argumen -n berarti "panjang bukan nol", jadi tes ini benar-benar benar jika sebuah string diberikan. Kode ini khas dari sesuatu yang mungkin Anda miliki dari pengembang sebelumnya: tidak ada komentar, nama variabel yang tidak membantu, dan beberapa mantra ajaib. Karena Anda ingin membuat dunia menjadi tempat yang lebih baik, ada beberapa hal yang dapat Anda lakukan saat menulis skrip seperti ini. Pernyataan pertama di badan loop menggunakan tiga perintah sistem dalam pipa untuk menghasilkan satu kata sandi percobaan. Ketiga baris dalam pipeline ditempatkan di dalam $() untuk menangkap output sebagai string yang kemudian ditetapkan ke variabel p. Paling tidak, Anda dapat meninggalkan komentar yang menjelaskan tujuan kode tersebut. Komentar ini harus dibagi menjadi dua bagian: tinjauan umum tepat di header (misalnya, menunjukkan apa yang harus ditentukan oleh argumen yang diteruskan ke skrip, dan default apa pun), dan penjelasan eksplisit di dekat proses yang sulit dipahami. Untuk menghasilkan kata sandi acak, kita membutuhkan sumber data acak; sistem menyediakannya dengan menggabungkan berbagai sumber statistik ke dalam perangkat semu / dev/ urandom . Perintah dd membaca beberapa data biner dari perangkat. Perintah tr dengan opsi -cd menghapus semua karakter yang tidak berada dalam rentang az, AZ, dan 0-9. Perintah terakhir dalam pipa, potong, ekstrak jumlah karakter yang diinginkan. Jangan buang waktu hanya dengan menjalankan perintah dasar yang digunakan, karena tainer utama dapat mencarinya jika dia tidak terbiasa dengannya. Namun, di mana Anda menggunakan varian perintah yang lebih eksotis, Anda harus secara eksplisit menjelaskan efeknya dan bagaimana Anda mencapainya. Pembuat Kata Sandi Acak | 259 www.it-ebooks.info Machine Translated by Google
  271. negara. mulai mengeong. Apakah Anda menyerah pada godaan untuk melakukannya?

    Kamu boleh Jangan mencoba menjalankan perintah ini di terminal Anda dan lihat 260 | Lampiran: Contoh Skrip bash harus menjalankan perintah stty sane untuk mengembalikan layar ke tampilan yang berguna hasil di layar. Anda akan buta selama 10 menit dan anjing Anda akan bernama a, ia mencari catatan DNS A. Jika diberi nama soa, ia akan mencari catatan DNS SOA . dengan nama yang sesuai untuk setiap jenis catatan DNS umum yang mungkin Anda perlukan untuk mencari: a, aaa, mx, dan seterusnya. Anda juga dapat menggunakan tautan keras atau symlink untuk membuat Nama ptr adalah kasus khusus yang mengambil alamat IPv4 dan mengubahnya menjadi yang benar Skrip ini menggunakan perintah dig yang diperkenalkan di Bab 3 untuk melakukan pencarian DNS, alias. melewati cache server caching DNS lokal. Salah satu fitur skrip ini adalah Terlepas dari namanya, skrip mengambil daftar nama host untuk dicari sebagai argumen: in-addr.arpa untuk melakukan pencarian yang sebenarnya. Anda harus membuat salinan skrip ini ia menggunakan namanya sendiri untuk menentukan jenis data DNS apa yang akan dicari. Jika skripnya adalah #------------------------------------------------- --------------- # # # [ nama ... ] # [ nama ... ] # sintaks a # # txt [ nama ... ] # #------------------------------------------------- --------------- mx # script a, aaaa, cname, mx, ns, ptr, soa, txt [ nama ... ] aaa awk -F. '{cetak $4 "." $3 "." $2 "." $1 ".in-addr.arpa.";}' # # tujuan Lakukan pencarian DNS langsung untuk DNS otoritatif sembarang cname [ nama ... ] ptr # penulis Philip Howard # [ nama ... ] #!/bin/bash # # server. # Hak Cipta &#169; 2006 - Philip Howard - Hak cipta dilindungi undang-undang [ nama ... ] # Untuk digunakan dengan permintaan ptr. } [ nama ... ] # # n fungsi inaddr { soa [ nama ... ] data. Pencarian ini melewati cache DNS lokal # www.it-ebooks.info Pencarian DNS Resmi Machine Translated by Google
  272. Sistem pengirim harus memiliki akses jaringan yang terbuka untuk nomor

    port yang digunakannya untuk menerima koneksi rsync yang masuk. Nomor port dipilih secara acak dari kisaran 12288 hingga 28671. Anda dapat melewati pemilihan port acak dengan menggunakan opsi -p diikuti dengan nomor port. Jika aturan firewall Anda hanya mengizinkan satu atau beberapa port untuk dihubungkan, Anda harus menggunakan nomor port tersebut dengan skr Pencarian DNS Resmi | 261 # Jalankan kueri. dig +trace +noall +answer "${query_type}" "${hostname}" | \ egrep "^$ {hostname}" esac query_type=$( nama dasar exec "${0}" ) menjadi # Dapatkan dan kueri untuk setiap host. untuk nama host di "$@" ; lakukan jika [[ "${query_type}" == ptr ]] ; lalu # Trik skrip tipikal: ketika sebuah kasus dapat dimulai # dengan angka, tempatkan karakter tiruan seperti x di depan # karena sintaks kasus mengharapkan karakter alfanumerik #. huruf "x${hostname}y" di ( x[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*y ) hostname=$( echo " ${namahost}" | inaddr );; (*) ;; selesai keluar Skrip ini tidak perlu ada di sistem penerima, sehingga bahkan dapat digunakan untuk mengirim salinannya sendiri. Paket rsync , bagaimanapun, harus diinstal pada kedua sistem. Untuk mentransfer data, jalankan terlebih dahulu skrip ini pada sistem pengiriman. Setelah mengeluarkan perintah sampel, pilih perintah mana yang sesuai untuk digunakan berdasarkan alamat IP atau nama host yang dapat menjangkau sistem pengirim, dan lokasi target di mana file atau direktori akan disimpan pada sistem penerima. Salin baris perintah yang dipilih, dan rekatkan perintah itu ke shell sistem penerima untuk menjalankan perintah rsync yang menerima data. Daemon akan terus berjalan Mengirim File Antar Sesi Shell Anda dapat menggunakan skrip yang disajikan di bagian ini untuk mengirim file, atau direktori file (termasuk semua subdirektori), dari satu sistem ke sistem lain menggunakan sesi shell pada setiap sistem. Script bekerja dengan membuat daemon rsync (rsync dibahas di Bab 11) di latar depan untuk mengirim file atau direktori yang ditentukan. Ini menampilkan beberapa bentuk berbeda dari perintah rsync yang dapat digunakan untuk menerima f www.it-ebooks.info Machine Translated by Google
  273. Nama yang disarankan untuk skrip ini adalah rsend: ketika transfer

    selesai, memungkinkan Anda untuk mentransfer file atau direktori beberapa kali ke komputer yang berbeda. Hentikan daemon saat transfer selesai dengan menekan Ctrl-C di jendela shell sistem pengiriman. # script rsend # # tujuan Untuk memulai daemon rsync di latar depan shell # # # # # # penggunaan rsend [opsi] direktori | file # # opsi -c sertakan checksum di baris perintah rsync # -d ubah daemon ke direktori yang ditentukan # -n sertakan dryrun di baris perintah rsync # -p gunakan nomor port yang ditentukan, jika tidak acak # -s sertakan sparse di baris perintah rsync # -u pengguna untuk dijalankan sebagai, jika dimulai sebagai root # -v tampilkan informasi tambahan # # penulis Philip Howard #----------------------- ----------------------------------------- umask 022 hostname=$ ( exec hostname - f ) whoami=$( exec whoami ) uid="$ {whoami}" #------------------------------------------------- --------------- # Atur default. #------------------------------------------------- --------------- checksum="" delete="" delmsg="" dryrun="" padding="-------" port="" sparse="" untuk mengirim direktori atau file tertentu saat diambil menggunakan salah satu baris perintah rsync yang ditampilkan, dengan menempelkannya di sesi shell di host lain. #!/bin/bash #------------------------------------------- --------------------- # Hak Cipta &#169; 2006 - Philip Howard - Hak cipta dilindungi undang-undang # www.it-ebooks.info Script ini tidak memiliki keamanan. Siapa pun yang dapat mencapai alamat dan nomor port yang mendengarkannya dapat mengambil data yang sedang ditransfer. Anda tidak boleh menggunakan skrip ini untuk mentransfer data rahasia atau rahasia; coba scp atau sftp sebagai gantinya. Pastikan untuk menghentikan daemon setelah transfer yang diinginkan selesai. 262 | Lampiran: Contoh Skrip bash Machine Translated by Google
  274. Pencarian DNS Resmi | 263 www.it-ebooks.info ekspor PATH="${PATH}:/usr/sbin:/sbin" bar2="########################" bar2="#${bar2}${bar2}${bar2}"

    ;; ( x--delete ) delete=" --delete" delmsg="/delete" padding="" ;; ( xd | x--directory ) shift cd "${1}" || keluar 1 ;; ( x--directory=* ) cd "${1:12}" || keluar 1 ;; ( xn | x--dry-run ) dryrun="n" ;; ( xp | x-- port ) shift port="${1}" ;; ( x--port=* ) port="${1:7}" ;; ( xs | x-- jarang ) jarang="S" ;; ( xu | x--user ) shift uid="${1}" ;; ( x-- user=* ) uid="${1:7}" ;; #------------------------------------------------- --------------- #------------------------------------------------- --------------- # Opsi pemindaian. # Sertakan jalur untuk ifconfig. bertele-tele="" #------------------------------------------------- --------------- #------------------------------------------------- --------------- bar1="---------------------------" bar1="#$ {bar1}${bar1}${bar1}" while [[ $# -gt 0 && "x${1:0:1}" = "x-" ]]; lakukan kasus "x${1}" di ( xc | x--checksum ) checksum="c" Machine Translated by Google
  275. 264 | Lampiran: Contoh Skrip bash www.it-ebooks.info " ` '

    #------------------------------------------------- --------------- # Fungsi ini menambahkan tanda kutip ke string yang membutuhkannya. kembali 0 #------------------------------------------------- --------------- ;; #------------------------------------------------- --------------- #------------------------------------------------- --------------- function strquote { str lokal esac # Buat nama untuk file sementara yang akan digunakan. #------------------------------------------------- --------------- jika [[ $# -gt 1 ]]; kemudian echo "Hanya satu nama (direktori atau file)" 1>&2 keluar 1 return fi str=$ ( echo "${1}" | tr -d "'" ) if [[ "${str}" ! = "${1}" ]]; lalu gema '"'"${1}"'"' #------------------------------------------------- --------------- conffile="/tmp/rsync-${whoami}-${port}-$$.conf" lockfile="/tmp/rsync-${whoami}-${port}-$$.lock" } jika [[ -z "${port}" || "${port}" = 0 || "${port}" = . ]]; kemudian port=$ ( dd if=/dev/urandom ibs=2 obs=2 count=1 2>/dev/null \ | od -An -tu2 | tr -d ' ) port=$[ $port % 16384 ] port =$[ $port + 12288 ] # Tambahkan tanda kutip tunggal jika memiliki salah satu dari ini: spasi $ # Tambahkan tanda kutip ganda jika memiliki salah satu dari ini: # Catatan: tidak semua kombinasi akan berfungsi. # Hanya satu nama yang bisa ditangani. ( xv | x--verbose ) verbose=1 menjadi ' #------------------------------------------------- --------------- shift selesai str=$( echo "${1}" | tr -d ' $"`' ) if [[ "$ {str}" != "${1}" ]]; lalu echo "'${1}' " # Dapatkan nomor acak untuk port. #------------------------------------------------- --------------- kembalikan fi echo "${1}" Machine Translated by Google
  276. Pencarian DNS Resmi | 265 www.it-ebooks.info File ditransfer (jika file

    tunggal ditentukan) #------------------------------------------------- --------------- #------------------------------------------------- --------------- Tidak digunakan (AO: Harus dihapus) $3 # Dapatkan direktori dan file. menjadi # p=$( exec dirname "${name}" ) b=$( exec basename "${name}" ) d="${name}" f="" r=$( cd "$ {name}" && exec pwd ) mengumumkan="${d}" rsyncopt="- a${checksum}${dryrun}H${sparse} vz${delete}" konfigurasi "${d}/." "direktori:${d}/" >"${conffile}" elif [[ -f "${nama}" ]]; kemudian elif [[ $# -eq 1 ]]; lalu name="${1}" else name=$( exec pwd ) # # Siapkan file konfigurasi sementara. function configout { echo "file kunci = ${lockfile}" echo "file log = /dev/stderr" echo "gunakan chroot = false" echo "koneksi maks = 32" echo "opsi soket = SO_KEEPALIVE" echo "daftar = ya" echo "[.]" echo "path = ${1}" echo "hanya baca = yes" echo "uid = ${uid}" echo "komentar = ${2}" if [[ -n "${3} " ]]; lalu echo "include = **/${3}" echo "exclude = fi jika [[ ! -e "${nama}" ]]; lalu echo "tidak ada:" $( strquote "${name}" ) 1>&2 exit 1 elif [[ -d "$ {name}" ]]; kemudian #------------------------------------------------- --------------- #------------------------------------------------- --------------- p=$( exec dirname "${name}" ) b=$( exec basename "${name}" ) d="${p}" f="${b}" r=$( cd "${ p}" && exec pwd ) # Argumen: $1 } Direktori ditransfer, atau di mana transfer dimulai # $2 **" # Machine Translated by Google
  277. 266 | Lampiran: Contoh Skrip bash www.it-ebooks.info #------------------------------------------------- --------------- function

    getip { case $( exec uname -s ) di # Fungsi-fungsi ini menunjukkan perintah rsync untuk nama host dan alamat IP. menjadi #------------------------------------------------- --------------- p=$( exec dirname "${name}" ) b=$( exec basename "${name}" ) d="${p}" f="${b}" r=$( cd "${ p}" && exec pwd ) r="${r}/${b}" mengumumkan="${d}/${f}" rsyncopt="-a${checksum}v" configout "${d} /." "symlink:${d}/$ {f}" "${f}" >"${conffile}" #------------------------------------------------- --------------- ( Linux ) ifconfig -a | awk '{if($1=="inet")print substr($2,6);}' ;; ( * ) netstat -i -n | awk '{cetak $4;}' ;; # Fungsi ini menampilkan contoh menerima perintah. r="${r}/${b}" mengumumkan="${d}/ ${f}" rsyncopt="-a${checksum}${dryrun}${sparse} vz" konfigurasi "${d }/." "file:${d}/${f}" >"${conffile}" elif [[ -L "${name}" ]]; kemudian #------------------------------------------------- --------------- kembali ( SunOS ) netstat -i -n | awk '{cetak $4;}' ;; kembali menjadi function showrsync { echo -n "rsync ${rsyncopt} " if [[ -n "${oldfmt}" ]]; lalu echo "-- port=${port}" $( strquote "${1}::${2}" ) $( strquote "${3}" ) else echo $( strquote "rsync://${ 1}:${port}/${2}" ) $( strquote "${3}" ) fi esac #------------------------------------------------- --------------- #------------------------------------------------- --------------- if [[ -n "${verbose}" ]]; lalu echo "$ {bar2}" ls -ld "${conffile}" echo "${bar2}" cat "${conffile}" # Tampilkan file konfigurasi jika verbose diminta. } Machine Translated by Google
  278. Pencarian DNS Resmi | 267 www.it-ebooks.info function showcmd { ipaddr

    "${2}" "${3}" showrsync "${1}" "${2}" "${3}" if [[ "${d}" != "${b}" && "${d}" != "${r}" ]]; lalu echo "$ {bar1}" showcmd "${hostname}" . "${d}" fi . } echo "${bar1}" showcmd "${hostname}" . "${b}" fungsi ipaddr { getip | egrep '^[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*$' | egrep -v '^0\.| ^127\.' | kepala -2 | saat membaca ipv4 lebih lanjut; lakukan showrsync "${ipv4}" "$@" selesai } s=$( exec basename "${d}" ) s="${s}/${f}" if [[ "${s}" != "$ {b}" ]]; lalu echo "${bar1}" showcmd "${hostname}" "./${f}" "$ {s}" fi } kembali \ #------------------------------------------------- --------------- echo "${bar1}" showcmd "${hostname}" . "${r}" else echo "${bar1}" showcmd "$ {hostname}" "./${f}" "${b}" \ #------------------------------------------------- --------------- # Umumkan perintah shell untuk menerima data ini. if [[ "${name}" != "${b}" \ && "$ {name}" != "${s}" \ && "$ {name}" != "${r}" ] ]; kemudian \ jika [[ -d "${nama}" ]]; lalu echo "${bar1}" showcmd "${hostname}" . kembali echo "${bar2}" echo "# mengirim ${announce}" echo "# tempel SALAH SATU dari perintah ini di shell jarak jauh untuk menerima" \ Machine Translated by Google
  279. 268 | Lampiran: Contoh Skrip bash #------------------------------------------------- --------------- SELESAI"' TERM

    echo "${bar1}" echo "# tekan ^C di sini setelah selesai" echo "${bar2}" DONE"' INT trap 's="SIGTERM ... rsync -- daemon --no-detach "--config=${conffile}" "--port=${port}" rm -f "${conffile} " "${lockfile}" gema "${s}" menjadi #!/usr/bin/env bash #-------------------------------------------------- ------------------------ # Hak Cipta &#169; 2006 - Philip Howard - Hak cipta dilindungi undang-undang # #------------------------------------------------- --------------- s="DONE" trap 's="SIGINT ... echo "${bar1}" showcmd "${hostname}" "./${f}" "${r}" # Mulai rsync dalam mode daemon. echo "${bar1}" showcmd "${hostname}" "./${f}" "${name}" fi Skrip berikut membuat koneksi ssh dan memulai sesi layar bernama dalam satu perintah. Manfaat menggunakan skrip ini adalah koneksi dan pemutusan yang lebih cepat saat bekerja dengan banyak server. Anda seharusnya sudah terbiasa dengan perintah ssh , yang menghubungkan ke komputer lain dan memulai shell di sana dengan cara yang aman. Perintah layar adalah alat yang berguna yang memungkinkan sesi shell semacam itu diadakan dalam keadaan aktif, dengan konten layarnya utuh, saat Anda memutuskan sambungan dari komputer jarak jauh. Sesi shell yang ditahan kemudian dapat dihubungkan kembali nanti, bahkan dari komputer yang berbeda. Hal ini juga memungkinkan untuk memiliki dua atau lebih koneksi ke sesi shell yang sama. komentar. Script ini digunakan seperti perintah ssh . Sintaks ssh yang menentukan nama pengguna dan nama host sesi jarak jauh diperluas untuk juga menyertakan nama sesi. Anda dapat membuat beberapa sesi pada host jarak jauh dengan nama pengguna yang sama dengan nama sesi yang berbeda. Nama sesi adalah opsional. Jika tidak diberikan, skrip ini menjalankan perintah ssh dengan cara biasa, tanpa menjalankan layar. Sintaks lengkap skrip ini, termasuk opsi ssh yang didukungnya, dapat dilihat di skrip Nama yang disarankan untuk skrip ini adalah ss: www.it-ebooks.info Mengintegrasikan ssh dan layar Machine Translated by Google
  280. Mengintegrasikan ssh dan layar | 269 www.it-ebooks.info diinstal. Sistem jarak

    jauh harus memiliki # p=( ) # perintah ss (layar aman) -l pengguna login -t Gunakan alokasi tty (default) # # # #------------------------------------------------- --------------- ss [opsi] sesi@namapengguna@namahost # opsi -h nama host # program diinstal. Mengonfigurasi .screenrc nama host=$( nama host exec ) u="${whoami}" melalui komunikasi shell yang aman. -p portnum # # untuk penggunaan potensial oleh skrip lain. # # # # persyaratan Sistem lokal harus memiliki paket OpenSSH # m="" -i=identitas -s=sesi # # # Parsing opsi dan argumen. # sintaks ss [opsi] sesi/namapengguna@namahost # # daemon berjalan. Itu juga harus memiliki layar (1) whoami=$( eksekutif whoami ) t=( -t ) # tujuan Membuat sesi shell latar belakang berbasis layar -m Mode multi-tampilan # -46 | -64 Gunakan IPv6 atau IPv4 # dalam sesi yang dibuat di bawah perintah layar ss [opsi] nama pengguna@nama host sesi -4 Gunakan IPv4 (default) # # saya=( ) -i identitas # -s sesi # # #------------------------------------------------- --------------- # # Paket OpenSSH diinstal dan memiliki sshd # #------------------------------------------------- --------------- s='' # -l=pengguna login # -6 Gunakan IPv6 Variabel lingkungan SESSION_NAME akan disetel ss [opsi] nama pengguna@namahost/sesi -T JANGAN gunakan alokasi tty -h=nama host # file pada setiap sistem dianjurkan. h="" # -p=portnum # # catatan # penulis Philip Howard v=( -4 ) # # Machine Translated by Google
  281. 270 | Lampiran: Contoh Skrip bash www.it-ebooks.info # Contoh: lisa@centrhub/session1

    u=$( echo "x${1}" | cut -d @ -f 1 ) u="$ {u:1}" h=$( echo "x${1} " | cut -d @ -f 2 ) s=$( echo "x${h}" | cut -d / -f 2 ) h=$ ( echo "x${h}" | cut -d / -f 1 ) h="$ {h:1}" shift istirahat while [[ $# -gt 0 ]]; lakukan kasus "x${1}" di ( x*/ *@* ) istirahat ;; ( x*@*@* ) ;; ( x*@* ) ;; ( xh=* ) h="${1:3}" ;; ( xh ) shift h="${1}" ;; ( xi=* ) # Contoh: session1/lisa@centrhub u=$( echo "x${1}" | cut -d @ -f 1 ) u="$ {u:1}" s=$( echo "x${u} " | cut -d / -f 2 ) u=$( echo "x${u}" | cut -d / -f 1 ) u="${u:1}" h=$( echo "x${ 1}" | cut -d @ -f 2 ) shift break # Contoh: session1@lisa@centrhub s=$( echo "x${1}" | cut -d @ -f 1 ) s="$ {s:1}" u=$( echo "x${1} " | cut -d @ -f 2 ) h=$( echo "x${1}" | cut -d @ -f 3 ) shift break # Contoh: lisa@centrhub u=$( echo "x${1}" | cut -d @ -f 1 ) u="$ {u:1}" h=$( echo "x${1}" | potong -d @ -f 2 ) ;; ( x*@*/* ) # Argumen berikutnya harus nama sesi. shift if [[ $# -gt 0 ]]; lalu s="${1}" shift Machine Translated by Google
  282. Mengintegrasikan ssh dan layar | 271 www.it-ebooks.info ;; ( xp=*

    ) p="${1:3}" if [[ -z "${p}" ]]; lalu p=( ) else p=( -p "${1:3}" ) ;; ( xi ) shift i=( - i "${1}" );; ( xl=* | xu=* ) u="${1:3}" ;; ( xl | xu ) shift u="${1}" ;; ( xm | x-- multi ) i="${1:3}" if [[ -z "${i}" ]]; lalu i=( ) else i=( - i "${1:3}" ) ;; ( xp ) shift p=( -p "${1}" );; ( xs=* ) s="${1:3}" ;; ( xs ) shift s="${1}" ;; ( xt ) t=( -t ) ;; ( xT ) t=( ) ;; ( x-4) v=( -4 ) ;; ( x-6 ) v=( -6 ) ;; ( x-46 | x-64 ) v=( ) ;; m=1 menjadi menjadi Machine Translated by Google
  283. 272 | Lampiran: Contoh Skrip bash www.it-ebooks.info jika [[ -z

    "${u}" ]]; lalu echo "Nama pengguna tidak ada" die=1 fi exec "${c[@]}" #------------------------------------------------- --------------- #------------------------------------------------- --------------- c=( ssh "${v[@]}" "${i[@]}" "${p[@]}" "${t[@]}" "${u}@${h} " ) jika [[ - n "${s}" ]]; lalu o="-DR" [[ -n "${m}" ]] && o="-x" x="exec /usr/bin/env SESSION_NAME='${s}' layar ${o} ' ${s}'" c=( "${c[@]}" "${x}" ) ;; ( * ) echo "Argumen tidak valid: '${1}'" die=1 jika [[ -z "${h}" ]]; lalu echo "Nama host tidak ada" die=1 ( x-* ) echo "Opsi tidak valid: '${1}'" die=1 menjadi esac [[ -z "${mati}" ]] || keluar 1 ;; menjadi #------------------------------------------------- --------------- # Jalankan layar pada remote hanya jika nama sesi diberikan. # Pastikan informasi penting ada. shift selesai #------------------------------------------------- --------------- Machine Translated by Google
  284. Kami ingin mendengar saran Anda untuk meningkatkan indeks kami. Kirim

    email ke [email protected]. Indeks Enkripsi SSL/TLS, 142 dukungan suEXEC, 143 garis miring terbalik (\), 212 cadangan, 236 otomatisasi, 241 daftar file di server cadangan, 240 Amanda, 236, 251–254 konfigurasi, 253 pemasangan, 252 pemulihan dari, 254 APC, 162 apt-get, 15 paket kuota, instalasi, 17 argumen, baris perintah, 212 otentikasi dan otorisasi, 130 Webalizer, 142 model dan model prefork, 144 instalasi mod_php, 125 modul bahasa scripting, 123 Arahan alias, 134 DNS dan, 124, 140, 149 instalasi, 124 logging, 140-142 cron job, 140 pemisahan dan rotasi log, 140 vlogger, 141 Arahan khusus modul PHP, 138 arahan sumber daya, 134 ab (program benchmark, Apache), 144 akses file log, 140 perintah adduser, 184, 186 273 Database MySQL, 254–256 media optik, 245–251 pemulihan, 241 rsync, 237– 240 skrip bash, 239 argumen sumber dan tujuan, 239 cadangan pita menggunakan Amanda, 251–254 arsip tar, 242–245 sisi server termasuk, 134-138 host virtual, 138-140 Apache, 16, 33–34, 122–152 alternatif, 162 benchmarking, 144 file konfigurasi, 127–140 otentikasi dan otorisasi, 130 container dan alias, 133 arahan, 128–130 pencocokan pola, 133 www.it-ebooks.info SEBUAH B Simbol \ (garis miring terbalik), 212 [[ ]] (kurung ganda), 218 $ (tanda dolar), 217 $? (pertanyaan dolar), 218 $$ (tanda dolar ganda), 218 ` (kuburan), 217% (persen), 141 # (tanda pound), 213, 169 " (tanda kutip ganda), 217 ' (tanda kutip tunggal), 217 _ (garis bawah), 217 Machine Translated by Google
  285. D C www.it-ebooks.info Daftar Common Vulnerabilities and Exposures (CVE), 22

    Comprehensive Perl Archive Network (CPAN), 36 direktori conf.d, 127 berbagi koneksi, 177 kontainer, 133 perintah lanjutan, 225 CPAN (Comprehensive Perl Archive Network), 36 pekerjaan cron, 225 crontab file, 225 CUPS (Sistem Pencetakan Unix Umum), 183 perintah CLI, 185 daftar CVE (Kerentanan dan Eksposur Umum), 22 CA (otoritas sertifikat), 143 cdrecord, 246 konfigurasi, 248 Postfix (lihat Postfix) skrip startup, modifikasi, 16 zona demiliterisasi (DMZ), 174 CGI (Common Gateway Interface), 123 direktori dan interpreter CGI, 137 perintah chkconfig, 171 perintah chmod, 214 lingkungan chroot, 18, 42 CIFS (Common Internet File System), 164 ClarkConnect, 176 sinkronisasi jam, 36 cluster, 154 HA (tinggi -availability) konfigurasi, 161 Linux Virtual Server, 154 load balancing (lihat load balancing) realservers, 157 konfigurasi, 157 penskalaan tanpa LB dan HA, 162 pengujian, 159-161 cache kode, 162 perintah, 212 karakter komentar (#), 213 Common Gateway Interface (CGI), 123 Common Unix Printing System (lihat CUPS) Pengalihan I/O, 215 loop, 223 nama jalur, 213 izin, 213 pipa, 215 pemecahan masalah skrip, 221 variabel shell, 220 variabel, 217 bastion host, 173 pekerjaan batch, 212 benchmarking, 144 Bourne, Stephen, perintah istirahat 211, 225 274 | Indeks bash, 211 aritmatika, 219 skrip cadangan, 239 contoh skrip bash, 257–272 menambahkan pengguna, 257 pencarian DNS otoritatif, 260 transfer file antar sesi shell, 261 pembuatan kata sandi acak, 258 ssh dan perintah layar, mengintegrasikan, 268 pekerjaan cron, 225 jalur default, 214 ekspresi, 218 jika, elif, dan kemudian, 219 penggunaan, 42 komponen, 40 penyiapan minimal awal, 18 pemecahan masalah, 66–71 versi, 40 BIND (Nama Internet Berkeley CD-R, 245 pengaksesan, 247 persiapan untuk perekaman, 248 perekaman, 249 sertifikat, 143 Beowulf, 154 Brehm, Hingga, 74 bzip2, 242 MENGIKAT 4, 40 Debian, 9 paket default, perubahan, 15 instalasi, 10 agen transportasi surat, 105 Alat BIND, 62–65 lingkungan chroot dan non-root Daemon), 40–71 daemon-monitoring daemon (DMD), 96 cache data, 162 data munging, menggunakan skrip, 227 database (lihat MySQL) Machine Translated by Google
  286. G H DAN F www.it-ebooks.info server gateway, 170 layanan gateway,

    173–180 file grup, 130, 132 tamu, 194 gzip, 242 tanggung jawab administratif, 45 skrip bash untuk pencarian otoritatif, 260 server khusus caching, 49 file konfigurasi, pengeditan, 50–62 menemukan domain, 46 masalah firewall, 48 penyiapan minimal awal, 18 server primer dan sekunder, 47–49 kueri, 46– 47 penyiapan server, 14, konfigurasi 41–44, 44 pemecahan masalah, 66–71 DNS dan, 48 gateway dan produk firewall, 176 iptables, 174 firewall subnet yang disaring, 174 (lihat juga layanan gateway) untuk loop, 223 dhcpd.conf file, 171, 175 versi Firestarter, 177 file dhcpd.leases, 171 perintah dig, 41, 260 directives, 128 Directory directives, 133 disk usage, mengelola (lihat kuota) sistem file terdistribusi, 164 distribusi, alasan untuk memilih, 9 , 163, 176 dist.txt, 77 djbdns, 40 DMD (daemon pemantau daemon), 96 DMZ (zona demiliterisasi), 174 DNS (Sistem Nama Domain), 38 Layanan FTP, 34 Protokol), 168-172 menginstal, 169 Fedora Core, 163, 199, 201 Drupal, 145–149 konfigurasi, 148 pemasangan, 146– 148 apt-get, 146 dari sumber, 147 Indeks | 275 DHCP (Konfigurasi Host Dinamis FastCGI, 123 Arahan DocumentRoot, 130 pengontrol domain, 165 ruang nama domain, 38 pengganti drop-in, 22 Arahan Files and FilesMatch, 133 DVD-R dan DVD+Rs, 245 dvd+rw-tools, 246 file dinamis, 122 HA (ketersediaan tinggi), 155 mode tanpa kepala, 12 detak jantung, 155 ketersediaan tinggi (HA), 155 komputasi kinerja tinggi, 196 file .htaccess, 127, 162 file .htpasswd, 130 Pengalamatan IPv6 dengan radvd, 172 memulai, 171 pengalamatan IP statis, 172 Feigenbaum, Barry, 164 file sharing, 164 memungkinkan antara Windows XP dan 98, 167 nama file, 222 DSO (objek bersama yang dinamis), 124 Eksim, 12 DMZ dan, 174 DHCP) objek bersama dinamis (DSO), 124 Eksim 4, 105 Firestarter, 176–180 firewall e-akselerator, 162 perintah gema, 213 perintah egrep, 220 konfigurasi klien email, 120 file log kesalahan email (lihat layanan email), 140 Protokol Konfigurasi Host Dinamis (lihat Machine Translated by Google
  287. Saya K L M www.it-ebooks.info ISPConfig, 73–96 IMAP, 22–32, 119

    inetd, 16 Apache, format penyimpanan 134 mbox, 119 276 | Indeks File gambar ISO, 246 Direktif MaxClients, Apache, 134 Pengalihan I/O, 215 Dengarkan arahan, Apache, 130 load balancing, 154-162 contoh konfigurasi, 155 ketersediaan tinggi, penambahan, 161 POP3 dan IMAP, 119 memcached, 162 perintah mkisofs, 248 mod_expires, 162 mod_php, 125 direktori yang mendukung mod, 127 mod_vhost_alias, 139 monit, 97 instalasi dan konfigurasi, 98-101 Arahan KeepAlive, 134 perintah email, 111 agen pengiriman email (MDA), 103 layanan email, 22, 102-121 konfigurasi klien email, 120 IPVS, konfigurasi server 155 lb, 158 ldirectord, 156 perangkat lunak untuk, 155 pengujian, 159-161 layanan jaringan lokal (lihat layanan jaringan) Host virtual berbasis IP, 138 MTA (agen transportasi surat), 11, 12, 103 LAMPU (Linux, Apache, MySQL, LB (lihat penyeimbangan beban) ldirectord, 155, 156 klien libc, 11 lighttpd, 162 POP3, 119 pengaturan, 22–32 LPD dan LPRng, 182 Pengalamatan IPv6, 172 MySQL, 20, 125 cadangan data, 254–256 direktif MaxRequestsPerChild, driver ide-scsi, 247 Sistem file ISO-9660, skrip bash 246 isomd5, 250 K3b, 246 MDA (agen pengiriman surat), 103 Server Virtual Linux, 154 InnoDB Hot Backup, 256 direktori install_ispconfig, 77, 80 Kompilasi server Apache, 78 klien dan situs web, penambahan, 83 struktur direktori, 82 klien email, konfigurasi, 95 manajemen email, 91 model hierarkis untuk file situs web, 89 penginstalan, 74 prosedur kegagalan kompilasi, 80 persyaratan, 74 server dan pengguna , pengaturan, 83 layanan yang dikonfigurasi menggunakan, 74 daemon khusus, 76 manajemen pengguna, 91 pengaturan situs web, 83 Arahan KeepAliveTimeout, 134 MUA (agen pengguna email), 103 mutt, 111 IPCop, 176 ipopd-ssl, 119 iptables, 174 Arahan lokasi, Apache, 133 loop, 223 IMAP, 119 PHP/Perl/Python), 123 Cadangan Panas InnoDB, 256 LVS-NAT, LVS-DR, dan LVS-TUN, 157 IPVS (IP Virtual Server), konfigurasi 155, 155 Spam Assassin, 36 pengujian, 110 agen pengangkut surat (lihat MTA) agen pengguna surat (MUA), 103 format maildir, 119 maildir versus klien libc, 11 penyamaran, 174 Peluang dan tanggung jawab administrasi sistem Linux, 4– 7 keterampilan dan pengetahuan yang diperlukan, 1 keahlian, 5 Machine Translated by Google
  288. N Q R P HAI www.it-ebooks.info kuota, 17 PAT (Terjemahan

    Alamat Port), 174 nama jalur, 213 jalur, 213 jalur default, 214 persen (%), 141 Postfix, 22–32, 105 konfigurasi, 108–110 Projektfarm GmbH, 74 cepat, 212 Jenis perangkat keras jaringan CUPS (lihat CUPS), 181 kontrol antrian cetak melalui baris perintah, 185 perangkat lunak pencetakan, 182 Indeks | 277 Terjemahan Alamat Port (PAT), 174 perintah postconf, 27 ProFTPD, 34 Perl, 36 host virtual berbasis nama, 139 bernama, 40, 47 fungsi, pemeriksaan, 44 server nama, 38 NAT (Terjemahan Alamat Jaringan), 174 Netfilter, 176 netsetup.exe, 167 Terjemahan Alamat Jaringan (NAT), 174 Sistem File Jaringan (NFS) , 167 layanan jaringan, 163– 168 konfigurasi, 165 berbagi file lintas platform, konfigurasi, 167 sistem file terdistribusi, 164 gateway internet (lihat layanan gateway) paket gateway dan produk firewall, 176–180 layanan cetak (lihat layanan cetak) mysqldump, 256 mysqlhotcopy, 255 mysqlsnapshot, 255 kata sandi pengguna root, pengaturan, 126 Paket Debian untuk, 105 penginstalan, 106–108 SpamAssassin, menginstal modul yang dibutuhkan oleh, 36 izin, 213 NFS (Sistem File Jaringan), 167 layanan NTP (Protokol Waktu Jaringan), 36 Python, 233 Open SSL, 115–118 operator, 218 media optik, 245–251 radvd, 172 server nyata, 157 konfigurasi, 157 nilai penyegaran, 48 basis data relasional, 20 login jarak jauh, 12 replikasi, 162 file resolv.conf, 40, 47, 178 resolver, 40 pemulihan dari cadangan, 241 nilai coba lagi, 49 direktori root, 38 server root, 45 pengguna root, 11 DNS round- robin, 155 rsend, 262 Modul Apache, 123 contoh skrip, 230 Samba, 164 manajemen pengguna (lihat manajemen pengguna) relai terbuka, 103 Modul Apache, 123 arahan khusus modul, 138 contoh skrip, 232 pipa, 215 tanda pound (#), 169 layanan cetak, 181–186 pencetakan lintas platform, 183 File gambar ISO, 246 rekaman verifikasi, 250 output, 212 POP3, 22–32, 119 PHP, 125 paket cdrecord, 246 driver ide-scsi, 247 perintah passwd, 186–189 menambahkan pengguna, 186 menonaktifkan pengguna, 189 file kata sandi, 227 Machine Translated by Google
  289. T S www.it-ebooks.info Contoh Perl, 230 Blok Pesan Server (lihat

    Samba) pengaturan server, 8 SELINUX, 199 sertifikat dan pembuatan kunci, 27 https, 119 input standar, output standar, dan kesalahan standar, 215 file statis, 122 pengalamatan IP statis, 10, 172 penautan statis, 124 perintah su, 11 suEXEC, Apache, 78, 143 sysconfig.txt, 175 persyaratan administrasi sistem, 4-7 sinkronisasi jam sistem, 36 data sistem, 237 program tingkat keamanan konfigurasi sistem, 200 arsip tar, 76, 236, 242–245 Layer), 23, skalabilitas 111–115, 154 perintah layar, 268 firewall subnet yang disaring, 174 skrip, 211, 226 contoh bash, 228 bash (lihat bash) Sendmail, 103 versus Exim, 12 kerentanan, 22 nomor seri, 48 persyaratan, 9 sinkronisasi jam sistem, 36 akun pengguna, root, dan postmaster, 11 layanan hosting web (lihat ISPConfig) ringkasan statistik web, 35 bobot, 159 sisi server termasuk, 122, 134-138 berbagi, 164 skrip shell, 211 shell variabel, 220 Shorewall, 176 silo, 195 Simple Authentication and Security Layer (SASL), 23 simultan multi-threading (SMT), 196 direktori yang mendukung situs, 127 SMB (lihat Samba) Contoh Python, 233 bahasa skrip, memilih, 234 skrip pemecahan masalah, 221 Instalasi Debian (lihat Debian) 278 | Indeks rsync, 236, 237–240 server cadangan, daftar file aktif, 240 pemulihan dari cadangan, 241 pengiriman file antar sesi shell, 261 sintaks dan opsi, 237 file aturan, BIND, 47 Contoh PHP, 232 SSL (Lapisan Soket Aman), 23, 115–118, 142 Keamanan Lapisan Soket Aman (lihat SSL), lingkungan chroot 96-101, 18, 42 daemon pemantauan daemon, 96 Apache, 33–34 komponen, 9 Layanan FTP, 34 mode tanpa kepala, 12 layanan email, 22–32 backup ke tape (lihat Amanda) opsi -c dan -x, 245 membuat arsip, 243 contoh pengepakan dan pembongkaran, 244 mengekstrak file dari arsip, 243 Smoothwall, 176 SMT (multi-threading simultan), 196 file smtpd.conf, 27 SpamAssassin, 36 spammer, 104 Squid, skrip 162 ss, 268 klien SSH, 12 perintah ssh, 268 penggunaan administrasi jarak jauh, 12 SSI (lihat sisi server termasuk) Akses penonaktifan Shell Aman, 189 Server DNS (lihat DNS) Samba, 164, 184 Kerentanan Sendmail, 103 spam, 103 sertifikat yang ditandatangani sendiri, 143 Layanan NTP, 36 database relasional, 20 login jarak jauh, 12 SASL (Otentikasi dan Keamanan Sederhana DNS dan BIND, 42 layanan email, 23 SpamAssassin, 36 konfigurasi jaringan, 13 Machine Translated by Google
  290. DI Di X kamu DARI DI www.it-ebooks.info UBE (pengirim email

    massal yang tidak diminta), 104 VMware, 194, 204–209 instalasi sistem operasi tamu, 209 instalasi, 204 Xandros, 165 Berbagi file Windows di lingkungan Linux, 166 wodim, 246 Mode Pengguna Linux (UML), 196 uw-imapd-ssl, 119 Venema, Wietse, 102 hosting virtual, 16, 138–140 mod_vhost_alias, 139 server virtual untuk penyeimbangan beban, 157–159 virtualisasi, 194–196 keuntungan dan manfaat, 197– 199 potensi masa depan, 210 Jam, Falko, 74 layanan web hosting (lihat ISPConfig) server web (lihat Apache), layanan web, 122 UDF (Format Disk Universal), 246 Indeks | 279 Monyet Ultra, 156 TLD (lihat domain tingkat atas) CGI, 123 VMware (lihat VMware) Arahan Pengguna dan Grup, 129 data pengguna, 237 file pengguna, 130-132 manajemen pengguna, 186-193 menambahkan skrip bash shell pengguna, 257 manajer pengguna grafis, 191 penghapusan pengguna, 189 direktori rumah, penguncian, 190 Database MySQL, 125 perangkat lunak yang dapat diskalakan, 162 file statis dan dinamis, 122 pemecahan masalah, 149-153 ringkasan statistik web, 35 Keamanan Lapisan Transportasi (lihat TLS) Zmanda Recovery Manager untuk MySQL, 256 file zona, 44 Xen (lihat Xen) vlogger, 141 Xen, 194, 199–204 tuan rumah tamu, pemasangan, 201 pemasangan, 199 persyaratan, 199 ekstensi file yang digunakan, sintaks dan opsi perintah 242 tar, 242 tarball, 76 Ubuntu, 204 enak, 199 Penyiapan LAMPU, 123 TLS (Transport Layer Security), 23, 115– 118, 142 domain tingkat atas, 38, 45 perintah sentuh, 171 UML (User-Mode Linux), 196 unsolicited bulk emailers (UBEs), 104 hingga loop, 223 variabel, 217 komputasi kinerja tinggi, 196 Webalizer, 35, 142 bobot, 159 loop sementara, 223 Akses Shell Aman, penonaktifan, 189 perintah tambahkan pengguna, 186 Machine Translated by Google
  291. perusahaan energi. Gambar di sampul Administrasi Sistem Linux adalah koboi

    yang menjalankan ternak. Bill Lubanovic mulai mengembangkan perangkat lunak dengan Unix pada 1970-an, GUI pada 1980-an, dan Web pada 1990-an. Dia sekarang melakukan pekerjaan visualisasi web untuk angin Font sampul adalah Adobe ITC Garamond. Font teksnya adalah Linotype Birka; font judul adalah Adobe Myriad Condensed; dan font kodenya adalah TheSans Mono Condensed milik LucasFont. Gambar sampul dan gambar pembuka bab berasal dari Arsip Bergambar Dover. Tom Adelstein memulai karirnya di perbankan investasi, di mana keterampilan teknisnya membantu perusahaan jasa keuangan menjadi pemimpin industri. Dia sekarang menjadi administrator sistem penuh waktu dan penulis teknis. www.it-ebooks.info Tanda penerbit Tentang Penulis Machine Translated by Google