Spouštění a konfigurace služeb
Přednáška pro týdenní praktikum UNIXu 2010
Služby ●
Též zvané servery – – – – – – – –
WWW (Apache) Poštovní server (Postfix, Sendmail) FTP Databázový (MySQL, PostgreSQL) SSH DNS DHCP X server (XDM, KDM, GDM)
Spuštění a vypnutí ● ● ●
●
●
Spouští se automaticky při startu nebo ručně Vypínají se ručně nebo při vypnutí počítače Pozor při pádu počítače nemusí naběhnout všechny korektně – nutná kontrola Umístění spouštěcích souborů je v adresáři /etc/init.d (anebo /etc/rc.d) Automatické spuštění podle runlevelu –
–
Který se spouští zjistíme a změníme v souboru /etc/inittab (pozor Ubuntu funguje zcela jinak) Jednotlivé runlevely v /etc/rc2.d (nebo podobně)
Ruční obsluha ● ● ● ● ●
Př. Apache 2 Spuštění: /etc/init.d/apache2 start Zastavení: /etc/init.d/apache2 stop Restart: /etc/init.d/apache2 restart Poznámky: – – – –
Další možné příkazy – reload, force-reload, status... V SUSE se používá rcapache2 start (apod.) V Gentoo se používají příkazy rc-status a rcupdate V Arch Linuxu je vše v souboru /etc/rc.conf
WWW server ● ● ●
●
Apache, Apache 2 Pro Linux existují i jiné lighttpd nebo nginx Apache byl vyvinut v NCSA (National Center for Supercomputing Aplications) na univerzitě v Illinois. Hlavní autor Rob Mc Cool Později kompletně přepsán nezávislou komunitou, za pomoci záplat zasílaných mailovou konferencí. Hlavní správci vývoje Brian Behlendorf, Roy Fielding a Cliff Skolnick
Autoři Apache (Apache 2) Robert McCool (1973)
Brian Behlendorf (1973)
Roy T. Fielding (1965)
Konfigurace Apache ●
● ●
●
Vyčerpávající dokumentace na domovských stránkách Apache – zde Česky třeba – zde Logování je v souboru /var/log/apache2 Je nutné povolit protokoly HTTP popřípadně HTTPS
PHP ● ● ●
●
●
Skriptovací jazyk Skoro nutnost instalace V některých distribucích je nutné jej povolit (skoro jistě bude po instalaci automaticky povolen) Základní konfigurační soubor /etc/php.ini anebo /etc/php5/apache2/php.ini (je celkem dobře okomentovaný) Dokumentace zde (pozor verze nejsou zpětně kompatibilní – nepoužívat starou dokumentaci)
PHP ●
Tvůrce Rasmus Lerdorf – –
narozen v Grónsku, dnes žije v Kanadě PHP vymyslel kolem roku 1994
Databáze SQL ●
MySQL – – – –
●
informace zde nebo zde pro nekomerční, domácí a vnitropodnikové použití zdarma pro komerční je v některých případech nutné mít licenci Doporučuji hlavně začátečníkům nainstalovat program PHPMyAdmin
PostgreSQL – –
informace zde použití zdarma
LAMP ●
● ●
Ustálený název pro server běžící na Linuxu a používající Apache, MySQL a PHP Variace LAMR (namísto PHP Ruby) WAMP
FTP ● ● ●
Dnes se již nedoporučuje používat Lepší je ftp přes SSH (scp, sftp) Seznam FTP serverů zde
DHCP ● ●
●
● ● ●
DHCP Dynamic Host Control Protocol Systém navržený pro automatické přidělování TCP/IP parametrů klientům. Je možné přidělovat i adresy dle ethernetových adres (MAC) a to případně i napevno. Konfigurace v /etc/dhcpd.conf Musí běžet program dhcpd Konfigurace popsána například zde
DNS ● ● ● ●
● ●
DNS Domain Name (Server|System|Service) DNS server poskytuje internetové adresy počítačů Převádí doménová jména na IP adresy Př. student.prf.jcu.cz -> 160.217.211.211 V Linuxu je to obvykle program bind Nejčastěji používané adresy je možné uvést i v souboru /etc/hosts
Příklad /etc/hosts 127.0.0.1 localhost 127.0.1.1 muj_server 160.217.211.211 student.prf.jcu.cz student 213.29.7.27 www.centrum.cz centrum
Poštovní server ●
Programy pro obsluhu pošty (mailery) – – –
●
Nutno řešit další problémy – –
●
Sendmail Postfix Exim Spam – Spamassassin Viry – ClamAV (Classic Mail Antivirus)
O vlastní doručení do schránek se starají jiné programy – –
Dovecot Procmail
Sendmail ●
●
●
Napsal Eric Allman (1955 USA) kolem roku 1980, původně pro BSD Obtížně konfigurovatelný a starší verze mají problémy s bezpečností Monolitický
Postfix ●
● ●
Napsal Wietse Zweitze Venema (1951 NL) kolem roku 1998 Vývoj podporován firmou IBM Modulární a dobře konfigurovatelný
Vytváření mail serveru ●
Problém – – – –
Skuteční uživatelé Virtuální uživatelé Viry, červy Nastavení spam filtru ●
–
Povolení protokolů ● ● ●
– ●
možno řešit outsourcingem SMTP, SMTPS IMAP, IMAPS POP3, POP3S
Šifrované spojení TLS (neumí Outlook), SSL
Zde je velmi pěkný návod
LDAP ●
● ● ● ● ●
●
● ●
Jiný systém pro přebírání hesel a informací o uživatelích LDAP = Lightweight Directory Access Protocol Stromový databázový systém Mezi různými operačními systémy Používán i na naší Univerzitě Je více verzí LDAP, nejvíce se používá volně šiřitelný systém openldap Každý záznam je jednoznačně pojmenován – má své DN (Distinguished Name)
Nastavení v /etc/ldap Návod třeba zde
LDAP ●
Příklad struktury
Univerzita | Prirodovedecka_fakulta | | Ucitele | | | | | Pech | | | Jmeno | | | Heslo | | Prokysek | Studenti Pedagogicka_fakulta
XDMCP ●
●
● ●
●
●
XDMCP = X Display Manager Control Protocol Umožňuje připojit se z klientských počítačů k serveru v grafickém režimu Uživatel má pocit jako by seděl u serveru Klienti mohou být slabší počítače – aplikace takto běží na serveru U klientů rozhoduje pouze kvalita síťové karty, grafické karty a velikost paměti Klienti mohou být bezdiskové stanice
XDMCP - server ●
●
●
●
Musí být XDMCP povoleno – obvykle se ale zakazuje přihlášení roota přes XDMCP Používáme li na serveru xdm – pak povolíme v /etc/X11/xdm/xdm Používáme-li kdm – pak pomocí grafického nastavení anebo v /opt/kde/share/config/kdm/kdmrc (pozor může to být i jinde – je nutné najít soubor kdmrc) Používáme-li gdm – pak opět v grafickém nastavení anebo v /etc/X11/gdm/gdm.conf
XDMCP - klient ●
Z příkazové řádky (nesmí běžet X server) se přihlásíme:
X –query 192.168.0.1 ●
Anebo nastavíme přihlášení při startu systému přímo v souboru /etc/inittab – dopíšeme na konec
# Run xdm in runlevel 5 x:5:respawn:/usr/bin/X11/X -query 192.168.0.1
XDMCP nevýhody ● ● ● ●
●
Zatěžuje to síť Nutné mít opravdu výkonný server Nutná rychlá síť Nelze takto přenášet zvuk – je ale možné pouštět hudbu na lokálních počítač v textovém módu Všechna CD, USB disky a diskety je nutné vkládat do serveru
XDMCP výhody ● ●
●
Jednoduchost Nízké hardwarové nároky na klienty – možnost nákupu levných vyřazených počítačů – vhodné pro školy Bezpečnost – vše se nastaví pouze na serveru
DHCP ● ●
●
● ● ●
DHCP Dynamic Host Control Protocol Systém navržený pro automatické přidělování TCP/IP parametrů klientům. Je možné přidělovat i adresy dle ethernetových adres (MAC) a to případně i napevno. Konfigurace v /etc/dhcpd.conf Musí běžet program dhcpd Je třeba nastavit i klienty (nějaký balík dhclient). Je třeba nastavit, které parametry si bude klient načítat (pozor na DNS u ADSL)
SSH
Co je SSH ● ●
●
SSH = Security Shell Vytváří transparentně šifrovaný komunikační kanál mezi dvěma místy v síti. Existují dvě verze – –
SSH – má i komerční verzi, není open OpenSSH – častější, součástí všech běžných linuxových distribucí
Spuštění SSH ●
SSH je nutné spustit jako daemon – – – –
●
●
/etc/init.d/ssh start (Debian, Ubuntu) /etc/init.d/sshd start (Gentoo) /etc/rc.d/sshd start (Arch) rcsshd start (SUSE)
Je třeba nastavit konfiguraci v /etc/ssh/sshd_config Obvykle bývá zakázáno vzdálené přihlášení roota – doporučuji ponechat
Co SSH umí ● ● ●
●
vzdálené přihlášení přenos souborů – sftp, scp, fish spouštění příkazů na vzdáleném počítači (i v grafickém režimu) směrování portů – zabezpečení šifrovaného přenosu
Vzdálené přihlášení ● ●
●
ssh
[email protected] Pokud se lokální a vzdálený uživatel jmenují stejně není jej třeba uvádět – platí i pro všechny následující příkazy Při prvním přihlášení k danému serveru se nás ptá, zda to myslíme vážně a ověří si se vzdáleným počítačem vzájemně identitu
Použití klíčů ●
● ● ●
● ● ●
Pohodlnější přístup – heslo zadáváme jen jednou Klíč veřejný (public) a osobní (private) Je dobré je šifrovat (ale není to povinné) šifruje se metodou DSA, RSA1 (nedoporučuje se) a RSA2 Vytvoření v Linuxu: ssh-keygen -t typ (typ = dsa, rsa1 a rsa) Např: ssh-keygen –t dsa
Použití klíčů ●
● ●
● ● ● ●
Ve většině literatury se doporučuje použít DSA Pod Windows má generátor klíčů PuTTY Při vytváření jsme dotázáni na heslo – není povinné, ale doporučuje se nastavit nějaké velmi bezpečné heslo. Klíče jsou uloženy v adresáři ~/.ssh/ Soubory id_dsa.pub a id_dsa Na vzdáleném počítači jsou v souboru ~/.ssh/authorized_keys
Použití klíčů ● ●
●
Zkopírování klíče na vzdálený počítač ssh-copy-id -i ~/.ssh/id_dsa.pub
[email protected] Nyní je nutné zajistit, aby na lokálním počítači byl klíč brán v úvahu – –
● ●
V Linuxu spuštěním programu ssh-add Ve Windows spuštěním programu PageAnt z Putty (umí naimportovat klíč vytvořený v Linuxu)
Budeme dotázáni na heslo klíče Nyní se ale již můžeme přihlašovat ke vzdáleným počítačům bez hesla
Přenosy souborů ●
sftp – stejné ovládání jakou u ftp –
●
scp – jako u cp – – –
●
sftp uzivatel@pocitac scp uzivatel@pocitac:/cesta/soubor . scp dopis.txt uzivatel@pocitac:soubor.txt scp uzivatel@pocitac:*.jpg .
V KDE můžeme v programu konqueror použít protokol fish –
spustíme konqueror a zadáme do adresního řádku cestu jako fish://uzivatel@pocitac
Spouštění příkazů na vzdálených počítačích ● ● ● ● ●
ssh uzivatel@pocitac prikaz Například ssh
[email protected] uptime Provede se příkaz a spojení se ukončí Příkaz i jeho výstup jsou šifrovány
X Window příkazy přes SSH ● ●
●
●
Vzdálený počítač to musí podporovat Na vzdáleném počítači musí běžet XServer a my musíme být také v grafickém režimu Nutná úprava souboru (na vzdáleném počítači): /etc/ssh/sshd_config Nutné odkomentovat anebo dopsat tyto dva příkazy: X11Forwarding yes X11DisplayOffset 10
●
Nezapomeňte restartovat ssh
X Window příkazy přes SSH ● ● ● ●
Nyní se přihlásíme s přepínačem -X ssh -X uzivatel@pocitac Nyní již spustíme potřebný příkaz xclock &
SSH problémy ●
Hlásí, že došlo ke změně klíče. Buď se přihlašujeme k nesprávnému (podstrčenému) serveru nebo došlo k přeinstalaci –
Odebereme klíč: ● ●
●
ssh-keygen -R student ssh-keygen -R 160.217.211.211
„Could not open a connection to your authentication agent.“ –
Pomůže příkaz: ●
exec ssh-agent bash
Firewally a iptables
Firewall ●
síťové zařízení, které slouží k řízení a zabezpečování síťového provozu mezi sítěmi s různou úrovní důvěryhodnosti a/nebo zabezpečení.
Druhy firewallu ●
Podle konstrukce – –
●
Softwarové Hardwarové
Podle činnosti – – – –
Paketové filtry Aplikační brány Stavové paketové filtry Stavové paketové filtry s kontrolou paketů a IDS (Intrusion Detection Systems – systémy pro detekci útoků)
Demilitarizovaná zóna ●
Demilitarizovaná zóna (DMZ) leží mezi hraniční sítí a interní sítí a je oddělena firewally na obou stranách.
Iptables ●
● ● ● ●
Linuxový nebo UNIXový nástroj pro práci se síťovou komunikací Musí být podporován v jádře Umožňuje stavět firewally Kontrola paketů – adresy, protokoly … Paket který vyhoví jedné podmínce už není dále kontrolován, ale je propuštěn či zahozen
Ukázka firewallu ● ●
●
●
Napsaného pomocí iptables Tento skript je uložen v /etc/init.d a je nastaveno jeho automatické spuštění při startu Soubor blacklist.txt – seznam IP adres ze kterých je zakázán jakýkoliv přístup Soubor whitelist.txt – seznam adres ze kterých je povoleno vše
Ukázka firewallu #!/bin/sh # Firewall WHITELIST=/etc/firewall/whitelist.txt BLACKLIST=/etc/firewall/blacklist.txt ALLOWED="22 80" #Odstranění stávajících pravidel iptables -F iptables -t nat -F
Ukázka firewallu #Povoleni vseho z /etc/firewall/whitelist.txt for x in `grep -v ^# $WHITELIST | awk '{print $1}'`; do echo "Povoluji $x..." iptables -A INPUT -t filter -s $x -j ACCEPT done #Zakazat /etc/firewall/blacklist.txt for x in `grep -v ^# $BLACKLIST | awk '{print $1}'`; do echo "Blokuji $x..." iptables -A INPUT -t filter -s $x -j DROP done
Ukázka firewallu #Ktere porty se povoli tem co nejsou v blacklistu for port in $ALLOWED; do echo "Povoluji port $port..." iptables -A INPUT -t filter -p tcp --dport $port -j ACCEPT done #A vse ostatni zahodit iptables -A INPUT -p tcp --syn -j DROP
Další možnosti iptables # Vytvoreni retezu syn-flood pro detekci utoku s odeprenim sluzeb iptables -t nat -N syn-flood # Omezeni 12 novych spojeni za sekundu (po zjisteni narazu 24 za sek.) iptables -t nat -A syn-flood -m limit --limit 12/s --limit-burst 24 -j RETURN iptables -t nat -A syn-flood -j DROP
Další možnosti iptables # Kontrola utoku DoS s odeprenim sluzeb iptables -t nat -A PREROUTING -i eth0 -d 160.217.96.179 -p tcp --syn -j syn-flood iptables -t nat -A PREROUTING -i eth0 -d 160.217.96.178 -p tcp --syn -j syn-flood #Zahazovani paketu TCP "Vanocni stromecek" iptables -t nat -A PREROUTING -p tcp --tcp-flags ALL ALL -j DROP iptables -t nat -A PREROUTING -p tcp --tcp-flags ALL NONE -j DROP
Windows a Linux
Vztah Windows a Linuxu ●
Převod souborů – –
●
Konverze Diakritika
Připojení disků – –
Aktuální počítač Vzdálený počítač
Konverze souborů ●
MS Office vs. OpenOffice.org – problémy – – – –
●
●
●
Kódování Makra Obrázky Vzorce
Celkem bez problémů OpenOffice 2.0 a Office 2000 OpenOffice umí pracovat s formáty souborů MS Office, naopak to není možné Při pochybnostech převést přes formát rtf.
Konverze textových souborů ●
Windows a Linux používají jiné ukončení řádků – pro vzájemnou konverzi je možno použít v Linuxu programy dos2unix a unix2dos –
●
Pro převod kódování je v linuxu program cstocs – – –
●
Př: unix2dos soubor.txt
Př: cstocs stary.txt 1250 il2 >> novy.txt 1250 a il2 jsou kódování (Windows 1250, iso-8859-2) Další možné kódování asci, il1, kam, mac, utf8 …
Je nutné nainstalovat balíky tofrodos a cstocs
Disk z Windows na Linux v aktuálním počítači ●
Disk ve formátu FAT Lze připojit zcela bez problémů – Např: mount /dev/hda1 /mnt/C -t vfat Proto se fat používá pro výměnná zařízení (flash, floppy) – není problém s připojením ve Windows i v Linuxu Často se používá jeden oddíl ve formátu FAT FAT má omezení – nemožnost nastavení práv, maximální velikost Připojení je pro čtení i zápis – –
– – –
Disk z Windows na Linux v aktuálním počítači ●
Disk ve formátu NTFS –
Např: ●
–
mount /dev/hda2 /mnt/C -t ntfs-3g
Pozor na rozhozená práva při kopírování z NTFS do Linuxu – soubory mají nastavená práva na spuštění a nemají právo na zápis ani pro vlastníka Zápis do /etc/fstab
– /dev/sda1 /mnt/windows ntfs-3g defaults,umask=022 0 0
Disk z Linuxu na Windows v aktuálním počítači ●
Disk ve formátu ext2, ext3 – – –
●
Lze připojit pomocí programu Total Commander Musí se doinstalovat plugin ext2 Pouze pro čtení
Jiné formáty (ReiserFS, XFS, JFS …) – –
Nelze připojit Z toho důvodu doporučuji alespoň jeden oddíl v Linuxu mít jako ext3
CD disky ●
● ● ●
Musí obsahovat rozšíření pro Windows i Linux Pro Windows se jmenuje Joliet Pro Linux RockRidge Je třeba si projít nastavení ve vypalovacím programu
Diskety z Windows ● ●
● ●
Balík mtool Pro práci s disketami a přepisovatelnými výměnnými disky (ZIP) ve formátu FAT pod Linuxem Příkazy – mcopy, mdel, mformat … Manuál je zde: http://mtools.linux.lu/mtools.html
Připojování disků ze vzdálených počítačů ●
●
●
V obou případech je nutné mít nainstalován program samba (balík samba) Jedná se o program pracující s protokolem SMB (Server Message Block) Pro připojení Windows z Linuxu slouží Samba Client (balíky smbclient a smbfs)
Připojování vzdáleného disku z Windows do Linuxu ●
Zjištění možných disků pomocí programu smbclient –
●
Vlastní připojení pomocí smbmount – ten využívá program smbmnt –
● ●
Např.: smbclient -L ki1.pf.jcu.cz
smbmount //ki1/Vyuka /home/vyuka -o username=user,password=heslo
Odpojení pomocí smbumount Příkazy smbmnt a smbumount (obvykle v /usr/bin) musí mít nastaven suid bit (např. pomocí mc). Pozor smbmount naopak nesmí
Připojení disků z Linuxu do Windows ●
Musí být spuštěny démoni smbd a nmbd – – – –
●
●
/etc/init.d/smbd start /etc/init.d/nmbd start V Gentoo stačí /etc/init.d/samba start Je nutné zajistit jejich spuštění při startu počítače
Základní konfigurační soubor /etc/samba/smb.conf Seznam uživatelů pro nastavení práv /etc/samba/smbusers –
Musí existovat v /etc/passwd
Programy samby ●
●
●
smbpasswd – pro nastavení hesel uživatelů v /etc/samba/smbusers testparm – test syntaktické správnosti /etc/samba/smb.conf. Doporučuje se spustit pro každé změně testprns – test připojitelnosti síťových tiskáren pomocí samby
Úprava souboru smb.conf ● ●
●
●
Nejprve si udělejte zálohu Po každé změně proveďte kontrolu syntaxe pomocí programu testparm Pro projevení změn v okolí je třeba restartovat smbd a nmbd. Nejlépe zastavit a znovu spustit. Na pořadí programů nezáleží, doporučuji oba nejprve zastavit a poté oba znovu spustit Pozor může trvat i několik minut než si počítače v síti všimnou změny (nového síťového disku)
Úprava souboru smb.conf ●
Má sekce – – –
●
[global] – společné nastavení [homes] – název síťového disku [printers] – popis sdílení tiskáren
Komentáře – buď pomoci #, ale mají být pomocí středníků –
; read only ok
Ukázka smb.conf [global] workgroup = DM1 netbios name = Pepa server string = Samba na 160.217.211.211 encrypt passwords = yes security = share read only = no guest only = yes [homes] comment = Home Directories path = /home/sdileny guest ok = yes
SWAT ● ●
●
●
Konfigurační nástroj přes web Musí být nainstalovány balíky samba, swat a xinetd Je třeba zkontrolovat, zda je v souboru /etc/services řádek s swat a zkontrolovat /etc/xinetd/swat Poté v libovolném prohlížeči zadat http://localhost:901/ Je vyžadováno heslo roota anebo uživatele s administrátorským oprávněním.
NFS
NFS ●
● ● ●
● ●
Slouží pro sdílení souborů a adresářů mezi dvěma počítači s UNIXem NFS = Network File systém Existují i jiné systémy, např. Coda FS NFS není příliš bezpečný systém, ale je běžně používaný a rozšířený. Musí mít podporu v jádře Na serveru musí běžet démon nfsd, portmap (nfslock, nfs-server...)
Nastavení NFS – server ●
●
Všechno nastavení je v souboru /etc/exports Struktura je:
/adresar seznam pocitacu(parametry) ●
Příklad:
/mnt/disk1 192.168.0.3(ro), 192.168.0.5 /mnt/disk2 160.217.211.0/255.255.255.0
Nastavení NFS – klient ●
Připojení disku – musíme mít práva na připojení na serveru v /etc/exports
mount server:/adresar /kam ●
Příklad (může pouze root)
mount 192.168.0.1:/mnt/disk1 /home/sdileny ●
Lze zapsat zápis přímo do /etc/fstab
192.168.0.1:/mnt/disk1
/home/sdileny
nfs defaults,users 0 0
NFS – rizika ●
● ●
●
Uživatel s UID 100 má na serveru UID 65535 – 100 = 65435. (Rozsah_UID – UID) – říká se tomu squashování Stejně i pro GID (skupiny) Lze nastavit konkrétní UID na které se budou všichni přihlašovat – vytvoření public adresářů Pro roota je tohle implicitně vypnuté. Povolit přístup roota lze parametrem root_no_squash v /etc/exports. Pak ale má root přístup do všech adresářů – což může být bezpečnostní riziko
NFS rizika ●
●
●
Není li dostupný server a je-li uveden přípojný bod v /etc/fstab klient při startu může delší dobu čekat na server Pokud za běhu je odpojen server, a klient současně aktivně používá sdílený adresář (např je sdílený /home), klient zamrzne. Po opětovné zprovoznění serveru klient opět běží. Nelze jednoznačně říci co se stane s právě otevřenými soubory. Maximální velikost souboru v NFS je 2 GB! (mělo by to řešit NFS3)
NFS – parametry /etc/exports ● ● ●
●
●
ro – pouze pro čtení rw – čtení i zápis noacces – zákaz přístupu do konkrétního adresáře no_root_squash – root bude jako root i na sdíleném svazku squash_uids=seznam (seznam oddělený čárkami – seznam UID uživatelů se zakázaným přístupem
Konec
Děkuji za pozornost