FTP — ветеран интернет-приложений, который облегчает обмен файлами между корпоративными пользователями. Однако проблемы безопасности всегда существовали вокруг FTP. Как не дать злоумышленникам украсть важную информацию с FTP-серверов незаконными способами, как предотвратить использование злоумышленниками FTP-серверов для распространения троянских программ и вирусов и т. д. Это проблемы, на которые системным администраторам следует обратить внимание. На этот раз я возьму VSFTP, который наиболее широко используется на платформе операционной системы Linux, в качестве примера, чтобы поговорить о том, как улучшить безопасность FTP-сервера.
1. Запретить пользователям системного уровня вход на FTP-сервер.
Чтобы повысить безопасность FTP-сервера, системным администраторам лучше всего настроить отдельные учетные записи FTP для сотрудников вместо того, чтобы назначать пользователей системного уровня обычным пользователям, что создаст большие риски для безопасности. На сервере VSFTP учетными записями входа можно управлять с помощью файла конфигурации vsftpd.ftpusers. Однако эта учетная запись находится в черном списке, и люди, включенные в эту учетную запись, не смогут использовать свою учетную запись для входа на FTP-сервер. После развертывания сервера VSFTP мы можем использовать команду vi, чтобы просмотреть файл конфигурации и обнаружить, что в нем уже имеется множество учетных записей по умолчанию. Среди них также есть суперпользователь root системы. Видно, что из соображений безопасности сервер VSFTP по умолчанию запрещает учетной записи root вход на FTP-сервер. Если системный администратор хочет разрешить системным учетным записям, таким как root, входить на FTP-сервер, ему или ей необходимо удалить root и другие связанные имена пользователей в этом файле конфигурации. Однако разрешение системной учетной записи войти на FTP-сервер отрицательно скажется на его безопасности. По этой причине я не рекомендую системным администраторам делать это. Администраторам лучше всего не изменять какие-либо связанные системные учетные записи в этом файле и сохранить настройки этих учетных записей.
Если по другим причинам вам необходимо отключить другие учетные записи, вы можете добавить имена учетных записей в этот файл. Например, на сервере одновременно могут быть развернуты FTP-сервер и сервер базы данных. Из соображений безопасности рекомендуется добавить учетную запись администратора базы данных в этот черный список.
2. Усилить контроль над анонимными пользователями.
Анонимные пользователи относятся к тем учетным записям, которые не были определены на FTP-сервере, и системному администратору FTP все равно необходимо, чтобы они вошли в систему для удобства управления. Но ведь они не получили авторизацию от сервера. Чтобы повысить безопасность сервера, их разрешения необходимо ограничить. На сервере VSFTP также имеется множество параметров, которые можно использовать для управления разрешениями анонимных пользователей. Системным администраторам необходимо выполнить соответствующую работу по настройке в зависимости от уровня безопасности FTP-сервера. Следует отметить, что чем строже контроль разрешений анонимных пользователей, тем выше безопасность FTP-сервера, но при этом снижается и удобство доступа пользователей. Поэтому в конечном итоге системным администраторам все равно необходимо найти баланс между безопасностью и удобством сервера.
Ниже приведены несколько конфигураций, которые я рекомендую анонимным пользователям. Если вы не знаете, как их настроить, вы можете обратиться к этим конфигурациям. Эти конфигурации учитывают безопасность сервера и удобство пользователя.
Одним из них является параметр anon_world_readable_only. Этот параметр в основном используется для контроля того, могут ли анонимные пользователи загружать читаемые файлы с FTP-сервера. Если FTP-сервер развернут на предприятии и в основном используется внутренними сотрудниками, лучше всего установить для этого параметра значение ДА. Затем поместите на него общие корпоративные формы и другие общедоступные документы, чтобы сотрудники могли скачать эти документы анонимно. Это не повлияет на безопасность FTP-сервера, но также облегчит работу другим сотрудникам.
Второй — параметр anon_upload_enable. Этот параметр указывает, могут ли анонимные пользователи загружать файлы на FTP-сервер с анонимным доступом. Обычно для этого параметра должно быть установлено значение Нет. То есть пользователям не разрешено загружать файлы при анонимном доступе. В противном случае, если кто-то сможет загрузить файл, то если другая сторона загрузит вирусный файл, компания пострадает. Поэтому анонимным пользователям следует запретить загрузку файлов. Но из этого есть исключения. Например, некоторые компании используют протокол FTP для резервного копирования файлов. В настоящее время, если безопасность корпоративной сети гарантирована, вы можете установить для этого параметра значение ДА, что позволит операционной системе вызывать команду FTP для резервного копирования файлов на FTP-сервере. При этом для упрощения развертывания процедур резервного копирования часто используется анонимный доступ. Поэтому анонимным пользователям необходимо разрешить загрузку файлов на FTP-сервер.
Третий — это параметр anon_other_write_enable и параметр anon_mkdir_write_enable. Эти два параметра в основном связаны с некоторыми относительно расширенными разрешениями анонимных пользователей. Например, первый параметр указывает, что анонимный пользователь имеет права, отличные от загрузки и создания подкаталогов, например, изменение имени файлов на FTP-сервере и т. д. Второй параметр указывает, что анонимные пользователи могут создавать подкаталоги при определенных обстоятельствах. Эти функции повлияют на безопасность FTP-сервера и безопасность файлов. По этой причине, если нет особой причины, эти разрешения следует отключить. То есть установите значения этих параметров на НЕТ. Я думаю, что если FTP-сервер не используется сисадмином для развлечения, то эти параметры можно включить. В противном случае лучше установить для этих параметров значение НЕТ, чтобы повысить безопасность FTP-сервера.
В общем, контроль над анонимными пользователями должен осуществляться по принципу минимальных привилегий. Поскольку анонимные пользователи — это пользователи, не авторизованные FTP-сервером, управление доступом на глубоком уровне невозможно. По этой причине им можно управлять только с помощью этих основных параметров.
3. Хорошо контролируйте каталог.
Обычно системным администраторам необходимо настроить разные корневые каталоги для каждого пользователя. В целях безопасности и для предотвращения вмешательства разных пользователей друг в друга системному администратору необходимо настроить так, чтобы пользователи не могли получить доступ к корневым каталогам других пользователей. Например, некоторые компании создают учетную запись FTP для каждого отдела, чтобы облегчить обмен файлами. Тогда отдел продаж Sales имеет корневой каталог Sales; отдел склада имеет корневой каталог Ware. Как сотрудники отдела продаж они могут получить доступ к любому подкаталогу в своем корневом каталоге, но не могут получить доступ к корневому каталогу пользователя хранилища Ware. В этом случае сотрудники отдела продаж не смогут получить доступ к файлам пользователя склада. Видно, что, ограничивая пользователям доступ к каталогам, отличным от корневого каталога, можно предотвратить вмешательство разных пользователей друг в друга и повысить безопасность файлов на FTP-сервере. Для достижения этой цели параметр chroot_local_user может быть установлен в значение NO. После этой настройки все пользователи, вошедшие в систему локально, не смогут входить в другие каталоги, кроме корневого каталога. Однако при выполнении этого контроля лучше всего создать каталог, к которому каждый сможет получить доступ, для хранения некоторых общедоступных файлов. Мы должны обеспечить безопасность сервера, не влияя на нормальный обмен и передачу файлов.
4. Ограничьте скорость передачи.
Иногда, чтобы обеспечить стабильную работу FTP-сервера, необходимо ограничить скорость загрузки и скачивания файлов. Например, на одном сервере отдельно разворачиваются FTP-сервер, почтовый сервер и т. д. Чтобы эти сервисы приложений могли мирно сосуществовать, необходимо контролировать их максимальную скорость передачи. Потому что пропускная способность одного и того же сервера имеет максимальный предел. Если служба приложений занимает относительно большую полосу пропускания, это окажет негативное влияние на другие службы приложений и даже приведет к тому, что другие службы приложений не смогут нормально реагировать на потребности пользователей. Другой пример: иногда FTP необходимо установить ограничения максимальной скорости в зависимости от его цели. Если FTP используется для резервного копирования файлов, загрузки и скачивания файлов одновременно, то для повышения эффективности резервного копирования файлов и сокращения времени резервного копирования необходимо ограничить максимальную скорость загрузки и скачивания файлов.
Чтобы реализовать ограничение скорости передачи, системный администратор может установить параметр local_max_rate. По умолчанию этот параметр не включен, то есть ограничения максимальной скорости нет. Однако, исходя из вышеизложенных причин, я все же рекомендую системным администраторам установить этот параметр перед запуском FTP-сервера в эксплуатацию. Предотвратите негативное влияние на другие службы приложений из-за чрезмерного потребления полосы пропускания для загрузки и скачивания. Системным администраторам необходимо добиться баланса между различными службами приложений и разумно распределять полосу пропускания. По крайней мере, убедитесь, что каждая служба приложений может нормально реагировать на запросы клиентов. Кроме того, по возможности необходимо осуществлять работу во внепиковое время. Например, на одном хосте одновременно развернуты почтовый сервер и FTP-сервер. FTP-сервер в основном используется для резервного копирования файлов. Поэтому, чтобы предотвратить негативное влияние резервного копирования файлов на отправку и получение электронной почты (поскольку резервное копирование файлов требует относительно большой пропускной способности, что значительно снижает скорость отправки и получения электронной почты), лучше всего отделить резервное копирование файлов от пикового периода. отправки и получения электронной почты. Если пиковое время отправки и получения электронной почты обычно приходится на утро, когда вы идете на работу, не используйте службу FTP для резервного копирования файлов. Во время обеденного перерыва я обычно отправляю и получаю меньше писем. На этом этапе вы можете использовать FTP для резервного копирования файлов. Таким образом, если FTP-сервер и другие службы приложений работают в непиковое время, тариф можно установить выше, чтобы повысить эффективность работы службы FTP. Разумеется, это предъявляет достаточно высокие требования к системным администраторам. Потому что системным администраторам необходимо анализировать различные приложения, а затем составлять комплексные планы на основе развертывания серверов. Если нет более высоких мер и лучших условий, необходимо максимизировать скорость передачи данных FTP-сервера. В противном случае это окажет крайне негативное влияние на другие информационные службы, развернутые на предприятии, и вызовет перегрузку сети предприятия.