SSH protokol, glavna aplikacija i razlika od Telneta. Secure SSH Networking Protocol, Basic

SSH (Sigurna školjka- Zaštićena školjka) -- ovo je mrežni protokol obezbeđujući sigurnu autentifikaciju, konekciju i siguran prenos podataka između mrežnih hostova, šifrovanjem saobraćaja koji prolazi kroz njega, uz moguću kompresiju podataka. Još jedna važna funkcionalna karakteristika, je mogućnost kreiranja sigurnih, šifriranih tunela za siguran prijenos preko nesigurnog okruženja (na primjer, Interneta), drugih mrežnih protokola, kao i sa mogućnošću komprimiranja prometa. Osim toga, protokol SSH odlično radi s prosljeđivanjem (prosljeđivanje, prosljeđivanje) portova jedne mašine na portove druge, uključujući prosljeđivanje udaljenih klijenata XWindow... Sada protokol SSH, je standard i široko se koristi, na primjer, za serverske sisteme, odnosno izvršavanje raznih naredbi i manipulacija u ljusci servera putem sigurne veze, kopiranje datoteka preko mreže, kao što su sigurnosne kopije podataka.

Protokol SSH, postoji u dvije verzije, komercijalna verzija koju je razvio SSH inc, i besplatno, otvorenog koda, OpenSSH koji se uglavnom koristi na većini serverskih platformi. Implementacija OpenSSH, dostupan je u bilo kojem operativnom sistemu Unix porodice, iu većini njih, SSH server i SSH kupci su standardni uslužni programi... Sve dole napisano će se odnositi OpenSSH i FreeBSD operativni sistem. Postoje dvije verzije protokola SSH nisu kompatibilni jedno s drugim. Prva implementacija protokola SSH, SSH - 1, razvijen je 1995. godine. druga verzija, SSH - 2, objavljen 1996. 2006. godine protokol SSH usvojen od strane IETF-a kao Internet standard. Sada je to druga verzija protokola koja se široko koristi. SSH jer, prvo, protokol SSH verzija 1, patila je od ozbiljnih ranjivosti, drugo, verzija 2 koristi moćnije algoritme šifriranja, osim toga, podržava mogućnost otkrivanja namjernog oštećenja podataka. Algoritmi šifriranja:

  • SSH protokol verzija 1 DES, 3DES, blowfish
  • SSH protokol verzija 2 AES-128, AES-192, AES-256, blowfish, CAST-128, ArcFour
Funkcija digestije:
  • SSH protokol verzija 1 br
  • SSH protokol verzija 2 HMAC-MD5, HMAC-SHA-1, HMAC-RIPEMD
Kao što vidite, razlika je veoma velika, pa i protokol SSH verzije 1 , sada općenito, striktno se ne preporučuje za korištenje bilo gdje.

SSH metode provjere autentičnosti, OpenSSH softverski paket

Sigurnost protokola SSH obezbeđuju sledeća softverska rešenja:
  • Šifriranje cijelog saobraćaja koji prolazi SSH veza izvedena prema jednom od mogućih algoritama odabranih tokom pregovora strana u komunikacijskoj sesiji. Šifriranje prometa veze sprječava njegovo presretanje i korištenje u zlonamjerne svrhe. Odabirom različitih algoritama šifriranja, sistem postaje vrlo fleksibilan, dozvoljavajući, na primjer, da ne koristi algoritme u kojima su pronađene ranjivosti ili potencijalne sigurnosne prijetnje, ili da koristi samo one algoritme koje podržava svaka od strana;
  • Autentifikacija SSH server se uvek izvodi, za bilo koju vezu koja ne dozvoljava zamenu saobraćaja ili samog servera;
  • Autentifikacija SSH može doći do klijenta Različiti putevi, što, s jedne strane, čini sam proces autentifikacije sigurnijim, s druge strane čini sistem još fleksibilnijim, što olakšava rad s njim;
  • Kontrola integriteta mrežnih paketa, omogućava praćenje nezakonitih promjena u prometu veze, ako se ta činjenica otkrije, veza se odmah prekida;
  • Privremeni parametri provjere autentičnosti sprječavaju korištenje presretnutih i, nakon nekog vremena, dešifriranih podataka o vezi.
Protokol SSH podržava dosta različitih metoda provjere autentičnosti i autorizacije za udaljene klijente na SSH server, evo nekih od njih:
  • Zasnovan na GSSAPI autentifikaciju
  • Host-based autentikacija;
  • Autentifikacija korisnika pomoću javnog ključa;
  • Provjera autentičnosti izazov-odgovor ( izazov-odgovor);
  • I konačno, uobičajena autentifikacija korisnika, korištenjem lozinke;
Metode autentifikacije se koriste tim redoslijedom, međutim verzija 2 protokola ima opciju, PreferredAuthentications, što vam omogućava da promijenite zadani redoslijed. Osim toga, SSH podržava dodatne metode provjere autentičnosti korisnika, ovisno o specifičnom operativnom sistemu (na primjer, bsd_auth ili PAM).Uopšteno govoreći, autentifikacija korisnika se zasniva na javnim ključevima. Klijent pokušava instalirati daljinski SSH vezu, šifrira podatke sa njemu poznatim ključem javnog servera, koji prima kada se prvi put poveže sa serverom, i prenosi ih na SSH server. Server, zauzvrat, tajnim ključem dešifruje podatke, samo njemu poznate, i šalje ih klijentu. U takvoj šemi, klijent može biti siguran da je server onaj za koga se predstavlja. Tako da se ne morate oslanjati DNS i rutiranje čak i ako je napadač uspio krivotvoriti unos DNS ili preusmjerite pakete na vaš vlastiti host, autentifikacija neće uspjeti, budući da strani domaćini nemaju potrebne ključeve za to. Jer SSH ovo je punopravni mrežni protokol, naravno, ovo je određeni skup programa potrebnih za njegov rad, kako osnovne funkcionalnosti tako i razne dodatne mogućnosti... Budući da govorimo o FreeBSD operativnom sistemu (u drugim verzijama Unixa, set se može malo razlikovati), glavne komponente SSH su:
  • sshd je zapravo SSH server, demon program;
  • ssh- klijentski program koji je postao zamjena za rlogin i telnet;
  • scp- program za daljinsko kopiranje putem protokola SSH, zamjena za rcp;
  • sftp- siguran ftp klijent;
  • sftp-server- podsistem koji omogućava prijenos datoteka putem protokola SSH;
  • ssh-keygen- generator ključeva
  • ssh-keyscan- "sakupljač" javnih ključeva domaćina;
  • ssh-agent- agent za autentifikaciju koji drži privatne ključeve;
  • ssh-add- mali program za dodavanje ključeva ssh-agent;
Kao što je gore navedeno, sshd, ovo je program odgovoran za funkcionalnost servera SSH, počinje kada se operativni sistem pokrene. Za korištenje protokola SSH odmah nakon instaliranja FreeBSD-a, potrebno je da omogućite daemon se pokrene sshd u instalacijskom programu Sysinstall... Iako se to može učiniti kasnije, pod uvjetom da imate pristup serverskom terminalu. Dozvolite demonu da se pokrene sshd, možete kroz startnu skriptu /etc/rc.conf, tako što ćete napisati sljedeći red: Naravno, ovo ne možete učiniti, već samo pokrenite demon sa konzole / usr / sbin / sshd, ali pri sljedećem ponovnom pokretanju neće se pokrenuti sam, odnosno pristup serveru pomoću protokola SSH nećete ga imati, ali ako se server nalazi u data centru hosting provajdera, tada nećete moći njime upravljati na daljinu. Iz tog razloga, ako namjeravate daljinski administrirati server, sshd uključeni u fazi instalacije.

SSH omogućava izbor različitih algoritama šifriranja. SSH klijenti i SSH serveri dostupni su za većinu mrežnih operativnih sistema.

SSH
Ime Sigurna školjka
Nivo (OSI model) Primijenjeno
Porodica TCP / IP
Port / ID 22 / TCP
Svrha protokola Daljinski pristup
Specifikacija RFC 4251
Glavne implementacije (klijenti)
  1. Provjera autentičnosti lozinkom je najčešća. Sa svakom vezom, kao što je https, generira se zajednički tajni ključ za šifriranje prometa.
  2. Za autentifikaciju para ključeva, javni i privatni par ključeva se unaprijed generira za određenog korisnika. Mašina sa kojom se želite povezati je pohranjena privatni ključ i otvorite na udaljenoj mašini. Ove datoteke se ne prenose tokom autentifikacije, sistem samo provjerava da li vlasnik javnog ključa posjeduje i privatni. At ovaj pristup, u pravilu je konfigurisana automatska prijava u ime određenog korisnika na OS.
  3. Autentifikacija putem IP adrese je nesigurna; ova funkcija je najčešće onemogućena.

Diffie-Hellman (DH) algoritam se koristi za kreiranje zajedničke tajne (ključ sesije). Simetrična enkripcija, AES, Blowfish ili 3DES algoritmi se koriste za šifriranje prenesenih podataka. Integritet prijenosa podataka se provjerava pomoću CRC32 u SSH1 ili HMAC -SHA1 / HMAC -MD5 u SSH2.

Šifrirani podaci se mogu komprimirati korištenjem LempelZiv (LZ77) algoritma, koji pruža isti nivo kompresije kao ZIP arhiver. SSH kompresija je omogućena samo na zahtjev klijenta i rijetko se koristi u praksi.

