Jak je to s IP na serveru a obecné dotazy pro začátečníka

Založil kleinpetr, 26. 06. 2015, 10:50:57

Předchozí téma - Další téma

kleinpetr

Ahoj,

začal jsem nyní konfigurovat svůj první server s debianem a rád bych si dal dohromady základní funkce a jak to vlastně funguje.
Snažím se o web server, který už nějakým způsobem funguje, ale stále bych se chtěl dozvědět více a mít zase více znalostí.

Nainstaloval jsem apache, mysql, php, phpmyadmin, .. (takove ty zakladni veci)

a pote jsem nasel podle nejakych navodu jak zprovoznit virtualHosty a u domén změnit dns a už to jelo :)

Nicméně vůbec nevím co se děje na pozadí.

1) Například nevím jak je to s IP adresami, jestli ten server má pouze jednu ip adresu, tudíž všechny domény, které zde budu provozovat budou mít stejnou ip adresu nebo jestli se dají ještě nějak nastavovat nebo bůh ví co.

2) Při nastavovaní vHostů se někde zaobírali souborem /etc/hosts, k čemu tento soubor slouží ?

3) Jak bych měl postupovat při nainstalovaní mailserveru

4) Souvisí reverzní záznamy s hostname serveru ?

5) Řeší se nějak bezpečnost ? popřípadě jak.. Nainstaloval jsem nějaký Clamav antivir, ale vůbec nevím jestli se musí nějak nastavit, zapínat, atp

6) Na mém apache2 nemám vůbec soubor httpd.conf , to je celkem divné.. Většina nastavení je tedy v apache2.conf, ale i tak když budu chtít přidávat nějaké nastavení mohu soubor vytvořit ?

7) Když vytvářím nového uživatele, a nastavím mu příznak -s tedy shell co to vlastně znamená, jakou cestu k tomu mám přiřadit, někde píší bin/bash, nekde zase něco jiného.. k čemu to přesně slouží ?

8) Jaký je rozdíl mezi systémovou skupinou, tedy příznak -r, a normální skupinou uživatelů

Vím, že toho opravdu dost nevím, ale ikdyž třeba tuším jak to je, rád bych to věděl 100%, rád mám ve věcech jasno  a tím, že jsem teď začal úplně bez pomoci, tak mi každá rada pomůže, dotazy budou samozřejmě přibývat, tím jak se budu dostávat dál, ale předem děkuji každému kdo bude tak ochotný a podělí se o své znalosti :)

balhar.radek

Taky jsem zacatecnik, ale rad se podelim o sve zkusenosti jestli ti to pomuze, take pouzivam debian na svem raspberry pi 2 a jak rikas nainstaloval jsem LAMP (linux-apache-mysql-php) dale phpmyadmin. IP adresa serveru je jen jedna a to jednoduse zjistis ifconfig prikazem, zalezi proste jakou si nastavis nebo jakou ti prideli router, dale pokud tedy chces presmerovat domenu musis zjistit jakou mas verejnou IP a to jednoduse na strankach whatismyip a na routeru musis nastavit smerovano portu 80 na svou lokalni ip sveho stroje na kterem bezi server. Dale pak se ti vytvorila slozka (u me /var/www/) jako koren webu. Kde uz staci pridat index.php ktery se spusti pri nacteni stranky tveho serveru. dlouho sem lustil jak spustet prikazi pres web stranky jako root - pouzivat web na ovladani somacnosti a to jednoduse pridas usera www-data do /etc/suders jako ALL a NOPASSWD. takto muzes zpoustet z PHP system prikazi sudo. Vim ze toto neni zadne reseni ale tad se podelim se svyp pripadem a rad budu sledovat toto forum protoze jsem taktez zacinajici uzivatel serveru... zdar

Odesláno z mého SM-G900F pomocí Tapatalk


kleinpetr

Ahoj, díky za reakci a za tvé zkušenosti.

Já jsem nyní řešil nějaké zabezpečení phpmyadmina, protože mi vadilo, že jsem mohl na každé doméně zadat www.domain.cz/phpmyadmin a otevřel se phpmyadmin. Takže jsem to vyřešil takto:

1) v /etc/phpmyadmin/apache.conf jsem nastavil Directory /usr/share/phpmyadmin na Deny from All tudíž jsem zakázal přístup odevšaď

2) na serveru mam svuj osobni web www.myweb.cz takze ve slozce /etc/apache2/sites-available/myweb.cz.conf jsem pridal VirtualHosta na subdomenu phpmyadmin.myweb.cz a v nem opet slozku Directory /usr/share/phpmyadmin a nastavil jsem ji pristup pod heslem tudiz AuthType Basic a nasmeroval jsem AuthUserFile na /etc/phpmyadmin/htpasswd.setup

Takze ve finale se na phpmyadmina dostanu pouze z domeny phpmyadmin.myweb.cz a v tu chvily na me jeste vyskoci autorizacni obrazovka kde se musim zadat nick a heslo ktere jsem pridal do souboru htpasswd.setup :)

