Сервер в кармане, или просто о сложном!
Много интересного на канале

Настройка 3proxy: пример

Обновлено: 29.06.2025

Автор: Kirill Lopuchov, lopuchov at mail ru

Источник: 3proxy.ru, SECURITYVULNS.RU

Довольно часто перед системным администратором встает задача предоставить доступ к Internet ресурсам группе пользователей (небольшой офис,Internet кафе). Данную задачу можно решить несколькими способами, это настройка на Internet шлюзе:

  • proxy сервера
  • службы NAT (трансляция сетевых адресов)
  • раздать каждому пользователю реальный IP адрес

Давайте рассмотрим первый самый простой способ подключения, это proxy сервер традиционно для таких целей применяется популярный proxy Squid, но не всегда бывает необходимость в столь тяжеловатой программе :), да и в squid отсутствует такие иногда необходимые вещи как SOCKS4/5 сервер, TCP/UP порт маппинг. Поэтому вторым номером хочется представить вашему вниманию PROXY сервер, по названием "3proxy" адрес сайта http://3proxy.ru/ разработанный нашим программистом из г. Нижний Новгород. Одним из главных его достоинств мне кажется это компактность и высокая переносимость. Код сервера написан так, что легко компилируется как для Win9x/2000/XP так и для Linux и FreeBSD.

Возможности 3proxy

Сервер поддерживает следующие возможности:

  • HTTP(S) proxy
  • FTP over HTTP proxy
  • SOCKS4/5 proxy
  • POP3 proxy
  • TCP & UDP маппинг портов
  • листы доступа к различным службам и адресам
  • ограничение пропускной способности канала каждого пользователя (чтобы пользователь не съел весь канал, качая кучу файлов в несколько потоков :) )
  • ограничение трафика пользователя на день, неделю и месяц
  • ведение журналов через ODBC (по моему такого нет ни в одном proxy) и syslog и т.д
  • авторизацию пользователей ко всем proxy службам по имени и паролю или по ip адресам

К недостаткам можно отнести это отсутствие кэширования информации :-|. Но в с последнее время Inernet контент становится все более динамическим (то есть не поддающийся кэшированию) и может быть для кого-то экономия в 25% трафика за счет его кэширования не будет столь критична. Для тех кому все же критична, автор предлагает пока использовать цепочку из 2х серверов и в качестве кэша такие сервера как wwwoffle или им подобные, либо ждать появления поддержки кеша в 3proxy :)

Установка 3proxy

# wget http://3proxy.ru/current/3proxy.tgz
# tar -xvzf 3proxy.tgz
# cd 3proxy
# make -f Makefile.unix
# mkdir /usr/local/3proxy
# mkdir /usr/local/3proxy/logs
# mkdir /usr/local/3proxy/stat
# copy 3proxy /usr/local/3proxy
# copy 3proxy.cfg.sample /usr/local/3proxy/3proxy.cfg
# chown -R nobody:nogroup /usr/local/3proxy

Далее приведу небольшой пример конфигурационного файла 3proxy.cfg с комментариями, более подробную информацию по конфигурированию можно найти файле 3proxy.cfg.sample или в HowTo http://3proxy.ru/howtor.asp и FAQ http://3proxy.ru/faqr.asp.

Конфиг 3proxy

-------------3proxy.cfg-------------
# ВНИМАНИЕ !! не должны быть пробелов
# перед любыми опциями конфигурации !!

# ip адрес DNS сервера провайдера или локального
nserver 127.0.0.1
timeouts 1 5 30 60 180 1800 15 60

# создаем двух пользователей vasia и petia
# и назначаем им пароли 24555 , 14656 и 45455 соответственно
users vasia:CL:24555
users petia:CL:14656
users vova:CL:45455

# лог файл со списком запросов пользователей
# будет создаваться каждый день новый
log /usr/local/3proxy/logs/3proxy.log D
logformat "%d-%m-%Y %H:%M:%S %U %C:%c %R:%r %O %I %T"

# внешний интерфейс
# (через который будут уходить запросы от сервера)
external 0.0.0.0

# ip адрес интерфейса на котором будут приниматься
# запросы от клиентов
internal 172.16.0.1

# устанавливаем тип авторизации по имени и паролю
auth strong
# разрешаем доступ к портам 80,8080-8088
allow * * * 80,8080-8088
# расскоментировать секцию parent если у вас есть прокси верхнего
# уровня и заменить ip,порт,имя пользователя и пароль на свои занчения
# parent 1000 http 192.168.0.1 8080 username passwd
# allow *
# запускаем службу HTTP proxy на порту (3128 и
# -n c отключенной NTLM авторизацией)
proxy -p3128 -n

# ограничиваем толшину канала для каждого
# пользователя vasia и petia в 20000 bpsv # а для vova 10000 bps
bandlimin 20000 vasia,petia
bandlimin 10000 vova

# запускаем сервер от пользователя nobody
# (возможно в вашей ОС uid и gid пользователя nobody
# будут другими для их определения воспользуйтесь коммандой id nobody)
setgid 65534
setuid 65534
------------------------------------

После того как мы создали конфигурационный файл сервера , запускаем 3proxy командой:

/usr/local/3proxy/3proxy /usr/local/3proxy/3proxy.cfg

Настройка повторителя (репитера) для беспроводной сети WiFi с поддержкой WPA/WPA2-PSK

Обновлено: 29.06.2025
Теги: WiFi WDS

Введение

ВАЖНО!

28.10.2011: статья написана в декабре 2009 года. С тех пор (сейчас октябрь 2011) кое-что поменялось в этом мире. Появились новые модели репитеров WiFi, например, Asus RT-N12. С точки зрения принципиальных вещей, статью просмотреть все же стоит, просмотрите комментарии. Ведь кроме появления новых моделей и ухода старых, максимум поменялись кнопочки настройки повторителя. Суть осталась прежней. Отчасти это следствие того, что это все еще территория, не охваченная жесткими стандартами. Поэтому оборудование лучше брать одного производителя. Я начал работать с Asus и пока не жалел. Это не говорит о том, что сеть на основе других точек доступа, например, D-Link DWL-2100AP, будет хуже.

28.02.2012: эту статью я дополнял несколько раз, поэтому те, кто попадает сюда, смотрите сразу конец статьи: дополнения.

Первое название статьи: "Распределенная беспроводная сеть WDS. Настройка WiFi повторителя (репитера)".

Но как я выяснил позже, WDS в реализации базовых прошивок от Asus не поддерживает WPA/WPA2.

Поддержка WPA2-PSK возможна только при использовании точек доступа/маршрутизаторов в режиме повторителя (repeater или URE). Либо надо прошивать в DD-WRT и ей подобные.

Комментарий специалиста службы тех. поддержки Asus:

WDS используется , в случае когда нет возможности соединить точки с помощью кабеля.
У WDS есть слабые стороны как уменьшается скорость работы по WiFi т.к. для связи между точками используется один и тотже канал, проблема совместимости между разными производителями, шифрование только WEP.

URE это повторитель сигнала, сигнал повторяется без какой либо обработки по аналогии с проводным повторителем - хабом, когда принятый пакет просто повторяется во все порты, или с антеным крабом, когда входной сигнал повторяется в два или более выходов.

WDS работает на основе мак адресов по аналогии с сетевым коммутатором - свитчем, поэтому в WDS необходимо прописывать мак адреса соседей.

Поэтому название статьи я поменял на "Настройка повторителя (репитера) для беспроводной сети WiFi с поддержкой WPA/WPA2-PSK".

В этой статье описывается способ расширения зоны действия беспроводной сети на основе оборудования Asus класса дом/малый офис. Например, Asus WL-320gE и Asus WL-520gU. Статья написана по мотивам настройки конкретной сети в квартире в условиях плохого приема. Т.е. все нижеизложенное работает, причем стабильно.

Часто в небольшом, но и не в маленьком помещении (офис, квартира с множеством бетонных стен, двухэтажные помещения) сигнал от одного маршрутизатора недостаточно силен, чтобы уверенно покрыть все пространство. В таких случаях становиться необходимым настроить усилитель (он же репитер, повторитель) WiFi сигнала.

Одним из вариантов решения проблемы может быть установка отдельных маршрутизаторов в соседних помещениях, с разными сетями. В этом случае разрозненные участки сети смогут выходить в интернет на хорошей скорости, но при этом не смогут взаимодействовать друг с другом. Для домашней WiFi сети вариант приемлемый, но не для офиса.