Standardi i implementacije softvera

Prvu verziju protokola, SSH-1, razvio je 1995. istraživač Tatu Ulonen sa Tehnološkog univerziteta u Helsinkiju (Finska). SSH-1 je napisan da pruži više privatnosti od rlogin, telnet i rsh protokola. 1996. godine razvijena je sigurnija verzija protokola, SSH-2, koja nije bila kompatibilna sa SSH-1. Protokol je dobio još veću popularnost i do 2000. godine imao je oko dva miliona korisnika. Trenutno, izraz "SSH" obično znači upravo SSH-2, budući da se prva verzija protokola, zbog značajnih nedostataka, sada praktički ne koristi.

Postoje moduli poput python-paramiko i python-twisted-conch za korištenje SSH-a u Pythonu.

SSH tuneliranje

SSH tunel je tunel kreiran preko SSH veze i koristi se za šifriranje tuneliranih podataka. Koristi se za siguran prijenos podataka na Internetu (IPsec ima sličnu svrhu). Kada se šalje preko SSH tunela, nešifrovani saobraćaj bilo kog protokola se šifruje na jednom kraju SSH veze i dešifruje na drugom.

Praktična implementacija se može izvesti na nekoliko načina:

  • Kreiranje Socks proxyja za aplikacije koje ne mogu raditi kroz SSH tunel, ali mogu raditi kroz Socks proxy
  • Korištenje aplikacija koje mogu raditi kroz SSH tunel.
  • Kreiranje VPN tunela, pogodno za gotovo svaku aplikaciju.
  • Ako aplikacija radi sa jednim određenim serverom, možete konfigurisati SSH klijenta tako da omogući TCP konekcijama kroz SSH tunel da dođu do određenog TCP porta mašine na kojoj je pokrenut SSH klijent. Na primjer, Jabber klijenti se povezuju prema zadanim postavkama na portu 443. Zatim, da bi konfigurirao vezu s Jabber serverom kroz SSH tunel, SSH klijent je konfiguriran da preusmjerava veze s bilo kojeg porta lokalnog stroja (na primjer, sa porta 4430) na udaljeni server (na primjer, jabber .example.com i port 443):

$ ssh -L 4430: jabber.example.com: 443 neki domaćin

V u ovom slučaju Jabber klijent je konfigurisan da se poveže na port 4430 lokalnog servera (ako ssh klijent radi na istoj mašini kao i Jabber klijent).

Da biste kreirali ssh tunel, potrebna vam je mašina sa pokrenutim ssh serverom i pristupom jabber.example.com. Ova konfiguracija se može koristiti ako je pristup jabber.example.com sa lokalne mašine zatvoren vatrozidom, ali postoji pristup nekom ssh serveru koji nema ograničenja pristupa Internetu.

SSH (Secure Shell) je mrežni protokol daljinski pristup koji koristi enkripciju i kompresiju za prenesene podatke. Jednostavno rečeno, ovo je vrlo koristan i moćan alat koji vam omogućava da se autentifikujete u sistemu i u potpunosti radite u ime lokalni korisnik biti mnogo kilometara udaljen od mašine koja radi. Također, za razliku od telneta i rsh - SSH šifrira sav promet, tako da sve prenesene informacije ostaju povjerljive.

Dakle, već imamo instaliran ssh i ssh-daemon je dodan u pokretanje pri pokretanju sistema. Možete ga kontrolisati komandom:

service ssh stop | start | restart

Na Ubuntu, ili:

/etc/init.d/ssh (start | zaustavljanje | ponovno učitavanje | prisilno ponovno učitavanje | ponovno pokretanje | status)

Na Debianu, ili:

systemctl start | stop | restart sshd.service

U ArchLinuxu (nakon svakog uređivanja konfiguracije, morate ponovo pokrenuti). Komplet uključuje klijenta i servera.

Isprobajmo na djelu! Prvo kreirajte folder ~ / .ssh

mkdir ~ / .ssh

Generirajte ključeve za datog korisnika server sa naredbom:

ssh-keygen (kao običan korisnik).

Prilikom generiranja možete postaviti šifru za ključ (preporučljivo je postaviti dugu - tada čak i nakon što dobijete ključ, ali ne zna lozinku od ključa, napadač se neće moći prijaviti), ili možete preskočite ga jednostavnim pritiskom na "Enter" - u ovom slučaju lozinka se nikada neće tražiti. Isti javni i privatni ključevi pojavili su se u ~ / .ssh folderu.

Pronađite drugu mašinu (čak i pametni telefon može - postoje odlični SSH klijenti na Androidu, kao što su ConnectBot ili JuiceSSH), instalirajte ssh na nju i povežite se sa serverom naredbom:

ssh [email protected]

Ako je sve urađeno kako treba, od vas će se tražiti korisnička lozinka, a nakon unosa naći ćete se u svom sistemu sa pogledom iz komandne linije.

Za Windows, inače, postoje i ssh serveri i klijenti.

Nakon što smo uživali u rezultatu našeg rada, pređimo na još dosadniji dio - postavljanje klijenta/servera.

Konfiguracija na strani klijenta je unutra / etc / ssh / ssh_config, a serverski - / etc / ssh / sshd_config... Većina kompletno vođenje za konfiguraciju, vjerovatno postoji stranica u man - man ssh i man sshd_config, pa preporučujemo da je pročitate. A u ovom članku ćemo razmotriti najpotrebnije stvari.

Prilagodba

Standardni ssh port je 22. Može se promijeniti u bilo koji nestandardni (što otežava hakovanje zbog sigurnosti kroz nejasnoće, ili da privuče pažnju potencijalnih napadača :) - da biste to učinili, dekomentirajte red:

#Port 22

I dodajte šta god želite do 65535 (pazeći da port nije u sukobu s drugim uslugama s naredbom #netstat -tupln | grep LISTEN).

Sada, kada se povezuje sa serverom, klijent će morati da piše sa ključem:

ssh -p [port]:

Po defaultu, root pristup je dozvoljen. Vrlo je preporučljivo ograničiti ga (i umjesto toga pravilno razgraničiti lokalna korisnička prava koristeći sudo). Da biste to učinili, pronađite liniju "PermitRootLogin" i promijenite vrijednost u "ne". Možete ga također promijeniti u "bez lozinke" - u ovom slučaju, prijava pod root će biti dozvoljena samo sa računara sa pouzdanim ključem.

Možete onemogućiti autentifikaciju lozinkom i raditi samo s ključevima - pronađite red: "PasswordAuthentication" i promijenite vrijednost u "ne". Zašto? Ako neko zaista želi da dobije pristup vašem sistemu, onda može ili grubo forsirati lozinku kada pokušava da autorizuje, ili sluša i dešifruje vašu vezu. Ako onemogućite provjeru autentičnosti lozinke i dodate u ~ / .ssh / authorized_keys na serveru javni ključ vašeg, na primjer, radnog laptopa, tada ćemo, kao što se sjećamo, odmah biti dozvoljeni na server. Ali šta ako radite na tuđoj mašini i hitno morate da dobijete pristup ssh serveru, ali on nas, očekivano, neće pustiti unutra? Tada ne možete onemogućiti autentifikaciju lozinkom, već koristiti uslužni program fail2ban. Samo ga instalirajte iz svog spremišta, nakon čega će primijeniti zadane postavke i barem zaštititi vaš ssh kanal od brute force napada. Više o fail2ban - http://putty.org.ru/articles/fail2ban-ssh.html.

U slučaju da vaš server pohranjuje ključeve za lansiranje nuklearnih projektila, možete učiniti nešto ovako:

PermitRootLogin no - prijava pod root je zabranjena.

PasswordAuthentication no - prijava bez lozinke

Hajde da generišemo dugački ključ na udaljenoj mašini (-t encryption_type, -b dužina bita):

ssh-keygen -t rsa -b 4096

Sa jednako složenom pristupnom frazom (oporavak zaboravljena lozinka, usput, ne možeš. Možete ga promijeniti komandom "ssh-keygen -p", ali će vam se ionako tražiti stara). Prebacimo javni ključ udaljene lokalne mašine na ~ / .ssh / authorized_keys na serveru, i voila - sada se pristup može dobiti sa jedne mašine, koristeći šifru privatnog ključa. SSH vam omogućava da postavite mnogo sigurnosnih konfiguracija i ima mnogo specifičnih postavki za to - pročitajte o njima u man.

Dvije opcije sshd_config služe istoj svrsi:

LoginGraceTime- postavlja vrijeme nakon kojeg će se veza prekinuti ako ne dođe do autentifikacije.

MaxAuthTries- postavlja broj pogrešnih pokušaja unosa login-a nakon kojih će se veza prekinuti.

MaxSessions- broj istovremenih sesija (ako je server vaš kućni računar na koji ćete se povezati sa fakulteta ili s posla, onda bi bilo razumno ograničiti broj sesija na jednu - odbijena prijava u ovom slučaju će postati razlog za sve veću paranoju, generisanje novih ključeva i promjenu lozinke). Međutim, ako budete oprezni, možda ste primijetili da se linija "Posljednja prijava" prikazuje pri svakoj prijavi na server. Osim toga, možete dodati i vlastitu pozdravnu poruku - pronađite liniju "Banner" i umjesto nijednu postavite putanju do datoteke s tekstom koji će se čitati i prikazivati ​​prilikom prijave.

Između ostalog, možete dozvoliti samo određenim korisnicima da se prijave, ili dopustiti svima osim određenim korisnicima:

AllowUsers korisnik1- dozvoli samo korisniku1 da uđe.

DenyUsers korisnik1- dozvoli svima osim korisnika1.

I slični parametri za pristup određene grupe- AllowGroups i DenyGroups.

Također možete SSH X11 sesiju. Da biste to učinili, pronađite liniju "ForwardX11" i promijenite vrijednost u "da".

Pronađite sličnu liniju u konfiguraciji klijenta - / etc / ssh / ssh_config, a također promijenite u "da".

Sada se morate povezati na server preko ssh-a sa -X argumentom:

ssh -X [email protected]>

Možete odmah pokrenuti aplikaciju kada ste povezani:

ssh -X [email protected]"aplikacija"

Ovako izgleda pokrenuti GIMP u ssh sesiji:

Ili možete dobiti izlaz sa web kamere laptopa nesuđenog korisnika :)

