Bab 6. Aplikasi jaringan

# Bab 6. Aplikasi jaringan

Setelah menjalin konektivitas jaringan (lihat Bab 5, Penyiapan jaringan), Anda dapat menjalankan berbagai aplikasi jaringan.

| Tip
Untuk panduan khusus Debian modern bagi infrastruktur jaringan, baca Buku Pegangan Administrator Debian — Infrastruktur Jaringan.

| Tip
Jika Anda mengaktifkan "Verifikasi 2 Langkah" dengan beberapa ISP, Anda perlu mendapatkan kata sandi aplikasi untuk mengakses layanan POP dan SMTP dari program Anda. Anda mungkin perlu menyetujui IP host Anda terlebih dahulu.

## 6.1. Peramban Web

Ada banyak paket peramban web untuk mengakses konten jarak jauh dengan Hypertext Transfer Protocol (HTTP).

Tabel 6.1. Daftar peramban web

paket | popcon | ukuran | jenis | deskripsi peramban web
--- | --- | --- | --- | ---
`chromium` | V:29, I:101 | 302260 | X | Chromium, (peramban open-source dari Google)
`firefox` | V:15, I:21 | 294905 | , , | Firefox, (peramban open-source dari Mozilla, hanya tersedia di Debian Unstable)
`firefox-esr` | V:190, I:425 | 265874 | , , | Firefox ESR, (Firefox Extended Support Release)
`epiphany-browser` | V:2, I:11 | 6666 | , , | GNOME, patuh HIG, Epiphany
`konqueror` | V:25, I:112 | 7982 | , , | KDE, Konqueror
`dillo` | V:0.5, I:4.1 | 1585 | , , | Dillo, (peramban ringan, berbasis FLTK)
`w3m` | V:11, I:137 | 2853 | teks | w3m
`lynx` | V:28, I:449 | 2031 | , , | Lynx
`elinks` | V:3, I:16 | 1789 | , , | ELinks
`links` | V:2, I:21 | 2321 | , , | Links (hanya teks)
`links2` | V:1, I:10 | 5466 | grafis | Links (konsol grafis tanpa X)

### 6.1.1. Memalsu string User-Agent

Untuk mengakses beberapa situs web yang terlalu membatasi, Anda mungkin perlu menipu string User-Agent yang dikembalikan oleh program browser web. Lihat:

- MDN Web Docs: userAgent
- Pengembang Chrome: Menimpa string user agent
- Cara mengubah user agent Anda
- Cara Mengubah User-Agent di Chrome, Firefox, Safari, dan banyak lagi
- Cara Mengubah User Agent Peramban Anda Tanpa Memasang Ekstensi Apa Pun
- Cara mengubah User Agent di Gnome Web (epiphany)

### 6.1.2. Ekstensi peramban

Semua peramban GUI modern mendukung ekstensi browser berbasis kode sumber dan menjadi standar sebagai ekstensi web.

## 6.2. Sistem surat

Bagian ini berfokus pada workstation umum yang dapat berpindah pada koneksi Internet kelas konsumen.

| Perhatian
Jika Anda ingin mengatur server surel untuk bertukar surat langsung dengan Internet, Anda harus lebih baik daripada membaca dokumen dasar ini.

### 6.2.1. Dasar-dasar surel

Pesan surel terdiri dari tiga komponen, amplop pesan, header pesan, dan badan pesan.

- Informasi "To" dan "From" dalam amplop pesan digunakan oleh SMTP untuk mengirimkan surel. (Informasi "From" dalam amplop pesan juga disebut alamat bounce, From_, dll.).

- Informasi "To" dan "From" di header pesan ditampilkan oleh klien surel. (Meskipun paling umum bagi ini untuk menjadi sama dengan yang ada di amplop pesan, seperti itu tidak selalu terjadi.)

- Format pesan surel yang mencakup header dan data tubuh diperluas oleh Multipurpose Internet Mail Extensions (MIME) dari teks ASCII polos ke pengodean karakter lainnya, serta lampiran audio, video, gambar, dan program aplikasi.

Klien surel berbasis GUI berfitur lengkap menawarkan semua fungsi berikut menggunakan konfigurasi intuitif berbasis GUI.

- Itu membuat dan menginterpretasi header pesan dan data tubuh memakai Multipurpose Internet Mail Extensions (MIME) untuk menangani pengkodean dan tipe data konten.

- Ini mengautentikasi dirinya ke server SMTP dan IMAP ISP menggunakan otentikasi akses dasar warisan atau OAuth 2.0modern. (Untuk OAuth 2.0, atur itu melalui pengaturan lingkungan Desktop. Mis., "Pengaturan" -> "Akun Daring".)

- Itu mengirimkan pesan ke server SMTP smarthost ISP yang mendengarkan port message submission (587).

- Itu menerima pesan yang tersimpan di server ISP dari port TLS/IMAP4 (993).

- Ini dapat menyaring surat dengan atribut mereka.

- Ini mungkin menawarkan fungsionalitas tambahan: Kontak, Kalender, Tugas, Memo.

