Вступление
Intranets - это частные сети, созданные организациями для облегчения связи и передачи данных. Интранет создается путем соединения нескольких сетей по всему миру для создания новой виртуальной сети. Пользователи, подключенные к интрасети, могут получить доступ к определенным внутренним веб-сайтам или получить доступ к другим сетевым службам и контенту в интрасети. Например, если сотрудник за пределами площадки хочет получить доступ к конфиденциальной информации, расположенной в основной сети своего работодателя, он подключится к VPN-серверу, расположенному в основной сети в офисе. Это VPN-соединение создаст безопасный туннель между сотрудником и офисом. В сети подключение сотрудника будет выглядеть так, как если бы оно было локально подключено к основной сети и не использовало удаленное подключение.
В этом руководстве вы настроите службы, доступные только клиентам, подключенным к VPN, включая общие папки и веб-сайт, а также узнаете, как управлять доступом к этим ресурсам. Когда вы закончите, у вас будет базовая интрасеть, которую вы легко сможете расширить в соответствии со своими потребностями.
Предпосылки
Для завершения этого урока вам понадобится следующее:
-
Новый сервер Ubuntu 16.04.
-
Учетная запись стандартного пользователя с привилегиями
sudo
. Вы можете настроить стандартную учетную запись, выполнив шаги 2 и 3 руководстваInitial Server Setup with Ubuntu 16.04. -
OpenVPN установлен и настроен на вашем сервере. Прежде чем продолжить, прочтите руководствоHow to Set Up an OpenVPN Server on Ubuntu 16.04. Предположим, что VPN-сервер расположен по IP-адресу
10.8.0.1
в VPN, который является адресом, используемым в учебнике OpenVPN, и что вы можете подключиться к VPN со своего локального компьютера. -
Зарегистрированное доменное имя и доступ для добавления записей DNS. В этом руководстве мы будем использовать
example.com
, а также службу DNS DigitalOcean. Чтобы использовать службу DNS DigitalOcean с вашим доменом, выполните шаги 1 и 2 нашего руководстваHow To Set Up a Host Name with DigitalOcean, чтобы указать свое доменное имя на серверах имен DigitalOcean. -
Apache установлен с двумя виртуальными хостами, настроенными для вашего домена. Следуйте руководствуHow to Set Up Apache Virtual Hosts on Ubuntu 16.04, чтобы настроить два виртуальных хоста с именами
example.com
иintranet.example.com
, каждый со своей HTML-страницей по умолчанию.
[[step-1 -—- install-and-configuring-a-samba-file-server]] == Шаг 1. Установка и настройка файлового сервера Samba
Давайте начнем с настройки Samba, чтобы люди в нашей интрасети могли обмениваться файлами. Samba отличается от других приложений для обмена файлами, таких как Dropbox, тем, что у нее нет веб-интерфейса или ограничений на хранение. Вместо этого Samba предоставляет общий доступ к каталогам и файлам на самом сервере, поэтому вам не нужно загружать свои данные на внешние серверы, которые вы не контролируете.
Мы создадим два общих каталога. Первый каталог будет доступен всем пользователям нашей частной сети. Второй каталог будет доступен только указанным нами пользователям. Назовем эти долиAllusers
иRestricted
соответственно.
Сначала установите Samba и его компоненты с помощью следующей команды:
sudo apt-get install samba samba-common python-glade2 system-config-samba
Затем сделайте резервную копию конфигурационного файла Samba на тот случай, если мы сделаем ошибку, когда изменим его позже.
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup
Samba также нуждается в доступе через брандмауэр, поэтому добавьте правило для трафика Samba:
sudo ufw allow samba
Теперь создайте каталоги, которыми мы поделимся. Сначала создайте каталогallusers
:
sudo mkdir -p /samba/allusers
Затем создайте каталогrestricted
:
sudo mkdir -p /samba/restricted
Теперь давайте отредактируем файл конфигурации Samba, чтобы настроить службу и определить общие ресурсы. Откройте файл конфигурации Samba:
sudo nano /etc/samba/smb.conf
Затемdelete all the content, поскольку мы будем писать нашу собственную конфигурацию с нуля по частям.
Сначала мы указываем некоторые глобальные настройки для сервера Samba. Добавьте следующие строки в файл конфигурации:
/etc/samba/smb.conf
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = ubuntu
security = user
map to guest = bad user
dns proxy = no
interfaces = 10.8.0.1/8
bind interfaces only = yes
Давайте разберем каждый параметр:
Параметрworkgroup
указывает рабочую группу, в которой будет отображаться сервер при запросе клиентов. Группа по умолчанию - WORKGROUP для Windows, но вы можете изменить ее, если у вас уже есть имя рабочей группы, которое вы используете.
Строкиserver string
иnetbios
указывают имя сервера Samba и его платформу соответственно.
Параметрsecurity
указывает, что это будет автономный файловый сервер со своими собственными учетными записями пользователей. Параметрmap to guest
рассматривает все входы в систему с недопустимым именем пользователя или паролем как гостевые пользователи, а параметрdns proxy
указывает Samba не пытаться разрешать имена доменов, поскольку мы не используем собственный DNS для этой интрасети.
Параметрinterfaces
указывает, что мы прослушиваем только подключения, использующие IP-адрес VPN-сервера, а не общедоступный IP-адрес. bind interface
указывает Samba прослушивать только запросы, исходящие из нашей VPN.
Далее нам нужно указать параметры ведения журнала для Samba. Добавьте этот блок конфигурации в файл в разделе[global]
:
/etc/samba/smb.conf
[global]
...
## Logging
log level = 2
log file = /var/log/samba.log.%m
max log size = 50
debug timestamp = yes
Параметрlog level
определяет уровень детализации ваших файлов журнала. Эти уровни варьируются от 1 до 10, но мы будем придерживаться уровня 2, так как это относительно легкий уровень отладки. Параметрlog file
указывает путь к файлу и имя файла журнала, аmax log size
ограничивает размер файла журнала. Параметрdebug timestamp
включает отметки времени в журнале.
Это заботится о глобальных настройках нашего сервера. Теперь давайте создадим фактические определения общего ресурса. Эти настройки определяют файлы, которыми мы хотим поделиться, и кому разрешен доступ к этим файлам.
Мы хотим две акции; один называетсяAllusers
, а другой -Restricted
. Давайте сначала определим долюAllusers
. Для этого общего ресурса пользователи могут просматривать, записывать и читать файлы в каталоге/samba/allusers
. Добавьте эту конфигурацию в файл:
/etc/samba/smb.conf
#============ Share Defenitions ==================
[Allusers]
path = /samba/allusers
browsable = yes
writable = yes
guest ok = yes
read only = no
force user = nobody
Блок[Allusers]
указывает, что следующие настройки применимы только к долеAllusers
. Он также определяет имя общего ресурса, который увидят пользователи. Параметрpath
указывает файловый каталог папки, к которой мы хотим предоставить общий доступ в нашей интрасети. Установкаbrowsable
иwritable
наyes
дает пользователям разрешение на просмотр в этой папке, а также на чтение и запись файлов.
Мы хотим, чтобы все пользователи имели доступ к этой общей папке, даже если у них нет учетной записи на сервере. Помните, что в разделеglobal
мы указали параметрmap to guest
, что означает, что пользователи, у которых нет учетной записи или действительных учетных данных, могут по-прежнему получать доступ к файлам, к которым предоставлен общий доступ в качестве гостя. Мы разрешаем этим гостям получить доступ к этой общей папке, установивguest ok
наyes
, а затем заставляем этого пользователя принять идентичностьnobody
сforce user = nobody
.
Группа пользователейnobody
- известная группа пользователей по умолчанию в любой системе Linux. Мы можем установить желаемые разрешения для папки/samba/allusers
пользователюnobody
. Затем с помощью Samba мы разрешаем нескольким гостям использовать эту личность. Таким образом, мы можем легко управлять доступом гостевых пользователей к нашей системе.
Для получения дополнительной информации о пользователеnobody
посетитеthe Ubuntu wiki иthis answer on StackExchange.
Теперь давайте создадим общую папкуRestricted
, которая должна быть доступна только членам группыsmbrestricted
:
/etc/samba/smb.conf
[Restricted]
path = /samba/restricted
valid users = @smbrestricted
guest ok = no
writable = yes
browsable = yes
И снова мы начинаем с указания каталога, которым хотим поделиться, и предоставления разрешений на просмотр и запись, как мы это сделали с общим ресурсомallusers
. Затем мы устанавливаемvalid users = @smbrestricted
, что указывает Samba разрешить доступ к общему ресурсу только членам группыsmbrestricted
. Мы создадим эту группу в ближайшее время.
Это касается файлаsmb.conf
. Ваш файл должен выглядеть следующим образом:
/etc/samba/smb.conf
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = ubuntu
security = user
map to guest = bad user
dns proxy = no
interfaces = 10.8.0.1/8
bind interfaces only = yes
## Logging
log level = 2
log file = /var/log/samba.log.%m
max log size = 50
debug timestamp = yes
#============ Share Defenitions ==================
[Allusers]
path = /samba/allusers
browsable = yes
writable = yes
guest ok = yes
read only = no
force user = nobody
[Restricted]
path = /samba/restricted
valid users = @smbrestricted
guest ok = no
writable = yes
browsable = yes
Имея конфигурацию Samba, мы можем создать группуsmbrestricted
и создать нашего первого пользователя.
[[step-2 -—- configuring-access-to-samba-share]] == Шаг 2 - Настройка доступа к общим ресурсам Samba
Чтобы разрешить доступ к нашим общим ресурсам, мы должны создать учетную запись пользователя и применить соответствующие разрешения к папкам, которые мы планируем предоставить для общего доступа.
Сначала создайте группуsmbrestricted
с помощью следующей команды:
sudo addgroup smbrestricted
Теперь создайте учетную запись пользователя на сервере и добавьте ее в группуsmbrestricted
. Мы создадим учетную запись дляclient1
, которая соответствует имени VPN-соединения, созданного в предварительном руководстве:
sudo useradd client1 -G smbrestricted
Наконец, нам нужно назначить пароль Samba дляclient1
. С настроенной нами конфигурацией Samba использует собственную систему проверки учетных данных, которая отделена от обычной системы проверки Linux. Это хорошо, потому что мы можем создавать пользователей, которые могут получать доступ к общим файлам с помощью Samba, не давая им доступа для входа на саму машину.
Создайте пароль Samba для пользователяclient1
с помощью следующей команды:
sudo smbpasswd -a client1
[.note] #Note: Если в вашей системе есть пользователи, которым вы хотели бы также иметь доступ к общим ресурсам Samba, вам также необходимо создать пароль Samba для этих пользователей, поскольку вход в систему системы разделены с этой конфигурацией.
#
Затем мы устанавливаем разрешения для каталогов, которые мы хотим поделиться. Сначала мы установим разрешения для каталогаallusers
:
sudo chmod -R 766 /samba/allusers
sudo chown -R nobody:nogroup /samba/allusers
Это дает владельцу каталога полные разрешения, а права чтения и записи предоставляются только группе и всем остальным. Затем мы меняем владельца и группу общего каталога наnobody:nogroup
с помощью командыchown
.
Однако есть небольшая проблема с изменением владельца и группы наnobody:nogroup
. Командаchmod -R 766
предоставляет разрешения на чтение и запись только для текущих и новых файлов / каталогов в каталоге/samba/allusers
, независимо от того, кто создал эти файлы или каталоги. Это означает, что как только вы попытаетесь создать новый файл в папке, расположеннойwithin в каталоге/samba/allusers
, вы получите ошибку недостаточных разрешений. Помните, что когда вы работаете с общей папкойAllusers
, вы предполагаете, что идентичностьnobody
, а уnobody
очень ограниченные разрешения.
Чтобы решить эту проблему, мы используемAccess Control Lists или ACL. Правила ACL позволяют нам автоматически назначать разрешения для пользователя и / или группы вновь создаваемым файлам и каталогам.
Установите правила ACL для папки/samba/allusers
с помощью следующих команд:
sudo setfacl -dm g:nogroup:rw /samba/allusers/
sudo setfacl -dm u:nobody:rw /samba/allusers/
Командаsetfacl -dm
указывает, что мы определяем новые правила разрешений для каталога или файла, и что в будущем эти разрешения должны применяться и к вновь созданным объектам. g:nogroup:rw
иu:nobody:rw
- это новые правила ACL, предоставляющие разрешения на чтение и запись пользователюnobody
и членам группыnogroup
.
Вы можете узнать больше о ACL изUbuntu Wiki.
Это заботится о гостевой доле. Теперь мы можем установить разрешения для каталогаrestricted
:
sudo chmod -R 770 /samba/restricted
sudo chown root:smbrestricted /samba/restricted
На этот раз мы полностью блокируем доступ к этому каталогу, за исключением владельца и членов группыsmbrestricted
сchmod 770
. Нам не нужно устанавливать правила ACL, потому что разрешения обычно работают в этой общей папке, так как мы используем аутентифицированные учетные записи пользователей.
Теперь, когда у нас настроены общие ресурсы, перезапустите сервер Samba, чтобы он использовал новый файл конфигурации:
sudo service smbd restart
Теперь мы можем подключиться к серверу Samba для загрузки или скачивания файлов.
[[step-3 -—- connected-to-the-samba-server-from-a-client]] == Шаг 3. Подключение к серверу Samba от клиента
Целью нашей интрасети является доступ к файлам и обмен ими в безопасной среде, как если бы мы были подключены к основной сети. Когда клиент подключается к Samba, он монтирует общие каталоги в проводнике файлов этого клиента. Давайте проверим это.
Подключение из Windows
Для подключения из Windows откройте проводник Windows. На панели навигации введите адрес сервера Samba,\10.8.0.1
и нажмите клавишуEnter
.
Подключение Windows может занять несколько минут. После успешного подключения вы увидите общие папки, размещенные в интрасети:
Обратите внимание, что новая точка подключения к сети создается на вкладкеNetwork на панели инструментовQuick access. Имя точки подключения -10.8.0.1
, то же самое, что и IP-адрес VPN.
Вы получаете доступ к общему ресурсуAllusers
так же, как и к любой другой папке, поскольку учетные данные не требуются. Просто дважды щелкните по папке, чтобы просмотреть ее содержимое:
Чтобы получить доступ к общему ресурсуRestricted
, дважды щелкните папку с именемRestricted
. Появится всплывающее окноWindows Security, в котором сообщается, что для получения доступа требуются сетевые учетные данные.
Введите имя пользователя и пароль для пользователя, которого вы создали, и при необходимости установите флажок, чтобы запомнить свои учетные данные. Затем щелкнитеOk для подключения.
После подключения вы можете создавать новые файлы или папки или даже перетаскивать папки на сервер, чтобы загружать их.
Подключение из Ubuntu
Чтобы подключиться из Ubuntu, откройте проводник и выберите параметрConnect to Server на боковой панели слева. Это открывает новый экран, где мы можем ввести адрес сервера.
Введитеsmb://10.8.0.1/
и нажмите кнопкуConnect в правом нижнем углу. Подключение вашего компьютера к серверу может занять несколько секунд в зависимости от скорости вашего соединения. Когда вы подключитесь, появится экран, показывающий все общие каталоги на сервере:
Чтобы получить доступ к общему ресурсуAllusers
, просто дважды щелкните папку. Появится экран входа в систему с запросом имени пользователя и пароля. Общий ресурсAllusers
не требует имени пользователя и пароля, поэтому вы должны выбратьAnonymous для параметраConnect As. ЩелкнитеConnect, и он откроет для вас общий каталог.
Обратите внимание, как эти общие каталоги монтируются в вашей файловой системе после того, как вы получили к ним доступ. Общий ресурсAllusers
монтируется как сетевой диск вместе с другими локальными дисками.
Привод будет оставаться подключенным до тех пор, пока система не будет перезапущена или диск не будет отключен.
Чтобы получить доступ к общему ресурсуRestricted
, вам потребуется действующее имя пользователя и пароль для входа. Дважды щелкните долюRestricted
, и снова появится экран входа в систему. Для параметраConnect As выберитеRegistered User и введите имя пользователя и пароль
в соответствующие поля, оставив параметрDomain как есть. Затем нажмитеConnect, и вы получите доступ к общим файлам.
Подключение с Mac
Чтобы подключиться с вашего Mac, откройте Finder, выберите менюGo и выберитеConnect to Server…. Затем используйтеsmb://10.8.0.1/
дляServer Address:
Остальная часть процесса подключения идентична процессу подключения из Linux или Windows. Вам будет предложено ввести имя пользователя и пароль, и вы сможете просматривать и подключаться к доступным общим ресурсам.
Это заботится о вашем файловом сервере. Теперь давайте рассмотрим, как настроить Apache для внутреннего и внешнего размещения сайтов на одном сервере.
[[шаг-4 -—- configuring-access-to-apache-virtual-hosts]] == Шаг 4. Настройка доступа к виртуальным хостам Apache
До этого урока вы создали два виртуальных хоста, которые мы настроим для использования на нашем сервере. Первый хост,example.com
, будет доступен широкой публике. Это может быть основной общедоступный веб-сайт для вашего домена. Второй хост,intranet.example.com
, будет доступен только клиентам, подключенным к интрасети.
Чтобы ограничить доступ кintranet.example.com
, мы отредактируем файл конфигурации для этого виртуального хоста. Откройте файл/etc/apache2/sites-available/intranet.example.com.conf
:
sudo nano /etc/apache2/sites-available/intranet.example.com.conf
Затем измените объявлениеVirtualHost
следующим образом:
example.com.conf’>/etc/apache2/sites-available/intranet.example.com.conf
к этому:
example.com.conf’>/etc/apache2/sites-available/intranet.example.com.conf
До этого изменения Apache обслуживал запросыinternal.example.com
на всех сетевых интерфейсах. После этого изменения он обслуживает только запросы в нашем интерфейсе интрасети. Это похоже на конфигурацию, которую мы использовали для Samba.
Сохраните файл и перезапустите службу Apache:
sudo systemctl restart apache2
Нам также нужно разрешить соединения через UFW для правильной работы Apache. Если вы этого еще не сделали, выполните эту команду, чтобы разрешить трафик через брандмауэр для Apache:
sudo ufw allow http
И если вы планируете разрешить HTTPS-трафик, разрешите это сейчас или настройте его позже:
sudo ufw allow https
Теперь давайте настроим доменные имена, чтобы мы могли более легко получить доступ к нашим ресурсам.
[[step-5 -—- configuring-domain-names]] == Шаг 5. Настройка доменных имен
На этом шаге мы настроим наше доменное имя для перенаправления трафика в интрасеть, одновременно обслуживая общедоступный веб-сайт. Перед началом этой статьи вы должны были указать ваше доменное имя на серверах имен DigitalOcean.
[.note] #Note: Если у вас есть собственные DNS-серверы, вы захотите сделать эти настройки в панели управления вашего DNS-провайдера.
#
Войдите в свою учетную запись DigitalOcean и щелкните вкладкуNetworking на верхней панели. Вы увидите экран, подобный следующему:
Чтобы добавить домен в свою учетную запись DigitalOcean, введите свое доменное имя в первое поле под заголовкомAdd a domain. Во втором поле введитеpublic IP вашего интранет-сервера и нажмите кнопкуCreate record.
Ваше новое доменное имя появится под подзаголовкомDomains, как на втором рисунке. Теперь щелкнитеMore рядом с доменом, который вы хотите использовать, а затем выберитеView domain.
Это откроет страницу настроек для этого конкретного домена.
Нам нужно добавить три записи для этого домена. Один для Интранета и еще два для обеспечения правильного разрешения запросов на наш общедоступный веб-сайт.
Сначала создайте запись для интранета.
-
Щелкните оранжевое поле «A» подSelect record type.
-
Введите
intranet
в полеEnter Name. -
В качестве IP-адреса введитеprivate IP address для вашего сервера, который должен быть
10.8.0.1
.
Далее нам нужна запись, которая направляет не интранет-трафик в нужное место. Создайте еще одну запись «A», задайте имя@
и установите IP-адрес вашего сервераpublic IP.
Наконец, создайте запись CNAME дляwww
. Щелкните вкладку CNAME в верхнем углу, установите имяwww
и введите имя своего домена (example.com
в качестве имени хоста:
Когда вы закончите, ваши доменные записи должны выглядеть следующим образом:
A-записьintranet
направляет запросы кintranet.example.com
, только если она исходит от сервера VPN. Это означает, что только клиенты, подключенные к VPN, смогут получить доступ к веб-контенту, размещенному наintranet.example.com
. Вторая запись «А» и CNAME записывают прямой трафик, который не имеет доступа к интрасети на общедоступный веб-сайт.
[.note] #Note: распространение этих изменений DNS может занять до 72 часов.
#
Зайдите в свой браузер и посетитеhttp://intranet.example.com
without being connected to the VPN. Вы должны увидеть, что ваш браузер пытается загрузить веб-страницу только для того, чтобы вернуть ошибку. Теперьconnect to your VPN и перезагрузите веб-страницу. Теперь вы можете получить доступ к веб-странице, поскольку запись DNS будет разрешена.
Теперь, когда мы тщательно настроили и протестировали нашу интрасеть, давайте посмотрим, как мы управляем доступом к этой недавно созданной сети.
[[шаг-6 -—- управление-доступом-к-интрасети]] == Шаг 6 - Управление доступом к интрасети
Последний шаг в этом руководстве будет посвящен управлению доступом к нашей внутренней сети и ее общим файлам. Сначала мы рассмотрим, как отзывать клиентские сертификаты для доступа VPN. Затем мы рассмотрим, как удалить пользователей из группыsmbrestricted. Наконец, мы рассмотрим добавление дополнительных пользователей и предоставление им необходимого им доступа.
Отмена VPN-доступа
Чтобы отозвать доступ к VPN, мы бы отозвали сертификат клиента. Это позволяет нам запретить доступ к нашей интрасети без создания новых сертификатов для любых других клиентов или серверов.
Во-первых, нам нужно добавить дополнительную строку в файл конфигурации нашего VPN-сервера, чтобы мы могли отозвать любой сертификат клиента без изменения исходного сертификата CA или сертификата сервера. Это значительно упрощает контроль доступа
, поскольку теперь вы можете легко отозвать один сертификат на лету, не прерывая других клиентских подключений.
Откройте файл конфигурации VPN:
sudo nano /etc/openvpn/server.conf
Добавьте следующую строку кода в конец файла:
/etc/openvpn/server.conf
crl-verify crl.pem
Это указывает серверу VPN искать файлcrl.pem
, который представляет собой список отозванных сертификатов. Он будет содержать список всех сертификатов, которым больше не разрешен доступ к нашей VPN.
Сохраните и закройте файл конфигурации, но пока не перезагружайте сервер; нам нужно создать файлcrl.pem
, который ищет наша конфигурация.
Чтобы создать этот файл, перейдите в каталог~/openvpn-ca/
на вашем сервере:
cd ~/openvpn-ca/
Представим, что нам нужно отозвать сертификатыclient1, потому что они больше не работают в нашей организации. Для этого выполните следующие команды:
source vars
./revoke-full client1
Вы увидите следующий вывод:
OutputUsing configuration from /home/intranetexapmle/openvpn-ca/openssl-1.0.0.cnf
Revoking Certificate 02.
Data Base Updated
Using configuration from /home/intranetexample/openvpn-ca/openssl-1.0.0.cnf
client1.crt: C = US, ST = NY, L = New-York City,
error 23 at 0 depth lookup:certificate revoked
Последняя строка вывода должна указыватьalways наerror 23. Эта ошибка только подтверждает, что сертификаты были отозваны.
Это также создаетcrl.pem
в каталоге~/openvpn-ca/keys/
. Чтобы убедиться, что сертификаты отозваны, откройте файлkeys/index.txt
в любом текстовом редакторе или отобразите его содержимое с помощьюcat
:
cat keys/index.txt
Рядом с клиентом будет буква «R», сертификаты которой мы отозвали:
OutputV 260904153313Z 01 unknown /C=US/ST=NY/L=New York/O=DigitalOcean/OU=Community/CN=server/name=server/[email protected]
R 260904172539Z 160915150543Z 02 unknown /C=US/ST=NY/L=New York/O=DigitalOcean/OU=Community/CN=client1/name=server/[email protected]
Теперь скопируйте файлcrl.pem
в каталог/etc/openvpn/
, где мы сказали нашему серверу OpenVPN искать файл:
sudo cp keys/crl.pem /etc/openvpn/
Затем перезапустите сервер OpenVPN, чтобы опция отзыва сертификата вступила в силу.
sudo systemctl restart openvpn@server
Сервер OpenVPN обращается к файлуcrl.pem
каждый раз, когда устанавливается новое соединение с сервером. Каждый раз, когда вы отзываете сертификаты клиента, вы заменяете старый файлcrl.pem
новым. Вам не нужно перезагружать сервер.
Важно отметить, что после отзыва сертификата VPN его нельзя будет повторно использовать в будущем. Клиенту, чей VPN-сертификат был отозван, потребуется новый сертификат, если мы хотим, чтобы они могли снова подключиться к сети.
Блокировка доступа пользователя к ограниченному общему ресурсу.
Мы создали общий каталог, доступный только пользователям в группеsmbrestricted. Чтобы запретить доступ пользователю, уже находящемуся в этой группе, мы удаляем пользователя из этой группы. Например, чтобы удалитьclient1, используйте следующую команду:
sudo deluser client1 -G smbrestricted
Вы увидите следующий вывод:
OutputRemoving user `client1' from group `smbrestricted' ...
Done.
Если вы не уверены, что пользователь уже включен в группу, или хотите дважды проверить, был ли удален пользователь, вы можете использовать командуmembers
:
sudo apt-get install members
members smbrestricted
Любые пользователи в группе будут отображаться на экране.
Добавление нового пользователя в интранет
Каждому новому пользователю интрасети потребуется собственный сертификат VPN, поэтому вы должны следовать инструкциям в руководствеHow to Set Up an OpenVPN Server on Ubuntu 16.04, исходя из предварительных требований для каждого пользователя. Например, чтобы создать пользователя с именемclient2
, вы должны сделать следующее:
Сначала соберите ключ:
cd ~/openvpn-ca
./build-key client2
Затем сгенерируйте конфигурацию клиента:
cd ~/client-configs
./make_config.sh client2
Затем на локальном компьютере загрузите конфигурацию клиента:
sftp sammy@openvpn_server_ip:client-configs/files/client2.ovpn ~/
Чтобы предоставить новому пользователю доступ к файлам с ограниченным доступом, выполните те же действия, которые вы использовали дляclient1 в разделе Samba этого руководства:
-
Создайте пользователя и добавьте его в группу
smbrestricted
. -
Создайте пароль Samba для пользователя с
smbpassword
. -
Проверьте соединение.
Затем повторите этот процесс для каждого пользователя, которого нужно добавить.
Заключение
Вы успешно создали и защитили свою собственную частную интрасеть, используя OpenVPN, Samba и Apache. У вас есть внутренний веб-сайт и два файловых ресурса.
То, куда вы пойдете дальше, зависит от того, для чего вы будете использовать свою интрасеть. Поскольку большинство серверных приложений используют веб-страницу для отображения информации, вы можете ограничить доступ к этой странице с помощью конфигурации виртуального хоста, аналогичной той, которую мы использовали в этом руководстве. Вы можете расширить свою сеть, разместив несколько служб из внутренней социальной сети, Wiki или службы электронной почты, чтобы назвать несколько. А для еще более эффективного управления общими файлами вы можете загрузить и установитьSamba Web Administration Tool. Используя то, что вы узнали здесь, вы сможете настроить любое количество сервисов для использования с вашей новой интрасетью.