Proračuni se izvode direktno na serveru, a izlaz se šalje na klijentsku mašinu (to jest, čak i ako sam server nema X11, grafičke aplikacije se mogu prikazati na vašoj udaljenoj mašini). Ova shema radi prilično sporo (ne zaboravite da je sav promet dinamički šifriran) - ali ova funkcija je vrlo korisna.

Također možete kopirati datoteke preko SSH sesije - za to postoji jednostavan "scp" uslužni program. Možete prenositi datoteke direktno u sesiji kao sa servera na klijenta:

scp [email protected]: / putanja / do / datoteke / na / serveru / gdje / spremi / na / lokalnoj / mašini

Dakle, od klijenta do servera:

scp putanja / do / datoteke / klijenta [email protected]: / putanja / na / serveru

Ovo je prilično zgodno ako trebate kopirati udžbenik ili fotografiju, ali šta je kada morate raditi s mnogo datoteka? Postoji vrlo zgodna stvar za ovo - sshfs (dostupan za instalaciju u repozitorijumima većine * nix-sistema).

Samo postavite putanju kao scp:

sshfs [email protected]: / home / korisnik / mnt /

I serverov / home / user folder će se pojaviti na / mnt tački montiranja lokalnog stroja!

Demontaža se vrši preko umount.

I na kraju, hajde da pričamo o jednoj malo poznatoj osobini. Ako kreirate datoteku /.ssh/config i ispunite ga ovako:

Domaćin [ime]

Ime hosta

Korisnik [korisničko ime servera]

željene opcije

like

ForwardX11 da

Luka 30.000

Tada se možemo prijaviti putem:

ssh [ime]

ssh -X -p 30000 [email protected]

I sve opcije će se automatski pokupiti. Dakle, uz čestu autentifikaciju na određenom serveru, ovaj proces ćete pojednostaviti na nekoliko trenutaka.

Pa, pokrili smo sve (pa čak i više) što trebate znati o SSH-u za njegovu svakodnevnu upotrebu - naučili smo kako koristiti autentifikaciju ključa, zaštitili server od brute-force napada i, općenito, zakrpili većinu potencijalnih rupa. U stvari, SSH može učiniti mnoge druge stvari - na primjer, tuneliranje i prosljeđivanje portova kroz ssh sesiju, ali je malo vjerovatno da ćete vi, kao obični korisnik, ikada ovo koristiti. Dodatni resursi

Uvod

U prethodnom broju, članak o sigurnosti internet servera pokrenuo je pitanja vezana za izbor platforme i operativnog sistema internet servera, sigurnost servera u cjelini, govorilo se o radu sa korisnicima, kao io o radu i postavke zaštitnog zida... Dozvolite mi da vas ukratko podsjetim da razmišljamo o administriranju malog ureda ili kućne mreže kada imate jedan ili dva namjenska računara. U prvom slučaju, kada je jedan računar plus firewall mail server, Web server, a možda i ftp server. Jednostavno rečeno, namjenski računar se koristi kao neka vrsta zajedničkog resursa. U drugom slučaju, što implicira prisustvo velika mreža, jedan računar se koristi kao gateway plus firewall, a drugi se koristi kao mail server, web server itd. U principu, druga metoda je poželjnija, budući da fizički odvajate gateway kao objekt prvog mogućeg napada hakera i od zajednički server mreže. U svakom slučaju, u budućnosti možete apstrahirati od broja namjenskih računara, imajući na umu da čak i ako ih ima dva, nije razumno opterećivati ​​ih drugim zadacima.

Sve sljedeće nastavlja liniju prethodnog članka, pod pretpostavkom da se Linux mašina koristi kao server, a korisnik je upoznat sa Linuxom i umrežavanjem na osnovnom nivou. Ideje za ove primjere su posuđene iz raznih Linux tutorijala. Dakle, koja ćemo pitanja ovog puta razmotriti? Prvo, serverske aplikacije koje želite da instalirate na server. Drugo, mrežni napadi (uključujući vrste virusa u Linuxu i trojanske konje) i metode rješavanja njih. Zašto su ova pitanja spojena u jednom članku? Činjenica je da do hakovanja obično dolazi ili zbog nemara administratora, ili zbog propusta u zaštiti serverskih aplikacija. Klijent, kako sama reč implicira, ne kontroliše resurse sistema, pa je očigledno da upravo serveri mogu biti predmet napada.

Zaštita serverskih aplikacija

Svako ko je upoznat sa UNIX-om shvata da skoro svaki mrežni program može se koristiti i kao klijent i kao server. U prvom slučaju koristite usluge, u drugom ih pružate. Jasno je da su u mrežnom servisu potrebna oba dijela. Pitanje je kakvi su serverski programi potrebni na serveru na vašoj mreži. Prilikom instaliranja Linuxa, naravno, možete odabrati barem sve, jer instalacija na disk još ne znači početak. Ali koje aktivirati kasnije? Postoji jednostavan recept, kojeg se i sam uvijek pridržavam kada radim sa serverima - što je manje aktiviranih servera, to bolje (općenito: što je stvar teža, lakše ju je razbiti). Koliko god pričali o pouzdanosti UNIX-a, ovdje se redovno otkrivaju i popravljaju rupe. Stoga, što manje programa pokrenete, to ćete manje morati da ih nadgledate. U stvarnom životu, naravno, ovo se ne bi trebalo svesti na to da korisnicima zabranjujete doslovno sve. Sigurno je, naravno, ali zašto se mučiti sa administratorom? Međutim, nepotrebne stvari, kao što je wais, svakako ne bi trebalo postavljati.

Telnet i ssh

Pogledajmo sada pobliže šta je zaista potrebno i internim i eksternim korisnicima. Trebamo telnet i ssh (sigurna ljuska). Možda nije baš zgodan pristup, ali je neophodan, barem za administratore. Ovo je program koji omogućava pristup u terminalskom režimu, kada se na vašem računaru pojavi prozor veličine 80x25 znakova, koji u potpunosti odražava pozvani server. Možete izvršiti bilo koju naredbu i pokrenuti programe koji ne koriste grafiku - općenito, ovo je običan udaljeni terminal. Razlika između telneta i ssh-a proizilazi iz naziva, ali ipak da objasnimo: telnet prenosi informacije nezaštićeno, čak se i lozinka prenosi preko mreže u čistom tekstu, a ssh šifrira sve prenete informacije. Ako želite da budete manje-više sigurni u zaštitu, onda zabranite upotrebu telneta ili ga ne pokrećite uopšte. Pa, ako i dalje želite da ga koristite, onda, naravno, morate koristiti zaštitni zid. Standardne naredbe mogu biti sljedeće:

za ipfwadm -

Ipfwadm -I -a prihvatiti -P tcp -S 10.0.0.0/8 -D 0.0.0.0/0 23 ipfwadm -I -a prihvatiti -P tcp -S some.trusted.host -D 0.0.0.0/0 23 ipfwadm - I -a zabraniti -P tcp -S 0.0.0.0/0 -D 0.0.0.0/0 23

za ipchains -

ipchains -A ulaz -p sve -j PRIHVATI -s 10.0.0.0/8 -d 0.0.0.0/0 23

Ipchains -A ulaz -p sve -j PRIHVATI -s neki.trusted.host -d 0.0.0.0/0 23 ipchains -A ulaz -p sve -j DENY -s 0.0.0.0/0 -d 0.0.0.0/0 23

Takođe možete koristiti datoteke /etc/hosts.allow i /etc/hosts.deny, za koje treba da napišete, respektivno:

u prvom fajlu -

In.telnetd: 10.0.0.0/255.0.0.0, some.trusted.host

u drugom fajlu -

In.telnetd: SVE

Imajte na umu da čak i ako su ova pravila omogućena, svaki program koji sluša na mreži negdje duž putanje paketa sa lozinkom može ga presresti.

Druge dvije važne datoteke sa informacijama koje se odnose na sigurnost sistema su / etc / securetty i / etc / shell. Prvi specificira terminale sa kojih se root korisnik može prijaviti. Na većini sistema, prema zadanim postavkama, root korisnik se može prijaviti samo sa konzole. Drugi fajl navodi listu važećih omotača koji se mogu pokrenuti kada se korisnik prijavi. Lijep primjer koji sam uzeo iz Linux priručnika je korištenje passwd kao ljuske. Ovo korisnicima omogućava laku promjenu lozinke i također osigurava da ne rade ništa drugo u terminalskom modu. Da biste to učinili, unesite sam program passwd u datoteku / etc / shells, odnosno unesite red:

