Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Zabezpečení produkčního web serveru  (Přečteno 4013 krát)

urgo272

  • Aktivní člen
  • *
  • Příspěvků: 111
Zabezpečení produkčního web serveru
« kdy: 22 Září 2014, 09:21:59 »
Ahoj všem,

chci poprosit o pár rad ohledně produkčního web serveru co se zabezpečení týče. V tuto chvíli jsem udělal pár základních věcí :

/etc/php5/apache2/php.ini

display_errors = Off

expose_php = Off

disable_functions = shell_exec, exec, system, passthru, proc_close, proc_open, proc_get_status, proc_nice, proc_open, proc_terminate, shell_exec, dl, popen, pclose, chown, disk_free_space, disk_total_space, diskfreespace, fileinode, max_execution_time, set_time_limit, highlight_file, show_source, phpinfo, chgrp, symlink

allow_url_fopen = Off

allow_url_include = Off

Máte nějaké typy co je třeba upravit / vypnout dále ?

Díky moc



Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5057
    • Lomítkáři
Re:Zabezpečení produkčního web serveru
« Odpověď #1 kdy: 22 Září 2014, 09:41:26 »
Určitě bych ještě ošetřil /tmp na spuštění cizího kódu
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

urgo272

  • Aktivní člen
  • *
  • Příspěvků: 111
Re:Zabezpečení produkčního web serveru
« Odpověď #2 kdy: 22 Září 2014, 10:03:45 »
Určitě bych ještě ošetřil /tmp na spuštění cizího kódu

Ahoj, díky moc za typ, jen /tmp/ promiň za hlopou otázku, furt se učim, ale myslíš něco jako chmod 0666 /tmp/

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5057
    • Lomítkáři
Re:Zabezpečení produkčního web serveru
« Odpověď #3 kdy: 22 Září 2014, 10:22:42 »
No takhle úplně ne.

Jde o to, aby pokud někdo stáhne svůj kód do /tmp, aby se mu nepodařilo jej spustit.
Pokud uděláš jen 0666 na /tmp, už nebude tato maska na podadresáři. Úplně nejlepší je připojit /tmp jako particii bez práva spuštění.

Pokud už nemáš prostor, na hdd, kde particii vytvořit, udělej to přes mount obrazu.
Psal jsem o tom zde
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

urgo272

  • Aktivní člen
  • *
  • Příspěvků: 111
Re:Zabezpečení produkčního web serveru
« Odpověď #4 kdy: 22 Září 2014, 11:02:05 »
No takhle úplně ne.

Jde o to, aby pokud někdo stáhne svůj kód do /tmp, aby se mu nepodařilo jej spustit.
Pokud uděláš jen 0666 na /tmp, už nebude tato maska na podadresáři. Úplně nejlepší je připojit /tmp jako particii bez práva spuštění.

Pokud už nemáš prostor, na hdd, kde particii vytvořit, udělej to přes mount obrazu.
Psal jsem o tom zde

Díky moc za super návod ;-) jen jedna věc:

# rm -rf /tmp


Jak jsem odebral adresář /tmp, tak už ho nenamountuju...

mount: přípojný bod /tmp neexistuje


A když jsem se chtěl kouknut tak

Nelze vytvořit dočasný adresář /tmp/mc-root: Adresář nebo soubor neexistuje (2)
Dočasné soubory se nebudou vytvářet
Stiskněte libovolnou klávesu pro pokračování...

A stále nic...
« Poslední změna: 22 Září 2014, 11:49:47 od urgo272 »

jmp

  • Host
Re:Zabezpečení produkčního web serveru
« Odpověď #5 kdy: 22 Září 2014, 12:12:01 »
vytvořte /tmp a nastavte tato oprávnění: drwxrwxrwt

EDIT: smazat /tmp jako takové je chyba - chce to promazat jen jeho obsah...

urgo272

  • Aktivní člen
  • *
  • Příspěvků: 111
Re:Zabezpečení produkčního web serveru
« Odpověď #6 kdy: 22 Září 2014, 13:40:42 »
vytvořte /tmp a nastavte tato oprávnění: drwxrwxrwt