Tabel 6.2. Daftar agen pengguna surat (mail user agent/MUA)

paket | popcon | ukuran | jenis
--- | --- | --- | ---
`evolution` | V:26, I:228 | 488 | Program GUI X (GNOME, suite groupware)
`thunderbird` | V:42, I:105 | 274189 | Program X GUI (GTK, Mozilla Thunderbird)
`kmail` | V:43, I:103 | 25270 | Program X GUI (KDE)
`mutt` | V:11, I:89 | 7332 | program terminal karakter yang mungkin digunakan dengan `vim`
`mew` | V:0.02, I:0.15 | 2319 | program terminal karakter di bawah `(x)emacs`

### 6.2.2. Batasan layanan surat modern

Layanan surat modern berada mengalami beberapa keterbatasan untuk meminimalkan paparan masalah spam (surel yang tidak diinginkan dan tidak diminta).

- Tidak realistis untuk menjalankan server SMTP di jaringan kelas konsumen untuk mengirim surel langsung ke host jarak jauh secara andal.

- Sebuah surat dapat ditolak oleh setiap host dalam perjalanan ke tujuan diam-diam kecuali tampak seotentik mungkin.

- Tidak realistis untuk mengharapkan satu smarthost untuk mengirim surel dari alamat surat sumber yang tidak terkait ke host jarak jauh secara andal.

Ini karena:

- Koneksi port SMTP (25) dari host yang dilayani oleh jaringan kelas konsumen ke Internet diblokir.

- Koneksi port SMTP (25) ke host yang dilayani oleh jaringan kelas konsumen dari Internet diblokir.

- Pesan keluar dari host yang dilayani oleh jaringan kelas konsumen ke Internet hanya dapat dikirim melalui port message submission (587).

- Teknik anti-spam seperti DomainKeys Identified Mail (DKIM), Sender_Policy_Framework (SPF), dan Domain-based Message Authentication, Reporting and Conformance (DMARC) banyak digunakan untuk penyaringan surel.

- Layanan DomainKeys Identified Mail dapat disediakan untuk surel Anda yang dikirim melalui smarthost.

- Smarthost dapat menulis ulang alamat surel sumber di header pesan ke akun surel Anda di smarthost untuk mencegah spoofing alamat surel.

### 6.2.3. Harapan layanan surat bersejarah

Beberapa program di Debian berharap untuk mengakses perintah `/usr/sbin/sendmail` untuk mengirim surel sebagai pengaturan baku atau yang disesuaikan karena layanan surel pada sistem UNIX berfungsi secara historis sebagai:

- Surel dibuat sebagai suatu berkas teks.

- Surel diserahkan ke perintah `/usr/sbin/sendmail.=`.

- Untuk alamat tujuan pada host yang sama, perintah `/usr/sbin/sendmail` melakukan pengiriman surel lokal dengan menambahkannya ke berkas `/var/mail/$username`.

  - Perintah yang mengharapkan fitur ini: `apt-listchanges`, `cron`, `at`, ...

- Untuk alamat tujuan pada host jarak jauh, perintah `/usr/sbin/sendmail` melakukan transfer jarak jauh surel ke host tujuan yang ditemukan oleh catatan DNS MX menggunakan SMTP.

  - Perintah yang mengharapkan fitur ini: `popcon`, `reportbug`, `bts`, ...

### 6.2.4. Agen transportasi surat (mail transport agent/MTA)

Workstation mobile Debian dapat dikonfigurasi dengan klien surel berbasis GUI berfitur lengkap tanpa program mail transfer agent (MTA) setelah Debian 12 Bookworm.

Debian secara tradisional memasang beberapa program MTA untuk mendukung program yang mengharapkan perintah `/usr/sbin/sendmail`. MTA tersebut pada workstation mobile harus mengatasi Bagian 6.2.2, “Batasan layanan surat modern” dan Bagian 6.2.3, “Harapan layanan surat bersejarah”.

Untuk workstation mobile, pilihan khas MTA adalah `exim4-daemon-light` atau `postfix` dengan opsi instalasinya seperti "Mail sent by smarthost; received via SMTP or fetchmail" dipilih. Ini adalah MTA ringan yang menghormati "`/etc/aliases`".

| Tip
Mengkonfigurasi `exim4` untuk mengirim surel Internet melalui beberapa smarthost yang sesuai untuk beberapa alamat surel sumber tidak sepele. Jika Anda memerlukan kemampuan seperti itu untuk beberapa program, siapkan menggunakan `msmtp` yang mudah diatur untuk beberapa alamat surel sumber. Kemudian tinggalkan MTA utama hanya untuk satu alamat surel.

Tabel 6.3. Daftar paket terkait mail transport agent dasar