/ usr / bin / passwd

a u datoteci /etc/passwd napišite o korisniku:

Korisničko ime: x: 1000: 1000 :: / home / korisničko ime: / usr / bin / passwd

Sada, kada se korisnik prijavi na mrežu, može samo promijeniti lozinku. Izlaz na terminalu izgleda ovako:

Pokušavam 1.2.3.4 ... Povezano na localhost. Escape znak je "^]". Red Hat Linux izdanje 5.2 (Apollo) Kernel 2.2.5 na i586 login: tester Lozinka: Promjena lozinke za tester (trenutna) UNIX lozinka: Nova UNIX lozinka: Ponovo upišite novu UNIX lozinku: passwd: svi tokeni za autentifikaciju uspješno ažurirani Veza zatvorena stranim domaćin.

Čak i ako je pokušaj promjene lozinke bio neuspješan, bit će isključena sa sistema. Takođe treba obratiti pažnju na startup izlaz prilikom povezivanja: telnet iskreno upisuje ime sistema i verziju. Općenito, ovo je zgodno, ali u ovom slučaju potencijalnom hakeru dajete informacije koje on može koristiti za svoje potrebe. Kako to možete izbjeći? Kada se korisnik prijavi, telnet prikazuje datoteku /etc/issue.net kreiranu pri pokretanju sistema. Kreira se naredbama u datoteci rc.local:

# Ovo će prepisati / etc / problem pri svakom pokretanju. Dakle, napravite sve promjene koje # želite napraviti u / etc / ovdje ili ćete ih izgubiti kada restartujete. echo ""> / etc / problem echo "$ R" >> / etc / problem echo "Kernel $ (uname -r) na $ a $ (uname -m)" >> / etc / problem cp -f / etc / issue /etc/issue.net echo >> / etc / issue

Stoga, ako ne preopterećujete sistem, možete jednostavno urediti /etc/issue.net datoteku, u suprotnom uredite sam rc.local. U svakom slučaju, preporučljivo je koristiti telnet samo kada je to zaista neophodno i ne može se zamijeniti ssh.

Ssh je sličan telnetu sa korisničke tačke gledišta. Za razliku od telneta, koji koristi port 23, on koristi 22, ali glavna interna razlika je u tome što je sav promet šifriran. U svim ostalim aspektima, oni su slični. Za ssh, možete koristiti ista pravila zaštitnog zida (sa zamijenjenim brojem porta) i postavke u datotekama /etc/hosts.allow, /etc/hosts.deny. Lijepa karakteristika je prisustvo vlastite konfiguracijske datoteke / etc / sshd / sshd_config koja sadrži sljedeće konfiguracijske linije:

Port 22 # broj porta, koji može biti više od 22 ListenAddress 0.0.0.0 # koje adrese HostKey demon služi / etc / ssh / ssh_host_key # datoteka kodova klijenta RandomSeed / etc / ssh / ssh_random_seed # datoteka slučajnih brojeva koja se koristi za generiranje njegovih kodova ServerKey 768 # dužina koda u bitovima LoginGraceTime 300 # vrijeme unosa imena i lozinke KeyRegenerationInterval 3600 # frekvencija regeneracije kodova PermitRootLogin no # da li se root korisnik može prijaviti preko ssh IgnoreRhosts yes # Ignorirati ili ne informacije iz korisničkog S fajla rhosts rhosts # strogi način rada, blokiranje korisničkih nedostataka, na primjer, unošenje lozinke 5 puta # ili slučajni pritisak unesite QuietMode ne # da - da ne pišem log fajl uopšte i ne - inače X11Forwarding ne # prenosi informacije sa X servera preko ssh kanala FascistLogging ne # stepen kompletnosti log fajlova PrintMotd yes # prikaži neku frazu dana KeepAlive yes # održava komunikaciju pružanjem standardnog SyslogFacility DAEMON-a # koji je odgovoran za generiranje dnevnika RhostsAuthentication ne # dozvoljava autentifikaciju korisnika preko rhosts RhostsRSAAuthentication ne # da li je provjera putem rhosts ili /etc/hosts.equiv # postavljena na RSAAuthentication po defaultu koristi samo RSA autentifikaciju PasswordAuthentication da # koristi korisnicima njihove normalne lozinke ili ne PermitEmptyPasswords ne # dozvoli korisnicima bez lozinke ili ne

Tu su i neke korisne postavke, posebno:

AllowGroups, DenyGroups, AllowUsers, DenyUsers, AllowHosts, DenyHosts, IdleTimeout time (vrijeme nakon kojeg će veza biti prekinuta u slučaju neaktivnosti).

Kao što možete vidjeti iz gore navedenog, sveukupno ssh ima toliko opcija da možete kontrolisati tačno ko se može prijaviti i kako. Ali ovdje se radi o serveru, a korisnici mreže moraju pokretati ssh klijente. Za razliku od telneta, koji je dostupan u Windows-u, ssh nije uključen u standardnu ​​distribuciju. Linux nema ovaj problem - tu je i klijent. Važno je napomenuti da je ssh daemon dostupan i u prvoj i u drugoj verziji. Neprijatno je, naravno, što ne postoji kompatibilnost unatrag, ali sam siguran da ćete vi kao administrator korisnicima omogućiti one klijente koji mogu komunicirati sa serverom. Evo nekoliko ssh klijenata za Windows:

  • Svježe Besplatno FiSSH. http://www.massconfusion.com/ssh/
  • Tera Term. http://hp.vector.co.jp/authors/VA002416/teraterm.html telnet klijent. http://www.zip.com.au/~roca/ttssh.html - dodatni dll za ssh podršku
  • Kit. http://www.chiark.greenend.org.uk/~sgtatham/putty.html - samo oko 200 hiljada
  • Mindterm http://www.mindbright.se/mindterm/ - Java ssh klijent
  • Java Telnet aplikacija. http://www.mud.de/se/jta/ - postoji podrška za ssh
  • Secure CRT. http://www.vandyke.com/ - komercijalni klijent

Neophodno je spomenuti pristup terminalu u vezi sa programima kao što su rlogin, rexec, rsh. Njihova upotreba je lišena bilo kakve zaštite i ponekad čak omogućava korisnicima da pređu sa mašine na mašinu bez unošenja lozinke. Iako je ovo zgodno, sa sigurnosne tačke gledišta, jednostavno nije dobro ni za šta. Ove usluge se obično pokreću po defaultu. Da biste ih otkazali, morate urediti /etc/inetd.conf datoteku i ponovo pokrenuti inetd demon. Generalno, telnet i ssh iscrpljuju mogućnosti terminalnog pristupa sistemu. Stoga, prijeđimo na druge serverske aplikacije koje su korisne za korisnike.

Pošta ili e-mail

Šta je potrebno da bi ljudi imali poštu, bez koje komunikacija među ljudima često više nije zamisliva? Prilično uobičajen način je instaliranje mail servera, kreiranje poštanskog sandučeta za svakog korisnika i konfiguriranje pop-demon-a tako da ljudi mogu preuzeti ovu poštu. Ali da bi server mogao primati i slati pisma, mora biti instaliran na njemu mail program kao što je sendmail, postfix ili qmail, koji rukuje poštom na UNIX mašini. Tradicionalno se u tu svrhu koristi sendmail. Sada se koristi i na većini mašina, ali druga dva spomenuta programa su dobre, pa čak i poboljšane zamjene za njega. Međutim, kao i obično, glavne brige su vezane za zaštitu najnovije verzije sendmail (8.9.x) su prilično robusni.

Sendmail je dostupan na svim Linux sistemima, a najnovije distribucije vjerovatno sadrže verziju 8.9.x. Program koristi nekoliko konfiguracijskih datoteka koje analizira u procesu. Ali prije nego što govorimo o konfiguraciji, napominjemo da se program može pokrenuti i kao demon i u stanju pripravnosti. U prvom slučaju će stalno slušati port, au drugom će se aktivirati jednom i jednostavno će obraditi sve dolazne informacije. Druga metoda je poželjnija sa sigurnosne tačke gledišta. Da biste to učinili, samo trebate ukloniti parametar -bd u liniji za pokretanje.

Sada o konfiguraciji. Glavni fajl je sendmail.cf, koji može, ali i ne mora imati veze do drugih fajlova. Analizira se i pristupni fajl u koji možete staviti takve adrese sa kojih (ili na koje) pisma neće biti poslana. Na primjer, unosi:

10.0.0 RELAY spam.com REJECT

znači da e-poruke sa .spam.com adresa neće biti prihvaćene, a e-poruke sa interne mreže mogu biti prihvaćene i poslane.

Još jedna korisna i korištena datoteka su aliasi. Određuje koja imena će se tumačiti kao ime datog poštanskog sandučeta. Na primjer, ako postavite

Petrov: zvezda

pisma koja dolaze Petrovu na adresu [email protected]će biti poslata u kutiju [email protected] cak i ako neko ne zna prava adresa... Ovo je posebno korisno ako želite da e-poruke dolaze menadžeru koji želi da ima poštansko sanduče ne sa menadžerom imena, već sa svojim. To znači da će menadžer dati svoju adresu samo onima koje smatra prikladnim, a menadžer će visiti na web stranici. Očigledno, ovo će donijeti maksimalnu pogodnost u slučaju promjene menadžera. Bilo koji broj imena može biti preusmjeren na isto poštansko sanduče.

