
- •2. Версии iPv4 и iPv6
- •3. Пакеты и их инкапсуляция
- •4. Адресация пакетов
- •Глава 14. Сети tcp/ip 505
- •6. Cidr: протокол бесклассовой междоменной маршрутизации
- •7. Частные адреса и система nat
- •8. Маршрутизация
- •9. Таблицы маршрутизации
- •10. Arp: протокол преобразования адресов
- •11. Dhcp: протокол динамического конфигурирования узлов
- •12. Ррр: протокол двухточечного соединения
- •13. Команда ifconfig: конфигурирование сетевых интерфейсов
- •14. Демоны маршрутизации
- •Глава 15. Маршрутизация 571
- •15. Основные протоколы маршрутизации
- •Глава 15. Маршрутизация 567
- •16. Технология Ethernet: сетевая панацея
- •17. Беспроводной стандарт: локальная сеть для кочевников
- •18. Dsl и кабельные модемы: “последняя миля” 8
- •Глава 16. Сетевые аппаратные средства 593
- •20. Основные задачи системы dns
- •Глава 18. Сетевой протокол Network File System 737
- •22. Серверная часть протокола nfs
- •Глава 18. Сетевой протокол Network File System 745
- •23. Клиентская часть протокола nfs
- •Глава 18. Сетевой протокол Network File System 753
- •24. Ldap: упрощенный протокол доступа к каталогам
- •25. Структура данных ldap
- •Глава 19. Совместное использование системных файлов 775
- •26. Nis: Сетевая информационная служба
- •27. Системы электронной почты
- •Глава 20. Электронная почта 789
- •28. Протоколы smtp, pop3.
- •30. Почтовые серверы
- •Часть II. Работа в сети
- •31. Cпам и вредоносные программы
- •Глава 20. Электронная почта 813 ip range
- •32. Фильтрация почты
- •33. Почтовый агент sendmail
- •34. Почтовый агент Postfix
- •Глава 20. Электронная почта 877
- •35. Поиск неисправностей в сетях
- •Глава 21. Управление сетями 911
- •36. Kоманда traceroute: трассировка ip-пакетов
- •Глава 21. Управление сетями 915
- •37. Команда netstat: получение информации о состоянии сети
- •Глава 21. Управление сетями 919
- •39. Snmp: простой протокол управления сетями
- •40. Протокол NetFlow: мониторинг соединений
- •Глава 21. Управление сетями 939
- •41. Ключевые аспекты безопасности
- •Глава 22. Безопасность 951
- •42. Пароли и учетные записи пользователей
- •43. Эффективное использование команды chroot
- •44. Команда nmap: сканирование сетевых портов
- •45. Bro: программная система для распознавания вторжения в сеть
- •Глава 22. Безопасность 967
- •46. Мандатное управление доступом
- •47. Ssh: безопасная оболочка
- •48. Брандмауэры
- •Глава 22. Безопасность 983
- •49. Функциональный стек lamp
- •50. Обнаружение ресурсов в сети веб
- •Глава 23. Веб-хостинг 1003
- •51. Принцип работы http
- •52. Конфигурирование сервера Apache
- •Глава 23. Веб-хостинг 1011
- •53. Виртуальные интерфейсы
- •54. Протокол Secure Sockets Layes
- •Глава 23. Веб-хостинг 1017
54. Протокол Secure Sockets Layes
Протокол SSL защищает соединения между веб-сайтом и клиентским браузером. Эту технологию используют универсальные указатели ресурса, начинающиеся с префик са https://. Протокол SSL использует алгоритмы криптографии для предотвращения перехвата, взлома и подделки сообщений.
Браузер и сервер используют схему аутентификации с помощью сертификата, после которой они переключаются на более быстродействующую схему шифрования для за щиты реального соединения.
Протокол SSL выполняется на отдельном уровне, лежащем ниже уровня протоко ла приложения HTTP. Он просто обеспечивает защиту соединения и не вмешивается в трансакцию HTTP. Благодаря такой аккуратной схеме, протокол SSL может защищать не только HTTP, но и другие протоколы, такие как SMTP и FTP. Более подробную ин формацию можно найти в Википедии в статье “Secure Sockets Layer.”4
В первые годы использования протокола SSL большинство ключей симметричного шифрования были относительно слабыми и состояли из 40 бит, потому что правитель ство США наложило ограничения на экспорт криптографической технологии. После многолетних переговоров и судебных исков, правительство ослабило некоторые огра ничения экспорта, позволив реализовать протокол SSL с использованием 128-битовых симметричных ключей.
Генерирование файла Certificate Signing Request
Владелец веб-сайта, использующий протокол SSL, должен сгенерировать цифровой файл Certificate Signing Request (CSR), содержащий открытый ключ и название компа нии. Этот “сертификат” должен быть “подписан” доверенным источником, известным как Certificate Authority (СА). Сертификат, подписанный источником сертификатов, со держит открытый ключ сайта, а также подтверждение подлинности источника.
4 Transport Layer Security (TLS) — это протокол, являющийся преемником протокола SSL. Он реализован во всех современных браузерах. Однако сообщество пользователей сети веб по- прежнему называет его SSL.
Глава 23. Веб-хостинг 1017
Веб-браузеры имеют встроенные списки источников СА, подписанные сертификаты которых они будут принимать. Браузер, знающий источник сертификата для вашего сай та, может верифицировать подпись вашего сертификата и получить ваш открытый ключ, тем самым позволив посылать сообщения, которые может расшифровать только ваш сайт. Кроме того, вы действительно можете подписывать ваш собственный сертификат. Получив сертификат от какого-либо непризнанного источника, большинство браузеров сообщает пользователю о том, что этот сертификат является подозрительным. В ком мерческих приложениях такая ситуация, очевидно, представляет проблему. Однако, если вы хотите подписывать сертификаты для внутреннего использования и тестирования, изучите документ httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts.
Вы можете получить подпись сертификата от любого источника сертификатов. Введите в поисковой строке Google слова “SSL certificate” и выберите любую ссылку. Реальное различие между источниками сертификатов заключается в объеме работы, которую они выполняют для проверки вашей идентичности; гарантиях, которые они предоставляют; и количестве браузеров, которые они поддерживают изначально (боль шинство источников сертификатов поддерживают практически все браузеры).
Создание сертификата, который будет послан источнику сертификатов, является довольно простой процедурой. Необходимо инсталлировать пакет OpenSSL, который по умолчанию есть в большинстве систем. Затем необходимо выполнить следующие действия.
Сначала, создайте 1024-битовый закрытый ключ RSA для своего веб-сервера Apache.
$ openssl genrsa -des3 -out server.key 1024
Вам предложат войти и подтвердить пароль для шифрования серверного ключа. Ско пируйте файл server.key в безопасное место (которое доступно только суперпользо вателю) и запомните введенный пароль. Интересующиеся пользователи могут увидеть многочисленные детали ключа с помощью следующей команды.
$ openssl rsa -noout -text -in server.key
Затем создайте файл Certificate Signing Request (CSR), содержащий серверный ключ, который вы только что сгенерировали.
$ openssl req -new -key server.key -out server.csr
Когда увидите приглашение ввести “стандартное имя”, введите полностью опре деленное имя домена сервера. Например, если ваш сайт имеет URL-идентификатор https://company.com, введите в качестве стандартного имени строку “company.com”. Обратите внимание на то, что для каждого узла нужен отдельный сертификат, даже для узла “www.company.com”, который отличается от “company.com.” Компании обычно ре гистрируют только стандартное имя; они должны гарантировать, что каждая ссылка по протоколу SSL ссылается именно на этот узел.
Детали сгенерированного файла CSR можно увидеть, выполнив такую команду.
$ openssl req -noout -text -in server.csr
Теперь можно послать файл server.csr выбранному вами источнику сертификатов. Сохранять его локальную копию не обязательно. Подписанный файл CSR, возвращен ный источником сертификатов СА, должен иметь расширение .crt. Поместите подпи санный сертификат в каталог, содержащий ваши файлы конфигурации демона httpd, например в каталог /usr/local/apache2/conf/ssl.crt.