![]() |
Здравствуйте, гость ( Авторизация | Регистрация )
![]() |
![]() Сообщение
#1
|
|
![]() Почетный ![]() ![]() ![]() ![]() ![]() ![]() ![]() Текущее настроение: ![]() Вст. ник | Цитата Группа: Супер Стар Сообщений: 3097 Регистрация: 29.12.2009 Пользователь №: 33839 Награды: 15 Подарки: 41 Пол: М Репутация: ![]() ![]() ![]() |
Ни думал, ни гадал, что когда-нибудь возьмусь за такое занятие. Во-первых, у меня не было идеи, о чём должен быть сайт. Во-вторых, я никогда не делал сайты, и у меня нет соответствующих навыков. Но тут у друга появилась идея для сайта, которая мне понравилась. А у меня начало появляться свободное время, которое нужно было использовать. Начинать что-то новое я никогда не боялся, поэтому решил начать. Тем более, что общие навыки программирования у меня есть. Сразу скажу: Идею сайта пока рассказывать не буду, не просите! Даже если просто поржать
![]() Честно говоря, я уже начал делать сайт, и есть кое-какие наработки. Можно было, конечно, не создавать эту тему, а просто продолжать делать своё дело. Но я человек ленивый, и если не с кем пообщаться на эту тему, то работоспособность у меня почему-то снижается. А если на форуме в теме будет с кем поговорить, то это дело должно стать более захватывающим для меня и пойти веселее ![]() Обычно я веду беседы совсем на другие темы, не связанные с техникой, что может стать неожиданностью для участников, знакомых со мной на форуме. В связи с этим я считаю необходимым сделать следующее предупреждение. ПРЕДУПРЕЖДЕНИЕ: В данной теме предполагается углубленное рассмотрение информационно-алгоритмических подробностей с использованием сложных и неоднозначных для обычных людей понятий, применяемых в этой области. Это способно вызвать у неподготовленного читателя состояние трудно-идентифицируемой дезориентации, во избежание чего, во время прочтения данной темы рекомендуется не пытаться осознать сразу всё, что написано, а также рекомендуется делать перерывы и пить больше жидкости. За психическое состояние читателей автор ответственности не несёт. Продолжение следует... -------------------- -------------------- Подарки: (Всего подарков: 41 ) |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
|
|
![]() |
![]() Сообщение
#2
|
|
![]() Почетный ![]() ![]() ![]() ![]() ![]() ![]() ![]() Текущее настроение: ![]() Вст. ник | Цитата Группа: Супер Стар Сообщений: 3097 Регистрация: 29.12.2009 Пользователь №: 33839 Награды: 15 Подарки: 41 Пол: М Репутация: ![]() ![]() ![]() |
Всё, с SSL-сертификатами мы разобрались.
Следующий этап — это защита сайта от атак злоумышленников. Для начала давайте закроем все неиспользуемые порты. Какие порты у нас используются?
Порт 443 — HTTPS (для защищённого доступа пользователей к сайту), Порт 55555 — SSH (для защищённого доступа администратора к серверу, этот номер порта мы выбрали сами, он может иметь любое другое значение ниже 65535). Эти порты должны быть открыты на сервере, а все остальные закрыты. Для этого в операционной системе существует инструмент (программа) под названием iptables. Чтобы проверить, в каком состоянии находятся порты нашего сервера, введём следующую команду: Код iptables -L которая выведет нам на экран следующую информацию:Код Chain INPUT (policy ACCEPT) Здесь три таблицы: INPUT, FORWARD, OUTPUT. Это таблицы правил, которые означают, соответственно: ВХОДЯЩИЕ, ПЕРЕНАПРАВЛЯЮЩИЕ, ИСХОДЯЩИЕ соединения. И в каждой из этих таблиц пока нет ни одного правила. Но у каждой таблицы есть общая политика, которая может быть РАЗРЕШАЮЩЕЙ (ACCEPT) или ЗАПРЕЩАЮЩЕЙ (DROP). И как мы видим, у всех трёх таблиц общая политика разрешающая все соединения. То есть, все порты у нашего сервера открыты. Это небезопасно, особенно для входящих соединений. Поэтому для таблицы INPUT мы будем использовать ЗАПРЕЩАЮЩУЮ общую политику — DROP, а разрешим только нужные нам три порта. При этом, если сначала изменить общую политику на запрещающую, то связь с сервером у нас пропадёт сразу же. Поэтому мы сделаем так: сначала разрешим порт SSH, потом изменим общую политику на DROP, а потом разрешим порты сайта. Разрешаем порт SSH:target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Код iptables -A INPUT -p tcp --dport 55555 -j ACCEPT Запрещаем все остальные входящие порты:Код iptables -P INPUT DROP После этого на нашем сервере будет открыт только один входящий порт — 55555, для подключения SSH. А потры 80 и 443, используемые для всех сайтов, будут закрыты. Проверяем — пробуем зайти на наши сайты site1.ru и site2.ru и видим, что они действительно недоступны. Теперь аналогично открываем два этих порта:Код iptables -A INPUT -p tcp --dport 80 -j ACCEPT Код iptables -A INPUT -p tcp --dport 443 -j ACCEPT Снова проверяем сайты и видим, как они стали доступны. Давайте посмотрим, как выглядят при этом настройки iptables:Код iptables -L -n --line-numbers Дополнительный ключ "-n" нужен чтобы порты выводились на экран не в буквенной, а в числовой форме, т.е. номерами портов. Ключ "--line-numbers" нужен, чтобы на экране отображались номера правил в начале каждой строки. В результате на экране мы видим:Код Chain INPUT (policy DROP) То есть, теперь у нас на сервере открыты только три порта, а остальные закрыты, как мы и хотели.num target prot opt source destination 1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:55555 2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 Chain FORWARD (policy ACCEPT) num target prot opt source destination Chain OUTPUT (policy ACCEPT) num target prot opt source destination Продолжение следует... -------------------- -------------------- Подарки: (Всего подарков: 41 ) |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
|
|
![]() ![]() |
Текстовая версия | Сейчас: 16.06.2025 - 12:20 |