paket | popcon | ukuran | deskripsi
--- | --- | --- | ---
`exim4-daemon-light` | V:211, I:218 | 1637 | Mail transport agent Exim4 (MTA: baku Debian)
`exim4-daemon-heavy` | V:5.1, I:5.2 | 1802 | Mail transport agent Exim4 (MTA: alternatif fleksibel)
`exim4-base` | V:216, I:224 | 1634 | Dokumentasi (teks) dan berkas umum Exim4
`exim4-doc-html` | I:0.96 | 3798 | Dokumentasi Exim4 (html)
`exim4-doc-info` | I:0.54 | 648 | Dokumentasi Exim4 (info)
`postfix` | V:107, I:112 | 4224 | Mail transport agent Postfix (MTA: alternatif aman)
`postfix-doc` | I:4.6 | 5022 | Dokumentasi Postfix (html+text)
`sasl2-bin` | V:5, I:10 | 381 | Implementasi API Cyrus SASL (suplemen postfix untuk SMTP AUTH)
`cyrus-sasl2-doc` | I:0.68 | 2140 | Cyrus SASL - dokumentasi
`msmtp` | V:8, I:14 | 811 | MTA ringan
`msmtp-mta` | V:6.5, I:8.5 | 136 | MTA ringan (ekstensi kompatibilitas sendmail ke `msmtp`)
`nullmailer` | V:7.9, I:8.4 | 483 | MTA fungsi minimal, tidak ada surat lokal
`ssmtp` | V:4.2, I:6.3 | 134 | MTA fungsi minimal, tidak ada surat lokal
`sendmail-bin` | V:11, I:11 | 1954 | MTA berfitur lengkap (hanya jika Anda sudah akrab)
`git-email` | V:0.4, I:9.8 | 1204 | program git-send-email(1) untuk mengirim seri surel patch

#### 6.2.4.1. Konfigurasi exim4

Untuk surel Internet melalui smarthost, Anda mengonfigurasi (ulang) paket `exim4-*` sebagai berikut.

    $ sudo systemctl stop exim4
    $ sudo dpkg-reconfigure exim4-config

Pilih "surat dikirim oleh smarthost; diterima melalui SMTP atau fetchmail" untuk "Konfigurasi surat tipe umum".

Atur "Nama surat sistem:" ke bakunya sebagai FQDN (lihat Bagian 5.1.1, “Resolusi nama host”).

Atur "Alamat IP untuk didengarkan bagi koneksi SMTP masuk:" ke bakunya sebagai "127.0.0.1 ; ::1".

Hapus isi dari "Tujuan lain yang surat akan diterima:".

Hapus isi dari "Mesin untuk me-relay surat:".

Atur "Alamat IP atau nama host smarthost keluar:" ke "smtp.hostname.dom:587".

Pilih "Tidak" untuk "Sembunyikan nama surat lokal di surat keluar?". (Gunakan "`/etc/email-addresses`" seperti dalam Bagian 6.2.4.3, “Konfigurasi alamat surel”, sebagai gantinya.)

Jawab ke "Pertahankan banyaknya DNS-query minimal (Dial-on-Demand)?" sebagai salah satu dari berikut ini.

- "Tidak" jika sistem terhubung ke Internet saat boot.

- "Ya" jika sistem tidak terhubung ke Internet saat boot.

Atur "Metode pengiriman untuk surat lokal:" ke "format mbox di /var/mail/".

Pilih "Ya" untuk "Pisahkan konfigurasi menjadi berkas-berkas kecil?:".

Buat entri kata sandi untuk smarthost dengan menyunting "`/etc/exim4/passwd.client`".

    $ sudo vim /etc/exim4/passwd.client
     ...
    $ cat /etc/exim4/passwd.client
    ^smtp.*\.hostname\.dom:username@hostname.dom:password

Konfigurasikan exim4(8) dengan "`QUEUERUNNER='queueonly'`", "`QUEUERUNNER='nodaemon'`", dll. dalam"`/etc/default/exim4`" untuk meminimalkan penggunaan sumber daya sistem. (opsional)

Jalankan `exim4` dengan yang berikut.

    $ sudo systemctl start exim4

Nama host di "`/etc/exim4/passwd.client`" tidak boleh alias. Anda memeriksa nama host asli dengan yang berikut.

    $ host smtp.hostname.dom
    smtp.hostname.dom is an alias for smtp99.hostname.dom.
    smtp99.hostname.dom has address 123.234.123.89

Saya menggunakan regex di "`/etc/exim4/passwd.client`" untuk mengatasi masalah alias. SMTP AUTH mungkin bekerja bahkan jika ISP memindahkan host yang ditunjuk oleh alias.

Anda dapat memperbarui konfigurasi `exim4` secara manual dengan yang berikut:

- Perbarui berkas konfigurasi `exim4` di "`/etc/exim4/`".

  - membuat "`/etc/exim4/exim4.conf.localmacros`" untuk mengatur MACRO dan menyunting "`/etc/exim4/exim4.conf.template`". (konfigurasi non-split)

  - membuat berkas baru atau menyunting berkas yang ada di subdirektori "`/etc/exim4/exim4.conf.d`". (konfigurasi terpisah)

- Jalankan "`systemctl reload exim4`".

