Кіріспе

SMB желілік протоколының ашық кодты қайта жасалған нұсқасы, компьютерлік бағдарламалық жасақтама.

Samba, Linux, Solaris, AIX және BSD нұсқалары сияқты Unix-ке ұқсас көптеген жүйелерде, соның ішінде Apple macOS (Mac OS X 10.2 және одан жоғары нұсқалары) және macOS Server-де жұмыс істейді. Samba OpenVMS және IBM i сияқты басқа да операциялық жүйелерде қолданылады. Samba Linux дистрибутивтерінің басым бөлігінде стандартты түрде орнатылған және басқа Unix-негізгі операциялық жүйелерде де негізгі жүйе қызметі ретінде жиі кездеседі. Samba GNU General Public License талаптарымен таратылады. Samba атауы Microsoft Windows желілік файлдық жүйесінде қолданылатын SMB (Server Message Block) меншік протоколынан алынған.

Ерте тарих

Эндрю Триджелл 1991 жылдың желтоқсаны мен 1992 жылдың қаңтарында Австралия Ұлттық университетінің докторанты ретінде DEC Pathworks серверлік бағдарламалық жасақтамасы қолданатын протоколды желілік талдау үшін пакеттерді аңғарушыны қолдана отырып, Samba Unix-тің алғашқы нұсқасын жасады. Алғашқы релиздер кезінде, 0.1, 0.5 және 1.0 нұсқаларында ресми атау болған жоқ, барлығы 1992 жылдың қаңтар айының бірінші жартысынан шықты; Триджелл оны "Dos Pathworks үшін Unix файлдық сервері" деп атады. 1.0 нұсқасында ол "netbios протоколын іске асырғанын" және "бұл бағдарламаны басқа PC клиенттерімен пайдалануға болатынын" түсінді. Microsoft LAN Manager-мен өзара үйлесімділікке баса назар берген Триджелл 1993 жылдың желтоқсанында "netbios for unix", observer, 1.5 нұсқасын жариялады. Бұл релизде алғаш рет клиенттік бағдарламалық жасақтама да, сервер де болды. Сондай-ақ, осы кезде GPL2 лицензиясы таңдалды. 1.5 сериясының ортасында атауы smbserver болып өзгертілді. Бірақ, Триджелл "Syntax" компаниясынан тауарлық белгі туралы хабарлама алды, ол TotalNet Advanced Server өнімін сатқан және "SMBserver" тауарлық белгісіне ие болған. "Самба" атауы Unix командасы grep арқылы жүйелік сөздікте S, M және B әріптерін қамтитын сөздерді іздеу арқылы таңдалды. 1.6, 1.7, 1.8 және 1.9 нұсқалары салыстырмалы түрде жылдам шықты, соңғысы 1995 жылдың қаңтарында жарияланды. Триджелл 1996 жылдың мамырында CVS-ті қабылдауды Самба командасының құрылуының бастауы деп санайды, дегенмен бұрын басқа адамдар, әсіресе Джереми Эллисон үлес қосып келген. 2.0.0 нұсқасы 1999 жылдың қаңтарында, ал 2.2.0 нұсқасы 2001 жылдың сәуірінде шықты.

Қауіпсіздік

Samba 3.6.3 және одан төмен нұсқаларының кейбірінде қауіпсіздік мәселелері бар, олар анонимді пайдаланушыларға Samba-ның қашықтықтан процедура шақыруындағы қателікті пайдаланып, анонимді қосылым арқылы жүйеге root кіруге мүмкіндік береді. 2016 жылдың 12 сәуірінде Windows және Samba-дағы маңызды қауіпсіздік қатесі Badlock жарияланды. Samba үшін Badlock CVE-2016-2118 (SAMR және LSA аралық шабуылдары мүмкін) арқылы анықталды. 2017 жылдың 24 мамырында Samba-да 3.5.0 нұсқасынан бастап барлық нұсқаларға әсер ететін EternalRed немесе SambaCry деп аталатын қашықтықтан кодты орындау осалдығы табылды. Бұл осалдыққа CVE-2017-7494 идентификаторы тағайындалды. 2020 жылдың 14 қыркүйегінде netlogon осалдығы үшін Zerologon (CVE-2020-1472) деп аталатын концепциялық дәлелдеме жарияланды, оған тамыздан бері түзету бар. Бұл бағдарламаны пайдаланатын кейбір федералдық агенттіктерге түзетуді орнату бұйырылды.

Самба ТНГ

Samba TNG (The Next Generation) 1999 жылдың соңында Samba командасының басшылары мен Люк Лейтонның Samba жобасының бағыттары бойынша келіспеушіліктерінен кейін пайда болды. Олар оның әзірлеп жатқан Samba зерттеу нұсқасын (сол кезде Samba NTDOM деп аталған) Samba-ға бірте-бірте енгізуге мүмкіндік беретін даму жолы туралы келісімге келе алмады. Дамушылардың жетіспеуіне байланысты даму өте шектеулі болды. Samba TNG тобы жақсы қолдау мен дамуға ие болғандықтан, әлеуетті пайдаланушыларды көбінесе Samba-ға бағыттады. Samba TNG жобасының басты мақсаты – барлық NT домендер қызметтерін FreeDCE жобалары ретінде қайта жазу еді. Бұл қиынға түсті, себебі қызметтер желілік инженерия арқылы қолмен әзірленді, DCE/RPC құжаттамасына сілтемелер шектеулі немесе мүлдем болған жоқ. Samba-дан басты айырмашылық NT домендер протоколдары жиынтығын және MSRPC қызметтерін іске асыруда болды. Samba барлық NT домендер қызметтерін бір орында қолжетімді етеді, ал Samba TNG әр қызметті жеке бағдарлама ретінде бөледі. ReactOS өзінің SMB іске асыруы үшін Samba TNG қызметтерін пайдалана бастады. Екі жобаның да әзірлеушілері Samba TNG дизайнының ReactOS-ты Windows желілерімен байланысуға көмектесетініне қызығушылық танытты. Олар желілік кодты бейімдеу және жүйе құру үшін бірлесіп жұмыс істеді. Көп қабатты және модульдік тәсіл әр қызметті ReactOS-қа оңай көшіруге мүмкіндік берді.