Итак, нам нужно, чтобы на всем пространстве офиса была стабильная сеть WiFi. Для этого нам нужно иметь два устройства – маршрутизатор WiFi и точку доступа WiFi с функцией повторителя (repeater).

Справка (Википедия): Wireless Distribution System (WDS) — технология, позволяющая расширить зону покрытия беспроводной сети путем объединения нескольких WiFi точек доступа в единую сеть без необходимости наличия проводного соединения между ними (что является обязательным при традиционной схеме построения сети). Отличительной чертой технологии по сравнению с другими решениями является сохранение MAC адресов клиентов сети.

 Рис. 1 Общая схема сети WDS

Оборудование

Отмечу, что реализация функции WDS у разных производителей может отличаться, поэтому лучше всего использовать в качестве опорных пунктов распределенной беспроводной сети устройства одного производителя.

Для примера возьмем широко распространенные маршрутизатор Asus WL-520gU и точку доступа Asus WL-320gE.

Точка доступа Asus WL-320gE работает в режимах точки доступа, беспроводного клиента, беспроводного моста, ретранслятора и беспроводного маршрутизатора. Нас будет интересовать возможность использовать точку доступа как ретранслятор.

Страница описания на сайте Asus: http://ru.asus.com/Product.aspx?P_ID=VmvALkGKZLlRjzeR

 

Маршрутизатор Asus WL-520gU поддерживает WDS. Эта информация доступна на сайте ru.asus.com.

Страница описания на сайте Asus:http://ru.asus.com/product.aspx?P_ID=cOWUB0XOSysr4sBM

Настройка маршрутизатора Asus Wl-520gU

Маршрутизатор Asus WL-520gU в нашем примере будет подключен к проводному провайдеру интернет и будет являться шлюзом для всех остальных компьютеров в сети.

Настройка маршрутизатора осуществляется через веб-интерфейс и не представляет никакой сложности.

Адрес маршрутизатора Asus WL-520gU в локальной сети пусть будет 192.168.1.1. Также он будет являться сервером DHCP в локальной сети (хотя в сети могут быть и другие DHCP-серверы). Нас это не должно сильно волновать. Главное – чтобы маршрутизатор и точка доступа не были бы серверами DHCP одновременно.

Настройку соединения с провайдером я опущу, т.к. у всех это будет по-разному.

Приведу настройки WiFi-сети и опций для возможности использования WDS.

  • Меню Wireless -> Interface:

    SSID: yourNetworkName
    Channel: 10
    Wireless Mode: Auto, установлена галочка 54g Protection
    Auth. mode: WPA-Personal
    WPA-Encryption: TKIP
    Network Key Rotation Interval: 0
  • Меню Wireless -> Bridge:

    AP Mode: Hybrid
    Channel: 10
    Connect to APs in Remote Bridge List: Yes (у меня при этом сам список Remote Bridge List не содержал ни одного mac-адреса)
  • Меню Wireless -> Advanced:

    Enable AfterBurner: Disabled
    Hide SSID: No (думаю, можно поиграться и сделать Yes, но реально на безопасность сети скрытие SSID не повлияет - лучше пароль придумайте похитрее.)
  • Меню System Setup -> Operation Mode:

    Выбрать режим Home Gateway

Настройка точки доступа Asus Wl-320gE как повторителя

Точка доступа в нашей сети будет иметь адрес 192.168.1.2. Как уже было сказано выше, DHCP-сервер на этой точке доступа должен быть выключен.

  • Меню IP Config -> LAN:

    IP: 192.168.1.2
    Mask: 255.255.255.0
    Gateway: 192.168.1.1
  • Меню Wireless -> Interface:

    SSID: yourNetworkName
    Wireless Mode: Auto (галочка на 54g Protection почему-то не установлена)
    Auth. mode: WPA-PSK/WPA2-PSK
    WPA/WPA2-Encryption: TKIP

    Network Key Rotation Interval: 0
  • Меню Wireless -> Advanced:

    Hide SSID: No
    Set AP Isolated: No

    Mode: URE
    Настройки URE:
    SSID: yourNetworkName
    Auth. mode: WPA/WPA2-PSK
    WPA/WPA2-Encryption: TKIP
    Network Key Rotation Interval: 0

Нюансы

Открытый SSID

Думаю, что многие обратят внимание на то, что в приведенных настройках SSID сети не скрыт. Это можно считать недостатком. Но этому есть объяснение. Сеть настраивалась у заказчика, который не ставит максимальную безопасность во главе угла, но вот простоту добавления новых устройств требовал. С этим могут столкнуться многие. Если вы не админ конкретной сети, то по десять раз объяснять, как добавить КПК или новый ноутбук к сети надоест очень быстро. По этой причине я не могу сказать, насколько удобна в работе распределенная сеть со скрытым SSID.

WPA vs. WPA2

В идеальном случае надо использовать максимальную защиту, т.е. WPA2. Но большинство беспроводных принтеров, мобильников и пр. имеют разные реализации беспроводных модулей, поэтому часто WPA2 не дает подключить практически всю периферию. В вашем случае может быть возможным использовать только WPA2.

Фильрация по MAC-адресам

Я не настраивал фильтрацию по MAC-адресам точек доступа, по соображениям, похожим на изложенные в п.1 - мне не нужны лишние проблемы с конфигурированием. Кроме того, сеть была домашней и не требовала особых мер безопасности. P.S. Что касается WiFi в офисе - я вообще против этого. Правда, бывает, что иначе и не сделать.

Итог

Вот и все. Учитывая, что настройку распределенной беспроводной сети последний раз я делал год назад, прошу не ругать меня за отсутствие каких-либо деталей или присутствие опечаток. Как всегда, комментарии приветствуются. Еще раз отмечу, при использовании прошивок от Asus для использования шифрования WPA/WPA2 нельзя настраивать WDS. Надо настраивать повторитель сигнала основного маршрутизатора.

Дополнения

  • добавлено 19.10.11: После экспериментов с прошивкой может пригодиться статья "Восстановление прошивки Asus WL-500gP".
  • добавлено 20.10.11: До кучи: если вы решите использовать роутер, прошитый в DD-WRT (другие не пробовал, если знаете, скажите) в качестве повторителя, то вы столкнетесь с кучей неясностей и в конце если и сделаете это, то скорее всего это будет режим Repeater Bridge и вторая беспроводная сеть, на которую придется переключаться беспроводным клиентам если они будут перемещаться из одной зоны сети в другую.

    Вывод: самое простое и правильное, на мой взгляд, это использовать специальное устройство, типа описанного в этой статье выше Asus WL-320gE. Это работает. В отличие от танцев, с которыми я лично не раз и не два сталкивался.

    PS: Если кто-нибудь из посетителей сайта придерживается иного мнения или знает, как сделать нормальный повторитель WiFi из роутера, прошитого в DD-WRT или другую альтернативную прошивку - очень прошу высказываться, многим пригодится. Эту статью ежедневно просматривают куча народа - это говорит о том, что эта тема нужна и интересует многих! Давайте поможем другим советом!
  • добавлено 28.02.2012: Где-то два месяца назад я пробовал расширить зону действия сети на основе роутера Asus WL-500gP (на родной прошивке Asus) с помощью Asus RT-N12. Несмотря на заявленную возможность работать репитером, постоянно прекращался доступ в интернет в тех местах, где можно было "зацепить" и Asus WL-500gP и Asus RT-N12. Я сдал репитер Asus RT-N12 обратно в магазин. Т.к. ничего адекватного на тот момент я не нашел, на время отложил поиски. Буквально сегодня утром купил аж два роутера Asus RT-N10U (с функцией повторителя), думал выкинуть старый Asus WL-500gP, т.к. я почему-то подумал, что возможно проблема была из-за него, все-таки для него прошивка уже достаточно старая. Как же я обрадовался, когда ради эксперимента "подцепил" один из Asus RT-N10U как повторитель к существующей сети и все заработало! Учитывая довольно большое количество оргтехники, уже настроенной на работу с Asus WL-500gP, я так пока и оставил один из новых роутеров нераспечатанным. В итоге, прекрасно себя показала связка из старого роутера Asus WL-500gP и нового в режиме репитера Asus RT-N10U.