Virtusertable fajl specificira mapiranje jedne adrese u drugu, na primjer:

[email protected] menadžer

Koristeći ova dva fajla (aliases i virtusertable), može se implementirati dupliciranje pošte, što će sačuvati svu dolaznu poštu. Trik je u tome što se prvo pregleda virtuserabilna datoteka, a zatim pseudonime. Ako, sa zadnjim unosom u virtusertable, upišite u datoteku aliasa:

Upravitelj: zvijezda, "/ var / spool / mail2 / zvijezda"

tada će pošta koja stiže i na adresu upravitelja i na adresu biti upisana u normalni / var / spool / imejl pošte i / var / spool / mail2.

Jedna od glavnih razlika između postfixa i sendmaila je modularnost (koju qmail također ima). Za razliku od sendmaila, samo mali dio koda, samo jedan modul, radi kao root, a svi ostali dijelovi se pokreću po potrebi i imaju svoje postavke. Općenito, postfix konfiguracijske datoteke se obično nalaze u / etc / postfix. Datoteka manager.cf upravlja radom različitih modula, specificirajući korisnike pod kojima se pokreću i broj procesa. Main.cf datoteka je glavna konfiguracijska datoteka i postavlja osnovne parametre same pošte. Evo njegovog približnog prikaza s objašnjenjima (tačnije, one komponente koje će najvjerovatnije morati da se uređuju):

# ime mašine myhostname = mail.example.org # domena mydomain = example.org # sa koje adrese šaljete emailove myorigin = $ mydomain # na kojim interfejsima da se pokrene program inet_interfaces = svi # virtuelni nazivi fajl virtual_maps = hash: / etc / postfix / virtual # datoteka sa zamjenama imena alias_maps = hash: / etc / postfix / aliases # direktorij u kojem bi pošta trebala biti pohranjena kada je korisnik primi home_mailbox = Maildir / # gdje se čuva mail mail_spool_directory = / var / spool / mail # komanda za preuzimanje pošte mailbox_command = / usr / sbin / scanmails # datoteka koja označava adrese sa kojih i na koje mail treba biti poslata # relay_domains = / etc / postfix / relaydomains # lokalne mašine mynetworks = 10.0.0.0/24, 127.0.0.0/8 # # šta da izbaci ako se korisnici povežu na port 25 smtpd_banner = $ myhostname ESMTP $ mail_name

Postfix program se može dobiti na http://www.postfix.org.

Hajde sada da pričamo o POP i IMAP protokolima. Prvi radi na 110. luci, drugi - na 143. luci. U principu, oba imaju isti cilj, ali se provode na različite načine. POP (post office protocol) je prilično star i loš protokol. Sve što omogućava je povezivanje sa serverom, primanje pošte i brisanje iz poštanskog sandučeta na serveru. IMAP protokol naprednije. Omogućava vam da upravljate poštom direktno na serveru. Ne morate da preuzimate svu poštu, već uzmite samo zaglavlja pisama, kreirate direktorijume na serveru i distribuirate poštu među njima. Sa sigurnosne tačke gledišta, ovi protokoli su isti, pa je preporučljivo koristiti zaštitni zid kako biste izbjegli probleme. Također možete staviti promet ovih protokola unutar ssh. Veoma je važno da provjerite svoju poštu na viruse. Iako virusi nisu strašni u UNIX-u, pošto mnogi korisnici koriste Windows, pametno je pokrenuti e-poštu kroz program za skeniranje kao što je AMAVIS. Najlakši način za to (naravno, pretpostavlja se da je program AMAVIS već instaliran), ako je u postfixu u konfiguracijskoj liniji

Mailbox_command = / usr / bin / procmail

Mailbox_command = / usr / sbin / scanmails

Ukratko o tome kako korisnik prima i šalje poštu na radnom mjestu. Na sreću, svi popularni programi su POP ili IMAP klijenti (mislim barem na Netscape i Outlook). Osim toga, ako je administrator dao mogućnost pristupa serveru putem telneta ili ssh-a, možete gledati poštu i raditi s njom u terminalskom modu (u ovom slučaju je teže preuzeti). Da biste to učinili, morate se povezati na server i pokrenuti neki program za poštu u terminalu, kao što je mail ili pine. Ovaj drugi je mnogo praktičniji i predstavlja program preko celog ekrana sa menijem, samo u tekstualnom režimu.

Pristup fajlovima i mrežno štampanje

Na UNIX sistemu postoje dva standardni alati- NFS i LPD. Prvi vam omogućava da kreirate mrežne sisteme datoteka, drugi - štampanje na štampaču. Što se tiče korišćenja resursa UNIX mašine iz Windowsa, Samba (SMB) je najpogodnija za ovo, kako ja vidim. Ovaj program vam omogućava da pristupite datotekama i takođe pruža mogućnost mrežnog štampanja sa Windows mašine preko UNIX servera. Budući da je ovaj članak uglavnom o sigurnosti servera, treba napomenuti da dijeljenje resursa unutar mreže nije opasno, naravno, uz normalnu konfiguraciju pravila vanjskog zaštitnog zida. Ovdje se mogu pojaviti problemi drugačijeg plana, povezani s činjenicom da ne bi svi trebali imati pristup ovim ili onim informacijama, ali to je u potpunosti regulirano postavkama atributa datoteka i direktorija. Bez obzira koliko ste pronicljivi administrator, ne možete spriječiti situaciju u kojoj, na primjer, neko zaboravi zatvoriti ssh sesiju i napusti računar. Druga je stvar ako dopustite pristup za čitanje nekim datotekama, ali to su previše očigledne stvari da bismo se na njima zadržavali. Stoga se sada prelazimo na razmatranje serverskih aplikacija koje su korisne ne samo internim korisnicima, već i eksternim korisnicima. Mislim prvenstveno na web server i možda ftp. Sada je teško zamisliti najmanju kompaniju ili čak samo mrežu bez prve, a prisustvo druge zavisi od toga da li imate stvarnu potrebu da zasebno otpremate neke podatke na ftp server.

Web i ftp serveri

Apache je neprikosnoveni lider među rijetkim web serverima koji danas postoje u smislu popularnosti i performansi. Ovaj server kombinuje brzinu, stabilnost, visoku sigurnost, a istovremeno je besplatan. Nije uvijek moguće pronaći takav program za svoje potrebe, ali evo ga. I moramo priznati da autori programa ulažu mnogo napora da postignu maksimalnu efikasnost i pouzdanost. Prije svega, imajte na umu da ako svoj web server koristite samo za interne svrhe, kao što je administracija sistema ili dijeljenje datoteka, onda biste ga svakako trebali zaštititi od vanjskog svijeta. Ako je ovo server za sve, onda morate shvatiti da je otvoren za sve. Zato ga je potrebno pravilno nadzirati, odnosno: pažljivo i ispravno konfigurirati i pratiti log fajlove kako bi se unaprijed utvrdio mogući napad. Što se sigurnosti tiče, sam server ima vrlo malo pristupa sistemu, jer se samo njegova prva kopija pokreće kao root, a ostale se obično pokreću kao niko. Osim toga, u postavkama servera, odnosno u datotekama httpd.conf, smr.conf, access.conf, jasno je naznačeno kojim direktorijima server ima pristup, a kojim ne. Ako upišete u datoteku httpd.conf, na primjer:

Opcije Ništa AllowOverride Ništa Opcije Indeksi FollowSymLinks Uključuje AllowOverride Ništa

tada ćete eksplicitno naznačiti da server ima pristup samo /WWW direktorijumu, gde treba da smestite sav materijal sajta (ili sajtova), čiji rad obezbeđuje server. Ako želite da budete sigurni da niko neće promeniti prava pristupa uključivanjem, na primer, .htaccess fajla u neki direktorijum, onda u srm.conf treba da unesete:

naredi dozvoliti, odbiti odbiti od svih

Sa sigurnosne tačke gledišta, nema smisla detaljnije govoriti o drugim postavkama, pogotovo jer su instalacija i minimalna konfiguracija Apache servera opisani u prethodnom broju u članku posvećenom ovoj temi.

Posebno se treba zadržati na korištenju https (sigurnog http) protokola. Ovaj protokol obično radi na portu 443 (za razliku od standardnog http koji radi na portu 80). Postoje najmanje dva načina da se Apache obogati sigurnim http. Prvi je korištenje dodatka iz open-ssl, drugi je korištenje modula mod_ssl. Obje opcije dovode do skoro istih rezultata. Općenito, postaje moguće uspostaviti veze koristeći https na portu 443. Ovo kreira certifikat za server, koji će klijenti verifikovati nakon povezivanja. Ovo će isključiti (naravno, ne uz apsolutnu garanciju) prisluškivanje saobraćaja. Da biste kreirali certifikat kada koristite openssl, morate dati naredbe:

Openssl genrsa -des3> httpsd.key openssl req -new -key httpsd.key> httpsd.csr

osim toga, datoteke moraju biti u istom direktoriju gdje se nalaze konfiguracijske datoteke servera. Da bi server ispravno radio sa portom 443, također ćete morati promijeniti konfiguracijske datoteke. Moraju da napišu nešto slično

