GNU/Linux >> Belajar Linux >  >> Linux

Mencegah aplikasi lain mengikat ke port 80 dan 443

Solusi 1:

Anda tidak dapat mencegah port terikat oleh layanan yang salah. Dalam kasus Anda, hapus saja apache dari autostart dan Anda akan baik-baik saja.

Untuk 16.04 dan yang lebih baru:

sudo systemctl disable apache2

Untuk versi Ubuntu yang lebih lama:

sudo update-rc.d apache2 disable

Solusi 2:

Jika Anda benar-benar tidak menggunakan apache2 , dan PHP 7.0 yang membutuhkannya, maka sepertinya Anda memiliki libapache2-mod-php7.0 diinstal. Paket itu tidak berguna tanpa Apache. Karena Anda menggunakan nginx, kemungkinan besar Anda juga memiliki php7.0-fpm atau php7.0-cgi diinstal, salah satunya cukup untuk memenuhi php7.0 persyaratan dependensi:

$ apt-cache depends php7.0
php7.0
 |Depends: php7.0-fpm
 |Depends: libapache2-mod-php7.0
  Depends: php7.0-cgi
  Depends: php7.0-common
  Conflicts: <php5>

Jika Anda memiliki salah satu dari php7.0-{fpm,cgi} terinstal, Anda dapat melanjutkan dan mencopot pemasangan Apache.

Solusi 3:

Untuk menjawab pertanyaan Anda, Anda mungkin dapat membatasi port ke aplikasi tertentu dengan menggunakan SElinux. Saya sendiri belum pernah menggunakannya dan hanya memiliki pengetahuan yang dangkal tentang kemampuannya, tetapi berikut adalah petunjuk yang saya temukan di situs ini:

https://serverfault.com/a/257056/392230

Dalam jawaban itu, wzzrd tampaknya menunjukkan cara memberikan izin aplikasi (foo) tertentu untuk mengikat ke port tertentu (803). Anda hanya perlu menyiapkan kebijakan sehingga hanya aplikasi Anda (nginx) yang diizinkan untuk port yang Anda tentukan (80 dan 443).

Mendasarkan diri saya pada jawaban wzzrd, mungkin sesederhana menambahkan ini ke kebijakan

allow nginx_t nginx_port_t:tcp_socket name_bind;

dan menjalankan ini

semanage port -a -t nginx_port_t -p tcp 80
semanage port -a -t nginx_port_t -p tcp 443

Meskipun demikian, saya membayangkan Anda juga memerlukan baris dalam kebijakan yang menetapkan bahwa tidak ada program lain yang dapat mengikat ke port tersebut.

Pada akhirnya, saya hanya menebak-nebak apa konfigurasi yang sesuai.

Ngomong-ngomong, saya rasa belum ada Ubuntu yang menginstal dan mengaktifkan SElinux secara default. Karena saya yakin ini memerlukan penerapan tambalan tertentu ke berbagai utilitas dan opsi kernel, mungkin lebih mudah menggunakan Centos yang telah menginstal dan mengaktifkan SElinux sejak awal.

Maaf, saya tidak bisa membantu lagi. Mungkin lain kali, saya akan mengunduh gambar Centos dan mencoba ini; itu akan menjadi langkah pembelajaran yang baik. Saya akan memperbarui jawaban ini jika saya melakukannya.

Solusi 4:

Sesuatu yang belum saya lihat di jawaban, tetapi masih ada kemungkinan:

Ubah konfigurasi Apache untuk mendengarkan port lain, untuk berjaga-jaga. Anda dapat melakukannya dengan membuka file konfigurasi Apache, dan mengubah baris yang memiliki Listen 80 ke port lain.


Linux
  1. Mencegah skrip bash berjalan secara bersamaan

  2. Mencegah Tar Menggunakan Terlalu Banyak Cpu Dan Disk (Laptop Lama Crash Jika 100%)?

  3. ClipGrab – Unduh Video dari YouTube, Facebook, dan Situs Lainnya

  1. Cara Membuka Port 80 &443 di FirewallD

  2. Perbedaan Antara Aplikasi Gtk Dan Qt?

  3. Dasar-dasar Docker – Mengekspos port, pengikatan port, dan tautan buruh pelabuhan

  1. Ingat Aplikasi Saat Keluar Dari Lxde?

  2. Bagaimana Cara Menghapus Aplikasi Kde Dan Xfce Dari Menu Gnome??

  3. CentOS / RHEL :Cara mengkonfigurasi vsftpd untuk menggunakan port selain port default 20 dan 21