Установка Firefox в домене Windows

Обновлено: 29.06.2025

Автор

Иванов Илья, http://bozza.ru, 2009

Вступление

Предыдущее название статьи: "Установка Firefox в сети Windows 2003 средствами групповой политики".

Считается, что пользователи в сети должны иметь ограниченные права и привилегии. В том числе на установку программ. Это правильно. А в вашей сети используется Firefox как основной браузер и вы уже задолбались бегать от компа к компу, вводить админские кредиты и устанавливать новые версии Firefox, выходящие с завидной регулярностью. Значительно упростить этот процесс можно с помощью домена Windows 2003, оснастки "Active Directory - Пользователи и компьютеры" и редактора групповой политики gpmc.msc.

Итак, задача: максимально упростить обновления браузера Firefox, установленного на подавляющем количестве компьютеров в сети. Исходные данные: домен Windows 2003.

Подготавливаем MSI-файл для Firefox

Думаю, что добавлю потом отдельную статью о том, откуда можно брать файлы Windows Installer вида "firefox.msi". Скажу лишь, что в нашем случае сам msi-файл и шаблон firefox.adm можно скачать отсюда.

Расшариваем какую-либо папку на сервере и даем к ней доступ юзерам на чтение, админу - полный:

расшариваем шаблон firefox.adm и firefox.msi

В данном примере административный шаблон firefox.adm лежит в расшаренной папке, думаю, что это не совсем правильно, но зато легче не растерять связанные друг с другом файлы шаблона и инсталляшки.

Если у вас пользователи домена уже находятся в Users или где-то еще и вы не намерены их оттуда перемещать, пропускайте следующий параграф.

Подготовка организационного подразделения (OU)

Вообще-то держать пользователей домена в Users (по-умолчанию) не рекомедуется, в т.ч. на курсах Microsoft. Поэтому мы создадим новое рганизационное подразделение (OU), к которому будем в последствии применять политику распространения Firefox.

Шаг 1: сделаем OU "OurUsers" и поместим в него пользователя "user1"

Создаем новое OU

Помещаем пользователей в новое OU

Шаг 2: Создадим отдельную политику для созданного подразделения "OurUsers"

Запускаем редактор групповой политики GPMC.MSC:

Редактор групповой политики GPMC

... и создаем связанную только с нашим OU "OurUsers" групповую политику под названием "Install Custom Software":

Создаем новый объект групповой политики

... редактируем нашу политику "Install Custom Software":

Редактируем объект групповой политики

Шаг 3: Готовим дистрибутив Firefox для развертывания в сети

В разделе "User Configuration" -> "Software settings" -> "Software Installation" щелкаем правой мышкой и создаем новый объект для установки - наш будущий инсталлятор Firefox:

Создаем новый дистрибутив

Выбираем файл MSI, заботливо положенного чьими-то руками в расшаренную папку. Важно: выбирать надо сетевой путь до файла, а не локальный, ведь юзера будут получать доступ к вашей инсталляшке не локально на сервере, а по сети:

выбираем файл MSI

Выбираем "Assigned" (Назначенный):

Публикуем:

Публикуем установку

На этом работа с веткой "Software Installation" закончена. переходим к ветке "User Configuration" -> "Administrative Templates" и создаем новый шаблон на основе файлика firefox.adm, так же кем-то предусмотрительно скачанного ранее:

Создаем новый шаблон для Firefox

Выбираем готовый шаблон для Firefox

Ок, мы сделали новый шаблон "Firefox". Теперь отредактируем его, как нам того требуется. Настроек не так много, но минимум все-таки настроить можно - стартовая страница, адрес прокси и пр.

Редактируем параметры шаблона для Firefox

Все. С шаблонами и прочими зверями покончено. Закрываем все открытые окна на сервере (если не помешает другим задачам, естественно), Пуск -> Выполнить -> gpupdate /force

Шаг 4: Устанавливаем на клиенте свежий Firefox

Созерцаем пару секунд окно командного интерпритатора и пробуем залогиниться под учетной записью "user1" на рабочую станцию. Выполняем команду "gpupdate /force", выходим и снова залогиниваемся на рабочей станции. Запускаем на рабочей станции "Установка и удаление программ", и в окне "Установка программ" созерцаем:

Устанавливаем Firefox на клиенте

Вот! Теперь даже пользователь с ограниченными правами сможет установить уже настроенный броузер Firefox, а если Firefox уже был установлен, то он быдет обновлен до новой версии, в которой исправлены всякие недочеты и уязвимости.

Отмечу, что установить программу, подготовленную таким способом, сможет пользователь даже с минимальными юзерскими правами. Достаточно сделать пару кликов мышкой, без всяких админских учетных записей.

Минусы

Нельзя не сказать о существенных минусах этого способа. Первый, и, наверное, самый существенный - описанный способ это НЕ АВТОМАТИЧЕСКАЯ УСТАНОВКА ПРОГРАММ НА ВСЕ КОМПЬЮТЕРЫ В ДОМЕНЕ. Для автоматической установки используется другой метод, думаю, позже я опишу его, а пока сам до конца не понял, как просто и четко работать с MST-файлами настроек в случае подготовки дистрибутива для автоматического развертывания в сети. Отмечу, что статей про автоматическое развертывание пакета Microsoft Office в сети домена довольно много, но попробуйте найдите хоть что-то вразумительное о том, как сделать шаблон настроек firefox.mst - и вы меня поймете.

Кстати, если вы знаете ПРОСТЫЕ И ПОНЯТНЫЕ объяснения, как подготавливать MST-файлы, ОБЯЗАТЕЛЬНО ПИШИТЕ ОБ ЭТОМ в комментариях к этой статье.

Второй минус - опять же непрозрачность подготовки шаблона firefox.adm. Признаюсь, я не успел в этом покопаться, поэтому опять же - КОММЕНТАРИИ И СОВЕТЫ ПРИВЕТСТВУЮТСЯ.

Материалы

В подготовке материала я использовал:

  1. http://frontmotion.com/FMFirefoxCE/download_fmfirefoxce.htm
  2. http://www.mednikov.ru/?p=85

и вечер собственного времени.


OpenVPN: Individual Firewall Rules for Connecting Clients

Обновлено: 29.06.2025
Теги: OpenVPN

(содержимое одной из глав книги OpenVPN: Building and Integrating Virtual Private Networks)

One striking possibility OpenVPN offers is a setup where:

  • An OpenVPN machine acts as a server that protects the company's network, admitting access for OpenVPN clients.
  • The clients are automatically assigned IPs by the server.
  • The clients are equipped with certificates, and identified and authorized by these certificates.

The scripting parameter learn-address in the server's OpenVPN configuration file will have the server execute a script whenever an authorized client connects to the VPN and is assigned an address. This parameter takes the full path to a script as an option:

learn-address /etc/openvpn/scripts/openvpnFW

In this example, the script openvpnFW will be executed each time a client is assigned an IP address and will be passed three variables by the OpenVPN server process:

  1. $1: The action taken; this may be one of add, delete, update
  2. $2: The IP assigned to the client connecting
  3. $3: The common name in the subject line of the client's certificate

Add the line learn-address /etc/openvpn/scripts/openvpnFW to your OpenVPN server configuration file and edit the file /etc/openvpn/scripts/openvpnFW to be like the following. These lines will show how to make use of these parameters in a short Linux shell script:

#!/bin/sh
LOGFILE=
DATE=`/bin/date`
echo $DATE $1 $2 $3 >> $LOGFILE

This script will only export the variables passed to the logfile, including a timestamp that is added by the command date. Stop and start your tunnel a few times. Now let's have a look at the file /var/log/openvpn/connections.log:

Mi Feb 1 04:33:53 CET 2006 update 10.99.0.3 mfeilner
Do Feb 2 04:34:33 CET 2006 update 10.99.0.3 mfeilner
Fr Feb 3 04:34:14 CET 2006 update 10.99.0.3 mfeilner
Sa Feb 4 04:34:53 CET 2006 update 10.99.0.3 mfeilner
So Feb 5 04:34:43 CET 2006 update 10.99.0.3 mfeilner

This example shows my VPN client reconnecting every day. This alone might yet be an interesting feature, if you want to keep track of your users and their VPN connections. However, we can do more. Let's add some more lines to our openvpnFW script:

