Xinetd, atau Extended Internet Services Daemon, adalah yang disebut super-server. Anda dapat mengonfigurasinya untuk mendengarkan di tempat banyak layanan, dan memulai layanan yang seharusnya menangani permintaan masuk hanya ketika permintaan itu benar-benar tiba ke sistem – sehingga menghemat sumber daya. Meskipun hal ini mungkin tidak menjadi masalah besar pada sistem di mana lalu lintas relatif permanen, layanan ini di depan pendekatan lain memang memiliki beberapa keuntungan yang rapi, seperti logging atau kontrol akses.
Pada artikel ini kita akan menginstal xinetd pada RHEL 8 / CentOS 8, dan kita akan meletakkan sshd
daemon di bawah perawatannya. Setelah memverifikasi penyiapan, kami akan mengubah sedikit konfigurasi untuk melihat kontrol akses beraksi.
Dalam tutorial ini Anda akan mempelajari:
- Cara menginstal xinetd
- Cara menyiapkan sshd di RHEL 8 / CentOS 8 sebagai layanan xinetd
- Cara mengizinkan akses hanya dari jaringan tertentu ke layanan sshd dari xinetd
- Cara mengaudit lalu lintas dari entri log xinetd
Mengizinkan akses dari segmen jaringan tertentu ke sshd.
Persyaratan dan Konvensi Perangkat Lunak yang Digunakan
Kategori | Persyaratan, Konvensi, atau Versi Perangkat Lunak yang Digunakan |
---|---|
Sistem | RHEL 8 / CentOS 8 |
Perangkat Lunak | xinetd 2.3.15-23, OpenSSH 7.8p1 |
Lainnya | Akses istimewa ke sistem Linux Anda sebagai root atau melalui sudo perintah. |
Konvensi | # – membutuhkan perintah linux yang diberikan untuk dieksekusi dengan hak akses root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah$ – membutuhkan perintah linux yang diberikan untuk dieksekusi sebagai pengguna biasa yang tidak memiliki hak istimewa |
Cara menginstal layanan xinetd di Red Hat 8 petunjuk langkah demi langkah
Xinetd
dapat ditemukan di repositori dasar setelah menyiapkan repositori resmi Manajemen Berlangganan. sshd
server diinstal ke Red Hat (dan hampir semua distribusi Linux) secara default.
Perlu diingat bahwa
sshd
akan dimatikan selama pengaturan ini. JANGAN mencoba menyelesaikan panduan ini pada sistem yang hanya dapat Anda akses dengan ssh, jika tidak, Anda akan kehilangan koneksi ke sistem saat Anda mematikan sshd untuk memulai server xinetd.- Pertama kita perlu menginstal
xinetd
daemon. Kami akan menggunakandnf
:# dnf install xinetd
- Jika karena alasan tertentu sistem Anda tidak memuat instalasi OpenSSH, Anda dapat menginstal paket seperti dalam hal ini
openssh
paket dengan cara yang sama seperti di atas:# dnf install openssh
- Xinetd dilengkapi dengan file konfigurasi default
/etc/xinetd.conf
, serta beberapa contoh rapi di/etc/xinetd.d/
direktori, semua dinonaktifkan secara default. Dengan editor teks sepertivi
ataunano
, mari buat file teks baru/etc/xinetd.d/ssh
dengan konten berikut (perhatikan bahwa baris baru setelah nama layanan adalah wajib):service ssh { disable = no socket_type = stream protocol = tcp port = 22 wait = no user = root server = /usr/sbin/sshd server_args = -i }
- Jika
sshd
server sedang berjalan di sistem, kita harus menghentikannya, jika tidakxinetd
tidak dapat mengikat ke port TCP 22. Ini adalah langkah di mana Anda akan terputus jika Anda masuk melalui ssh.# systemctl stop sshd
Jika kami berencana untuk menggunakan sshd melalui xinetd dalam jangka panjang, kami juga dapat menonaktifkan
systemd
service untuk itu, untuk mencegahnya dimulai saat boot:systemctl disable sshd
- Sekarang kita bisa memulai
xinetd
:# systemctl start xinetd
Dan secara opsional aktifkan startup saat boot:
# systemctl enable xinetd
- Setelah xinetd dimulai, kita dapat login melalui ssh, karena pengaturan dasar kita tidak mengandung batasan tambahan. Untuk menguji layanan, kami meminta login di
localhost
:# ssh localhost root@localhost's password: Last login: Sun Mar 31 17:30:07 2019 from 192.168.1.7 #
- Mari tambahkan baris lain ke
/etc/xinetd.d/ssh
, tepat sebelum gelang penutup:[...] server = /usr/sbin/sshd server_args = -i only_from = 192.168.0.0 }
Dengan pengaturan ini, kami membatasi akses hanya dari segmen jaringan 192.168.*.*. Kita perlu memulai ulang xinetd agar perubahan konfigurasi ini berlaku:
# systemctl restart xinetd
- Mesin lab kami memiliki lebih dari satu antarmuka. Untuk menguji batasan di atas, kami akan mencoba menghubungkan untuk terhubung ke satu antarmuka yang tidak diizinkan oleh konfigurasi xinetd, dan yang memang diizinkan:
# hostname -i fe80::6301:609f:4a45:1591%enp0s3 fe80::6f06:dfde:b513:1a0e%enp0s8 10.0.2.15 192.168.1.14 192.168.122.1
Kami akan mencoba membuka koneksi dari sistem itu sendiri, sehingga alamat IP sumber kami akan sama dengan tujuan yang kami coba sambungkan. Oleh karena itu, ketika kami mencoba menghubungkan ke
10.0.2.15
, kami tidak diizinkan untuk terhubung:# ssh 10.0.2.15 ssh_exchange_identification: read: Connection reset by peer
Sedangkan alamat
192.168.1.14
berada dalam rentang alamat yang diizinkan. Kami akan mendapatkan prompt kata sandi, dan dapat masuk:# ssh 192.168.1.14 [email protected]'s password:
- Karena kami belum mengubah konfigurasi logging default, upaya login kami (atau dengan kata lain, upaya kami untuk mengakses layanan xinetd) akan dicatat ke
/var/log/messages
. Entri log dapat ditemukan dengan sederhanagrep
:cat /var/log/messages | grep xinetd Mar 31 18:30:13 rhel8lab xinetd[4044]: START: ssh pid=4048 from=::ffff:10.0.2.15 Mar 31 18:30:13 rhel8lab xinetd[4048]: FAIL: ssh address from=::ffff:10.0.2.15 Mar 31 18:30:13 rhel8lab xinetd[4044]: EXIT: ssh status=0 pid=4048 duration=0(sec) Mar 31 18:30:18 rhel8lab xinetd[4044]: START: ssh pid=4050 from=::ffff:192.168.1.14
Pesan-pesan ini memudahkan untuk mengetahui bagaimana layanan kami diakses. Meskipun ada banyak opsi lain (termasuk membatasi koneksi yang setuju, atau mengatur batas waktu setelah koneksi gagal untuk mencegah serangan DOS), pengaturan sederhana ini diharapkan menunjukkan kekuatan server super ini yang dapat membuat hidup sysadmin lebih mudah – terutama yang ramai, menghadap ke Internet sistem.