Bab 6. Aplikasi jaringan

Daftar Isi

6.1. Peramban Web
6.1.1. Memalsu string User-Agent
6.1.2. Ekstensi peramban
6.2. Sistem surat
6.2.1. Dasar-dasar surel
6.2.2. Batasan layanan surat modern
6.2.3. Harapan layanan surat bersejarah
6.2.4. Agen transportasi surat (mail transport agent/MTA)
6.2.4.1. Konfigurasi exim4
6.2.4.2. Konfigurasi postfix dengan SASL
6.2.4.3. Konfigurasi alamat surel
6.2.4.4. Operasi dasar MTA
6.3. Server dan utilitas akses jarak jauh (SSH)
6.3.1. Dasar-dasar SSH
6.3.2. Nama pengguna di host jarak jauh
6.3.3. Menyambungkan tanpa kata sandi jarak jauh
6.3.4. Berurusan dengan klien SSH alien
6.3.5. Menyiapkan ssh-agent
6.3.6. Mengirim surat dari host jarak jauh
6.3.7. Penerusan port untuk tunneling SMTP/POP3
6.3.8. Cara mematikan sistem jarak jauh di SSH
6.3.9. Pemecahan masalah SSH
6.4. Server cetak dan utilitas
6.5. Server aplikasi jaringan lainnya
6.6. Klien aplikasi jaringan lainnya
6.7. Diagnosis daemon sistem

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

[Tip] Tip

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

[Tip] 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.

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


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

[Perhatian] Perhatian

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

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.


Pada prinsipnya, workstation mobile harus berfungsi tanpa perintah /usr/sbin/sendmail yang disediakan oleh program mail transfer agent (MTA).

Sistem Debian biasanya memasang MTA untuk mengatasi Bagian 6.2.2, “Batasan layanan surat modern” dan Bagian 6.2.3, “Harapan layanan surat bersejarah” bahkan jika workstation mobile dipasangi klien surel berbasis GUI berfitur lengkap.

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] 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.


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:[email protected]: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] 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] Awas

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

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


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".

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


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] 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] 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] Tip

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

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 telnetyang lebih cerdas dan lebih aman (1). Tidak seperti perintah telnet, perintah ssh tidak berhenti pada karakter escape telnet (baku awal CTRL-]).


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

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

[Perhatian] Perhatian

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

[Tip] Tip

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

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.

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 sekarang didukung oleh OS lain seperti Windows XP dan Mac OS X dan telah menjadi standar de facto lintas platform baru 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.


[Tip] Tip

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

Berikut adalah server aplikasi jaringan lainnya.


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

[Tip] Tip

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

[Tip] 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 isc-dhcp-server seperti yang dijelaskan di halaman DDNS di wiki Debian.

[Tip] Tip

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

Berikut adalah klien aplikasi jaringan lainnya.


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.


Penggunaan port dijelaskan dalam "/etc/services".