# slušanje na portu 443 (podrazumevano, server sluša samo na 80. portu) Slušaj 443 # onemogući globalnu upotrebu ssl SSLDisable # mjesto gdje će server pohraniti privremene informacije tokom ssl veze. Bez # ove postavke, server neće raditi SSLCacheServerPath / usr / bin / gcache # port preko kojeg server komunicira sa CashServerom SSLCacheServerPort 12345 # CashServer timeout SSLSessionCacheTimeout 300

Nakon ovih podešavanja, vaš server je u osnovi spreman za rad sa https, ali za sada je ovaj protokol zabranjen. Preporučljivo je da kreirate virtuelni host koji ima isto ime kao vaš podrazumevani, ali sa eksplicitnim naznakom porta 443, drugim rečima, sada imate pokrenut veb server. Radi na portu 80 i koristi http protokol. Dodavanjem apache-ssl-a i gore opisanih postavki, dali ste korisnicima mogućnost da komuniciraju sa vašim serverom putem https protokola. Malo je vjerovatno da su sve informacije na vašem serveru toliko povjerljive da želite da ih sve date samo u načinu bezbedne veze. Apache server vam omogućava da kreirate virtuelne mašine, odnosno možete deklarisati neku vrstu root poddirektorijuma za host, dati mu ime, napisati set konfiguracionih fajlova i sve ostalo što je potrebno, ali fizički će se nalaziti na vaš računar i biće kontrolisani od strane vašeg servera... U našem slučaju nije ni potrebno davati drugačije ime, jer je isti, samo drugi port. Ovako može izgledati ovakva postavka:

DocumentRoot / www / secure / ServerName www.example.com ServerAdmin [email protected] ErrorLog logs / https_error.log TransferLog logs / https_access.log # Dozvoli ssl za ovaj virtuelni host SSLEnable # Zahtevaj samo ssl upotrebu SSLRequireSSL SSLCertificateFile /usr/conf/httpsd.crt SSLCertificateKeyFile /usr/conflient/httpske

Osim http, postoji i ftp - korisna i praktična usluga, posebno ako imate puno datoteka koje korisnici moraju preuzeti (na primjer, date podatke iz nekog istraživanja). Prednost ftp-a u odnosu na http je brzina. FTP protokol ima minimalne troškove. Međutim, s njim ima mnogo problema. Glavna je njegova "dob": ftp je star koliko i telnet. Iz toga odmah nastaju sigurnosne komplikacije: korisničko ime i lozinka se prenose u čistom obliku, a promet prenesenih informacija ničim nije zaštićen. Osim toga, ftp može samo prenositi fajlove. Stoga, ako imate neke informacije koje su dostupne svima, onda je razumno kreirati jednog korisnika pod čijim imenom će svi ulaziti. Često se u takvim ftp-arhivama ovaj korisnik naziva anonimnim, a on kao lozinku daje svoju e-mail adresu. U ovom slučaju ima mnogo manje sigurnosnih problema. Štaviše, u slučaju kada treba da omogućite ftp pristup za nekoliko korisnika, napravite chroot tako da mogu da stavljaju datoteke samo u svoje direktorijume. Što se servera tiče, naravno, oni su dostupni u standardnim paketima, ali možda želite da instalirate ne standardni ftpd, već neki drugi.

Jedan od popularnih ftp servera je proftpd. Njegove konfiguracijske datoteke su slične Apache datotekama, što olakšava prilagođavanje njima, jer je najvjerovatnije vaš web server Apache. Glavna konfiguraciona datoteka je /etc/proftpd.conf. Njegov okvirni izgled može biti ovakav:

ServerName "ProFTPD Default Installation" Tip servera inetd DefaultServer na portu 21 Umask 022 MaxInstances 30 Korisnik niko Grupa niko AllowOverwrite uključeno

Gornji listing pokazuje da se server pokreće preko inetd-a, na standardnom portu 21, maksimalan broj kopija je 30, a pokreće se kao grupa i korisnik niko. 022 - maska ​​atributa datoteke tokom kreiranja, koja će se inicijalno primijeniti kao standard. Ova konfiguracija ne daje pristup anonimnom korisniku. Da biste to učinili, morate napisati otprilike sljedeće konfiguracijske postavke:

Korisnik ftp Grupa ftp RequireValidShell isključen UserAlias ​​anonimni ftp MaxClients 10 DisplayLogin welcome.msg DisplayFirstChdir .message DenyAll

Nakon ovog dodatka, postaje moguće raditi anonimno i samo čitati, odnosno preuzimati datoteke. Navest ću još jedan primjer postavljanja prava za korištenje direktorija:

AllowAll DenyAll

Takav unos u konfiguracionoj datoteci daje pristup za pisanje, ali ne daje pravo na preuzimanje datoteka. Ovo je korisno ako želite da korisnici mogu učitavati datoteke, ali ne mogu vidjeti šta su drugi stavili.

Ovim se završava tema serverskih aplikacija. Naravno, treba napomenuti da postoji mnogo više serverskih aplikacija: tu su i DNS, news serveri, NIS serveri, X server i mnoge druge zanimljive i korisne aplikacije. Međutim, pokušao sam da se fokusiram na ono što bi zapravo moglo biti potrebno kada upravljam mrežom koja ne tvrdi da je globalni sajberpolis ili provajder. Pređimo sada na razmatranje drugog pitanja, naznačenog na početku članka - na mrežne napade i hakove.

Mrežni napadi i hakovi

Pre svega, nekoliko opštih reči. U UNIX-u, za razliku od Windowsa, nema problema sa virusima. Unutrašnja struktura raspodjele memorije i dozvola za datoteke može sama da se nosi sa onim što virusi obično rade u starom DOS-u ili Windows-u. Glavna prepreka virusima (u njihovom standardnom smislu) je nedostatak pristupa fizičkim uređajima za programe koji se pokreću u ime redovnog korisnika, kao i činjenica da se atributi datoteka ne postavljaju općenito, već za korisnika, grupu i svi korisnici. To ne postoji u Windowsu (ovo je djelimično implementirano u Windows 2000). Iako je smetnja koju izazivaju tradicionalni virusi gotovo nemoguća, UNIX sistemi su još uvijek hakovani i uništeni. To je zbog prisutnosti potpuno različitih tehnologija, koje se grubo mogu podijeliti u dvije kategorije. Prvi su takozvani trojanski konji, a to su programi koji naizgled, a možda i u stvari, obavljaju sasvim razumne i legalne radnje. Međutim, paralelno rade i drugi "poslovi": slušanje mreže ili prikupljanje informacija o lozinkama i njihovo slanje mreži itd. Malo je vjerovatno da će ovi programi sami po sebi napraviti direktnu štetu – radije će biti posrednici između vašeg sistema i vanjskog napadača. Druga kategorija su mrežni hakovi. Ove radnje u početku ne privlače interni sadržaj mašine, već pokušavaju da unište sistem ili dobiju pristup tako što mu šalju neke informacije, poput namerno netačnih mrežnih paketa, ili pomoću posebno formiranih zahteva koje pokušavaju da „mame“ neke skrivene podatke. Zašto uopšte hakovati sisteme? Ovo je više psihološko nego praktično pitanje. Činjenica je da, u stvarnosti, prilično veliki dio hakovanja u mašine ne dolazi iz sebičnih ciljeva, već jednostavno iz interesa za sam proces. Među ljudima koje obično nazivaju hakerima nisu samo oni koji hakuju radi neke stvarne koristi, već i "entuzijasti" koji razbijaju mrežu radi razbijanja. Ovo izgleda neočekivano, ali jeste, a statistika to pokazuje. Osim toga, često je prilično teško okriviti osobu za ono što je učinila, jer je ponekad nemoguće dokazati da je upravo on i sa ovog kompjutera izvršio određene nezakonite radnje. Međutim, u ovom članku govorimo o samim hakovima, a ne o njihovim psihološkim i pravnim aspektima, te ćemo stoga prijeći na konkretne stvari.

Hakiranje mreže, bez obzira na to koliko pažljivo se provodi i koje god metode se koriste, neminovno dovodi do nekih promjena u sistemu. Ovo može biti nova lista portova za slušanje, nepoznati programi, promjena veličine postojećih programa, posebno ps ili netstat, ili čak novi korisnici. Na ovaj ili onaj način, poenta je da se nešto mora promijeniti, a to je neizbježno. Stoga, prva razumna radnja koju savjetujem da preduzmete odmah nakon instalacije i konfiguracije sistema je kreiranje datoteke sa informacijama o sistemu. Nešto kao fotografija u trenutku kada smatrate da je sve što se dešava tačno. Konkretnije, mislim na informacije koje pružaju netstat, vmstat, free, du, df programi. Drugi savjet je da napravite sigurnosnu kopiju datoteka konfiguracije sistema i početnih postavki. Njihovo međusobno poređenje takođe može dati neke informacije o tome šta se nedavno dogodilo u sistemu.