if [ $1 = add ]
then
/etc/openvpn/scripts/$2.FW_connect.sh
fi
if [ $1 = delete ]
then
/etc/openvpn/scripts/$2.FW_disconnect.sh
fi

Two simple tests are run and, depending on the content of the variable $1, different firewall scripts are executed. Let's express this in brief. If the first variable passed is add, then the script /etc/openvpn/scripts/$2.FW_connect.sh is run, where $2 will be replaced by the IP of the client connecting. If for example a client mfeilner connects and is assigned the IP 10.99.0.3, then the variables passed to this script openvpnFW will be:

add 10.99.0.3 mfeilner

And the script run will be called: /etc/openvpn/scripts/10.99.0.3.FW_connect.sh.
However, if the variables passed to openvpnFW are the following:

delete 10.99.0.3

then the script /etc/openvpn/scripts/10.99.0.3.FW_disconnect.sh will be executed.

I think you have already guessed that these two scripts contain firewall rules (like iptables statements) for the client with the certificate mfeilner. Even though all of this could be done within one single script, I prefer to have the tests and firewall rules split up in several scripts.

This setup can become very powerful and fairly complex. A client that has its default route set through the tunnel can be allowed selective Internet access, simply by enabling or disabling, routing or forwarding. And access to the local servers can also be easily managed: E.g. A SAP server might only be available for road warriors from 7 am to 6 pm, whereas during the night firewall rules protect the server.


Права доступа в Linux

Обновлено: 29.06.2025
Теги: Linux

Автор grinder, источник: http://www.linuxstudio.ru

Linux

Настало время поговорить о швабре на которую наступают новички. Речь сегодня пойдет о правах доступа. И так вы садитесь за компьютер, работа не идет и в порыве вы уничтожаете случайно важные системные файлы. Или ваши знакомые или сослуживцы залезли в папку которую не должны были видеть. Или ... Ситуация я думаю знакомая. Но зато согласитесь удобно. Я сам себе режиссер, что хочу то делаю, любая программа, пользователь имеет доступ ко всем системным файлам и ресурсам, никаких ограничений. Красота. Отсюда эпидемии вирусов. Так вот в Linux всего такого нет. Почему?

Файлы в Linux имеют двух владельцев: пользователя (user owner) и группу (group owner) под которой понимается определенный список пользователей и причем владелец файла не обязательно должен быть членом группы владеющей файлом. Каждый пользователь может быть членом сразу нескольких групп одна из которых называется первичной (primary), а все остальные - дополнительными (supplementary). Это дает большую гибкость в организации доступа к определенному файлу. Совместное использование некоторым ресурсом организовать очень просто, достаточно создать новую группу и включить в нее всех кому это действительно необходимо, а если человек предположим перешел в другой отдел и уже нет необходимости в использовании данного файла. А все очень просто, необходимо просто выключить его из состава данной группы. Ну а, что делать с остальными неужели они так и не смогут хотя бы прочитать содержимое файла или их прийдется каждый раз включать и исключать из группы. А вот для всех остальных (other) которые не принадлежат ни к user owner и group owner права доступа устанавливаются отдельно и как правило самые минимальные. Обычно владельцем файла является пользователь который создал данный файл. Владелец-группа вновь создаваемого файла устанавливается равной первичной группе пользователя создавшего файл, но в некоторых версиях Unix владелец-группа наследуется от владельца-группы каталога в котором создается файл. Для изменения владельца файла используется команда chown в качестве параметров принимающая имя нового владельца и список файлов: # chown new_owner file1 file2 ...Конечно же на месте названия файла может быть и имя каталога, но при этом владелец файлов внутри каталога не изменится, для того чтобы это произошло лучше всего воспользоваться флагом -R (chown -R). При использовании данной команды (впрочем как и большинства) можно пользоваться регулярными выражениями если есть необходимость отобрать файлы удовлетворяющие определенному критерию (chown - R lys *.с). Для изменения владельца группы используется команда chgrp, синтаксис использования данной команды аналогичен предыдущей: # chgrp sales /home/sales/*. Кстати команда chown позволяет сразу установить и группу-владельца для этого необходимо сразу за именем владельца без пробелов и др. знаков поставить двоеточие и написать название необходимой группы

# chown - R sergej:gljuk *

допускается и такой вариант записи:

# chown - R :gljuk * (т.е. аналог команды chgrp).

Владение файлом определяет те операции которые тот или иной пользователь может совершить над файлом. Самые очевидные из них это изменение владельца и группы для некоторого файла. Эти операции может проделать суперпользователь и владелец файла (в производных BSD UNIX только суперпользователь). Если с первым все понятно, то например написав программу и сделать затем ее владельцем, например суперпользователя увы не получится, и хотя вариант изменения владельцем допускается варианта такого применения я честно говоря не нашел. А вот группу, если вы являетесь владельцем файла, можно изменить только на свою первичную (по умолчанию имеет то же название, как и имя соответствующего пользователя). Эти все ограничения введены по нескольким причинам, чтобы никто не мог подсунуть какой ни будь зловредный файл и для того чтобы если на компьютере установлен лимит дискового пространства для конкретного пользователя, нельзя было просто переопределив владельца превысить его.

Следующие базовые операции которые можно совершить над файлом: это доступ на чтение (Read), доступ на запись (Write) и доступ на выполнение (eXecute). Эти операции устанавливаются для каждой из трех групп пользователей раздельно. Причем проделать это может только пользователь владелец и конечно же суперпользователь. Для установки соответствующих прав используется команда chmod. Применяется она в двух формах абсолютной - когда игнорируются старые права, а безусловно устанавливаются новые, и относительной - когда к имеющимся правам добавляются/убираются другие. Абсолютная форма предполагает задание прав доступа к файлу прямым заданием его в восьмеричной форме. Для того чтобы получить полный код необходимого режима файла, необходимо просто сложить значения кодов приведенных в таблице.

 

 Восьмеричный код  Режим файла
 0001  Право на выполнение для всех
 0002  Право на запись для всех
 0004  Право на чтение для всех
 0010  Право на выполнение для группы
 0020  Право на запись для группы
 0040  Право на чтение для группы
 0100  Право на выполнение для владельца
 0200  Право на запись для владельца
 0400 Право на чтение для владельца
 1000  Включения бита сохранения задачи
 2000  Если файл выполняемый включения бита SGID
 4000  Если файл выполняемый включения бита SUID

 

Таким образом команда # chmod 755 file устанавливает следующие права доступа, это исполняемый файл, запустить его на выполнение и прочитать содержимое имеют право все (т.е. владелец, группа и остальные), а владелец дополнительно имеет право на изменение содержимого - запись. Это кстати пример задания прав классического cgi сценария.

