GNU/Linux >> Znalost Linux >  >> Linux

Zabránění jiným aplikacím ve spojení s porty 80 a 443

Řešení 1:

Nemůžete zabránit tomu, aby byl port vázán nesprávnou službou. Ve vašem případě stačí odebrat apache z automatického spuštění a měli byste být v pořádku.

Pro 16.04 a novější:

sudo systemctl disable apache2

Pro starší verze Ubuntu:

sudo update-rc.d apache2 disable

Řešení 2:

Pokud opravdu nepoužíváte apache2 , a vyžaduje to PHP 7.0, pak to vypadá, že máte libapache2-mod-php7.0 nainstalováno. Ten balíček je bez Apache k ničemu. Protože používáte nginx, pravděpodobně máte také php7.0-fpm nebo php7.0-cgi nainstalováno, z nichž obě jsou dostatečné pro splnění php7.0 Požadavky na závislost:

$ 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>

Pokud máte některý z php7.0-{fpm,cgi} nainstalován, můžete pokračovat a odinstalovat Apache.

Řešení 3:

Chcete-li odpovědět na vaši otázku, pravděpodobně můžete omezit port na konkrétní aplikaci pomocí SElinux. Sám jsem to nepoužil a mám jen povrchní znalosti o jeho schopnostech, ale zde je ukazatel, který jsem našel na tomto webu:

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

V této odpovědi se zdá, že wzzrd ukazuje, jak udělit konkrétní aplikaci (foo) oprávnění k navázání na konkrétní port (803). Jen byste museli mít nastavenou politiku tak, aby pouze vaše aplikace (nginx) měla povoleny porty, které určíte (80 a 443).

Na základě wzzrdovy odpovědi by to mohlo být tak jednoduché, jako přidat toto do zásad

allow nginx_t nginx_port_t:tcp_socket name_bind;

a spuštění tohoto

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

I když si myslím, že budete v zásadě potřebovat také řádek, který stanoví, že se na tyto porty nesmí vázat žádný jiný program.

Nakonec jen hádám, jaká je vhodná konfigurace.

Každopádně si nemyslím, že by existovalo Ubuntu, které by mělo ve výchozím nastavení nainstalovaný a povolený SElinux. Protože se domnívám, že to vyžaduje použití určitých záplat na různé nástroje a volbu jádra, může být jednodušší jednoduše použít Centos, který má SElinux nainstalovaný a povolený hned od začátku.

Promiň, víc ti nepomůžu. Možná někdy jindy si stáhnu obrázek Centos a vyzkouším toto; bude to dobrý krok k učení. Pokud ano, aktualizuji tuto odpověď.

Řešení 4:

Něco, co jsem v odpovědích ještě neviděl, ale stále je to možnost:

Pro jistotu změňte konfiguraci Apache tak, aby naslouchala jinému portu. Můžete to udělat otevřením konfiguračního souboru Apache a změnou řádků, které mají Listen 80 do jiného portu.


Linux
  1. Zabránění souběžnému spuštění bash skriptu

  2. Rozdíl mezi Gtk a Qt aplikacemi?

  3. Zabránění Tar v používání příliš velkého CPU a disku (starý notebook havaruje, pokud je 100%)?

  1. Základy dockeru – odhalte porty, vazbu portů a odkaz dockeru

  2. CentOS / RHEL :Jak nakonfigurovat vsftpd pro použití jiných portů než výchozích portů 20 a 21

  3. Povolit procesu bez oprávnění root navázat se na port 80 a 443?

  1. Jak otevřít port 80 a 443 ve FirewallD

  2. Pamatujete si aplikace při odhlášení z Lxde?

  3. Jak odebrat aplikace Kde a Xfce z nabídky Gnome?