EDIT: smazat /tmp jako takové je chyba - chce to promazat jen jeho obsah...

Super díky za radu,

takže jsem to nakonec udělal takhle:

# dd if=/dev/zero of=/home/tmp.img bs=1024 count=1000000
# mke2fs /home/tmp.img
# echo "/home/tmp.img /tmp ext2 loop,noexec,nosuid,rw 0 0" >>/etc/fstab
# rm -rf /tmp
# mkdir /tmp
# chmod +t /tmp
# mount /tmp
# chmod 0777 /tmp

Doufam že jsem si tim nic nezprasil :-D, je to tak ok ?

jmp

  • Host
Re:Zabezpečení produkčního web serveru
« Odpověď #7 kdy: 22 Září 2014, 14:04:49 »
ještě sticky bit pro /tmp

ntz_reloaded

  • Lokaj
  • Závislák
  • ***
  • Příspěvků: 3735
  • skill :: ur home erly
Re:Zabezpečení produkčního web serveru
« Odpověď #8 kdy: 22 Září 2014, 14:06:35 »
ne, to je dost divoky .. nechapu co delas a jakej to ma smysl ..

mas proste udelat prazdnej adresar tmp a dat mu prava 1777 .. nemam ubu, ale predpokladam, ze v ubu to bude stejny:

Kód: [Vybrat]
# rpm -qf /tmp/
filesystem-13.1-3.1.2.x86_64

^^ ne, ze tam mate rpm, ale ze /tmp bude asi patrit nejakemu baliku
tikejte mi, taky Vam tikam ...
song of the day - openSUSE, openindiana, DuckDuckGo
The noise ain't noise anymore, who's to blame, WHO'S TO BLAME ??

jmp

  • Host
Re:Zabezpečení produkčního web serveru
« Odpověď #9 kdy: 22 Září 2014, 14:09:47 »
možná proto, že pokud to bude do /tmp extra mountované, tak je možné tomu fs dát noexec (pokud to jde i jinak na dílčí část filesystému, tak o tom nevím...)

EDIT: a koukám jestě nosuid
« Poslední změna: 22 Září 2014, 17:51:17 od jmp »

ntz_reloaded

  • Lokaj
  • Závislák
  • ***
  • Příspěvků: 3735
  • skill :: ur home erly
Re:Zabezpečení produkčního web serveru
« Odpověď #10 kdy: 22 Září 2014, 14:19:23 »
nevim co resite .. apache nepujde mimo svuj DocumentRoot a ServerRoot .. /tmp muzete nechat kompletne na pokoji .. neni potreba ho "molestit" ;)
tikejte mi, taky Vam tikam ...
song of the day - openSUSE, openindiana, DuckDuckGo
The noise ain't noise anymore, who's to blame, WHO'S TO BLAME ??

urgo272

  • Aktivní člen
  • *
  • Příspěvků: 111
Re:Zabezpečení produkčního web serveru
« Odpověď #11 kdy: 22 Září 2014, 14:30:06 »
možná proto, že pokud to bude do /tmp extra mountované, tak je možné tomu fs dát noexec (pokud to jde i jinak na dílčí část filesystému, tak o tom nevím...)

EDIT: a koukám jěstě nosuid

Ok, takže ještě přidam sticky bit, a mělo by to bejt ok ? Nebo ted jsem vážně nervozní z toho tempu jestli jsem to nedomršil :D failtoban, nějak nastavujete, nebo necháváte v default  ?

ntz_reloaded

  • Lokaj
  • Závislák
  • ***
  • Příspěvků: 3735
  • skill :: ur home erly
Re:Zabezpečení produkčního web serveru
« Odpověď #12 kdy: 22 Září 2014, 14:43:53 »
nevim co resite .. apache nepujde mimo svuj DocumentRoot a ServerRoot .. /tmp muzete nechat kompletne na pokoji .. neni potreba ho "molestit" ;)
znovu .. proc mucis /tmp kdyz je to uplne zbytecny ????