Относительная форма команды требует конкретного указания классов доступа ('u'- владелец, ‘g'- группа, ‘o'- остальные , ‘a' -все вместе), соответствующие права доступа ('r' - чтение, ‘w' - запись, ‘x' - выполнение) и операцию которую необходимо произвести для списка файлов ('+' добавить , ‘-' удалить, ‘=' присвоить) для соответствующего списка файлов. Например команда # chmod u+w, ug+r, a+x file добавляет дополнительно к имеющимся всем право запустить файл на выполнение, группа и владелец смогут прочесть содержимое, а владелец кроме того и изменить содержание. Да и команда ‘=' относится скорее к абсолютному заданию прав доступа так как устанавливает соответствующие права вместо имеющихся.

Просмотреть соответствующие права доступа, а также владельца и группу можно с помощью команды ls -l:

[sergej@grinder sergej]$ ls -l

итого 2

drwxrwxr-x 2 sergej sergej 1024 Авг 17 09:45 bin
-rw-rw-r- 1 sergej sergej 604 Авг 22 21:07 printenv.pl

Буква ‘d' означает, что это каталог, прочерк ‘-' - обыкновенный файл, ‘l' - символическая связь, ‘b'- блочное устройство, ‘c' - символьное устройство. Исполняемый файл может быть как откомпилированной программой (для его запуска необходимо только право на выполнение) и скриптом. Чтобы запустить на выполнение последний необходимо дополнительно право на чтение, так как программа-интерпретатор должна перед этим его прочитать. Значение прав доступа для различных типов файлов также различно. Вы ведь не забыли, что все остальное: каталоги, устройства, сокеты и именованные каналы тоже являются файлами. Например для последних трех право на выполнение смысла не имеет. Для символических связей они контролируются целевым файлом. Для каталогов они имеют немного другой смысл. Каталог по своей сути файл содержащий имена всех файлов которые содержатся в данном каталоге, а также указатели на дополнительную информацию, позволяющие операционной системе производить необходимые операции. Так вот право на чтение каталога позволяет всего лишь получить только имена файлов, находящихся в данном каталоге. А вот для того, чтобы получить дополнительную информацию, необходимы право на исполнение так, как уже прийдется заглянуть в "метаданные" каждого файла. Также чтобы перейти в какой ни будь каталог (cd) (и все каталоги на пути) необходимо иметь право на выполнение. Поэтому например часто создав каталог для домашней страницы Web-сервера Apache (public_html) и при попытке открыть его http://localhost/~user_name, получаете сообщение о том, что узел не достижим одной из причин является, то что сервер просто не может прочитать содержимое соответствующего каталога и всех каталогов на пути к нему. Кстати из-за наличия этих особенностей можно добиться так называемого эффекта "dark directory". Когда есть возможность создать каталог файлы в котором доступны только если пользователь знает точно имя соответствующего файла. Давайте посмотрим, как создать такой каталог.

[sergej@grinder sergej]$ mkdir darkcat # создаем каталог

[sergej@grinder sergej]$ chmod a-r+x darkcat # устанавливает необходимые права доступа, добавляем исполнение для всех и убираем возможность чтения списка файлов

[sergej@grinder sergej]$ ls -l # маленькая проверка

d-wx-wx-x 2 sergej sergej 1024 Сен 7 15:14 darkcat

[sergej@grinder sergej]$ cp myfile darkcat # копируем файл в каталог

[sergej@grinder sergej]$ cd darkcat # переходим в каталог

[sergej@grinder darkcat]$ ls -l # пробуем прочитать список файлов

ls: .: Permission denied # вот те раз

[sergej@grinder darkcat]$ cat myfile # выводим содержимое файла на терминал

Получилось.

Право на запись для каталога позволяет изменять его содержимое т.е. удалять и записывать файлы, при этом права доступа к конкретному файлу игнорируются.

Еще один момент права на доступ проверяются в такой последовательности: суперпользователь, владелец, группа-владелец и остальные. Отсюда если вы являясь владельце забыли установить для себя право например на запись, но установили его всем остальным и не надейтесь, что сможете записать в него что-нибудь, даже если вы являетесь членом группы, просто потому, что все остальные могут, а вы являетесь владельцем. Система при запросе нужного ресурса проверит кем он запрашивается в приведенной выше последовательности и допустит только к разрешенным операциям, дальнейшая проверка прав просто проводится не будет.

Справедливости стоит отметить, что права доступа имеет не пользователь, а процесс запущенный ним. Не вдаваясь в подробности (я думаю о процессах разговор отдельный), каждый пользователь зарегистрировавшись в системе получает свою копию текущего процесса shell который имеет установленные идентификаторы RID и RGID реальные индетификаторы пользователя и первичной группы пользователя. А все процессы запущенные пользователем (дочерними), которые наследуют все переменные в том числе и RID, RGID. К чему это я собственно. У нас остались не рассмотренными три режима файла: бит сохранения задачи (stisky bit или save text mode), а также флаги SUID и SGID. Со stisky bit все просто, этот бит указывает на необходимость сохранения копии выполняющейся программы в памяти после завершения выполнения. Этот режим позволяет сэкономить время на запуске программы при частом использовании, но в современных системах применение этого режима встречается редко. А вот флаги SUID и SGID позволяют изменить (расширить) права пользователя (группы) запустившего программу на выполнение, на время выполнения программы. Как уже говорилось запущенное приложение имеют права доступа к системным ресурсам такие же, что и пользователь, запустивший программу. А установки этих флагов позволяет назначить права доступа исходя из прав доступа владельца файла. Отсюда если владельцем запущенного приложения является root, то любой независимо кто запустил данное приложение будет иметь права суперпользователя. При этом при установке флага SUID наследуется права владельца файла, а SGID - группы-владельца.

В качестве примера где может применяться это свойство рассмотрим утилиту passwd, которая позволяет изменить пользователю свой пароль. Все учетные записи и пароли (в зашифрованном виде) хранятся в файлах /etc/passwd и /etc/shadow, если предоставить право каждому пользователю на самолично вносить изменения в эти файлы напрямую, то можете представить, что это будет. И естественно вам и не кто и не даст такое право.

[sergej@grinder sergej]$ ls -l /etc/passwd /etc/shadow

-rw-r-r- 1 root root 1628 Авг 13 18:31 /etc/passwd

-r--- 1 root root 1081 Авг 13 18:31 /etc/shadow

Как видите все пользователи имеют право только на чтение файла /etc/passwd, а записывать информацию может только root (а /etc/shadow как вы видите закрыли от всех, чтобы пароли не могли подобрать). Теперь смотрим на утилиту passwd:

[sergej@grinder sergej]$ ls -l /usr/bin/passwd

-r-s-x-x 1 root root 15104 Мар 14 03:44 /usr/bin/passwd

Буква 's' означает, что установлен флаг SUID, а владельцем файла является его величество root и теперь кто бы ни запустил утилиту на выполнение, на время работы программы он временно получает права суперпользователя, т.е. произвести запись в защищенный системный файл. Естественно утилита должна (и делает это) производить изменение учетной записи только запустившего ее пользователя. Как вы понимаете требования по безопасности к программам использующим данный метод должны быть повышены. Это наверное самая большая дыра во всех Unix, потому что найдя ошибку в одной из программ использующих биты SUID/SGID можно производить любые действия не обладая при этом правами суперпользователя. А аксиома программирования говорит, что ошибки будут всегда. Поэтому сейчас где можно пытаются уйти или сильно изменить этот механизм. Да почитайте хотя бы аннотацию к большинству дистрибутивов Linux, там производитель с гордостью сообщает, что такие то программы уже не используют механизм SUID/SGID. Для установки битов SUID/SGID в символьной форме используется буква - 's', sticky bit устанавливается буквой -'t', а с помощью буквы ‘l' можно установить блокировку файла, для устранения возможных конфликтов когда несколько процессов попытаются работать с одним и тем же файлом. И еще один интересный момент.

[sergej@grinder sergej]$ ls -l /

drwxrwxrwt 25 root root 4096 Сен 8 20:08 tmp

Посмотрите, в каталоге /tmp установлен sticky bit. Зачем? Как говорилось предоставление права на запись в каталог позволяет удалять все файлы даже те владельцами которых он не является. Чтобы избежать этого устанавливается sticky bit для каталога и теперь удалить файл может только пользователь создавший его. А при установке бита SGID для каталога, все вновь созданные файлы будут теперь наследовать группу не по пользователю создавшему его, а по группе-владельцу каталога.

А теперь для чего все это собственно я вам рассказываю т.е. о наших швабрах. Представьте такую ситуацию смотрировали CDROM под root и скопировали с него файлы в домашний каталог обычного пользователь, поработали и выключили компьютер. Угадайте на следующий день вы сможете открыть там хоть один файл. Да работать мне целую неделю в Windows если да, а все потому, что владельцем файла окажется все тот же суперпользователь. Это относится и к различным конфигурационным файлам скопированным в домашний каталог (или созданным под root), процесс запущенный обычным пользователем просто не сможет его прочитать и пользоваться вы будете общесистемным, недоумевая почему не вступают в силу настройки произведенные вами. А вот еще ситуация настроили принтер утилитой princonf, под обычным пользователем не печатает. Почему? А потому, что вам не дано право на выполнение. Самый радикальный метод который я встречал в некоторых книгах выглядит так.

[root@grinder sergej]# chmod a+rwx /dev/*

Все получают право на выполнение, чтение и запись и проблема решена, причем проделав сразу для всех файлов данного каталога вы решите ее раз и на всегда. Для домашнего пользователя в принципе такое решение сойдет. Но оно как раз в духе Windows. Более культурный вариант выглядит так.

[sergej@grinder sergej]$ ls -l /dev/lp0

crw-rw-- 1 root lp 6, 0 Апр 11 17:25 /dev/lp0

Видите право на выполнение дано root и членам группы lp, отсюда если нужен принтер добавьте себя в эту группу. Либо прямым редактированием файла /etc/group (sergej:x:500:sergej,gdm,mysql,named,nobody,sound,lp), либо с помощью различных графических утилит вроде System Setting.
Зачем все это?

Например не играет звук. Смотрим.

[sergej@grinder sergej]$ ls -l /dev/dsp

crw--- 1 sergej root 14, 3 Апр 11 17:25 /dev/dsp

Получается что только пользователь sergej будет слушать музыку. Парадокс однако. Пришлось создавать группу sound и добавить в нее себя, сделать владельцем обиженного root'a, а для группы sound определить чтение. Справедливости хотелось отметить, что права доступа это заслуга не только операционной , но и файловой системы ext2. В inode файла внесена вся необходимая информация о соответствующих правах доступа.

Или например на форумах часто спрашивают как сделать чтобы ppp соединение было доступно обычному пользователю. А все просто. Не нужно ничего выдумывать. Ищем пользователя и группу которая имет доступ к этому сервису и добавляем себя любимого. В Ubuntu это группа dip.

Вот и в принципе и все. Бывшего пользователя Windows несколько раздражает такой подход когда собственноручно созданный файл нельзя даже прочитать, но зато такой подход дисциплинирует, лучше всяких запретов. По этой же причине в Linux мало приживаются вирусы, для того чтобы нанести серьезный ущерб системе нужны соответствующие права. Linux forever.

Защита сайта с помощью .htaccess и .htpasswd

Обновлено: 29.06.2025

apache защита

Автор - Голышев С.В. http://www.softtime.ru

Защита сайта средствами самого сервера Apache является одним из самых простых и в тоже время достаточно надежных способов. В этом случае Вам не нужно досконально продумывать стратегию безопасности, осуществлять ее проектирование и реализацию в коде. К тому же, для того, чтобы создать хорошую систему защиты нужно обладать достаточной квалификацией в этом вопросе. Используя встроенную защиту WEB-сервера Apache, Вы значительно упрощаете себе задачу — все, что Вы должны сделать — это выполнить несложную последовательность действий и Ваш сайт будет в достаточной мере защищен. В данной статье будут подробно описаны шаги и действия, которые Вам необходимо совершить. А в конце статьи будут приведены примеры файлов .htaccess.

Базовая аутентификация

В данной статье будет рассмотрен самый простой и доступный способ защиты — базовая аутентификация.

Замечание

Аутентификация — процесс, с помощью которого проверяется, что некто является именно тем, за кого он себя выдает. Как правило, проверка включает в себя ввод имени и пароля.

Рассмотрим, как работает базовая аутентификация.
При обращении посетителя в защищаемую директорию, сервер Apache в ответ на запрос посылает заголовок с кодом 401 (401 authentication required header). Браузер посетителя принимает заголовок с кодом 401 и выводит окно с полями для ввода имени пользователя и пароля. После ввода имени и пароля эти данные отсылаются назад серверу, который проверяет имя пользователя на предмет нахождения в специальном списке, а пароль на правильность. Если все верно, то посетитель получает доступ к ресурсу. Вместе с заголовком браузеру посылается специальной имя, называемое областью действия. Браузер кэширует не только имя и пароль, чтобы передавать их при каждом запросе, но и область действия. Благодаря этому, ввод имени и пароля в защищаемой директории осуществляется только раз. В противном случае их необходимо было бы вводить при каждом запросе к защищаемой директории. Кэширование параметров аутентификации (имя, пароль, область действия), обычно осуществляет только в пределах одного сеанса.

Замечание

При базовой аутентификации имя пользователя и его пароль передаются в сеть в открытом виде в течении всего сеанса, когда посетитель работает с защищенной директорией. Хакер может перехватить эту информацию, используя сетевой анализатор пакетов. Данный вид аутентификации не должен использоваться там, где нужна реальная защита коммерческо-ценной информации.

Замечание

WEB-сервер Apache поддерживает еще один вид защиты — digest-аутентификацию. При digest-аутентификации пароль передается не в открытом виде, а в виде хеш-кода, вычисленному по алгоритму MD5. Поэтому пароль не может быть перехвачен при сканировании трафика. Но, к сожалению, для использования digest-аутентификации необходимо установить на сервер специальный модуль - mod_auth_digest. А это находится только в компетенции администрации сервера. Также, до недавнего времени, digest-аутентификация поддерживалась не всеми видами браузеров.

Защита сайта — это просто

Для того чтобы защитить сайт, нужно выполнить следующую последовательность действий: создать файл с паролями, переписать его на сервер, создать файл .htaccess и тоже переписать его на сервер.
Для организации защиты понадобится.

  1. WEB-сайт и FTP-доступ к нему.
  2. Права на создание файлов .htpaccess и организацию защиты с помощью них.
  3. Утилита генерации паролей htpasswd.exe

Проверка работы файла .htaccess на сервере

Для того чтобы проверить есть ли у Вас права на организацию защиты с помощью файлов .htaccess создайте текстовый файл с именем .htaccess (первым символом идет точка, расширение отсутствует).

Замечание

Удобно создавать файлы .htaccess с помощью встроенного редактора в оболочках Far, WindowsCommander, TotalCommander и т.п., а также в редакторе Блокнот.

Замечание

Чтобы блокнот не подставлял автоматически расширение txt, в диалоге сохранения в выпадающем списке "тип файла" следует выбрать опцию "Все файлы".

 


Рис. Сохранение файлов .htaccess в блокноте

Перед тем как сохранить файл, впишите в него следующие строки:

Проверка работы .htaccess

AuthType Basic  
AuthName admin
require valid-user 

Затем, через FTP-доступ, перепишите файл .htaccess на сайт, в ту директорию, которую вы хотите защитить.

Замечание

Действие файлов .htaccess распространяется не только на ту директорию, где лежит файл, но и на все поддиректрии, лежащие уровнем ниже.

Далее через браузер обратитесь к этой директории. Если Вы защищаете директорию admin и переписали туда файл .htaccess, то для проверки Вам следует вписать в адресную строку браузера следующий URL: http://www.mysite.ru/admin/.

Если после этого Вам открылся запрос на ввод логина и пароля, как на рисунке ниже, то тестирование прошло успешно и можно продолжать защиту директории.

Рис. Окно ввода логина и пароля


Если вы все сделали правильно, но окошко ввода пароля не появилось, то это значит, что настройки сервера запрещают Вам использовать файлы .htaccess для защиты директорий. Для решения данного вопроса Вам следует связаться с администрацией сервера, либо использовать другой тип защиты.
После того, как было выяснено, что файлы .htaccess работают, следует удалить с сайта только что написанный тестовый файл.

Замечание

Если по каким либо причинам Вы не можете удалить файл .htaccess, то создайте пустой файл .htaccess и замените им файл, лежащий на сервере.

Создание файла с паролями .htpasswd

Файл с паролями создается утилитой htpasswd.exe. Если у Вас на машине установлен WEB-сервер Apache, то данная утилита находится в директории с установленным Apache-ем в подкаталоге bin.

Замечание

Если у Вас не установлен Apache, то утилиту htpasswd.exe можете скачать по ссылке: http://www.softtime.ru/files/htpasswd.zip.

Для работы с утилитой htpasswd.exe необходим интерфейс работы с командной строкой. Интерфейсом работы с командной строкой обладают такие программы как Far, WindowsCommander и т.п. Здесь будет рассмотрена работа с командной строкой с помощью утилиты cmd, которая входит в поставку Windows 2000/XP и т.п.
Нажмите "Пуск"->"Выполнить", введите в строку ввода cmd и нажмите ОК. Вам откроется окно утилиты CMD.

Рис. Окно утилиты CMD


Далее необходимо перейти в директорию, где находится утилита htpasswd.exe. Допустим, сервер Apache установлен в директории с:/Apache2, тогда введите в командную строку команду: cd../../apache2/bin и нажмите ввод.

 


Вы перешли в директорию с:Apache2in. Теперь нужно дать команду на создание файла с паролем. Введите в командную строку следующее:

htpasswd -cm .htpasswd admin

  • -cm — это ключи для утилиты. Ключ с — указывает, что необходимо создать новый файл с паролями. Если файл с таким именем уже существует, то он будет перезаписан. Ключ m — определяет шифрование по алгоритму MD5.
    .htpasswd — имя файла с паролями (можете использовать любое имя).
    admin — имя посетителя, которому будет разрешен доступ в закрытую область сайта.

В ответ, должен появится запрос на ввод пароля и его повтор. Если все правильно, то в завершении появится сообщение: Adding password for user admin. И в директории c:Apache2in появится файл .htpasswd, к котором будет находиться строка с именем пользователя и хеш-кодом его пароля. Для того, что бы в тот же файл .htpasswd добавить еще одного пользователя следует убрать ключ -c из команды запуска утилиты htpasswd.exe

htpasswd -m .htpasswd admin

 


Замечание

Если файл с паролями не был создан, то возможно, некоторые ключи утилиты не поддерживаются в Вашей операционной системе. Например, иногда не поддерживается ключ m. В этом случае, Вам нужно ввести htpasswd -c .htpasswd admin
Для того, чтобы посмотреть ключи и параметры работы утилиты введите htpasswd.exe /? Вам будет выдано описание интерфейса.

Итак, файл с паролями создан. Теперь Вам необходимо переписать его на сервер. Файлы с паролями очень желательно класть выше корневой директории сайта — туда, куда не будет доступа посетителям.
Если это невозможно, то файлы с паролями следует обязательно защитить. Это можно сделать с помощью файлов .htaccess. Чтобы защитить файлы с паролями создайте файл со строками, представленными в следующем листинге.

Защита файлов .htpasswd

<Files .htpasswd>
   deny from all
</Files>

И положите его в ту директорию, где находится Ваш файл с паролями. Теперь посетители сайта не смогут получить к нему доступ.
Файл с паролем создан и защищен от несанкционированного доступа. Теперь необходимо создать файл .htaccess, который будет использоваться в защищаемой директории.

Создание файла .htaccess

Для защиты директории могут использоваться следующие директивы:

  • AuthType — Тип используемой аутентификации. Для базовой аутентификации эта директива должна иметь значение: Basic
    AuthName — Имя области действия аутентификации. Текст, помогающий посетителю понять, куда он пытается получить доступ. Например, может быть написано: "Private zone. Only for administrator!"
    AuthUserFile — путь к файлу с паролями (.htpasswd).
    AuthGroupFile — путь к файлу групп, если он существует.
    Require — Одно или несколько требований, которые должны быть выполнены для получения доступа к закрытой области.

Пример файла .htaccess

AuthType Basic  
AuthName "Private zone. Only for administrator!"
AuthGroupFile /usr/host/mysite/group
AuthUserFile  /usr/host/mysite/.htpasswd  
require group admins

Следует более подробно описать директивы AuthUserFile и AuthGroupFile. В них прописываются абсолютные пути к соответствующим файлам от корня сервера.

Внимание!

Относительные пути работать не будут!

Путь от корня сервера, можно узнать, спросив у администрации сервера, либо можно попробовать выяснить его самим. Для этого выполните функцию phpinfo(). На экран будет выведена фиолетовая таблица. Значение абсолютного пути от корня сервера можно посмотреть в переменных: doc_root, open_basedir, DOCUMENT_ROOT.
Директива Require определяет кому разрешен доступ к закрытой области. Например,

  • require valid-user — разрешен доступ всем прошедшим проверку
  • require user admin alex mango — разрешен доступ только посетителям с именами admin, alex, mango. Естественно, они должны пройти аутентификацию.
  • require group admins — разрешен доступ всем пользователям из группы admins

Файлы групп

Если к защищаемой области сайта должна иметь доступ большая группа людей, то удобно объединить людей в группы, и разрешать доступ, определяя принадлежность посетителя к группе.
Формат файла групп очень прост. Это текстовый файл, каждая строка, которой описывает отдельную группу. Первым в строке должно идти название группы с двоеточием. А затем через пробел перечисляются посетители, входящие в группу.

Пример файла групп

Admins: admin alex mango
Users: guest user max23

В группу Admins входят посетители с именами admin, alex, mango. А группу Users входят посетители с именами guest, user, max23.

Примеры файлов .htaccess

Доступ всем пользователям, прошедшим авторизацию

AuthType Basic  
AuthName "Private zone. Only for administrator!"
AuthUserFile  /usr/host/mysite/.htpasswd  
require valid-user

Доступ только пользователям admin и root

AuthType Basic  
AuthName "Private zone. Only for administrator!"
AuthUserFile  /usr/host/mysite/.htpasswd  
require user admin root

Доступ только пользователей из группы admins

AuthType Basic  
AuthName "Private zone. Only for administrator!"
AuthUserFile  /usr/host/mysite/.htpasswd  
AuthGroupFile /usr/host/mysite/group
require group admins

Запрет доступа только к файлу private.zip

<Files private.zip>
AuthType Basic
AuthName "Private zone. Only for administrator!"
AuthUserFile  /usr/host/mysite/.htpasswd
require valid-user
</Files>

Xming. Подключение к X-Window Linux из Microsoft Windows

Обновлено: 11.04.2025

Эта статья на текущий момент устарела в том смысле, что Xming (сервер X Windows, который можно запустить на MS Windows) устарел совсем уж неприлично. Мне известны две замены: x410 (https://x410.dev, платная) и VcXsrv (Open-Source X Server for Windows, https://vcxsrv.com). На сегодня (11.04.25) на сайте доступна для скачивания версия 1.17.2.0 (файл vcxsrv-64.1.17.2.0.installer.zip, в архиве файл от 28.09.2024, в свойствах файла указана версия 1.17.2.0). Но общая суть работы не поменялась. Поэтому статью не меняю, оставлю для истории.


Запуск программ от имени администратора из-под ограниченной учетной записи

Обновлено: 29.06.2025

Любой системный администратор сталкивался с ситуацией, когда бухгалтеру нужно поставить какую-нибудь программу, которая работает только под админом, например, банк-клиент. И часто из всех подходящих способов остается только дать админа и молиться, чтобы бухгалтерша не полезла шариться по форумам и пр. в поисках всякой полезной малвари.

Вариант создания ограниченной учетной записи и выдача пароля от админской учетной записи неудобен по нескольким соображениям:

1) Вводить пароль каждый раз будет неудобно (уж не помню, почему, но от ключа «/savecred» команды «runas» я отказался).
2) Факт владения паролем от админки(!) для бухгалтерши(!!!) открывает ей путь для волшебства. Аськи, плагины и прочие, недоступные ранее радости, теперь доступны. Естественно, это сразу отразиться на работе компьютера.