Počnimo sa nadgledanjem sistema datoteka, što uključuje ne samo praćenje upotrebe sistema datoteka (što se može uraditi pomoću naredbi du i df), već i provjeru nepromjenjivosti određenih datoteka (na primjer, sistemskih datoteka). Postoji niz programa koji obavljaju ove funkcije:

  • AIDE - program koji vam omogućava da kreirate kontrolne sume za datoteke, čime se provjerava njihov integritet; omogućava korištenje više algoritama. http://www.cs.tut.fi/~rammer/aide.html. (Ostali programi obavljaju slične funkcije, svi su besplatni.)
  • Gog & Magog - kreira listu atributa i vlasnika datoteka, omogućava automatska poređenja. http://www.multimania.com/cparisel/gog/
  • Sentinel - stvara kontrolne sume koristeći RIPEMD-160bit MAC algoritam ima grafički interfejs... http://zurk.netpedia.net/zfile.html
  • SuSEauditdisk je program postavljen na disketu, koji omogućava potpuno autonomno izvođenje provjere sistema, dizanjem direktno sa diskete. Standardno dolazi sa SuSELinuxom. http://www.suse.de/~marc
  • ViperDB - Provjerava vlasnike datoteka i atribute kreiranjem log datoteka koje bilježe promjene koje su se dogodile. Program ima tri parametra: -init - kreira baze podataka prema datotekama, -check - provjerava datoteke u odnosu na bazu podataka i vrši izmjene u bazi ako se pojave na disku, -checkstrict - provjerava datoteke u odnosu na bazu podataka i vraća stare parametre ako je došlo do promjena . http://www.resentment.org/projects/viperdb
  • Sxid - Kreira kontrolne sume datoteka i provjerava atribute i vlasnike. ftp://marcus.seva.net/pub/sxid/
  • dadilja - pamti vrijeme kreiranja datoteke. ftp://tools.tradeservices.com/pub/nannie/
  • confcollect - pamti sistemske informacije kao što je ustanovljeno softver, ruter stolovi itd. http://www.skagelund.com/confcollect/
  • Pikt je alat koji sadrži interni skriptni jezik za kreiranje programa koje obavljaju standardne, ali nisu implementirane u obliku specifičnih komandi, funkcija (praćenje korišćenja sistema po satu, eliminisanje dugotrajnih procesa, postavljanje veličine poštansko sanduče itd.). Dostupan za različite platforme: Solaris, Linux i FreeBSD. http://pikt.uchicago.edu/pikt/

Možete govoriti i o programima koji obavljaju backup funkcije, ali po mom mišljenju to nema nikakve veze sa sigurnošću sistema, osim toga, u UNIX distribuciji su uključeni različiti standardni alati. Sigurnost je relevantna samo ako rezervne kopije to je neophodno uraditi, ali to je već pomenuto gore.

Hajde sada da shvatimo šta učiniti da sprečimo mrežne napade. Naravno, morate instalirati firewall na gateway. Na ovaj ili onaj način, ali zaštita na nivou paketa je neophodna. Ako je zaštitni zid na bilo koji način zaobiđen, tada su potrebni sljedeći programi:

  • DTK - emulira standardne servise i programe, au slučaju nestandardnih zahtjeva koji se šalju ovim programima, namjerno se izdaju lažne informacije kako bi se zbunio napadač. http://all.net/dtk/
  • Psionic PortSentry - Nadzire skeniranje portova. Glavni zadatak je provjeriti portove za skeniranje i prikazati sve u log fajlu. http://www.psionic.com/abacus/portsentry/
  • Psionic HostSentry - Kreira bazu podataka o korišćenju mašina od strane korisnika, prikazujući poruku kada je upotreba resursa nenormalna. http://www.psionic.com/abacus/hostsentry/
  • Scanlogd - skenira mrežne pakete, generirajući log fajlove na osnovu postavki. http://www.openwall.com/scanlogd/
  • Zaštitni zidovi su zajednički naziv za programe koji funkcionišu kao zaštitni zidovi.
  • TCP-WRAPPERS - programi koji ograničavaju pristup određenim resursima imenom ili brojem računara. Neki od ovih programa dostupni su na adresi. ftp://ftp.porcupine.org/pub/security/
  • NFR je program koji je po konstrukciji sličan snifferu (sniffer je program za slušanje mrežnog saobraćaja). Snima datoteke evidencije i u realnom vremenu otkriva napade i skenira portove. http://www.nfr.com/
  • Detaljna i korisna FAQ o mrežnim napadima i njihovom otkrivanju možete pronaći na http://www.robertgraham.com/pubs/network-intrusion-detection.html.

Teško je nedvosmisleno odgovoriti na pitanje šta i kako treba raditi tokom mrežnih napada. Ovdje puno ovisi o specifičnostima i specifične mreže i organizacije u kojoj se nalazi. Čak i kod napada istog tipa, u jednom slučaju ćete prvo poželjeti da sačuvate podatke, a u drugom da blokirate izvor napada, odnosno sve zavisi od prioriteta. Napadi su veoma težak problem u organizacijama u kojima je prekid mreže neprihvatljiv. Tamo ćete morati obavljati sve operacije na mreži, što je više moguće održavajući kontakt sa vanjskim svijetom. Dosta toga zavisi i od prirode napada. Hakovanje radi hakovanja je jedno, a namjerna krađa povjerljivih podataka sasvim drugo. Možda je, istina, i sofisticiranija verzija, kada se napad izvodi s ciljem da se odvrati administrator od sofisticiranijeg i promišljenijeg hakovanja koji se izvodi paralelno. Ali nemojte misliti da napad može doći samo izvana. Može početi iznutra. Mogući scenario je pokretanje trojanskog konja na Windows računaru na internoj mreži. Očigledno, to se može učiniti jednostavnim slanjem pisma poštom. Sada pogledajmo bliže programe njuškanja.

Općenito njušiti znači nanjušiti. Stoga su njuškari programi koji na ovaj ili onaj način slušaju mrežu i sve informacije koje prolaze kroz nju. Ilustrativan primjer je lozinka koja dolazi u čistom tekstu interni kompjuter na server. Budući da paketi putuju kroz mrežu dok ne pronađu primaoca, instaliranje njuškala na najmanje jedan računar na internoj mreži (na primjer, korištenjem slova, kao što je gore spomenuto) je zgodan alat za eksterni kreker. U većini slučajeva, njuškari su prilično pasivni, što ih čini teškim za otkrivanje. Ispod je lista nekoliko programa koji djeluju kao njuškalo i koje možete koristiti za praćenje šta se dešava na mreži:

  • Tcpdump je najstariji program koji se isporučuje sa svim UNIX-ima.
  • Sniffit - ima mogućnost filtriranja paketa i prevođenja informacija u tekstualni format; opremljen grafičkim interfejsom. http://sniffit.rug.ac.be/~coder/sniffit/sniffit.html
  • Ethereal je analizator mrežnih protokola.
  • Snort - dizajniran za nadgledanje mreže, može otkriti skeniranje portova. http://www.clark.net/~roesch/security.html
  • SPY je njuškalo, ali nije besplatno. Postoji besplatna mrežna licenca za jednog korisnika do pet mašina. http://pweb.uunet.de/trillian.of/Spy/

Ne treba, međutim, zaboraviti da osim softvera postoji i hardversko slušanje, na primjer jednostavno povezivanje drugog računara ili jednostavno povezivanje na kabl. Zanimljivo je da ako koristite tanak Ethernet (koaksijalni kabel), možete ga slušati bez otvaranja.

  • AntiSniff je program koji skenira mrežu u potrazi za njuškama. Princip njegovog rada je vrlo jednostavan: šalje zahtjev, a po odgovoru i vremenu odgovora utvrđuje da li ga obrađuje neki drugi program ili ne. http://www.l0pht.com/antisniff/

Detaljna i korisna FAQ za njuškalo možete pronaći na. http://www.robertgraham.com/pubs/sniffing-faq.html.

Druga tehnika koja može pomoći u sprečavanju napada je testiranje sistema pomoću programa koji oponašaju napade, ili samih programa pomoću kojih se ovi napadi izvode. Vi nekako provjeravate sistem u borbenim uslovima. Ako je sigurnost zaista glavni prioritet za ovu konkretnu mašinu, onda je provjera konfiguracije sistema prije uključivanja vrlo važan korak. Skrećem vam pažnju na neke od ovih programa.

Programi koji sami skeniraju sistem iznutra:

  • Tiger je program koji je još uvijek u razvoju. ftp://net.tamu.edu/pub/security/TAMU/
  • check.pl - Perl skripta koja provjerava stablo direktorija i datoteke u njemu i ukazuje na razne upitne atribute i imena vlasnika. http://opop.nols.com/proggie.html

Mrežni skeneri koji upućuju na lako dostupne usluge na drugom sistemu (dobra ideja da provjerite postavke zaštitnog zida, na primjer):

  • Strobe je stari, ali brz i još uvijek efikasan mrežni skener. Ponekad uključen u UNIX. ftp://suburbia.net/pub/
  • Nmap je program koji koristi nove metode skeniranja portova i vrlo je konfigurabilan. Omogućava da dobijete parametre operativnog sistema (naziv, verzija). http://www.insecure.org/nmap/index.html
  • Portscanner je mali skener portova koji ima mnogo formata za izlaz obrađenih informacija. http://www.ameth.org/~veilleux/portscan.html
  • Queso zapravo nije skener; to je program dizajniran da odredi tip operativnog sistema na udaljenom računaru. http://www.apostols.org/projectz/queso/