| Perhatian
Memulai `exim4` membutuhkan waktu lama jika "Tidak" (nilai baku) dipilih untuk kueri debconf "Pertahankan cacah kueri DNS minimal (Dial-on-Demand)?" dan sistem tidak terhubung ke Internet saat boot.

Silakan baca panduan resmi di: "`/usr/share/doc/exim4-base/README.Debian.gz`" dan update-exim4.conf(8).

| Awas
Untuk semua pertimbangan praktis, gunakan SMTP dengan STARTTLS di port 587 atau SMTPS SSL (SMTP di atas SSL) di port 465, bukan SMTP polos di port 25.

#### 6.2.4.2. Konfigurasi postfix dengan SASL

Untuk surel Internet melalui smarthost, Anda harus terlebih dahulu membaca dokumentasi postfix dan halaman manual utama.

Tabel 6.4. Daftar halaman-halaman penting manual postfix

perintah | fungsi
--- | ---
postfix(1) | Program kontrol postfix
postconf(1) | Utilitas konfigurasi postfix
postconf(5) | Parameter konfigurasi postfix
postmap(1) | Pemeliharaan tabel pencarian postfix
postalias(1) | Pemeliharaan basis data alias postfix

Anda mengonfigurasi (ulang) paket `postfix` dan `sasl2-bin` sebagai berikut.

    $ sudo systemctl stop postfix
    $ sudo dpkg-reconfigure postfix

Pilih "Internet dengan smarthost".

Atur "Host relay SMTP (kosongkan untuk tidak ada):" ke "`[smtp.namahost.dom]:587`" dan konfigurasikan dengan yang berikut.

    $ sudo postconf -e 'smtp_sender_dependent_authentication = yes'
    $ sudo postconf -e 'smtp_sasl_auth_enable = yes'
    $ sudo postconf -e 'smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd'
    $ sudo postconf -e 'smtp_sasl_type = cyrus'
    $ sudo vim /etc/postfix/sasl_passwd

Buat entri kata sandi untuk smarthost.

    $ cat /etc/postfix/sasl_passwd
    [smtp.hostname.dom]:587     username:password
    $ sudo postmap hush:/etc/postfix/sasl_passwd

Jalankan `postfix` dengan yang berikut ini.

    $ sudo systemctl start postfix

Di sini penggunaan "`[`" dan `]` dalam dialog `dpkg-reconfigure` dan "`/etc/postfix/sasl_passwd`" memastikan untuk tidak memeriksa catatan MX tetapi langsung menggunakan nama host yang tepat yang ditentukan. Lihat "Mengaktifkan autentikasi SASL di klien Postfix SMTP" di "`/usr/share/doc/postfix/html/SASL_README.html`".

#### 6.2.4.3. Konfigurasi alamat surel

Ada beberapa berkas konfigurasi alamat surat untuk transportasi surat, pengiriman. dan agen pengguna.

Tabel 6.5. Daftar berkas konfigurasi terkait alamat surel

berkas | fungsi | aplikasi
--- | --- | ---
`/etc/mailname` | nama host baku untuk surat (keluar) | Spesifik Debian, mailname(5)
`/etc/email-addresses` | spoofing nama host untuk surat keluar | spesifik exim(8), exim4-config_files(5)
`/etc/postfix/generic` | spoofing nama host untuk surat keluar | spesifik postfix(1), diaktifkan setelah eksekusi perintah postmap(1).
`/etc/aliases` | alias nama akun untuk surat masuk | umum, diaktifkan setelah eksekusi perintah newaliases(1).

mailname dalam berkas "`/etc/mailname`" biasanya merupakan fully qualified domain name (FQDN) yang diurai ke salah satu alamat IP host. Untuk workstation mobile yang tidak memiliki nama host dengan alamat IP yang dapat diuraikan, atur mailname ini ke nilai "`hostname -f`". (Ini adalah pilihan yang aman dan bekerja untuk `exim4-*` dan `postfix`.)

| Tip
Isi "`/etc/mailname`" digunakan oleh banyak program non-MTA untuk perilaku baku mereka. Untuk `mutt`, atur variabel "`hostname`" dan "`from`" dalam berkas `~/muttrc` untuk menimpa nilai mailname. Untuk program dalam paket `devscripts`, seperti bts(1) dan dch(1), ekspor variabel lingkungan "`$DEBFULLNAME`" dan "`$DEBEMAIL`" untuk menimpanya.

| Tip

Paket `popularity-contest` biasanya mengirim surat dari akun root dengan FQDN. Anda perlu mengatur `MAILFROM` di `/etc/popularity-contest.conf` seperti yang dijelaskan dalam berkas `/usr/share/popularity-contest/default.conf`. Jika tidak, surat Anda akan ditolak oleh server SMTP smarthost. Meskipun ini membosankan, pendekatan ini lebih aman daripada menulis ulang alamat sumber untuk semua surat dari root oleh MTA dan harus digunakan untuk daemon dan skrip cron lainnya.

Saat mengatur mailname ke "`hostname -f`", spoofing alamat surat sumber melalui MTA dapat direalisasikan dengan yang berikut.