Выходом из сложившейся ситуации стала программа AdmiLink, создающая ярлык для запуска программы от имени какой-либо учетной записи, введенной ранее. Программа с русским интерфейсом, бесплатная и очень простая в использовании. Приведу цитату с сайта автора:

«AdmiLink - утилита, при помощи которой Администратор может создать ярлык, дающий возможность пользователям с ограниченными правами запускать конкретную (без возможности подмены!) программу с правами Администратора (или любого другого пользователя) без (интерактивного) ввода пароля.

Типичным применением программы AdmiLink является администрирование защищенных систем, в которых пользователь работает в основном под своей ограниченной учетной записью, и только отдельные, строго ограниченные Администратором функции запускает под Администратором, не зная его пароля и не имея возможности запускать другие, несанкционированные программы»

Запуск программ под администратором в Windows 7

Совершенно случайно (см. комментарии kpcp) я узнал, что Admilink при работе в Windows 7 может выдавать ошибку при попытке запуска созданного ярлыка для какой-нибудь программы, которую мы хотим выполнить под админом.

Выглядит это так (здесь и далее скрины и идея с oszone.net):

Происходит это из-за проблем с пресловутым "Контролем учетных записей пользователя" (User Account Control или UAC). Кто-то отключает UAC, но я не стал, все-таки лишний контроль не помешает.