Softver za skeniranje potencijalnih sigurnosnih rupa je nesumnjivo korak naprijed u odnosu na skenere portova. Ovdje se primjenjuje viši nivo analize informacija i ne određuju se sami otvoreni portovi, već one ranjivosti u sistemu do kojih je otvoren put kroz te portove. Navešću nekoliko takvih programa:

  • Nessus je softver za praćenje napada klijent-server. Postoje serveri za Linux, FreeBSD, NetBSD i Solaris, te klijenti za Linux i Windows. Pored skeniranja portova i praćenja napada, program može izvršiti DNS pretraživanja kako bi pronašao računare povezane sa kompromitovanom mašinom. http://www.nessus.org/
  • Saint je potomak programa Satan, koji je ranije bio jedan od najpopularnijih za prikupljanje informacija o automobilima. Saint koristi klijent-server arhitekturu, ali zamjenjuje klijenta web programom. Osnovni cilj je prikupljanje informacija o ranjivosti u zaštiti sistema. http://www.wwdsi.com/saint/
  • Cheops je program koji pravi mapu okruženja IP mreže sa indikacijom operativnog sistema koji radi na računarima. http://www.marko.net/cheops/
  • SARA (Asistent za istraživanje revizora sigurnosti) je program sličan Saint. Može skenirati više mašina u isto vrijeme, osim toga, daje rezultat rada u HTML formatu. http://home.arc.com/sara/
  • BASS (Bulk Auditing Security Scanner) je program čija je ideologija zasnovana na činjenici da internet nije zaštićen. Glavni zadatak je skeniranje sistema za prisustvo "sigurnosnih rupa" u njima. http://www.securityfocus.com/data/tools/network/bass-1.0.7.tar.gz

Program za skeniranje zaštitnog zida i provjeru da li je ispravno konfiguriran je Firewalk. Slanjem različitih paketa program nastoji izračunati pravila prema kojima firewall funkcioniše. http://www.packetfactory.net/firewalk/

Arhiva na http://www.rootshell.com/ sadrži poznate podatke o greškama u zaštiti sistema i linkove na dodatke proizvođača operativnih sistema koji ispravljaju ove greške. Istina, ponekad se umjesto takvog linka može vidjeti poruka "Nadogradi na sljedeću verziju", što je uvredljivo, posebno ako je sistem komercijalan. Ovo je, na primjer, često slučaj s IBM AIX.

Ovim bih završio opis problema vezanih za sigurnost sistema za Internet serveri... To je opis, a ne vodič za akciju i ne detaljna referenca. Moj glavni cilj je bio da dam ideju o tome šta je potrebno učiniti da se sistem zaštiti. Vjerovatno će se u nekim slučajevima neki od savjeta činiti suvišnim ili jednostavno nepotrebnim, a možda i linkovi na date programe neće biti dovoljni. Međutim, čini mi se da su se glavne tačke vezane za zaštitu UNIX sistema i mreža odrazile na ovaj ili onaj stepen. O nekim privatnim temama, možda će biti reči u narednim brojevima časopisa.

ComputerPres 3 "2001

  • Upravna prinuda i njena razlika od drugih vidova državne prinude je sistem mjera administrativne prinude.
  • Adresa institucije koja je popunila protokol ___________________________________________________
  • Akti, protokoli. Sastav detalja akta i protokola. Lokacija rekvizita na obrascu A4. Uslovi za registraciju akta i protokola. Davanje pravne snage dokumentu.
  • Amnestija: pojam i znaci. Pomilovanje: pojam, pravne posljedice, razlika od amnestije.
  • Arbitražni sudski sistem Ruske Federacije. Uloga pravosudnog sistema u rješavanju ekonomskih sporova, uključujući i sporove u vezi sa primjenom poreskog zakonodavstva.
  • SSH - (Secure Shell) - mrežni protokol koji vam to omogućava daljinski upravljač prijenos računara i datoteka. Po funkcionalnosti je sličan Telnet i rlogin protokolima, ali koristi algoritme šifriranja za prenete informacije.
    Nedostaci telneta doveli su do vrlo brzog ukidanja protokola u korist sigurnijeg i funkcionalnijeg SSH protokola. SSH pruža sve to funkcionalnost koji su predstavljeni u telnetu, uz dodatak efikasnog kodiranja kako bi se spriječilo presretanje podataka kao što su korisnička imena i lozinke. SSH sistem provjere autentičnosti javnog ključa to osigurava udaljeni računar zaista je ono za koga se predstavlja.

    Kriptografska sigurnost SSH protokola nije fiksna, moguć je izbor različitih algoritama šifriranja. Klijenti i serveri koji podržavaju ovaj protokol dostupni su za različite platforme. Osim toga, protokol omogućava ne samo korištenje bezbedne udaljene ljuske na mašini, već i tuneliranje grafičkog interfejsa - X Tunneling (samo za Unix sličan OS ili aplikacije koje koriste X Window System grafički interfejs). SSH je također sposoban za prijenos bilo kojeg drugog mrežnog protokola preko sigurnog kanala (Prosljeđivanje portova), pružajući (uz odgovarajuću konfiguraciju) mogućnost sigurnog prosljeđivanja ne samo X-sučelja, već i, na primjer, zvuka.
    Međutim, SSH ne rješava sve probleme mrežne sigurnosti. Svoju pažnju usmjerava samo na pružanje bezbedan rad aplikacije kao što su emulatori terminala. Korištenje implementacije SSH protokola na serverima i klijentskim aplikacijama pomaže u zaštiti podataka samo u tranzitu. SSH nikako nije zamjena za firewall, sisteme za otkrivanje upada, mrežne skenere, sisteme za autentifikaciju ili druge alate koji pomažu u zaštiti informacioni sistemi i mreže od napada.
    39. Uloga i zadaci servera u lokalnoj mreži.

    U opštem smislu, server je računar, koji po pravilu ima visoke performanse i druge računarske resurse, dizajniran da obezbedi određene mogućnosti za računare u lokalnoj ili globalnoj mreži. Ove prilike se zovu mrežne usluge .

    Zadaci servera:

    1.omogućavanje pristupa podacima pohranjenim na serverskim diskovima organizacije;

    2. skladištenje, obrada i pristup bazama podataka preduzeća;

    3.programirana obrada podataka koje mu korisnik šalje, i daje ovom korisniku konačne rezultate;

    4. isporuku web stranice korisniku koji to zatraži;

    5. slanje, prijem, skladištenje i distribucija emails koje šalju svi korisnici lokalne mreže.


    Mrežne usluge.

    Za krajnjeg korisnika mreža nisu kompjuteri, kablovi i čvorišta pa čak ni tokovi informacija, za njega je mreža, prije svega, skup mrežnih servisa pomoću kojih može vidjeti listu računara na mreži, čitati daljinski datoteku, odštampajte dokument na "stranom" štampaču ili pošaljite mail poruku. Sveukupnost pruženih mogućnosti – koliko je širok njihov izbor, koliko su zgodne, pouzdane i sigurne – određuje izgled određene mreže za korisnika.
    Pored stvarne razmjene podataka, mrežni servisi moraju rješavati i druge, specifičnije zadatke, na primjer zadatke generirane distribuiranom obradom podataka. Takvi zadaci uključuju osiguravanje konzistentnosti višestrukih kopija podataka koji se nalaze na različitim mašinama (usluga replikacije) ili organiziranje izvršavanja jednog zadatka paralelno na nekoliko strojeva u mreži (usluga udaljenog poziva procedure). Među mrežnim uslugama mogu se razlikovati administrativne, odnosno one koje su uglavnom usmjerene ne na jednostavnog korisnika, već na administratora i služe za organiziranje ispravnog rada mreže u cjelini.
    Vrši se implementacija mrežnih usluga softverom... Primarne usluge — usluga datoteka i usluga štampanja — obično obezbjeđuje mrežni operativni sistem, dok pomoćne usluge, kao što su baza podataka, faks ili glasovna usluga, pružaju sistemske mrežne aplikacije ili uslužni programi koji blisko sarađuju sa mrežni OS. Uopšteno govoreći, distribucija usluga između OS i uslužnih programa je prilično proizvoljna i varira u specifičnim implementacijama OS.
    Termin transparentnost se često koristi za definiranje pogodnosti zajedničkog resursa. Transparentan pristup je takav pristup u kojem korisnik ne primjećuje gdje se nalazi resurs koji mu je potreban - na njegovom računaru ili na udaljenom. Nakon što je montirao udaljeni sistem datoteka u svoje stablo direktorija, pristupite izbrisane datoteke postaje potpuno transparentan za njega. Sama operacija montiranja takođe može imati različit stepen transparentnosti - u mrežama sa manje transparentnosti korisnik mora da zna i u naredbi navede ime računara na kojem je pohranjen udaljeni sistem datoteka; u mrežama sa višim stepenom transparentnosti , odgovarajuća softverska komponenta mreže traži dijeljene količine datoteka bez obzira na njihovu lokaciju, skladište, a zatim ih pruža korisniku u prikladnom obliku, na primjer, u obliku liste ili skupa ikona.
    Način adresiranja (imenovanja) zajedničkih mrežnih resursa je važan za transparentnost. Imena dijeljenih mrežnih resursa ne bi trebala ovisiti o njihovoj fizičkoj lokaciji na određenom računalu. U idealnom slučaju, korisnik ne bi trebao ništa mijenjati u svom radu ako je mrežni administrator premjestio volumen ili direktorij s jednog računala na drugi. Sam administrator i mreža operativni sistem imaju informacije o lokaciji sistem datoteka, ali je skriveno od korisnika. Ovaj stepen transparentnosti se još uvek retko viđa u mrežama – obično, da biste dobili pristup resursima određenog računara, prvo morate da uspostavite logičku vezu sa njim. Ovaj pristup se koristi, na primjer, u Windows mreže NT