1. Superdo
Akun super-user root, diperlukan untuk administrator device,
dan otomatis dibuat pada saat penginstalan. Inilah mengapa password dibutuhkan.
Installer juga meminta konfirmasi dari
password untuk mencegah Anda mengetik inputan yang error dimana kelak akan jadi
masalah di kemudian hari. Password root haruslah panjang (8 karakter atau
lebih) dan sulit untuk ditebak. Memang, komputer apapun yang tersambung ke internet seringkali ditarget oleh
percobaan koneksi otomatis dengan password yang mudah ditebak. Terkadang itu
menjadi subjek dari dictionary attacks, dimana banyak kombinasi huruf dan angka
yang diuji coba untuk password. Hindari menggunakan nama anak, orang tua,
tanggal lahir dan lain sebagainya. Jika tidak ada ide harus memakai password
apa, gunakan pwgen untuk men-generate password yang bisa Anda gunakan.
Seringkali, beberapa administrator bekerja di
jaringan yang sama. Berbagi password root sangat tidak disarankan, dan
berpotensi untuk disalahgunakan. Solusinya adalah dengan program sudo, dimana
membolehkan user yang bersangkutan untuk mengeksekusi perintah yang diinginkan
dengan hak spesial. Dalam banyak kasus, sudo membolehkan user terpecaya untuk
mengeksekusi perintah apapun sebagai root. Untuk melakukannya, user bisa
mengeksekusi sudo command dan otentikasinya menggunakan password dari sudo
tersebut. Ketika terinstal, paket sudo memberikan hak penuh root untuk anggota
grup sudo Unix. Untuk mendelegasikan hak lain, administrator harus menggunakan
visudo command, yang memperbolehkan user untuk memodifikasi file konfigurasi
/etc/sudoers (sampai sini, anda bisa menggunakan vi editor, atau editor lain
yang terdapat pada lingkungan EDITOR variable). Menambahkan sebuah baris dengan
username ALL = (ALL) ALL memperbolehkan user dalam hal mengeksekusi perintah
apapun sebagai root. Cara konfigurasi yang lebih canggih adalah memperbolehkan
otorisasi hanya untuk perintah spesifik kepada user yang spesifik pula.
2. Debian Filesystem
Sebuah filesystem mendefinisikan cara data diatur pada hard
drive. Setiap filesystem yang ada memiliki kelebihan dan keterbatasannya. Ada
yang lebih kuat, yang lain lebih efektif: jika Anda tahu kebutuhan Anda dengan
baik, memilih filesystem yang paling tepat adalah mungkin. Berbagai
perbandingan telah dibuat; Tampaknya ReiserFS itu efisien, terutama untuk
membaca banyak file kecil; XFS, pada gilirannya, bekerja lebih cepat dengan
file besar Ext4, filesystem default untuk Debian, adalah kompromi yang bagus,
berdasarkan tiga versi sebelumnya dari filesystem yang digunakan secara
historis di Linux (ext, ext2 dan ext3). Ext4 mengatasi keterbatasan tertentu
dari ext3 dan sangat sesuai untuk kapasitas harddisk sangat besar. Pilihan lain
adalah bereksperimen dengan btrfs yang sangat menjanjikan, yang mencakup banyak
fitur yang membutuhkan, sampai hari ini, penggunaan LVM dan / atau RAID. Sebuah
filesystem yang dijurnal (seperti ext3, ext4, btrfs, reiserfs, atau xfs)
mengambil tindakan khusus untuk memungkinkannya kembali ke keadaan konsisten
sebelumnya setelah gangguan mendadak tanpa sepenuhnya menganalisis seluruh disk
(seperti yang terjadi pada sistem ext2 ). Fungsi ini dilakukan dengan mengisi
jurnal yang menjelaskan operasi yang harus dilakukan sebelum benar-benar
mengeksekusinya. Jika operasi terganggu, akan memungkinkan untuk "memutar
ulang" dari jurnal. Sebaliknya, jika terjadi interupsi selama update
jurnal, perubahan yang diminta terakhir diabaikan begitu saja; data yang
ditulis bisa hilang, tapi karena data pada disk belum berubah, data tetap ada
koheren. Ini tidak lebih dan tidak kurang dari mekanisme transaksional yang
diterapkan pada filesystem. Filesystem adalah salah satu aspek yang paling menonjol dari
kernel. Sistem Unix menggabungkan semua penyimpanan file menjadi satu hirarki, yang memungkinkan
pengguna (dan aplikasi) mengakses data hanya dengan mengetahui lokasinya di
dalam hierarki tersebut. Titik awal dari pohon hirarkis ini disebut akar, /. Direktori
ini bisa berisi subdirektori yang sudah dinamai. Misalnya, home subdirektori
dari / disebut / home /. Subdirektori ini bisa, pada gilirannya, berisi
subdirektori lain, dan seterusnya. Setiap direktori juga bisa berisi file,
dimana data sebenarnya akan disimpan. Dengan demikian, nama /home/rmas/Desktop/hello.txt
mengacu pada sebuah file bernama hello.txt yang tersimpan di subdirektori
Desktop dari subdirektori rmas dari home direktori ada di root Kernel
menerjemahkan antara sistem penamaan ini dan penyimpanan fisik aktual pada
disk. Tidak seperti sistem lain, hanya ada satu hirarki seperti itu, dan bisa
mengintegrasikan data dari beberapa disk. Salah satu disk ini digunakan sebagai
root, dan yang lainnya "dipasang" pada direktori dalam hirarki
(perintah Unix disebut mount); disk lain ini kemudian tersedia di bawah
"titik mount" ini. Hal ini memungkinkan penyimpanan direktori home
pengguna (disimpan secara tradisional di dalam / home /) pada hard disk kedua,
yang berisi direktori rhertzog dan rmas. Setelah disk terpasang di / home /,
direktori ini dapat diakses di lokasi mereka yang biasa, dan jalur seperti
/home/rmas/Desktop/hello.txt tetap bekerja. Ada banyak format filesystem,
sesuai dengan banyak cara menyimpan data secara fisik pada disk. Yang paling
banyak dikenal adalah ext2, ext3 dan ext4, tapi ada yang lain. Misalnya, vfat
adalah sistem yang digunakan secara historis oleh sistem operasi DOS dan
Windows, yang memungkinkan penggunaan hard disk di bawah Debian dan juga di
bawah Windows. Bagaimanapun, filesystem harus disiapkan pada disk sebelum dapat
dipasang dan operasi ini dikenal sebagai "format". Perintah seperti
mkfs.ext3 (di mana mkfs adalah singkatan dari MaKe FileSystem) menangani
pemformatan. Perintah ini memerlukan, sebagai parameter, file perangkat yang
mewakili partisi yang akan diformat (misalnya, / dev / sda1). Operasi ini
bersifat destruktif dan hanya bisa dijalankan sekali, kecuali jika seseorang
sengaja ingin menghapus filesystem dan mulai lagi. Ada juga filesystem
jaringan, seperti NFS, dimana data tidak tersimpan pada disk lokal. Sebagai
gantinya, data dikirim melalui jaringan ke server yang menyimpan dan
mengambilnya sesuai permintaan. Abstraksi filesystem melindungi pengguna dari
keharusan untuk peduli: file tetap dapat diakses dengan cara hirarkis biasa.
3. Systemd
Systemd
adalah "sistem init" yang relatif baru, dan walaupun sudah tersedia,
Sampai batas tertentu, di Wheezy, itu hanya menjadi default di Debian Jessie.
Rilis sebelumnya bergantung, secara default, pada "System V init"
(dalam paket sysv-rc), sistem yang jauh lebih tradisional. Systemd menjalankan
beberapa proses, yang bertugas menyiapkan sistem: keyboard, driver, filesystem,
jaringan, layanan. Hal ini dilakukan sambil menjaga pandangan global terhadap
sistem secara keseluruhan, dan persyaratan komponen. Setiap komponen dijelaskan
oleh "unit file" (kadang-kadang lebih); Sintaks umum berasal dari
sintaks "* .ini" yang banyak digunakan, dengan pasangan kunci = nilai
yang dikelompokkan di antara header [bagian]. File unit disimpan di bawah / lib
/ systemd / system / dan / etc / systemd / system /; Mereka datang dalam
beberapa karakter, tapi kita akan fokus pada "layanan" dan
"target" di sini. Sebuah systemd "service file"
menggambarkan sebuah proses yang dikelola oleh systemd. Ini berisi kira-kira
informasi yang sama dengan skrip init gaya lama, namun diungkapkan secara
deklaratif (dan lebih ringkas). Systemd menangani sebagian besar tugas berulang
(memulai dan menghentikan proses, memeriksa statusnya, pencatatan, membuang hak
istimewa, dan sebagainya), dan file layanan hanya perlu mengisi secara spesifik
prosesnya. Misalnya, inilah file servis untuk SSH:
[Unit]
Description=OpenBSD
Secure Shell server
After=network.target
auditd.service
ConditionPathExists=!/etc/ssh/sshd_not_to_be_run
[Service]
EnvironmentFile=-/etc/default/ssh
ExecStart=/usr/sbin/sshd
-D $SSHD_OPTS
ExecReload=/bin/kill -HUP
$MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
Alias=sshd.service
Seperti yang bisa Anda lihat, hanya ada sedikit kode di
sana, hanya deklarasi. Systemd menangani laporan kemajuan, mencatat proses, dan
bahkan memulai kembali saat dibutuhkan. File target sistem ""
menggambarkan keadaan sistem, di mana satu set layanan diketahui beroperasi.
Hal ini dapat dianggap setara dengan gaya lari tingkat lama. Salah satu
targetnya adalah local-fs.target; ketika tercapai, sisa sistem dapat
mengasumsikan bahwa semua filesystem lokal telah terpasang dan dapat diakses.
Target lainnya termasuk network-online.target dan sound.target. Ketergantungan
target dapat didaftarkan baik dalam file target (dalam Requires = line), atau
menggunakan tautan simbolis ke file layanan di direktori
/lib/systemd/system/targetname.target.wants/. Misalnya,
/etc/systemd/system/printer.target.wants/ berisi tautan ke
/lib/systemd/system/cups.service; Oleh karena itu, sistem akan memastikan CUPS
berjalan untuk mencapai printer.target. Karena file unit bersifat deklaratif
dan bukan skrip atau program, program tidak dapat dijalankan secara langsung,
dan hanya ditafsirkan oleh sistem; Oleh karena itu beberapa utilitas
memungkinkan administrator untuk berinteraksi dengan sistem dan mengendalikan
keadaan sistem dan masing-masing komponen. Utilitas pertama adalah systemctl.
Bila dijalankan tanpa argumen, daftar semua file unit yang diketahui sistemd (kecuali
yang telah dinonaktifkan), dan juga statusnya. status sistem memberikan
pandangan yang lebih baik terhadap layanan, serta proses yang terkait. Jika
diberi nama layanan (seperti pada status system ntp.service), ia mengembalikan
detail lebih banyak lagi, serta beberapa baris log terakhir yang berhubungan
dengan layanan ini (lebih banyak lagi nanti). Memulai sebuah layanan dengan praktis adalah masalah sederhana, menjalankan systemctl start
servicename.service. Seperti yang bisa ditebak, menghentikan layanan dilakukan
dengan systemctl stop servicename.service; Subcommands lainnya termasuk reload
dan restart. Untuk mengontrol apakah layanan aktif (apakah akan dimulai secara
otomatis saat boot), gunakan systemctl enable servicename.service (atau
nonaktifkan). diaktifkan memungkinkan memeriksa status layanan. Fitur menarik
dari systemd adalah bahwa ia menyertakan komponen penebangan bernama journald.
Ini datang sebagai pelengkap sistem penebangan yang lebih tradisional seperti
syslogd, namun menambahkan fitur menarik seperti tautan formal antara layanan
dan pesan yang dihasilkannya, dan kemampuan untuk menangkap pesan kesalahan
yang dihasilkan oleh urutan inisialisasi. Pesan bisa ditampilkan nanti, dengan
sedikit bantuan dari perintah journalctl. Tanpa argumen, itu hanya mengeluarkan semua pesan log yang
terjadi sejak sistem boot; hal tersebut jarang digunakan sedemikian rupa.
4.
OpenSSH
Protokol SSH dibuat dan dirancang sedemikian rupa agar aman
digunakan dalam pertukaran data. Koneksi menggunakan ssh aman karena saling terotentikasi dan pertukaran data
terenkripsi dengan baik. Debian menyediakan OpenSSH, versi gratis dari ssh yang
dikembangkan oleh OpenBSD project dan merupakan versi lain dari perangkat lunak
perusahaan SSH Communications Security Corp di Finlandia. OpenSSH dibagi menjadi dua paket, sisi klien ada
di paket openssh-client, dan server ada di paket openssh-server. Paket meta ssh
tergantung dari kedua sisi bagian dan fasilitas yang diinstal pada keduanya
Protokol ssh
mengijinkan penerusan data grafis, server kemudian menyimpan sebuah channel
khusus untuk data tersebut. Secara spesifik sebuah program grafis yang bisa
dieksekusi secare remot dapat dilihat di server X.org dari tampilan monitor
lokal dan sepanjang sesi (input dan tampilan) akan aman. Sejak fitur ini
membolehkan aplikasi remot untuk ikut serta dengan sistem lokal, itu non-aktif
secara default. Anda dapat mengaktifkannya dengan menyebutkan secara spesifik
X11Forwarding yes pada file konfiturasi server (/etc/ssh/sshd_config).
Terakhir, user harus selalu melakukan request dengan menambahkan pilihan -X
pada ssh command-line. Tiap kali
seseorang login melalui SSH, remote server meminta password untuk otentikasi
user. Ini akan jadi masalah apabila seseorang ingin koneksi yang otomatis, atau
jika orang tersebut selalu menggunakan koneksi melalui SSH. Disinilah SSH
menawarkan sistem autentikasi berbasis key. User membuat sebuah key pair di
mesin klien dengan ssh-keygen –t rsa; public key tersimpan di ~/.ssh/id_rsa.pub,
sementara private key disimpan di ~/.ssh/id_rsa. Jika private key tidak
dilindungi dengan kata sandi saat pembuatannya, maka semua login ke server akan
berfungsi tanpa perlu memasukkan password. Sebaliknya, private key harus
ter-dekripsi setiap waktu dengan memasukkan kata sandi. Untungnya, ssh-agent
mengijinkan kita untuk menyimpan private key ke dalam memory agar kita tidak
selalu memasukkan kembali password. Untuk hal ini, Anda hanya perlu menggunakan
ssh-add sekali dalam sesi kerja, yang menyediakan sesi yang terhubung dengan
fungsi dari ssh-agent. Debian mengaktivasinya secara default melalui tampilan
grafis, tetapi dapat dideaktivasi dengan mengubah /etc/X11/Xsession.options.
Untuk sesi konsol, Anda dapat menginputnya secara manual dengan eval
$(ssh-agent) Untuk mengijinkan
ssh membuat channel yang terenkripsi antara dua device, secara aman meneruskan
sebuah port sebuah local TPC. Ssh -L 8000:server:25 menyediakan sesi ssh dengan
host dan listen perantara ke port lokal 8000. Untuk koneksi apapun yang dibuat
pada port ini, ssh akan menginisiasi sebuah koneksi dari komputer perantara ke
port 25 di server, dan akan menggabungkan keduanya bersama-sama. Dalam kedua
kasus, koneksi yang dibuat ke port 25 pada server host, akan melewati SSH tunnel
yang stabil antara device lokal dan device perantara. Dalam kasus pertama,
pintu masuk ke tunnel adalah lokal port 8000 pada device perantara, dan
perpindahan data menuju device perantara sebelum benar menuju ke server pada
public network. Dalam skenario kedua, input dan output terbalik, pintu masuk
adalah port 8000 pada devicfe perantara, sedangkan outputnya adalah pada local
host, dan data kemudian diarahkan ke server. Praktisnya, server adalah selalu
antara device lokal atau perantara. Itulah cara SSH mengamankan koneksi dari
satu ke yang lainnya.
Komentar
Posting Komentar