Jen pro vysvětlení pro budoucí uživatele.
Váš soubor 000-default.conf je univerzální web a měl by být ponechán na pokoji. Je to dobré pro bezpečnost. Když konfigurace webu nefunguje a je poskytován výchozí web, může to být frustrující. Chápu to. Přesto to nechte být. Mnoho lidí si neuvědomuje, proč výchozí web existuje. Zde je malé vysvětlení.
Když Apache obdrží požadavek, pokusí se jej porovnat s konfigurací, o které ví. Takže jakýkoli požadavek pro example.com bude hledat example.com.conf se správnou konfigurací. Pokud není shoda, použije se stránka 000-default.conf. Pokud je viděn požadavek na bogussite.com a na serveru neexistuje, je obsluhován soubor 000-default.conf. To je zvláště užitečné pro požadavky pouze na IP adresu. A my je všichni nenávidíme!! Pokud však dojde k chybě v example.com.conf, je stále možné, že se zobrazí stránka 000-default.conf, takže přesný důvod, proč a jak konfigurace selhává, je trochu matoucí a velmi frustrující.
Zde jsem dal několik ukázkových konfigurací z živého serveru:Konfigurace virtuálního hostitele:směrování a použití zástupných znaků
Push přijde do strčení, ty by měly vždy fungovat. Můžete je přesně vyjmout a vložit a poté provést potřebné změny nebo upravit stávající soubory. Vaše možnost. Je snadné na to jít přes oči, takže buďte opatrní. Všichni jsme to udělali, takže v tom nebudete sami.
@HighlyIrregular to zdůrazňuje ve svých komentářích, které by měly žít.
Konfiguraci můžete vždy zkontrolovat v relaci shellu pomocí...
$ apachectl configtest
... což by mělo pomoci s řešením problémů.
Budete muset vytvořit své nové/další stránky v /etc/apache2/site-available/
adresář používající formát souboru podobný example.com.conf
. Také se budete chtít ujistit, že /etc/apache2/apache2.conf
má Include sites-enabled/
nebo něco podobného jako jeden z posledních řádků.
Když je provedena změna jakéhokoli konfiguračního souboru, Apache musí být restartován. Apache ukládá konfigurace do paměti a změny nebudou vidět, dokud nebude restartován. Ve vzácných případech restart nefunguje podle očekávání. V tomto případě, abyste to vyloučili jako problém, budete chtít restartovat server. Je velmi možné, že platné konfigurace nejsou po restartu vidět. Nevím proč. Po restartu je však Apache nucen znovu ukládat konfigurační soubory do mezipaměti. Je to jako dostat větší kladivo. Někdy to stojí za vyzkoušení.
Souhlasím s uživatelem 'closetnoc', který odpověděl v [2015-Aug-2 00:24:36Z] v reakci na původní příspěvek, který psal "The 000-default.conf
web je univerzální pro jakýkoli požadavek, pro který server nemá konfigurační soubor."
A myslím si, že můžeme použít takový 'catch-all web' jako poslední možnost k ochraně a zvýšení celkové bezpečnosti.
To, co jsem se snažil udělat, je stále povolit web '000-default.conf
' aktivovat, ale udělejte jeho konfiguraci trochu jinak, než neustále zahazovat VŠECHNY požadavky BEZ odeslání odpovědi a poté okamžitě UZAVŘÍT SPOJENÍ pro veškerý zakázaný přístup, takže žadateli, který se o to pokouší, nic neodpoví/neodhalí.
Zde je můj '000-default.conf
', pro vaši informaci:
<VirtualHost *:80>
# ServerName whatsoever
ServerAdmin [email protected]
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/default_error.log
CustomLog ${APACHE_LOG_DIR}/default_access.log combined
<Location />
<RequireAny>
# Example for 'Block all':
# Require ip 0.0.0.0/32
Require all denied
# Example for 'White list':
# Require ip 172.217.24.37/32
</RequireAny>
</Location>
SecRuleEngine On
SecRule RESPONSE_STATUS "403" "phase:4,id:1,drop"
</VirtualHost>
Připomeňte si, abyste si nainstalovali 'ModSecurity
' tak, aby byly direktivy 'SecRuleEngine
' a 'SecRule
“ lze přijmout. Pokud potřebujete další pomoc a reference k tématu 'ModSecurity
', doporučujeme hledat na internetu.
Doufám, že výše uvedené pomůže!