{"id":3317,"date":"2020-10-06T07:38:02","date_gmt":"2020-10-06T00:38:02","guid":{"rendered":"http:\/\/materi.smkn43jkt.sch.id\/?p=3317"},"modified":"2025-08-12T14:10:59","modified_gmt":"2025-08-12T07:10:59","slug":"mengamankan-ssh-kelas-xi","status":"publish","type":"post","link":"http:\/\/materi.smkn43jkt.sch.id\/?p=3317","title":{"rendered":"SSH Server"},"content":{"rendered":"<p>Perlu kita ketahui konfigurasi default ssh sangat rentan terhadap serangan dari luar, seperti brute force attack dan sebagainya. Dapat anda bayangkan betapa bahayanya jika seseorang dapat masuk ke server\/computer kita. Anda yang menjadi seorang admin network\/server akan berasa malu kepada atasan anda, jika atasan anda mengetahui hal ini. Namun jika atasan anda tidak mengetahui telah terjadi penyusupan terhadap server tidak jadi masalah, tetapi masalah akan timbul jika penyusup tersebut malakukan hal-hal yang tidak diinginkan misalnya merubah konfigurasi system sehingga server\/komputer anda bermasalah dan masih banyak kemungkinan lainnya.<\/p>\n<div id=\"model-response-message-contentr_ef286863274544e7\" class=\"markdown markdown-main-panel enable-updated-hr-color\" dir=\"ltr\">\n<p>Anda dapat menginstal server SSH (Secure Shell) di Debian 12 dengan mudah menggunakan APT, dan mengamankannya dengan beberapa langkah konfigurasi dasar. SSH memungkinkan Anda mengelola server dari jarak jauh dengan aman.<\/p>\n<h2>Menginstal Server SSH<\/h2>\n<p>Untuk menginstal server SSH, Anda cukup menjalankan perintah berikut di terminal sebagai pengguna <code>root<\/code> atau menggunakan <code>sudo<\/code>:<\/p>\n<div class=\"code-block ng-tns-c1005614163-48 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation\">\n<div class=\"formatted-code-block-internal-container ng-tns-c1005614163-48\">\n<div class=\"animated-opacity ng-tns-c1005614163-48\">\n<pre class=\"ng-tns-c1005614163-48\"><code class=\"code-container formatted ng-tns-c1005614163-48\" role=\"text\" data-test-id=\"code-content\">apt update\r\napt install openssh-server\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li><code>apt update<\/code>: Memperbarui daftar paket yang tersedia.<\/li>\n<li><code>apt install openssh-server<\/code>: Menginstal paket server SSH.<\/li>\n<\/ul>\n<p>Setelah instalasi selesai, layanan SSH akan otomatis berjalan. Anda bisa memeriksa statusnya dengan perintah:<\/p>\n<div class=\"code-block ng-tns-c1005614163-49 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation\">\n<div class=\"formatted-code-block-internal-container ng-tns-c1005614163-49\">\n<div class=\"animated-opacity ng-tns-c1005614163-49\">\n<pre class=\"ng-tns-c1005614163-49\"><code class=\"code-container formatted ng-tns-c1005614163-49\" role=\"text\" data-test-id=\"code-content\">systemctl status ssh\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>Jika statusnya menunjukkan &#8220;active (running)&#8221;, server SSH Anda sudah siap digunakan.<\/p>\n<hr \/>\n<h2>Mengamankan Server SSH<\/h2>\n<p>Mengamankan server SSH sangat penting untuk mencegah akses yang tidak sah. Berikut adalah beberapa langkah utama yang bisa Anda terapkan.<\/p>\n<h3>1. Menonaktifkan Login Root<\/h3>\n<p>Login langsung sebagai <code>root<\/code> melalui SSH sangat tidak disarankan karena <code>root<\/code> memiliki semua hak istimewa. Untuk menonaktifkannya, edit file konfigurasi SSH di <code>\/etc\/ssh\/sshd_config<\/code>.<\/p>\n<div class=\"code-block ng-tns-c1005614163-50 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation\">\n<div class=\"formatted-code-block-internal-container ng-tns-c1005614163-50\">\n<div class=\"animated-opacity ng-tns-c1005614163-50\">\n<pre class=\"ng-tns-c1005614163-50\"><code class=\"code-container formatted ng-tns-c1005614163-50\" role=\"text\" data-test-id=\"code-content\">nano \/etc\/ssh\/sshd_config\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>Cari baris <code>PermitRootLogin<\/code>. Jika tidak ada, tambahkan. Ganti nilainya menjadi <code>no<\/code>:<\/p>\n<div class=\"code-block ng-tns-c1005614163-51 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation\">\n<div class=\"formatted-code-block-internal-container ng-tns-c1005614163-51\">\n<div class=\"animated-opacity ng-tns-c1005614163-51\">\n<pre class=\"ng-tns-c1005614163-51\"><code class=\"code-container formatted ng-tns-c1005614163-51\" role=\"text\" data-test-id=\"code-content\">PermitRootLogin no\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>Setelah perubahan, simpan dan keluar dari editor (<code>Ctrl+X<\/code>, lalu <code>Y<\/code>, <code>Enter<\/code>).<\/p>\n<h3>2. Menggunakan Autentikasi Kunci Publik<\/h3>\n<p>Autentikasi dengan kata sandi rentan terhadap serangan <i>brute-force<\/i>. Menggunakan kunci SSH (pasangan kunci publik\/pribadi) jauh lebih aman.<\/p>\n<ul>\n<li><b>Membuat Kunci SSH<\/b>: Di komputer lokal Anda, jalankan perintah berikut untuk membuat pasangan kunci.\n<div class=\"code-block ng-tns-c1005614163-52 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation\">\n<div class=\"formatted-code-block-internal-container ng-tns-c1005614163-52\">\n<div class=\"animated-opacity ng-tns-c1005614163-52\">\n<pre class=\"ng-tns-c1005614163-52\"><code class=\"code-container formatted ng-tns-c1005614163-52\" role=\"text\" data-test-id=\"code-content\">ssh-keygen -t rsa\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>Ikuti petunjuknya. Kunci publik Anda biasanya disimpan di <code>~\/.ssh\/id_rsa.pub<\/code>.<\/li>\n<li><b>Menyalin Kunci Publik ke Server<\/b>: Gunakan <code>ssh-copy-id<\/code> untuk menyalin kunci publik ke server Anda.\n<div class=\"code-block ng-tns-c1005614163-53 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation\">\n<div class=\"formatted-code-block-internal-container ng-tns-c1005614163-53\">\n<div class=\"animated-opacity ng-tns-c1005614163-53\">\n<pre class=\"ng-tns-c1005614163-53\"><code class=\"code-container formatted ng-tns-c1005614163-53\" role=\"text\" data-test-id=\"code-content\">ssh-copy-id nama_pengguna@alamat_ip_server\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>Anda akan diminta memasukkan kata sandi server sekali untuk mengizinkan penyalinan.<\/li>\n<li><b>Menonaktifkan Autentikasi Kata Sandi<\/b>: Setelah berhasil mengonfigurasi kunci, nonaktifkan login dengan kata sandi di file <code>\/etc\/ssh\/sshd_config<\/code> untuk meningkatkan keamanan.\n<div class=\"code-block ng-tns-c1005614163-54 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation\">\n<div class=\"formatted-code-block-internal-container ng-tns-c1005614163-54\">\n<div class=\"animated-opacity ng-tns-c1005614163-54\">\n<pre class=\"ng-tns-c1005614163-54\"><code class=\"code-container formatted ng-tns-c1005614163-54\" role=\"text\" data-test-id=\"code-content\">nano \/etc\/ssh\/sshd_config\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>Ubah nilai <code>PasswordAuthentication<\/code> menjadi <code>no<\/code>:<\/p>\n<div class=\"code-block ng-tns-c1005614163-55 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation\">\n<div class=\"formatted-code-block-internal-container ng-tns-c1005614163-55\">\n<div class=\"animated-opacity ng-tns-c1005614163-55\">\n<pre class=\"ng-tns-c1005614163-55\"><code class=\"code-container formatted ng-tns-c1005614163-55\" role=\"text\" data-test-id=\"code-content\">PasswordAuthentication no\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>Sekarang, hanya pengguna yang memiliki kunci pribadi yang benar yang dapat masuk.<\/li>\n<\/ul>\n<h3>3. Mengubah Port SSH Default<\/h3>\n<p>Port default SSH adalah <code>22<\/code>. Mengubahnya menjadi port lain dapat mengurangi serangan otomatis yang menargetkan port ini.<\/p>\n<p>Buka file konfigurasi <code>\/etc\/ssh\/sshd_config<\/code> dan cari baris <code>Port 22<\/code>. Ubah angkanya menjadi port lain yang belum digunakan, misalnya <code>2222<\/code>.<\/p>\n<div class=\"code-block ng-tns-c1005614163-56 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation\">\n<div class=\"formatted-code-block-internal-container ng-tns-c1005614163-56\">\n<div class=\"animated-opacity ng-tns-c1005614163-56\">\n<pre class=\"ng-tns-c1005614163-56\"><code class=\"code-container formatted ng-tns-c1005614163-56\" role=\"text\" data-test-id=\"code-content\">Port 2222\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>Pastikan port yang Anda pilih tidak digunakan oleh layanan lain.<\/p>\n<h3>4. Menggunakan Firewall<\/h3>\n<p>Firewall sangat penting untuk membatasi akses ke port SSH. Di Debian, Anda bisa menggunakan <code>ufw<\/code> (Uncomplicated Firewall).<\/p>\n<div class=\"code-block ng-tns-c1005614163-57 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation\">\n<div class=\"formatted-code-block-internal-container ng-tns-c1005614163-57\">\n<div class=\"animated-opacity ng-tns-c1005614163-57\">\n<pre class=\"ng-tns-c1005614163-57\"><code class=\"code-container formatted ng-tns-c1005614163-57\" role=\"text\" data-test-id=\"code-content\">apt install ufw\r\nufw <span class=\"hljs-built_in\">enable<\/span>\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>Setelah mengaktifkan <code>ufw<\/code>, izinkan port SSH yang baru Anda konfigurasikan (misalnya, <code>2222<\/code>).<\/p>\n<div class=\"code-block ng-tns-c1005614163-58 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation\">\n<div class=\"formatted-code-block-internal-container ng-tns-c1005614163-58\">\n<div class=\"animated-opacity ng-tns-c1005614163-58\">\n<pre class=\"ng-tns-c1005614163-58\"><code class=\"code-container formatted ng-tns-c1005614163-58\" role=\"text\" data-test-id=\"code-content\">ufw allow 2222\/tcp\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>Anda juga bisa membatasi akses SSH hanya dari alamat IP tertentu:<\/p>\n<div class=\"code-block ng-tns-c1005614163-59 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation\">\n<div class=\"formatted-code-block-internal-container ng-tns-c1005614163-59\">\n<div class=\"animated-opacity ng-tns-c1005614163-59\">\n<pre class=\"ng-tns-c1005614163-59\"><code class=\"code-container formatted ng-tns-c1005614163-59\" role=\"text\" data-test-id=\"code-content\">ufw allow from 192.168.1.100 to any port 2222\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<h3>5. Mengaktifkan <code>Fail2ban<\/code><\/h3>\n<p><code>Fail2ban<\/code> adalah alat yang memindai log dan memblokir alamat IP yang mencoba masuk berulang kali dengan kata sandi yang salah. Ini sangat efektif melawan serangan <i>brute-force<\/i>.<\/p>\n<div class=\"code-block ng-tns-c1005614163-60 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation\">\n<div class=\"formatted-code-block-internal-container ng-tns-c1005614163-60\">\n<div class=\"animated-opacity ng-tns-c1005614163-60\">\n<pre class=\"ng-tns-c1005614163-60\"><code class=\"code-container formatted ng-tns-c1005614163-60\" role=\"text\" data-test-id=\"code-content\">apt install fail2ban\r\nsystemctl <span class=\"hljs-built_in\">enable<\/span> fail2ban\r\nsystemctl start fail2ban\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p><code>Fail2ban<\/code> akan otomatis berjalan dengan konfigurasi default yang sudah cukup aman.<\/p>\n<hr \/>\n<p>Setelah melakukan semua perubahan pada file konfigurasi <code>\/etc\/ssh\/sshd_config<\/code>, Anda harus memulai ulang layanan SSH agar perubahan diterapkan.<\/p>\n<div class=\"code-block ng-tns-c1005614163-61 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation\">\n<div class=\"formatted-code-block-internal-container ng-tns-c1005614163-61\">\n<div class=\"animated-opacity ng-tns-c1005614163-61\">\n<pre class=\"ng-tns-c1005614163-61\"><code class=\"code-container formatted ng-tns-c1005614163-61\" role=\"text\" data-test-id=\"code-content\">restart ssh\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>Sebelum keluar dari sesi SSH saat ini, buka sesi terminal baru dan coba login kembali untuk memastikan konfigurasi baru tidak mengunci Anda dari server. Jika berhasil, barulah Anda bisa menutup sesi lama.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Perlu kita ketahui konfigurasi default ssh sangat rentan terhadap serangan dari luar, seperti brute force attack dan sebagainya. Dapat anda bayangkan betapa bahayanya jika seseorang dapat masuk ke server\/computer kita. Anda yang menjadi seorang admin network\/server akan berasa malu kepada atasan anda, jika atasan anda mengetahui hal ini. Namun jika atasan anda tidak mengetahui telah [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[],"_links":{"self":[{"href":"http:\/\/materi.smkn43jkt.sch.id\/index.php?rest_route=\/wp\/v2\/posts\/3317"}],"collection":[{"href":"http:\/\/materi.smkn43jkt.sch.id\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/materi.smkn43jkt.sch.id\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/materi.smkn43jkt.sch.id\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/materi.smkn43jkt.sch.id\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3317"}],"version-history":[{"count":7,"href":"http:\/\/materi.smkn43jkt.sch.id\/index.php?rest_route=\/wp\/v2\/posts\/3317\/revisions"}],"predecessor-version":[{"id":5606,"href":"http:\/\/materi.smkn43jkt.sch.id\/index.php?rest_route=\/wp\/v2\/posts\/3317\/revisions\/5606"}],"wp:attachment":[{"href":"http:\/\/materi.smkn43jkt.sch.id\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3317"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/materi.smkn43jkt.sch.id\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3317"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/materi.smkn43jkt.sch.id\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3317"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}