- berkas "`/etc/email-addresses`" untuk exim4(8) seperti dijelaskan dalam exim4-config_files(5)

- berkas "`/etc/postfix/generic`" untuk postfix(1) seperti yang dijelaskan dalam generic(5)

Untuk `postfix`, diperlukan langkah-langkah tambahan berikut.

    # postmap hash:/etc/postfix/generic
    # postconf -e 'smtp_generic_maps = hash:/etc/postfix/generic'
    # postfix reload

Anda dapat menguji konfigurasi alamat surat menggunakan yang berikut ini.

- exim(8) dengan opsi-opsi `-brw, -bf, -bF, -bV, …`

- postmap(1) dengan opsi `-q`.

| Tip
Exim hadir dengan beberapa program utilitas seperti exiqgrep(8) dan exipick(8). Lihat "`dpkg -L exim4-base|grep man8/`" untuk perintah yang tersedia.

#### 6.2.4.4. Operasi dasar MTA

Ada beberapa operasi dasar MTA. Beberapa dapat dilakukan melalui antarmuka kompatibilitas sendmail(1).

Tabel 6.6. Daftar operasi dasar MTA

perintah exim | perintah postfix | deskripsi
--- | --- | ---
`sendmail` | `sendmail` | membaca surat dari masukan standar dan mengatur untuk pengiriman (`-bm`)
`mailq` | `mailq` | daftar antrian surat dengan status dan ID antrian (`-bp`)
`newaliases` | `newaliases` | menginisialisasi basis data alias `(-I)`
`exim4 -q` | `postqueue -f` | mendorong surat-surat yang menunggu (`-q`)
`exim4 -qf` | `postsuper -r ALL deferred; postqueue -f` | mendorong semua surat
`exim4 -qff` | `postsuper -r ALL; postqueue -f` | mendorong bahkan surat-surat yang dibekukan
`exim4 -Mg queue_id` | `postsuper -h queue_id` | bekukan satu pesan berdasarkan ID antriannya
`exim4 -Mrm queue_id` | `postsuper -d queue_id` | menghapus satu pesan berdasarkan ID antriannya
T/T | `postsuper -d ALL` | menghapus semua pesan

| Tip
Mungkin ide yang baik untuk mendorong (flush) semua surat dengan suatu skrip di "`/etc/ppp/ip-up.d/*`".

## 6.3. Server dan utilitas akses jarak jauh (SSH)

Secure SHell (SSH) adalah cara aman untuk terhubung melalui Internet. Versi bebas SSH yang disebut OpenSSH tersedia sebagai paket `opensh-client` dan `opensh-server` di Debian.

Untuk pengguna, ssh(1) berfungsi sebagai `telnet`yang lebih cerdas dan lebih aman (1). Tidak seperti perintah `telnet`, perintah `ssh` tidak berhenti pada karakter escape `telnet` (baku awal CTRL-]).

Tabel 6.7. Daftar server dan utilitas akses jarak jauh

paket | popcon | ukuran | perkakas | deskripsi
--- | --- | --- | --- | ---
`openssh-client` | V:915, I:996 | 4210 | ssh(1) | Klien shell aman
`openssh-server` | V:768, I:819 | 3359 | sshd(8) | Server shell aman
`ssh-askpass` | I:16 | 103 | ssh-askpass(1) | meminta pengguna untuk frasa sandi bagi ssh-add (X polos)
`ssh-askpass-gnome` | V:0.4, I:3.0 | 207 | ssh-askpass-gnome(1) | meminta pengguna untuk frase sandi bagi ssh-add (GNOME)
`ssh-askpass-fullscreen` | V:0.11, I:0.45 | 41 | ssh-askpass-fullscreen(1) | meminta pengguna untuk frase sandi bagi ssh-add (GNOME) dengan pernik ekstra
`shellinabox` | V:0.7, I:1.1 | 528 | shellinaboxd(1) | server web untuk emulator terminal VT100 yang dapat diakses peramban

Meskipun `shellinabox` bukan program SSH, itu terdaftar di sini sebagai alternatif yang menarik untuk akses terminal jarak jauh.

Lihat juga Bagian 7.9, “Sambungan server X” untuk menyambung ke program klien X jarak jauh.

| Perhatian
Lihat Bagian 4.6.3, “Langkah-langkah keamanan tambahan untuk Internet” bila SSH Anda dapat diakses dari Internet.

| Tip
Silakan gunakan screen(1) untuk mengaktifkan proses shell jarak jauh yang tetap bertahan saat koneksi terputus (lihat Bagian 9.1.2, “Program screen”).

### 6.3.1. Dasar-dasar SSH

Daemon OpenSSH SSH hanya mendukung protokol SSH 2.

Silakan baca "`/usr/share/doc/openssh-client/README.Debian.gz`", ssh(1), sshd(8), ssh-keygen(1), ssh-add(1), dan ssh-agent(1).

| Awas
"`/etc/ssh/sshd_not_to_be_run`" tidak boleh ada jika seseorang ingin menjalankan server OpenSSH. Jangan aktifkan autentikasi berbasis rhost (`HostbasedAuthentication` dalam `/etc/ssh/sshd_config`).