opakuji .. httpd bezi v takovem semi-chrootu v ServerRoot a nikam jinam sahat nebude ..
tikejte mi, taky Vam tikam ...
song of the day - openSUSE, openindiana, DuckDuckGo
The noise ain't noise anymore, who's to blame, WHO'S TO BLAME ??

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5057
    • Lomítkáři
Re:Zabezpečení produkčního web serveru
« Odpověď #13 kdy: 22 Září 2014, 15:43:55 »
nevim co resite .. apache nepujde mimo svuj DocumentRoot a ServerRoot .. /tmp muzete nechat kompletne na pokoji .. neni potreba ho "molestit" ;)
znovu .. proc mucis /tmp kdyz je to uplne zbytecny ????

opakuji .. httpd bezi v takovem semi-chrootu v ServerRoot a nikam jinam sahat nebude ..

Tak to se pleteš - do /tmp si php defaultně schovává uploadované soubory.
A bohužel že nebude mít +x /tmp neznamená, že to samé bude mít i adresář vytvořený v php ... si to zkus ;)
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

urgo272

  • Aktivní člen
  • *
  • Příspěvků: 111
Re:Zabezpečení produkčního web serveru
« Odpověď #14 kdy: 22 Září 2014, 17:03:04 »
nevim co resite .. apache nepujde mimo svuj DocumentRoot a ServerRoot .. /tmp muzete nechat kompletne na pokoji .. neni potreba ho "molestit" ;)
znovu .. proc mucis /tmp kdyz je to uplne zbytecny ????

opakuji .. httpd bezi v takovem semi-chrootu v ServerRoot a nikam jinam sahat nebude ..

No tak teda jak :-D je tenhle postup ok ? nebo je to k ničemu...

# dd if=/dev/zero of=/home/tmp.img bs=1024 count=1000000
# mke2fs /home/tmp.img
# echo "/home/tmp.img /tmp ext2 loop,noexec,nosuid,rw 0 0" >>/etc/fstab
# rm -rf /tmp
# mkdir /tmp
# chmod +t /tmp
# mount /tmp
# chmod 0777 /tmp

Tak to se pleteš - do /tmp si php defaultně schovává uploadované soubory.
A bohužel že nebude mít +x /tmp neznamená, že to samé bude mít i adresář vytvořený v php ... si to zkus ;)

Co jiný vychytávky, na co si dát pozor, co poladit na produkčnim serveru...
« Poslední změna: 22 Září 2014, 17:36:10 od urgo272 »

ntz_reloaded

  • Lokaj
  • Závislák
  • ***
  • Příspěvků: 3735
  • skill :: ur home erly
Re:Zabezpečení produkčního web serveru
« Odpověď #15 kdy: 22 Září 2014, 17:42:55 »
hmm .. zajimava poznamka ..

nicmene to co delate mi nepripada uplne standardni .. teda alespon nikde jsem to nevidel .. a pokud chces neco spustit z noexec filesystemu, tak to bude platit jen pro ten shell ..

Kód: [Vybrat]
# dd if=/dev/zero of=/root/fs bs=1M count=1 &>/dev/null

# losetup --find --show /root/fs
/dev/loop0


# mkfs.ext4 /dev/loop0 &>/dev/null


# mount -vv -o noexec /dev/loop0 /mnt/tmp/
mount: /dev/loop0 mounted on /mnt/tmp.


# echo -e 'echo ahoj' > /mnt/tmp/ahoj


# chmod +x /mnt/tmp/ahoj

# /mnt/tmp/ahoj
bash: /mnt/tmp/ahoj: Permission denied


# bash /mnt/tmp/ahoj
ahoj

Jako ten soubor muze bejt porad includnutej a kdyz ho zavolas z jine PWD, tak to spustit normalne jde, takze to ochrana je spis takova pseudo ..
tikejte mi, taky Vam tikam ...
song of the day - openSUSE, openindiana, DuckDuckGo
The noise ain't noise anymore, who's to blame, WHO'S TO BLAME ??

 

Provoz zaštiťuje spolek OpenAlt.