Nicméně se mi libi myslenka vytvoreni vlastniho prostredi pro spravu serveru :)) napriklad ze jen zadam vytvorit virtualhosta napisu domenu a vytvori se mi potrebne soubory :) jen se obavam, ze tvoje reseni ma naprosto nulovou bezpecnost. Rad bych toto reseni postavil na bezpecnejsi urovni. Az dam neco dohromady, urcite zase napisu.

Jeste jednou diky vsem kdo se podili o sve dovednosti v teto diskuzi.

balhar.radek

Bezpecnost mam jednoduse resenou a to takto - po natukani moji domeny se vypise stranka index.php s prihlasenim tato stranka funguje jednoduse a to tak ze zadam jmeno a heslo do obyc HTML formulare, ten odeslu pomoci tlacitka submit ("prihlasit") tyto promenne password a username zpracuje server a to tak ze porovna heslo a jmeno s databazi a pokud je toto v poradku zpusti se dalsi stranka.php kde teprve nastavuji stroj popripade primo akcni cleny pres volani systemovych prikazu...de o to ze stranka.pho neni verejna tudis ji nikdo nenajde a i kdyby nekdo se trefil coz je nemozne a napsal by www.mujweb.cz/stranka.php tak mam v teto strance pripraven kod php ktery musi prijmout data z index.php jinak se presmeruje zase na index.php pro zadani prihlasovacich udaju. Takze jedina moznost je odposlech mezi prohluzecem a serverem ale takto se da zjistit login na vsech strankach a pocet kombinaci k prihlaseni aby sedel username a password nemusim zminovat. Takze zabezpeceni na urovni a jednoduche

Odesláno z mého SM-G900F pomocí Tapatalk


kleinpetr

Ano, neřeším teď bezpečnost samotné php stránky, to se dá zabezpečit nekonečně mnoho způsobama, já bych volil například přístup jen z jedné IP.. nicméně jsem úplně nepochopil jak tedy povolit spouštění příkazů na server. Jak jsi psal pridat toho usera www-data a dat mu all a nopasswd takze je mozne spustit prikazovy skript odkudkoliv a server to proste prijme ? nebo se tam jeste resi nejaka autorizace ?

da se NOPASSWD nahradit heslem ?
a dalsi vec je tedy, kdyz mluvis o prihlaseni na strance index.php tak to je ciste jen tvoje varianta zabezpeceni nebo ty prihlasovaci udaje pak posilas primo serveru ? Díky :)


balhar.radek

1. ano pristup jen z jedne IP je kazdopadne vhodny, jenze ja se chci prihlasovat z vice mist, protoze mi RasPi ovlada teplotu, zavlazovani, okenni zaluzie, natoceni termostatu radiatoru a svetla v domacnosti - kazdopadne v PHP kodu ziskas IP adresu klienta, ktery prohlizi stranku a to z promenne $_SERVER['REMOTE_ADDR']
Ja ted resim ulozeni prihlaseni do databaze pro dalsi prihlaseni bez zadavani hesla a jmeno a to tak, ze se mi prave ulozi IP klienta a udaje konkretniho OS a WEBprohlizece klienta a toto mam z promenne $_SERVER['HTTP_USER_AGENT']
dalsi uzitecne promenne najdes tady http://jecas.cz/server

2. co se tyka pristupu z PHP kodu ke kompletnim prikazum (tedy i sudo (root)) je proveden nasledovne > cokoli dela PHP kod na serveru je autorizovan jako uzivatel www-data. Tim padem musis pridat uzivatele www-data do /etc/sudoers > otevri si tento soubor v text editoru s root pravama a pripis na konec  toto www-data ALL=(ALL) NOPASSWD: ALL nebo se prihlas jako root a primo v terminalu zadej echo 'www-data ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
Co se tyka bezpecnosti, nemusis se bat ze ti nekdo muze ovladat stroj pomoci primich prikazu > je to nemozne, stranky jen zobrazuji obsah co server vygeneruje > nic vic....takze co si naprogramujes do PHP to se ti provede vic nic napr.> system('sudo mkdir /home/user/'); ti proste vytvori slozku jako vlastnik root s root pravem....atd...nebo ja rovnou pouzivam `sudo mkdir /home/user/`; ty zkosene apostrofi ti zajisti provedeni bashem, samozrejme muzes spoustet svoje skripty, ale musis je zpoustet s absolutni cestou s root pravem a musi mit chmod x. Jinak samozrejme vystup z prikazu dostanes takto $aktualniAddr=`ls`; proste jednoduse. :) stim NOPASSWD sem nijak dal nepracoval (kdyz ho tam nedas neprovedou se ti sudo prikazi z PHP) kdyz ho tam das je to bezpecne protoze se ti provede jen to co si naprogramujes sam.....jako samozrejme vse na svete vytvoril clovek a taky vse na svete je rozlousknutelne, ale hooorko tezkooo.

3. prihlasovaci udaje zadam do klasickeho HTML formulare a odesli jako POST serveru, ten je zpracuje a pokud ok otevre se mi nastavovani.php jinak se mi hodi zase index.php s prihlasenim, a vtip je v tom ze pokud otevru primo www.mujweb.cz/nastavovani.php promenna z postu je prazdna tudis se mi zase odkaze na index.php pre PHP header(location: /);