Tabel 6.8. Daftar berkas konfigurasi SSH

berkas konfigurasi | deskripsi berkas konfigurasi
--- | ---
`/etc/ssh/ssh_config` | Baku klien SSH, lihat ssh_config(5)
`/etc/ssh/sshd_config` | Baku server SSH, lihat sshd_config(5)
`~/.ssh/authorized_keys` | kunci SSH publik baku yang digunakan klien untuk menyambung ke akun ini pada server SSH ini
`~/.ssh/id_rsa` | kunci rahasia SSH-2 RSA dari pengguna
`~/.ssh/id_key-type-name` | kunci nama-tipe-kunci SSH-2 rahasia seperti `ecdsa`, `ed25519`, ... dari pengguna

Berikut ini memulai koneksi ssh(1) dari klien.

Tabel 6.9. Daftar contoh awal mula klien SSH

perintah | deskripsi
--- | ---
`ssh username@hostname.domain.ext` | terhubung dengan mode baku
`ssh -v username@hostname.domain.ext` | terhubung dengan mode baku dengan pesan debugging
`ssh -o PreferredAuthentications=password username@hostname.domain.ext` | memaksa untuk menggunakan kata sandi dengan SSH versi 2
`ssh -t username@hostname.domain.ext passwd` | menjalankan program `passwd` untuk memperbarui kata sandi pada host jarak jauh

### 6.3.2. Nama pengguna di host jarak jauh

Jika Anda menggunakan nama pengguna yang sama pada host lokal dan jarak jauh, Anda dapat menghilangkan mengetik "`namapengguna@`".

Bahkan jika Anda menggunakan nama pengguna yang berbeda pada host lokal dan jarak jauh, Anda dapat menghilangkannya menggunakan "`~/.ssh/config`". Untuk layanan Debian Salsa dengan nama akun "`foo-guest`", Anda mengatur "`~/.ssh/config`" untuk memuat hal-hal berikut.

    Host salsa.debian.org people.debian.org
    User foo-guest

### 6.3.3. Menyambungkan tanpa kata sandi jarak jauh

Seseorang dapat menghindari harus mengingat kata sandi untuk sistem jarak jauh dengan menggunakan "`PubkeyAuthentication`" (protokol SSH-2).

Pada sistem jarak jauh, atur entri yang sesuai, "`PubkeyAuthentication yes`", dalam "`/etc/ssh/sshd_config`".

Hasilkan kunci otentikasi secara lokal dan install kunci publik pada sistem jarak jauh dengan yang berikut ini.

    $ ssh-keygen -t rsa
    $ cat .ssh/id_rsa.pub | ssh user1@remote "cat - >>.ssh/authorized_keys"

Anda dapat menambahkan opsi ke entri dalam "`~/.ssh/authorized_keys`" untuk membatasi host dan menjalankan perintah tertentu. Lihat sshd(8) "BERKAS FORMAT AUTHORIZED_KEYS".

### 6.3.4. Berurusan dengan klien SSH alien

Ada beberapa klien SSH gratis yang tersedia untuk platform lain.

Tabel 6.10. Daftar klien SSH gratis untuk platform lain

lingkungan | program SSH bebas
--- | ---
Windows | puTTY (PuTTY: klien SSH dan Telnet gratis) (GPL)
Windows (cygwin) | SSH di cygwin (Cygwin: Dapatkan sensasi Linux - di Windows) (GPL)
Mac OS X | OpenSSH; menggunakan `ssh` di aplikasi Terminal (GPL)

### 6.3.5. Menyiapkan ssh-agent

Lebih aman untuk melindungi kunci rahasia otentikasi SSH Anda dengan frasa sandi. Jika frasa sandi tidak diatur, gunakan "`ssh-keygen -p`" untuk mengaturnya.

Tempatkan kunci SSH publik Anda (misalnya. "`~/.ssh/id_rsa.pub`") ke dalam "`~/.ssh/authorized_keys`" pada host jarak jauh menggunakan koneksi berbasis kata sandi ke host jarak jauh seperti yang dijelaskan di atas.

    $ ssh-agent bash
    $ ssh-add ~/.ssh/id_rsa
    Enter passphrase for /home/username/.ssh/id_rsa:
    Identity added: /home/username/.ssh/id_rsa (/home/username/.ssh/id_rsa)

Tidak ada kata sandi jarak jauh yang diperlukan dari sini untuk perintah berikutnya.

    $ scp foo username@remote.host:foo

Tekan ^D untuk mengakhiri sesi ssh-agent.

Untuk server X, skrip awal mula Debian normal mengeksekusi `ssh-agent` sebagai proses induk. Jadi Anda hanya perlu mengeksekusi `ssh-add` sekali. Untuk lebih lanjut, baca ssh-agent(1) dan ssh-add(1).

### 6.3.6. Mengirim surat dari host jarak jauh

