{{predmet|Úvod do UNIXu|Libor Forst|SWI095}}

Odkazy

*stránka přednášky *stránky cvičícich: Martin Beran Leo Galamboš Jan Chadima Tomáš Kalibera Miroslav Rudišin

Rozširující informace ke zkoušce

Při řešení zkouškových úloh se některé věci vyplatí znát podrobněji nežli byly probírané na přednáškach a cvičeních. Některé z nich naleznete níže. Nerozumíte-li něčemu, co tady není, přidejte to jako nový nadpis a někteří zkušenější to jistě rádi vysvětlí... ;-)

Formát e-mailové zprávy

*zpráva ve formátu unixového mailboxu začíná řádkem From adresa@odesilatele datum

*následuje zbytek hlavičky emailu, která má formát tag: hodnota **hodnota může být rozdělena na více řádcích, v tom případě je na začátku dalších řádků aspoň jeden bílý znak (mezera nebo tabulátor)

*hlavička obsahuje informace o doručení Received, jedinečný identifikátor zprávy Message-Id a další informace poskytnuté odesílatelem (From, To, Cc, Date, ...) **komentovaný popis některých hlaviček s přihlédnutím ke spamu je v dolní části článku o spamu na serveru Krypta

**je dobré si uvědomit, že jediný údaj, kterému lze v emailu věřit je IP adresa odesílajícího mailserveru zaznamenaná naším přijímajícím mailserverem. Ostatní údaje vám mohl podvrhnout odesílatel.Pokud nějakou adresu potřebujeme, můžeme vzít třeba tu z prvního řádku po From. Aby byl email důvěryhodný, musel by celou cestou putovat mezi mailservery, které si důvěřují a na začátku cesty být odeslán uživatelem, který prokázal svoji identitu. Což se však v současnosti vůbec nedělá a proto pro důvěryhodnou komunikaci potřebujeme emaily podepisovat...

From zaskodnik@matfyz.cz  Thu Jun  9 09:06:05 2005Return-Path: <zaskodnik@matfyz.cz>X-Original-To: honzik@ss1000.ms.mff.cuni.czDelivered-To: honzik@ss1000.ms.mff.cuni.czReceived: from localhost (localhost [127.0.0.1])        by ss1000.ms.mff.cuni.cz (Postfix) with ESMTP id E44F12C024        for <honzik@ss1000.ms.mff.cuni.cz>; Thu,  9 Jun 2005 09:06:04 +0200 (CEST)Received: from ss1000.ms.mff.cuni.cz ([127.0.0.1]) by localhost (ss1000 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 14106-02 for <honzik@ss1000.ms.mff.cuni.cz>; Thu,  9 Jun 2005 09:06:03 +0200 (CEST)Received: from u-pl20 (u-pl20.ms.mff.cuni.cz [195.113.21.150])        by ss1000.ms.mff.cuni.cz (Postfix) with ESMTP id DFEB52C021        for <honzik@ss1000.ms.mff.cuni.cz>; Thu,  9 Jun 2005 09:05:37 +0200 (CEST)From: anicka.dusicka@matfyz.skMessage-Id: <20050609070537.DFEB52C021@ss1000.ms.mff.cuni.cz>Date: Thu,  9 Jun 2005 09:05:37 +0200 (CEST)To: honzik@ss1000.ms.mff.cuni.czSubject: pranickoPreji Ti hezky den! :-)

Zpracovávaní příchozích emailů

Typickým úkolem býva registrace odpovědí nějaké ankety, automatické oznámení o nepřítomnosti adresáta počas jeho dovolené, vzdálené spouštění příkazů přes email, nebo komprese emailu pro zaslání textovky na mobilní telefon.

Hlavní myšlenka řešení spočíva v spuštění nějakého programu pro každý příchozí email. To lze snadno docílit pomocí souboru ~/.forward . Neexistuje-li, všechny příchozí emaily se (typicky) doručují na místo uvedené ve proměnné $MAIL. Vytvořením souboru ~/.forward říkame, že každý email se má doručit na místa uvedené na jednotlivých řádcích tohoto souboru.

Příklad:

/cesta/k/adresaru/soubor_postove_schrankyjina.emailova@adresa.com\vaslogin| /cesta/k/adresaru/se/skriptem/jmeno_skriptu parametre pro skript

*Třetí řádek ukladá emaily na standní místo podle $MAIL. *Čtvrý řádek spustí skript a na standardní vstup mu pošle obsah emailu (formát viď výše).

Poznámky:

  • skript se spouští práve jednou pro každý email, a běží s právami majitele schránky

  • není zaručeno, že nebude spuštěno více skriptů najednou

  • program může být binárka, anebo shell skript, ale musí byt spustitelný (chmod +x) a obsahovat hlavičku interpretru (napr: #!/bin/sh)

  • spouštení programů nefunguje, není správcem povoleno. Na MS ale z výukových účelů povoleno je... :-)

Co tu ještě schází?

...

Zadání zkouškových písemek

SEDCHECK (10.6.2005)

program, ktory sa spusta raz o polnoci a kontorluje "nebezpecia" v systeme, o ktorych potom posle spravcovi mail

kontroluje tieto 4 veci:

heslá

*kontroluje prazdne hesla uzivatelov (ulozene v /etc/passwd), s uid < 100, ktory niesu v /sec/passwd (fromat tohoto suboru sme si mohli zvolit...) *ak najde takehoto uzivatela nastavi mu heslo na "disable"

*a posle spravu (sprava sa posle iba jedna suhrna na konci, a nesiem byt prazdna)

práva adresárov *vo vsetkych domoskych adresaroch (okrem root-a (toho som si nevsinmol ), najst subory a adresare zacinajuce sa bodkou, (iba v prvej urovni.. nie rekurzivne... )

*najst take co:

#maju vlastika rovnakeho ako vlastnik domovskeho adresara a maju pravo zapisu nastavene inak ako iba pre vastnika, #*o takychto suboroch poslat report a zobrat pravo zapisu

#maju ineho vlastika ako vlastink HOME, v tom pripade poslat report a zmenit vlastnika...

hesla v ~/.netrc *v kazdom domovskom adresary existuje subor .netrc ktory obsahuje info o ftp serveroch..

*v nejakom takomto formate: machine menostroja

login nazovuzivatela passwd heslo

:pricom medzi tym mozu byt este nejake zvasty, a oddelovac nemusi byt novy riadok ale aj lubovolnuy pocet medzier, *ak v tomto subore najdeme server taky, ktory ma meno rozne od "anonymous" a ma nastavene heslo (t.j. passwd heslo sa v bolku pre danu machinu nachadza) poslat report a zobrat vsetky prava suboru..

nove set[ug]id subory

*prejst vsetky subory v systeme, okrem adresarov a symlinkou, take ze UID < 100 & ma nastaveny SetUID alebo GID < 100 & nastaveny SetGID porovnat so suborom /sec/setguid a poslat report o vsetkych takych novych suboroch, ktorym ale odoberieme SGID a SUID.