Ладно, а как жить дальше-то? Решение не обычное, сразу сам бы не додумался, наверное:

Нам будет нужна утилита Elevate от Johannes Passing. Эта утилита из командной строки запустит нашу программу, которой нужны права администратора и у которой есть проблемы с поддержкой UAC:

> "C:AdminElevateReleaseElevate.exe" "C:EVERESTPORTABLEEVERESTULTIMATEPORTABLE.exe"

Выведется запрос UAC и приложение запустится от имени администратора.

Вот как это будет выглядеть в программе Admilink:

Вот так вот, желаю всем удачи! Большое спасибо автору программы и замечательной статье на oszone.net, в которой описан способ работы Admilink в Windows 7. Надеюсь, программа поможет многим!

Да, чуть не забыл, сайт программы http://www.crw-daq.ru/ или сразу руководство по установке.


Download Master и ClamWin - безопасный дуэт

Обновлено: 29.06.2025

Традиционно считается, что такие продукты, как Касперский, NOD, Symantec и им подобные настолько превосходят более слабые некоммерческие проекты, что последние тихо отдыхают и работают в основном на почтовых серверах FreeBSD или Linux, да и то не всегда, настолько сильна вера в клиентские "интегрированные" "тяжеловесы".

Но, как многие также знают, каждый антивирус обладает своими особенностями, которые отличают его от конкурентов, и вполне возможна ситуация, когда один антивирус не обратит внимания на тот файл, который другой посчитает инфицированным.