Jika Anda memiliki akun shell SSH di server dengan pengaturan DNS yang tepat, Anda dapat mengirim surat yang dihasilkan di workstation Anda sebagai surel yang benar-benar dikirim dari server jarak jauh.

    $ ssh username@example.org /usr/sbin/sendmail -bm -ti -f "username@example.org" < mail_data.txt

### 6.3.7. Penerusan port untuk tunneling SMTP/POP3

Untuk menjalin pipa untuk menyambung ke port 25 `remote-server` dari port 4025 dari `localhost`, dan ke port 110 `remote-server` dari port 4110 `localhost` melalui `ssh`, jalankan pada host lokal sebagai berikut.

    # ssh -q -L 4025:remote-server:25 4110:remote-server:110 username@remote-server

Ini adalah cara yang aman untuk membuat koneksi ke server SMTP/POP3 melalui Internet. Atur entri "`AllowTcpForwarding`" menjadi "`yes`" di "`/etc/ssh/sshd_config`" pada host jarak jauh.

### 6.3.8. Cara mematikan sistem jarak jauh di SSH

Anda perlu melindungi proses melakukan "`shutdown -h now`" (lihat Bagian 1.1.8, “Bagaimana mematikan sistem”) dari penghentian SSH menggunakan perintah at(1) (lihat Bagian 9.4.13, “Menjadwalkan tugas sekali”) dengan berikut ini.

    # echo "shutdown -h now" | at now

Menjalankan sesi "`shutdown-h now`" dalam screen(1) (lihat Bagian 9.1.2, “Program screen”) adalah cara lain untuk melakukan hal yang sama.

### 6.3.9. Pemecahan masalah SSH

Jika Anda memiliki masalah, periksa izin berkas konfigurasi dan jalankan `ssh` dengan opsi "`-v`".

Gunakan opsi "`-p`" jika Anda adalah root dan memiliki masalah dengan firewall; ini menghindari penggunaan port server 1 - 1023.

Jika koneksi `ssh` ke situs jarak jauh tiba-tiba berhenti bekerja, itu mungkin hasil dari coba-coba oleh sysadmin, kemungkinan besar perubahan dalam "`host_key`" selama pemeliharaan sistem. Setelah memastikan ini adalah kasusnya dan tidak ada yang mencoba memalsukan host jarak jauh dengan beberapa peretasan pintar, seseorang dapat memperoleh kembali koneksi dengan menghapus entri "`host_key`" dari "`~/.ssh/known_hosts`" pada host lokal.

## 6.4. Server cetak dan utilitas

Dalam sistem mirip-Unix lama, Line printer daemon (lpd) BSD adalah standar dan format cetak standar dari perangkat lunak bebas klasik adalah PostScript (PS). Beberapa sistem filter digunakan bersama dengan Ghostscript untuk memungkinkan pencetakan ke printer non-PostScript. Lihat Bagian 11.4.1, “Ghostscript”.

Dalam sistem Debian modern, Common UNIX Printing System (CUPS) adalah standar de facto dan format cetak standar dari perangkat lunak bebas modern adalah Portable Document Format (PDF).

CUPS menggunakan Internet Printing Protocol (IPP). IPP adalah standar de facto lintas platform untuk pencetakan jarak jauh dengan kemampuan komunikasi dua arah.

Berkat fitur konversi otomatis yang bergantung pada format berkas dari sistem CUPS, cukup mengumpan data apa pun ke perintah `lpr` harus menghasilkan keluaran cetak yang diharapkan. (Dalam CUPS, `lpr` dapat diaktifkan dengan memasang paket `cups-bsd`.)

Sistem Debian memiliki beberapa paket penting untuk server dan utilitas cetak.

Tabel 6.11. Daftar server cetak dan utilitas

paket | popcon | ukuran | port | deskripsi
--- | --- | --- | --- | ---
`lpr` | V:2.1, I:2.5 | 378 | printer (515) | BSD lpr/lpd (Daemon line printer)
`cups` | V:98, I:446 | 1088 | IPP (631) | Server Pencetakan Internet CUPS
`cups-client` | V:118, I:458 | 429 | , , | Perintah printer Sistem V untuk CUPS: lp(1), lpstat(1), lpoptions(1), cancel(1), lpmove(8), lpinfo(8), lpadmin(8), …
`cups-bsd` | V:34, I:186 | 131 | , , | Perintah printer BSD untuk CUPS: lpr(1), lpq(1), lprm(1), lpc(8)
`printer-driver-gutenprint` | V:11, I:56 | 1117 | Tidak berlaku | pengandar pencetak untuk CUPS

| Tip
Anda dapat mengkonfigurasi sistem CUPS dengan mengarahkan peramban web Anda ke "http://localhost:631/" .

## 6.5. Server aplikasi jaringan lainnya

Berikut adalah server aplikasi jaringan lainnya.

Tabel 6.12. Daftar server aplikasi jaringan lainnya

