Free software re implementation of the SMB networking protocol
computer software
Samba работает на большинстве Unix-подобных систем, таких как Linux, Solaris, AIX и варианты BSD, включая Apple macOS (Mac OS X 10.2 и более поздние версии) и macOS Server. Samba также работает на ряде других операционных систем, таких как OpenVMS и IBM i. Samba является стандартной частью почти всех дистрибутивов Linux и обычно входит в состав базовых системных служб и других Unix-подобных операционных систем. Samba распространяется на условиях лицензии GNU General Public License. Название Samba происходит от SMB (Server Message Block) – названия проприетарного протокола, используемого сетевой файловой системой Microsoft Windows.
Samba runs on most Unix like systems, such as Linux, Solaris, AIX and the BSD variants, including Apple macOS (Mac OS X 10.2 and greater) and macOS Server. Samba also runs on a number of other operating systems such as OpenVMS and IBM i. Samba is standard on nearly all distributions of Linux and is commonly included as a basic system service on other Unix based operating systems as well. Samba is released under the terms of the GNU General Public License. The name Samba comes from SMB (Server Message Block), the name of the proprietary protocol used by the Microsoft Windows network file system.
Ранняя история
Эндрю Триджелл разработал первую версию Samba Unix в декабре 1991 и январе 1992 года, будучи аспирантом Австралийского национального университета. Он использовал анализатор пакетов для сетевого анализа протокола, применяемого в серверном программном обеспечении DEC Pathworks. Первые релизы – версии 0.1, 0.5 и 1.0 (все из первой половины января 1992 года) – не имели официального названия; Триджелл просто называл его "файловым сервером Unix для Dos Pathworks". К моменту выхода версии 1.0 он осознал, что "фактически реализовал протокол NetBIOS" и что "это программное обеспечение можно использовать с другими клиентскими ПК". Ориентируясь на совместимость с LAN Manager от Microsoft, Триджелл выпустил "NetBIOS для Unix", Observer, версию 1.5 в декабре 1993 года. Этот релиз впервые включал как клиентское, так и серверное программное обеспечение. В то же время была выбрана лицензия GPL2. В середине серии 1.5 название было изменено на smbserver. Однако Триджелл получил уведомление о зарегистрированном товарном знаке от компании "Syntax", продававшей продукт TotalNet Advanced Server и владевшей товарным знаком "SMBserver". Название "Samba" было получено путем поиска в системном словаре Unix с помощью команды grep слов, содержащих буквы S, M и B в указанном порядке (то есть…). Версии 1.6, 1.7, 1.8 и 1.9 вышли относительно быстро, последняя – в январе 1995 года. Триджелл считает, что внедрение системы контроля версий CVS в мае 1996 года ознаменовало рождение команды Samba, хотя ранее вклад в разработку вносили и другие, особенно Джереми Эллисон. Версия 2.0.0 была выпущена в январе 1999 года, а версия 2.2.0 – в апреле 2001 года.
Andrew Tridgell developed the first version of Samba Unix in December 1991 and January 1992, as a PhD student at the Australian National University, using a packet sniffer to do network analysis of the protocol used by DEC Pathworks server software. It did not have a formal name at the time of the first releases, versions 0.1, 0.5, and 1.0, all from the first half of January 1992; Tridgell simply referred to it as "a Unix file server for Dos Pathworks." He understood that he had "in fact implemented the netbios protocol" at the time of version 1.0 and that "this software could be used with other PC clients." With a focus on interoperability with Microsoft's LAN Manager, Tridgell released "netbios for unix", observer, version 1.5 in December 1993. This release was the first to include client software as well as a server. Also, at this time GPL2 was chosen as license. Midway through the 1.5 series, the name was changed to smbserver. However, Tridgell got a trademark notice from the company "Syntax", who sold a product named TotalNet Advanced Server and owned the trademark for "SMBserver". The name "Samba" was derived by running the Unix command grep through the system dictionary looking for words that contained the letters S, M, and B, in that order (i. e. ). Versions 1.6, 1.7, 1.8, and 1.9 followed relatively quickly, with the latter being released in January 1995. Tridgell considers the adoption of CVS in May 1996 to mark the birth of the Samba Team, though there had been contributions from other people, especially Jeremy Allison, previously. Version 2.0.0 was released in January 1999, and version 2.2.0 in April 2001.
Безопасность
Некоторые версии Samba 3.6.3 и ниже содержат серьезные уязвимости в системе безопасности, которые могут позволить анонимным пользователям получить права root-доступа к системе через анонимное соединение, используя ошибку в механизме удаленных процедурных вызовов Samba. 12 апреля 2016 года была раскрыта информация об уязвимости Badlock, критической ошибке безопасности в Windows и Samba. Badlock для Samba упоминается в CVE-2016-2118 (возможны атаки типа "человек посередине" на SAMR и LSA). 24 мая 2017 года было объявлено об обнаружении в Samba уязвимости удаленного выполнения кода, получившей название EternalRed или SambaCry, которая затрагивает все версии, начиная с 3.5.0. Этой уязвимости был присвоен идентификатор CVE-2017-7494. 14 сентября 2020 года был опубликован эксплойт-подтверждение концепции для уязвимости Netlogon под названием Zerologon (CVE-2020-1472), для которой патч существует с августа. Некоторые федеральные агентства, использующие данное программное обеспечение, получили предписание установить это исправление.
Some versions of Samba 3.6.3 and lower suffer serious security issues which can allow anonymous users to gain root access to a system from an anonymous connection, through the exploitation of an error in Samba's remote procedure call. On 12 April 2016, Badlock, a crucial security bug in Windows and Samba, was disclosed. Badlock for Samba is referenced by CVE|2016 2118 (SAMR and LSA man in the middle attacks possible). On 24 May 2017, it was announced that a remote code execution vulnerability had been found in Samba named EternalRed or SambaCry, affecting all versions since 3.5.0. This vulnerability was assigned identifier CVE|2017 7494. On 14 September 2020, a proof of concept exploit for the netlogon vulnerability called Zerologon (CVE|2020 1472) for which a patch exists since August was published. Some federal agencies using the software have been ordered to install the patch.
Самба ТНГ
Samba TNG (The Next Generation) был создан в конце 1999 года после разногласий между лидерами команды Samba и Люком Лейтоном относительно направлений развития проекта Samba. Им не удалось договориться о плане перехода, который позволил бы постепенно интегрировать исследовательскую версию Samba, разрабатываемую им (известную в то время как Samba NTDOM), в основную ветку Samba. Разработка велась медленно из-за недостатка разработчиков. Команда Samba TNG часто рекомендовала потенциальным пользователям Samba из-за его лучшей поддержки и активной разработки. Ключевой целью проекта Samba TNG была переработка всех служб NT Domains в проекты FreeDCE. Это было затруднено тем, что службы разрабатывались вручную путем обратной инженерии сетевых протоколов, с ограниченным или полным отсутствием ссылок на документацию DCE/RPC. Важным отличием от Samba была реализация набора протоколов NT Domains и служб MSRPC. Samba предоставляет доступ ко всем службам NT Domains из единой точки, в то время как Samba TNG разделял каждую службу на отдельную программу. ReactOS начал использовать службы Samba TNG для своей реализации SMB. Разработчики обоих проектов были заинтересованы в использовании архитектуры Samba TNG для обеспечения взаимодействия ReactOS с сетями Windows. Они совместно работали над адаптацией сетевого кода и системы сборки. Многоуровневый и модульный подход упростил перенос каждой службы в ReactOS.
Samba TNG (The Next Generation) was forked in late 1999, after disagreements between the Samba Team leaders and Luke Leighton about the directions of the Samba project. They failed to come to an agreement on a development transition path which allowed the research version of Samba he was developing (known at the time as Samba NTDOM) to slowly be integrated into Samba. Development has been minimal, due to a lack of developers. The Samba TNG team frequently directed potential users towards Samba because of its better support and development. A key goal of the Samba TNG project was to rewrite all of the NT Domains services as FreeDCE projects. This was made difficult as the services were developed manually through network reverse engineering, with limited or no reference to DCE/RPC documentation. A key difference from Samba was in the implementation of the NT Domains suite of protocols and MSRPC services. Samba makes all the NT Domains services available from a single place, whereas Samba TNG separated each service into its own program. ReactOS started using Samba TNG services for its SMB implementation. The developers of both projects were interested in seeing the Samba TNG design used to help get ReactOS talking to Windows networks. They worked together to adapt the network code and build system. The multi layered and modular approach made it easy to port each service to ReactOS.