Также известен факт, что установить на один компьютер Касперского и, скажем, NOD, без "бубнов" и прочих примудростей не выйдет (а если и выйдет, то проактивная защита все равно будет работать криво).

Теперь представим, что есть некий человек, который активно качает "всяко-разно" из интернета, музыку там, видео... У него установлен тот же NOD, Ad-Aware и Outpost. И пусть человек этот - параноик (хотя даунлоадеров-параноиков по Дарвину быть не должно) и он хочет дополнительно проверять скачиваемые файлы каким-либо другим антивирусом, желательно, в автоматическом режиме, и, желательно, не оплачивая вторую-третью-и-так-далее лицензии разных крупных антивирусов, которые все равно вместе "не дружат". На помощь можно призвать тех самых неброских бесплатных антивирусов без навороченной проактивной защиты, но активно поддерживаемых и регулярно обновляемых сообществом. Например, ClamWin.

ClamWin, свободный антивируcный сканер для платформ Microsoft Windows 98/Me/2000/XP/2003/Vista. Он обеспечивает графичеcкий интерфейс пользователя к программе ClamAV, одного из крупных представителей бесплатных антивирусов. Сайт http://ru.clamwin.com/. О возможностях этого антивируса вы можете прочесть на его странице (прямо на первой странице), а мы продолжим. Скачиваем, устанавливаем, обновляемся. Ок, теперь наш компьютер имеет еще один антивирус. Здорово, но он он не резидентный антивирус, а посему файлы сам проверять не станет.

Скачивать файлы можно разными качалками, среди которых Download Master можно выделить двумя моментами: 1) бесплатность 2) возможность подключить внешний антивирус для автоматической проверки скачиваемых файлов. Уже поняли, к чему это я? Идем на http://www.westbyte.com/dm/, качаем последнюю версию и устанавливаем ее. Кроме многих фишек (типа скачивания видео с youtube), нас интересует меню "Инструменты" - "Настройки" - "Автоматизация" - "Антивирус".

Отмечаем галочку "Проверять файлы на вирусы после закачки", в поле "Антивирусная программа" пишем:

 C:Program FilesClamWininclamscan.exe (это путь для ClamWin по-умолчанию),

в поле "Параметры" пишем:

--database="C:Documents and SettingsAll Users.clamwindb" --move="C:Documents and SettingsAll Users.clamwinquarantine" [FileName]

Жмем OK. Все, теперь файлы, которые будут скачиваться этой программой, будут проверяться, в дополнение к основному антивирусу, антивирусом ClamWin. Проверить действие антивируса можно, попробовав скачать тестовый вирус eicar со страницы http://www.eicar.org/anti_virus_test_file.htm. Например, eicar.com. При этом этот файл должен будет быть перемещен в директорию "C:Documents and SettingsAll Users.clamwinquarantine". Опции командной строки можете посмотреть через cmd, запустив "clamscan.exe --help". Удалять файл, детектированный как вирус, не обязательно, ведь это может быть ложным срабатываением, ведь вы можете, например, качать RAdmin или, не дай Бог, кряк ;). А эти "господа" вполне могут быть обработаны как вирус.

Ну вот, в кратце, все, всякие нюансы проще смотреть вам самим, т.к. если уж вы читаете эту заметку, то наверняка сами разбираетесь в настройках всяких там программулек :)

PS: К тому же ClamWin можно настроить на периодическую проверку системы, на проверку почты в Outlook, The Bat (с помощью бесплатного плагина http://mark0.net/plugins-tb-tbclamwin-e.html). Спи спокойно, параноик ;)


Таблица настройки правил брандмауэров

Обновлено: 29.06.2025
Application or Service what is it? TCP UDP _local_ remote dire-ction _зачем_? Specific rules, ICMP
DHCP Dynamic Host Configuration Protocol. Автоматическая настройка IP и др. сетевых параметров UDP 68 67 both settings request +answer  
DNS Сервис соответствия доменного имени IP-адресу
(RU-Board.com -> 207.44.160.93)
TCP, UDP 1024-5000 53 both IP request + response  
ntoskrnl .exe Cистемный модуль ядра NT. Передача файлов из/в расшаренные папки TCP
UDP
1024..5000
137. 138
139
137. 138
out
both
NetBIOS session service
NetBios overTCP/IP
comment:
137 - browsing request
138 - browsing responses
ntoskrnl .exe оно же через CIFS (Common Internet File System) TCP, UDP 445 445 both win2k+ аналог NetBIOS/TCP поправьте меня, если я не прав
browser IE, Opera, Mozilla TCP 1024..5000 80, 443, 8080, 8100 out http(s) web-servers      
FTP-clients active mode TCP
TCP
1024-5000
1024-5000
20
21
in
out
data transmission
ftp requests
 
FTP-clients passive mode. Соединения для данных инициируются клиентом TCP 1024-5000 21, 1024-65535 out FTP requests+ transmission  
ICQ internet messenger TCP 1024-5000 443 or 5190 out 443 - с шифрованием можно обозначить IP login.icq.com = 64.12.161.153
IRC internet messenger TCP ?
113
6660-6670
?
out
in
IRC connection
IRC AUTH connection
 
E-mail почтовая программа-клиент (Outlook, The Bat и др.) TCP 1024-5000 25, 110, 143, 993, 995 out 25 - SMTP-сервер (отправка)
110 - POP3-сервер (прием)
143 - IMAP (замена POP3)
993 - secure IMAP
995 - secure POP3
comment: почтовый сервер может использовать отличные от 25 и 110 порты. RTFM
Emule & Co файлообменник TCP 4662,4711, 4712
any
any
1025-65535
in
out
response (?)
request (?)
поправьте меня, если я не прав
Emule & Co файлообменник UDP 4665,4672, 4673
any
any
1025-65535
in
out
response (?)
request (?)
поправьте меня, если я не прав
Bittorent качалка, hispeed Р2Р, с центральным сервером (трекер) TCP 1024-5000
6881-6889
any (?)
any (?)
out
in
(?)
(?)
 
Radmin Viewer Remote Administrator TCP any 4899 (or server-defined. RTFM) out connect to Radmin-server  
Radmin Server Remote server TCP 4899 (or serv-defined. RTFM) any both connect to client  
Languard & Co сканеры сетей TCP, UDP
UDP
any
any
any
any
out
in
скан
-
Allow ICMP out
Novel client NetWare application (инфо) TCP, UDP 1024-65535
427
524
427
out
both
NCP Requests
SLP Requests
 
MSN Windows Messenger TCP 1024-65535 1863,6891-6901 out - Block Incoming Fragment, Block Incoming Conection
Time Sync синхронизация времени UDP 123 123 both - Block incoming fragment
LAST RULE Block any other connection TCP UDP any any any все остальные пусть не лазят в сеть ICMP block

*относительно диапазона локальных TCP портов (1024-5000)- 5000 значение по умолчанию, на NT based может быть изменено  
ключ HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters |-> MaxUserPort | тип DWORD | valid значения 5000-65534

Таблица взята с сайта ru-board. Данные из таблицы могут быть неприемлемыми для вашего брандмауэра по разным соображениям, пожалуйста, старайтесь трезво оценивать ваши потребности и соответсвенным образом настраивать правила :)



Принимаю заказы на настройку серверов, mikrotik и других роутеров, точек доступа, nginx и т.п. В пределах Санкт-Петербурга возможен выезд к заказчику. См. контакты.


Последние комментарии