paket | popcon | ukuran | protokol | deskripsi
--- | --- | --- | --- | ---
`telnetd` | V:0.3, I:1.6 | 55 | TELNET | Server TELNET
`nfs-kernel-server` | V:47, I:55 | 830 | NFS | Berbagi berkas Unix
`samba` | V:109, I:123 | 5053 | SMB | Berbagi berkas dan pencetak Windows
`netatalk` | V:0.74, I:0.97 | 933 | ATP | Berbagi berkas dan pencetak Apple/Mac (AppleTalk)
`proftpd-basic` | V:3.9, I:9.2 | 452 | FTP | Pengunduhan berkas umum
`apache2` | V:178, I:218 | 586 | HTTP | Server web umum
`squid` | V:9.3, I:9.9 | 9358 | , , | Server proksi web umum
`bind9` | V:35, I:37 | 885 | DNS | Alamat IP untuk host lain
`kea` | I:0.57 | 244 | DHCP | Alamat IP klien itu sendiri

Common Internet File System Protocol (CIFS) adalah protokol yang sama dengan Server Message Block (SMB) dan digunakan secara luas oleh Microsoft Windows.

| Tip
Lihat Bagian 4.5.2, “Manajemen sistem terpusat modern” untuk integrasi sistem server.

| Tip
Resolusi nama host biasanya disediakan oleh server DNS. Untuk alamat IP host yang ditetapkan secara dinamis oleh DHCP, DNS Dinamis dapat diatur untuk resolusi nama host menggunakan `bind9` dan `kea` seperti yang dijelaskan di halaman DDNS di wiki Debian.

| Tip
Penggunaan server proksi seperti `squid` jauh lebih efisien untuk menghemat bandwidth daripada penggunaan server cermin lokal dengan isi arsip Debian lengkap.

## 6.6. Klien aplikasi jaringan lainnya

Berikut adalah klien aplikasi jaringan lainnya.

Tabel 6.13. Daftar klien aplikasi jaringan

paket | popcon | ukuran | protokol | deskripsi
--- | --- | --- | --- | ---
`netcat-traditional` | V:50, I:904 | 139 | TCP/IP | pisau tentara Swiss untuk TCP/IP
`netcat-openbsd` | V:22, I:120 | 105 | TCP/IP | Perkakas TCP/IP serba guna dengan dukungan IPv6, proksi, dan soket Unix
`openssl` | V:847, I:996 | 2532 | SSL | biner dan alat kriptografi terkait Secure Socket Layer (SSL)
`stunnel4` | V:6.2, I:9.3 | 24 | , , | pembungkus SSL universal
`telnet` | V:11, I:215 | 55 | TELNET | Klien TELNET
`nfs-common` | V:150, I:197 | 1139 | NFS | Berbagi berkas Unix
`smbclient` | V:26, I:206 | 2088 | SMB | klien berbagi berkas dan pencetak MS Windows
`cifs-utils` | V:33, I:119 | 351 | , , | perintah mount dan umount untuk berkas MS Windows jarak jauh
`wget` | V:185, I:982 | 3784 | HTTP dan FTP | pengunduh web
`curl` | V:244, I:716 | 512 | , , | , ,
`transmission-gtk` | V:11, I:156 | 6259 | BitTorrent | Klien BitTorrent (GTK)
`transmission-qt` | V:0.7, I:2.5 | 6213 | , , | Klien BitTorrent (Qt)
`ktorrent` | V:1.4, I:5.1 | 5031 | , , | Klien BitTorrent (Qt)
`qbittorrent` | V:8, I:22 | 15261 | , , | Klien BitTorrent (Qt)
`bind9-host` | V:128, I:940 | 137 | DNS | host(1) dari bind9, "`Priority: standard`"
`dnsutils` | V:5, I:161 | 23 | , , | dig(1) dari bind, "`Priority: standard`"
`ldap-utils` | V:10, I:58 | 782 | LDAP | mendapatkan data dari server LDAP

## 6.7. Diagnosis daemon sistem

Program `telnet` memungkinkan koneksi manual ke daemon sistem dan diagnosisnya.

Untuk menguji layanan POP3 polos, coba yang berikut ini

    $ telnet mail.ispname.net pop3

Untuk menguji layanan POP3 yang memakai TLS/SSL oleh beberapa ISP, Anda memerlukan klien `telnet` yang mendukung TLS/SSL oleh paket `telnet-ssl` atau `openssl`.

    $ telnet -z ssl pop.gmail.com 995

    $ openssl s_client -connect pop.gmail.com:995

RFC berikut memberikan pengetahuan yang diperlukan untuk setiap daemon sistem.

Tabel 6.14. Daftar RFC populer

RFC | deskripsi
--- | ---
rfc1939 dan rfc2449 | Layanan POP3
rfc3501 | Layanan IMAP4
rfc2821 (rfc821) | Layanan SMTP
rfc2822 (rfc822) | Format berkas surel
rfc2045 | Multipurpose Internet Mail Extensions (MIME)
rfc819 | Layanan DNS
rfc2616 | Layanan HTTP
rfc2396 | Definisi URI

Penggunaan port dijelaskan dalam "`/etc/services`".

Bab 5. Penyiapan jaringan |  | Bab 7. Sistem GUI