31 (14.02.2011 21:18:46 отредактировано lexikon)

Устранение проблемы с NumLockx ( Не рабочий индикатор LED на клавиатуре )
В новой версии упорно рогами упирался пакет NumLockx...работать то он работал! Но LED на клавиатуре включать не хотел  ac
Вообщем, решение бага в Debian Squeeze с NumLockx заключается в откате пакета одного:

 Консоль:
wget http://ftp.us.debian.org/debian/pool/ma … 1_i386.deb && dpkg -i x11-xkb-utils_7.4+1_i386.deb && aptitude hold x11-xkb-utils

архитектуру учитывайте  wink

32

Русификации консоли: (всё выполняем с привилегиями суперпользователя).
Редактируем файл /etc/locale.gen, там указываются все доступные локали, неиспользуемые закоментированны:

$ nano /etc/locale.gen 

В принципе нам нужны только эти:

en_US ISO-8859-1
en_US.UTF-8 UTF-8
ru_RU.KOI8-R KOI8-R
ru_RU.UTF-8 UTF-8

Далее выполняем:

$ locale-gen 
$ localedef -i ru_RU -f UTF-8 ru_RU.UTF-8
$ dpkg-reconfigure console-cyrillic
$ dpkg-reconfigure console-setup
$ dpkg-reconfigure console-data
$ dpkg-reconfigure keyboard-configuration

Для полной красоты,
примерное содержание конфигурационных файлов, первый для консоли, второй для иксов (переключение рус/лат по alt+shift - индикация scroll, временное преключение - левая win клавиша):
/etc/default/console-setup

VERBOSE_OUTPUT=no
ACTIVE_CONSOLES="/dev/tty[1-6]"
CHARMAP="UTF-8"
CODESET="CyrSlav"
FONTFACE="Terminus"
FONTSIZE="14"
XKBMODEL="pc105"
XKBLAYOUT="us,ru"
XKBVARIANT=",winkeys"
XKBOPTIONS="grp:alt_shift_toggle,grp:lwin_switch,lv3:ralt_switch,grp_led:scroll"
BOOTTIME_KMAP_MD5="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

/etc/default/keyboard

XKBMODEL="pc105"
XKBLAYOUT="us,ru"
XKBVARIANT=","
XKBOPTIONS="grp:alt_shift_toggle,grp:lwin_switch,lv3:ralt_switch,grp_led:scroll"

Или всё вместе простым скриптом (сохранить в файл, название - как хотите, например mykeyboardconf.sh, запустить sh mykeyboardconf.sh)

#!/bin/sh
echo 'en_US ISO-8859-1
en_US.UTF-8 UTF-8
ru_RU.KOI8-R KOI8-R
ru_RU.UTF-8 UTF-8
     '> /etc/locale.gen 
locale-gen 
localedef -i ru_RU -f UTF-8 ru_RU.UTF-8

echo 'VERBOSE_OUTPUT=no
ACTIVE_CONSOLES="/dev/tty[1-6]"
CHARMAP="UTF-8"
CODESET="CyrSlav"
FONTFACE="Terminus"
FONTSIZE="14"
XKBMODEL="pc105"
XKBLAYOUT="us,ru"
XKBVARIANT=",winkeys"
XKBOPTIONS="grp:alt_shift_toggle,grp:lwin_switch,lv3:ralt_switch,grp_led:scroll"
BOOTTIME_KMAP_MD5="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
 '> /etc/default/console-setup

echo 'XKBMODEL="pc105"
XKBLAYOUT="us,ru"
XKBVARIANT=","
XKBOPTIONS="grp:alt_shift_toggle,grp:lwin_switch,lv3:ralt_switch,grp_led:scroll"
 '> /etc/default/keyboard
История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

33

Ставим Zen ядро (http://zen-kernel.org) с  http://liquorix.net
Git: http://git.zen-kernel.org
Докуметация: http://www.zen-kernel.org/documentation
Зеркало в Бельгии http://ftp.belnet.be/mirror/liquorix.net

Редактируем sources.list

 Консоль:
$ nano /etc/apt/sources.list

Добовляем репозиторий:
 Консоль:
deb http://liquorix.net/debian unstable main past
# Зеркало:
# deb http://ftp.belnet.be/mirror/liquorix.net/debian unstable main past

В main сейчас находится ядро версии 2.6.38, в past — 2.6.37
Ставим pgp ключ:
 Консоль:
$ apt-get update && apt-get install '^liquorix-([^-]+-)?keyring.?'

Ну и установка ядра (у меня AMD соответственно i686 - у кого Intel):
На сегодняшний момент (11-апрель-2011) это будет ядро 2.6.38-2.
 Консоль:
$ aptitude install linux-image-2.6.38-2.dmz.2-liquorix-amd64 linux-headers-2.6.38-2.dmz.2-liquorix-amd64

Для Intel:
 Консоль:
$ aptitude install linux-image-2.6.38-2.dmz.2-liquorix-686 linux-headers-2.6.38-2.dmz.2-liquorix-686

Себе поставил - встало безупречно:
 Консоль:
$ uname -a
Linux z4z 2.6.38-2.dmz.2-liquorix-amd64 #1 ZEN SMP PREEMPT Sun Apr 10 04:31:30 CDT 2011 x86_64 GNU/Linux


ы. Для тех кто не в курсе:
Ядро Liquorix собрано с патчами от Zen Kernel, они ориентируются на повышение производительности на десктопах.
Среди патчей есть знаменитый Brain Кю Scheduler.  http://ru.wikipedia.org/wiki/Brain_Fuck_Scheduler
Есть поддержка AUFS, reiser4 ну и много еще вкусностей...
.
Обновил тут 9.04.2012

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

34

Простой шлюз и firewall для Debian

Вопросов стало много, поэтому решил написать заметку как сделать простой шлюз и firewall для Debian, критика, вопросы и указание ошибок приветствуется, в соответствующей теме.

Каждый выход в интернет не только дает возможность подключаться к различным серверам и сайтам, но и создает потенциальную опасность проникновения на наш компьютер извне. Не стоит пренебрегать этой опасностью. Ситуация усугубляется оттого, что в некоторых (пока еще) широко распространненных операционных системах по умолчанию остаются открытыми многие порты, что позволяет подключаться из интернета к пользователю незаметно для последнего.
Поэтому в основу любого firewall должны быть заложены правила по закрытию и контролированию портов.
В нашем случае действуют политики по умолчанию - всё закрыть, открыть извне только то что нам необходимо, а также сам шлюз и компьютеры локальной сети могут открывать порты в обратную сторону самостоятельно, вот как эти правила выглядят на языке iptables:

# Закрываем изначально ВСЁ (т.е. изначально все что не разрешено - запрещено):
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
# Пропускать все уже инициированные соединения, а также дочерние от них
iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
# Пропускать новые, а так же уже инициированные и их дочерние соединения
iptables -A OUTPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Разрешить форвардинг для новых, а так же уже инициированных и их дочерних соединений
iptables -A FORWARD -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

Исходные данные.
Компьютер подключенный к интернет через pppoe (для настройки лучше использовать pppoeconf - это скрипт входящий в стандартную установку Debian), интерфейс ppp0.
Шлюзом будет машина с ip = 192.168.0.1
Для того чтобы наш шлюз раздавал dns клиентам необходимо поствить dnsmasq, если у вас стоит какой-то другой кэшируюший dns-сервер то dnsmasq устанавливать нет необходимости:

$ aptitude install dnsmasq iptables

Настраивать dnsmasq никак не надо.
Раздача интернета будет осуществлена на локальную сеть подключенную к интерфейсу eth1, ip адреса: 192.168.0.0/24.
Все это можно в принципе изменить, в скрипте введены для этого переменные в шапке - например если у вас интернет подключен напрямую к eth0 без pppoe, то достаточно изменить export WAN=ppp0 на export WAN=eth0, так же и с остальным.
В нашем случае вот примерно как будут выглядеть настройки сетевых интерфейсов:

$ cat /etc/network/interfaces
# Файл описывает сетевые интерфейсы доступные в системе
# и способы активирования их.
# The loopback network interface
auto lo
   iface lo inet loopback
# PPPoE
auto eth0
iface eth0 inet manual
   auto dsl-provider
iface dsl-provider inet ppp
   pre-up ifconfig eth0 up
   provider dsl-provider
# eth1 - Локальная сеть
auto eth1
iface eth1 inet static
   address 192.168.0.1
   netmask 255.255.255.0
   network 192.168.0.0
   broadcast 192.168.0.255

Ну собственно вот наш скрипт:

#!/bin/bash
# Тут в принципе может и не надо этого всего но не помеха вдруг какой модуль не подгружен или форвардинг не включен
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

# Объявление переменных
export IPT="iptables"

# Интерфейс который смотрит в интернет
export WAN=ppp0

# Локальная сеть
export LAN=eth1
export LAN_IP_RANGE=192.168.0.0/24

# Очистка всех цепочек iptables
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# Закрываем изначально ВСЁ (т.е. изначально все что не разрешено - запрещено):
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

# разрешаем локальный траффик для loopback и внутренней сети
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -i $LAN -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A OUTPUT -o $LAN -j ACCEPT

# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
# Пропускать все уже инициированные соединения, а также дочерние от них
$IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
# Пропускать новые, а так же уже инициированные и их дочерние соединения
$IPT -A OUTPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Разрешить форвардинг для новых, а так же уже инициированных и их дочерних соединений
$IPT -A FORWARD -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# Включаем фрагментацию пакетов. Необходимо из за разных значений MTU
$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP

# Приводит к связыванию системных ресурсов, так что реальный обмен данными становится не возможным.
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

# Разрешаем доступ из внутренней сети наружу
$IPT -A FORWARD -i $LAN -o $WAN -j ACCEPT

# Запрещаем доступ снаружи во внутреннюю сеть
$IPT -A FORWARD -i $WAN -o $LAN -j REJECT

# Маскарадинг
$IPT -t nat -A POSTROUTING -o $WAN -s $LAN_IP_RANGE -j MASQUERADE

# Далее дано как пример открытие портов извне:
# **********************************************************************
# Открываем порт для ssh
$IPT -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT

# Открытие портов для торрентов (такие же указать в torrent-клиенте)
$IPT -A INPUT -i $WAN -p tcp -m multiport --ports 50100:51100 -j ACCEPT

# Открытие 443 порта
$IPT -A INPUT -p tcp --dport 443 -j ACCEPT

# Открываем 80 порт для веб сайтов
$IPT -A INPUT -i $WAN -p all --dport 80 -j ACCEPT

# Открытие портов для игровых серверов
$IPT -A INPUT -i $WAN -p tcp --dport 27010:27030 -j ACCEPT
$IPT -A INPUT -i $WAN -p udp --dport 27010:27030 -j ACCEPT
# **********************************************************************
# Вывод информации о состоянии
$IPT -L

Открытие портов приведено как пример.
Теперь сохраняем скрипт в файл, допустим /etc/firewall.sh, делаем его исполняемым.

$ chmod +x /etc/firewall.sh

Для начала чтобы скрипт выполнялся во время загрузки можно поместить ссылку в rc.local до строчки exit 0:

$ cat rc.local
#!/bin/sh -e
# rc.local
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
# In order to enable or disable this script just change the execution
# bits.
# By default this script does nothing.
sh /etc/firewall.sh
exit 0

Поместить запуск в rc.local не есть самое правильное решение, более правильно - это сохранить правила iptables перед выключением, потом перед поднятием  сетевого интерфейса загрузить правила, объясню как это сделать:
Для сохранения правил iptables существует команда:

$ iptables-save > /etc/ip_rulles.lst

После этого правила будут сохранены в файле (имя произвольное) /etc/ip_rulles.lst
Для загрузки правил соответственно:

$ iptables-restore < /etc/ip_rulles.lst

Ну и самое интересное - в файле настроек сети /etc/network/interfaces в каждый из интерфейсов можно добавлять секции которые будут выполнятся до поднятия, после поднятия, до отключения и после отключения интерфейса - секции:

pre-up
up
post-down
down

В нашем примере сохранение \ восстановление правил лучше поместить в секцию с loopback interface, вот как это будет выглядеть:

# The loopback network interface
auto lo
  iface lo inet loopback
   pre-up echo "1" > /proc/sys/net/ipv4/ip_forward  # Включаем форвардинг пакетов
   pre-up iptables-restore < /etc/ip_rulles.lst     # Загружаем правила
   post-down iptables-save > /etc/ip_rulles.lst     # Сохраняем правила

После этого из rc.local необходимо лишнее убрать.
Теперь необходимо выполнить наш скрипт и сохранить правила

$ sh /etc/firewall.sh
$ iptables-save > /etc/ip_rulles.lst

Теперь все правила будут выставляться автоматически.
Также если сделать restart сети - правила сохраняться и сразу загрузятся.
Чтобы обновить можно принудительно сделать:

$ /etc/init.d/networking restart   # start | stop | force-reload

или

$ ifdown lo
$ ifup lo

IP-калькулятор
Руководство по iptables
По следам темы http://linuxforum.ru/viewtopic.php?id=13140
И многих других подобных.

И повторю - это простой вариант шлюза - целью было показать как это делается на примере.
Оригинал у меня.

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

35

Установка и обновление драйверов Nvidia/ATI с помощью sgfxi (скачивает и устанавливает драйвера с оффициального сайта)
Sgfxi — простой скрипт, позволяющий легко устанавливать и обновлять закрытые драйверы видеокарт. На сегодняшний день поддерживаются драйверы ATI fglrx и Nvidia.
Sgfxi поддерживает следующие дистрибутивы: Debian Stable, Debian Testing, Debian Unstable. Так же поддерживается текущая версия Ubuntu, а в последних версиях обеспечена работа на Archlinux. К сожалению не все функции скрипта работают на всех дистрибутивах одинаково. Так же нужно отметить, что поддержка ATI fglrx может меняться время от времени и в зависимости от дистрибутива.
Драйвер по-умолчанию — это драйвер, который устанавливается в случае, если не выбраны никакие дополнительные параметры. Если же ваша видеокарта достаточно старая, то может потребоваться в ручную указать старую версию драйвера для обеспечения её работы.
После запуска скрипта  вам будет задан вопрос, нужная ли версия драйвера выбрана для установки. После этого вы сможете либо продолжить установку, либо прервать её и перезапустить скрипт с дополнительными параметрами.

Установка скрипта sgfxi
Существует много способов установки sgfxi. С ними можно познакомится на домашней странице проекта smxi http://smxi.org/site/install.htm. Однако, в подавляющем большинстве случаев вам будет достаточно ввести в терминале суперпользователя команду:

cd /usr/local/bin && wget -Nc smxi.org/sgfxi && chmod +x sgfxi

Пользователям Archlinux вместо /usr/local/bin необходимо подставить /usr/bin

Использование параметров скрипта sgfxi
Sgfxi имеет множество различных параметров, некоторые из которых работают только с драйвером Nvidia или только ATI fglrx. Чтобы получить полный список параметров, введите в терминале команду:

sgfxi -h

Скрипт sgfxi автоматически заменяет нужную секцию xorg.conf для работы установленного драйвера (создавая при этом резервную копию старого файла). В случае если скрипт не обнаружит файл xorg.conf в системе, он будет сгенерирован автоматически.

Использование скрипта sgfxi
Для начала установки или обновления драйвера вам необходимо переключится в виртуальную консоль с помощью сочетания клавиш Ctrl+Alt+F1. После этого получите права суперпользователя и запустите скрипт:

sgfxi 

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

sgfxi -o <версия драйвера>

Список доступных версий можно посмотреть с помощью команды:

sgfxi -h

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

Возможные проблемы
На этапе установки скрипт выдал предупреждение о том, что не удалось удалить модуль  Nouveau.
Решение: на самом деле sgfxi сразу удаляет модуль Nouveau из ядра, но для продолжения работы потребуется перезагрузка системы и повторный запуск скрипта. Так как модуль Nouveau уже удалён из системы, то вам не удастся запустить xserver. Его можно будет запустить по окончанию установки.
Происходит переключение в другую виртуальную консоль
Решение: просто переключитесь обратно с помощью сочетания клавиш Ctrl+Alt+F1
Скрипт выдаёт ошибку запуска.
Решение: в некоторых дистрибутивах скрипт не устанавливает автоматически необходимый для работы пакет build-essential. Для решения этой проблемы установите пакет в ручную с помощью команды:

aptitude install build-essential

Оригинал.

Полная версия руководства на английском языке http://smxi.org/docs/sgfxi-manual.htm
Домашняя страница проекта http://smxi.org/

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

36

LNMP веб-сервер – nginx & mysql & php.
Основная функциональность HTTP-сервера:
- обслуживание статических запросов, индексных файлов, автоматическое создание списка файлов, кэш дескрипторов открытых файлов;
- акселерированное проксирование с кэшированием, простое распределение нагрузки и отказоустойчивость;
- акселерированная поддержка удалённых FastCGI серверов с кэшированием, простое распределение нагрузки и отказоустойчивость;
- модульность, фильтры, в том числе сжатие (gzip), byte-ranges (докачка), chunked ответы, XSLT-фильтр, SSI-фильтр, преобразование изображений; несколько подзапросов на одной странице, обрабатываемые в SSI-фильтре через прокси или FastCGI, выполняются параллельно.
- поддержка SSL и расширения TLS SNI;
Функциональность почтового прокси-сервера:
- MAP и POP3: перенаправление пользователя на IMAP или POP3-бэкенд с использованием внешнего HTTP-сервера аутентификации;
- SMTP: проверка пользователя с помощью внешнего HTTP-сервера аутентификации и перенаправление соединения на внутренний SMTP-сервер;
методы аутентификации:
- POP3: USER/PASS, APOP, AUTH LOGIN/PLAIN/CRAM-MD5;
- IMAP: LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5;
- SMTP: AUTH LOGI/ PLAIN/CRAM-MD5;
- поддержка SSL;
- поддержка STARTTLS и STLS;
Официальный сайт Nginx http://sysoev.ru/

Основное отличие от многих мануалов в сети, то что тут у нас обмен данными между Nginx и Php происходит через unix socket (unix:/tmp/php-fpm.sock), а не через порт tcp (upstream 127.0.0.1:9000).
Итак приступим.

  • Шаг 1: редактируем sources.list:

$ nano /etc/apt/sources.list
# Официальный репозиторий Debian
deb ftp://ftp.ru.debian.org/debian/ stable main contrib non-free
# Debian Squeeze - обновления
deb ftp://ftp.ru.debian.org/debian squeeze-updates main
# Debian Squeeze - обновления безопасности
deb ftp://ftp.ru.debian.org/debian-security squeeze/updates main non-free contrib
# Debian Squeeze - backports
deb ftp://ftp.ru.debian.org/debian-backports squeeze-backports main contrib
# Debian Squeeze - proprsed - updates
deb ftp://ftp.ru.debian.org/debian squeeze-proposed-updates main contrib non-free
# Dotdeb - The repository for Debian-based LAMP servers
deb http://packages.dotdeb.org stable all

Далее стандартно выполняем следующие:
Устанавливаем ключ для Dotdeb:

$ wget http://www.dotdeb.org/dotdeb.gpg
$ cat dotdeb.gpg | apt-key add -
$ rm -v dotdeb.gpg

Обновляемся:

$ aptitude update
$ aptitude full-upgrade

Теперь можно начать установку LNMP сервера:
Сам nginx:

$ aptitude install nginx

Или nginx-common nginx-extras:

$ aptitude install nginx-common nginx-extras

Php5 и модули (не обязательно ставить все главное поставить php5-fpm):

$ aptitude install php5 php5-cli php5-common php5-fpm php5-cgi php5-curl php5-gd php5-apc

Mysql и php-mysql:

$ aptitude install mysql-server mysql-client php5-mysql

Также если это «свежая» установка я обычно сразу ставлю необходимые мелочи:

$ aptitude install vim vsftpd grc zsh most mc firmware-linux-free zip unzip p7zip-full hwinfo unrar rar rsync
  • Шаг 2: Подготовка каталога для нашего сервера. Создадим /var/www, если его нет, назначим владельца и выставим права на него:

$ mkdir /var/www
$ chmod 755 /var/www
$ chown www-data:www-data /var/www

Создадим от имени пользователя www-data тестовый файл php, для проверки работоспособности:

$ su www-data -c "echo '<?php phpinfo(); ?> ' > /var/www/index.php &"
  • Шаг 3: Настраиваем php.

Сам по себе nginx понимает только html, для того чтобы он начал понимать php существует модуль php-fpm (который мы уже установили), теперь необходимо его настроить. Есть два способа которыми этот обмен может происходить: через tcp порт (по умолчанию) или через юникс сокет.
Настраивается это в файле /etc/php5/fpm/pool.d/www.conf:

$ nano /etc/php5/fpm/pool.d/www.conf

Если мы хотим чтобы обмен происходил через порт – просто убеждаемся что строчка listen = 127.0.0.1:9000 присутствует и не закоментирована.
Но я всё же рекомендую настроить через сокет, для этого поставим знак комментария (для php конф. файла это»;») перед listen = 127.0.0.1:9000 и добавим listen = /tmp/php-fpm.sock

; listen = 127.0.0.1:9000
listen = /tmp/php-fpm.sock
  • Шаг 4: Конфигурация сервера /etc/nginx/sites-available/default:

Соответсвенно с предидущими настройками редактируем строку fastcgi_pass unix:/tmp/php-fpm.sock; – для сокета или fastcgi_pass 127.0.0.1:9000; – для порта.
На выбор – две конфигурации, минимальная, и той которой пользуюсь сам:

$ nano /etc/nginx/sites-available/default

Минимальная:

server {
    listen   80;
    server_name localhost;
    charset utf-8;
    access_log  /var/www/access.log;
    error_log /var/www/error_log;
    location = / {
        root   /var/www;
        index  index.php index.html;
    }
    # mod_rewrite - чтобы работали ЧПУ (постоянные ссылки) в различных CMS
    rewrite_log off;
    if (!-e $request_filename) {
       rewrite (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ /index.php last;
    }
    #  Images and static content is treated different
    location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|swf|flv)$ {
        access_log off;
        expires 30d;
        root /var/www;
        break;
    }
    location ~ \.php$ {
        fastcgi_pass   unix:/tmp/php-fpm.sock;
        # fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name;
        include fastcgi_params;
    }
    # Запрещаем просмотр .htaccess & .htpassword
    location ~ /\.ht {
        deny  all;
    }
}

Мой конфиг:

# -------------------------------------------------------------------------------- #
#                         Последние изменение 17.05.2011                           #
# -------------------------------------------------------------------------------- #
server {
    listen   80;                          ## listen for ipv4
    listen   [::]:80 default ipv6only=on; ## listen for ipv6
    server_name localhost;
    server_name_in_redirect off;
    root /var/www;
    index index.php;
    charset utf-8;
# -------------------------------------------------------------------------------- #
    # Логи доступа:
    # access_log /var/www/access_log;
    access_log /dev/null;
    # Error log's
    # error_log /var/www/error_log;
    error_log /dev/null;
# -------------------------------------------------------------------------------- #
    # страницы с ошибками, вместо стандартных, путь указывается от root (выше)
    # error_page      404     /error/404.html;
    # error_page      403     /error/403.html;
    # error_page      500     /error/500.html;
# -------------------------------------------------------------------------------- #
    # mod_rewrite - чтобы работали ЧПУ (постоянные ссылки) в различных CMS
    rewrite_log off;
    if (!-e $request_filename) {
       rewrite (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ /index.php last;
    }
# -------------------------------------------------------------------------------- #
    gzip_static on;
# -------------------------------------------------------------------------------- #
    #  Images and static content is treated different
    location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|swf|flv)$ {
        access_log off;
        expires 30d;
        root /var/www;
        break;
    }
# -------------------------------------------------------------------------------- #
    # Parse all .php file in the /var/www directory
    location ~* ^.+.(php|cgi)$ {
    # location ~ .php$ {
        include fastcgi_params;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_index  index.php;
        fastcgi_pass   unix:/tmp/php-fpm.sock;
        # fastcgi_pass   127.0.0.1:9000;
        fastcgi_param  QUERY_STRING       $query_string;
        fastcgi_param  REQUEST_METHOD     $request_method;
        fastcgi_param  CONTENT_TYPE       $content_type;
        fastcgi_param  CONTENT_LENGTH     $content_length;
 
        fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
        fastcgi_param  REQUEST_URI        $request_uri;
        fastcgi_param  DOCUMENT_URI       $document_uri;
        fastcgi_param  DOCUMENT_ROOT      /var/www/$host;
        fastcgi_param  SERVER_PROTOCOL    $server_protocol;
 
        fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
        fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;
 
        fastcgi_param  REMOTE_ADDR        $remote_addr;
        fastcgi_param  REMOTE_PORT        $remote_port;
        fastcgi_param  SERVER_ADDR        $server_addr;
        fastcgi_param  SERVER_PORT        $server_port;
        fastcgi_param  SERVER_NAME        $server_name;
        fastcgi_intercept_errors         off;
        fastcgi_ignore_client_abort      off;
        fastcgi_connect_timeout           60;
        fastcgi_send_timeout             180;
        fastcgi_read_timeout             180;
        fastcgi_buffer_size             128k;
        fastcgi_buffers               4 256k;
        fastcgi_busy_buffers_size       256k;
        fastcgi_temp_file_write_size    256k;
        # uwsgi_pass      127.0.0.1:3031;
        # include         uwsgi_params;
    }
# -------------------------------------------------------------------------------- #
    # Запрещаем просмотр .htaccess & .htpassword
    location ~ /\.ht {
        deny  all;
    }
}
# -------------------------------------------------------------------------------- #
# Дальше установки по-умолчанию, (стандартная установка nginx),
# вдруг понадобяться.
# -------------------------------------------------------------------------------- #
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
#       listen 8000;
#       listen somename:8080;
#       server_name somename alias another.alias;
#       root html;
#       index index.html index.htm;
#
#       location / {
#               try_files $uri $uri/ /index.html;
#       }
#}
 
# HTTPS server
#
#server {
#       listen 443;
#       server_name localhost;
#
#       root html;
#       index index.html index.htm;
#
#       ssl on;
#       ssl_certificate cert.pem;
#       ssl_certificate_key cert.key;
#
#       ssl_session_timeout 5m;
#
#       ssl_protocols SSLv3 TLSv1;
#       ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
#       ssl_prefer_server_ciphers on;
#
#       location / {
#               try_files $uri $uri/ /index.html;
#       }
#}
# -------------------------------------------------------------------------------- #

Шаг 5: Рестарт для php5-fpm и nginx:

$ /etc/init.d/php5-fpm restart
$ /etc/init.d/nginx restart

Теперь надо зайти на свой сайт, где должны лицизреть сгенерированную страницу с php- информацией:
http://storage1.static.itmages.ru/i/11/0818/s_1313627106_2300077_69ebff730a.jpeg
если что-то пошло не так, ошибки смотрим так:

$ tail /var/log/nginx/error.log
$ tail /var/www/error_log

Например ошибки mysql ‘Access denied’ смотрим тут: http://www.mysql.ru/docs/man/Access_denied.html
Официальная документация по nginx
Оригинал мануала у меня
Комментарии, мнение ошибки - в соответствующей теме.
Тестированием немного занимались в этой теме http://linuxforum.ru/viewtopic.php?id=13591

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

37

Шрифты в Debian Squeeze как в Ubuntu

Готовые библиотеки для Debian Squeeze, позволяющие отображать шрифты со сглаживанием, как в Ubuntu.
Распаковываем архив, устанавливаем пакеты командой dpkg -i *.deb, после чего перегружаем XServer командой /etc/init.d/gdm3 restart (под рутом).

http://letitbit.net/download/82328.824f … o.zip.html

Скриншоты выложены в ветке http://linuxforum.ru/viewtopic.php?pid=224209#p224209

Сообщения с обсуждением перенесены в тему
http://linuxforum.ru/viewtopic.php?id=1125
Напоминаю, эта тема только для готовых решений, для обсуждений есть своя тема.
(durc)

38 (30.11.2011 07:53:17 отредактировано foozzi)

Установка MATE на debian sid:

 Консоль:
nano /etc/apt/sources.list

Пишем там:

deb http://tridex.net/repo/debian sid main

 Консоль:
apt-get update

в конце получим ошибку о не определенном ключе, нам это не мешает, на сайте разработчиков нет ключа...
ставим:
 Консоль:
aptitude install mate-core mate-desktop-environment mate-desktop

будет ругать о том что есть не разрешенные зависимости с пакетом libgucharmap7, в репах sid для процессоров i386 и x64 его нет... так что берем его из squeeze:
 Консоль:

wget http://ftp.us.debian.org/debian/pool/ma … 1_i386.deb /home/ваше_имя
cd /home/ваше_имя
dpkg -i libgucharmap7_2.30.3-1_i386.deb

и начинаем установку (или продолжаем если проблема была)
В mate почему то нет менеджера сессий, так что я ставил lightdm (потому что gdm3 тянет много зависимостей) а так выбирайте на свой вкус
Так же в mate автоматически не все пакеты ставятся, я ставил руками:
 Консоль:
aptitude search mate

и ставьте все пакеты без пометки i с началом mate-

Вот и все, првоерено все работает отлично

ВНИМАНИЕ! ставить только на debian sid так как разработчики не предоставили еще репозитория для веток stable и testing

39 (02.10.2012 20:05:00 отредактировано Dr House)

Исправляем отображение загрузочной темы Plymouth  при использовании проприетарных драйверов NVIDIA и AMD/ATI
1. Ставим пакет v86d

# apt-get install v86d

2. Загружаем нужный модуль

# modprobe uvesafb

3. Смотрим список поддерживаемых разрешений экрана:

# cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes | sort

4. В файле /etc/default/grub меняем строчку

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

на

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1024x768-32,mtrr=3,scroll=ywrap"

и расскоментируем строчку GRUB_GFXMODE добавив нужное рарешение, к примеру 1024х768
5. Добавим тот же параметр и в initramfs-tools/modules :

# echo "uvesafb mode_option=1024x768-32 mtrr=3 scroll=ywrap" >> /etc/initramfs-tools/modules

6. Затем завершаем настройку командами

 # echo FRAMEBUFFER=y > /etc/initramfs-tools/conf.d/splash
# update-initramfs -u
# update-grub

После этого необходимо перезагрузить систему и нашему взору предстванет исправленный и ровный  Plymouth!

Проверено на Debian Wheezy с ядром linux-3.3 и проприетарными драйверами 295.33.
Видеокарта NVIDIA GT 120/тема Plymouth - Solar

Gentoo Linux amd64 kernel 3.10.17 KDE 4.10.5 / Intel Dualcore E6500 2.93Ghz / 4 GB Ram / NV GT 630 2048mb GDDR3
Полет нормальный!

40 (04.10.2012 13:38:53 отредактировано karl_muenhgausen)

Debian Wheezy MATE

1) Устанавливаем Debian с CD netinst в любой expert mode, подняв сеть, снимаем в "Выборе программного обеспечения" галку с "Графическая оболочка"

2) Грузимся рутом

3) Ставим:
xorg (чтоб было)

 Консоль:
apt-get install xorg

Midnight Commander (удобно)
 Консоль:
apt-get install mc

4) Редактируем /etc/apt/source.list добавляя две строки:

deb http://repo.mate-desktop.org/debian wheezy main
deb http://packages.mate-desktop.org/repo/debian wheezy main

5) Устанавливаем собственно MATE

 Консоль:
apt-get update

apt-get install mate-archive-keyring

apt-get update

apt-get install mate-core

apt-get install mate-desktop-environment

6) Оконного менеджера разработчики не включили, поэтому устанавливаем lightdm:

 Консоль:
apt-get install lightdm

7) И конечно, поскольку у нас девственная ОС без ничего, ставим Synaptic:

 Консоль:
apt-get install synaptic

Всё, перегружаемся

 Консоль:
reboot -f

Имеем чистый Debian MATE

Примечание: Вместо lightdm можно (а если требуется несколько оболочек, то желательно) поставить kdm, а вот, к примеру, gdm3 нельзя, потянет кучу зависимостей и будет пытаться запустить неполный gnome3-classic

На основе материалов mate-desktop.org

41 (30.01.2013 09:36:36 отредактировано Sinder)

Debian + Squid + NTLM + Samba + SAMS2

Настроим kerberos:

# apt-get install krb5-doc krb5-user krb5-config

Правим /etc/krb5.conf:

+ открыть спойлер

[libdefaults]
   default_realm = DOMAIN.LOCAL
   krb4_config = /etc/krb.conf
   krb4_realms = /etc/krb.realms
   kdc_timesync = 1
   ccache_type = 4
   forwardable = true
   proxiable = true
   
... ... ...

[realms]
   DOMAIN.LOCAL = {
      kdc = pdc.domain.local
      master_kdc = pdc.domain.local
      admin_server = pdc.domain.local
      default_domain = domain.local
   }

[domain_realm]
   domain.local = DOMAIN.LOCAL
   .domain.local = DOMAIN.LOCAL

[login]
   krb4_convert = true
   krb4_get_tickets = false

[logging]
   default = FILE:/var/log/krb5libs.log
   kdc = FILE:/var/log/krb5dc.log
   admin_server = FILE:/var/log/ksadmind.log

Проверяем работу, авторизуемся в домене.

# kinit administrator@DOMAIN.LOCAL 
Password for administrator@DOMAIN.LOCAL:
# klist

Должно быть примерно следующее:

Ticket cache: FILE:/tmp/krb5cc_0 
Default principal: administrator@DOMAIN.LOCAL 
 
Valid starting     Expires            Service principal 
03/20/12 14:33:54  03/21/12 00:34:05  krbtgt/DOMAIN.LOCAL@DOMAIN.LOCAL 
        renew until 03/21/12 14:33:54

Поставим winbind и samba

# apt-get install winbind samba

Правим файл /etc/samba/smb.conf

+ открыть спойлер

# NetBIOS-имя хоста (должно совпадать с значением в hosts)
netbios name = PDC

# NetBIOS имя домена
workgroup = DOMAIN

# область работы kerberos \
# (совпадает с именем домена и записывается прописными буквами)
realm = DOMAIN.LOCAL

# имена сервера паролей - КД
password server = pdc.domain.local

# уровень безопасности (ads - член домена AD)
security = ads

# метод аутентификации smbd (с помощью winbind)
auth methods = winbind

# НЕ заставлять nmbd-сервер быть мастер-сервером Wins
preferred master = No

# оприеделить лог-файл (по умолчанию - сислог)
log file = /var/log/samba/smb.log

# уровень логирования (можно менять от 0-минимальный до 9 - максимальный)
log level = 0 vfs:2

# не писать в syslog
syslog = 0

# действие при крушении демона
panic action = /usr/share/samba/panic-action %d

# принтеры нам не нужны
load printers = no
show add printer wizard = no
disable spoolss = yes
printing = cups
printcap name = /dev/null

# использовать только порт 139
# (немного ускоряет обращения и избавляет от некоторых ошибок в логе)
smb ports = 139

# файл ручного мапинга пользователей (создать файл вручную)
username map = /etc/samba/smbusers

# ускорим работу самба (у меня отключено)
#socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

# кодировки
dos charset = cp866
unix charset = UTF-8

# авторизация клиента
client NTLMv2 auth = Yes
client lanman auth = No
client plaintext auth = No
encrypt passwords = yes

# настройки демона winbind:
# мапить пользователей на следующий диапазон ЮИД
idmap uid = 10000-20000

# мапить группы на следующий диапазон ГИД
idmap gid = 10000-20000

# разделитель домена и объекта (по желанию)
winbind separator = ^

# разрешить приложениям (например passwd) перечислять пользователей
# и группы из домена AD (необязательно)
winbind enum users = Yes
winbind enum groups = Yes

# разрешить сторонним приложениям ссылаться на пользователей AD
# как на локальных, не указывая имя домена и символ-разделитель
winbind use default domain = yes

# разрешить кэширование авторизованных пользователей
# (на случай, если КД станет недоступен) - на время настройки лучше отключить
winbind offline logon = Yes
winbind cache time = 900

# не помню зачем добавил, были какие то проблемы
winbind:forcesamlogon = True

Проверяем конфиг:

# testparm

Правим файл /etc/nsswitch.conf

+ открыть спойлер

passwd: compat winbind
group: compat winbind
shadow: compat winbind
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis

Рестартанем samba и winbind.
Теперь необходимо завести машину в домен.

# net ads join -U administrator

Потестим winbind:

# wbinfo -p
Ping to winbindd succeeded

Ставим squid:

# apt-get install squid

Пишем конфигурационный файл /etc/squid/squid.conf
Обязательно использовать наименования секций, самс по ним ориентируется, когда правит конфиг.

+ открыть спойлер

#  ПАРАМЕТРЫ АУТЕНТИФИКАЦИИ (AUTHENTIFICATION)
#  -----------------------------------------------------------------------------

#  TAG: auth_param
#  -------------------------------------
#  Тег используется для определения параметров для различных схем аутентификации
#  поддерживаемых Squid.

auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 70
auth_param ntlm keep_alive off

#  КОНТРОЛЬ ДОСТУПА (ACCESS CONTROLS)
#  -----------------------------------------------------------------------------

#  TAG: acl
#  -------------------------------------
#  Этот тэг позволяет задавать ACL.

acl ALL src 0.0.0.0/0
acl MANAGER proto cache_object
acl DOMAIN src 192.168.0.0/16
acl LOCALHOST src 127.0.0.1/32
acl TO_LOCALHOST src 127.0.0.0/8
acl PASSWORD proxy_auth REQUIRED
acl PURGE method PURGE
acl CONNECT method CONNECT

#  Порты
acl Safe_ports port 21          # ftp
acl Safe_ports port 70          # gopher
acl Safe_ports port 80          # http
acl Safe_ports port 81          # http
acl Safe_ports port 210         # wais
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 443         # https
acl Safe_ports port 488         # gss-http
acl Safe_ports port 554         # kamera
acl Safe_ports port 563         # snews
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl Safe_ports port 1863        # msn
acl Safe_ports port 2042        # mail.ru agent
acl Safe_ports port 5222        # jabber
acl Safe_ports port 5223        # jabber SSL
acl Safe_ports port 4500        # kamera
acl Safe_ports port 8006        # proxmox
acl Safe_ports port 9000        # java, kamera
acl Safe_ports port 1025-65535  # unregistered ports
acl SSL_ports port 443 563 1863 2083 5222 8006 8443 10443 33333-33335 30003 9000 44443-44445   # SSL

#  TAG: http_access
#  -------------------------------------
#  Этот тэг разрешает или запрещает доступ основываясь на имеющихся ACL

#  Разрешаем доступ cachemgr с локального хоста
http_access allow MANAGER LOCALHOST
http_access deny MANAGER

#  Разрешаем PURGE запросы только с локального хоста
http_access allow PURGE LOCALHOST
http_access deny PURGE

#  Запрещаем доступ по незнакомым портам
http_access deny !Safe_ports

#  Запрещаем метод CONNECT к другим портам кроме SSL портов
http_access allow IBANK_DST
http_access deny CONNECT !SSL_ports

#  Настоятельно рекомендуется, чтобы к сервисам localhost имели только локальные
#  пользователи и локальные программы. Из этих соображений следует запретить
#  доступ к localhost службам и сервисам
http_access deny TO_LOCALHOST

#  Пишем сюда свои собственные правила
http_access allow LOCALHOST
http_access allow PASSWORD

#  А все остальные идут на CENSORED
http_access deny ALL

#  TAG: icp_access
#  -------------------------------------
#  Этот тэг разрешает или запрещеает доступ по ICP порту основываясь на ACL.

icp_access allow LOCALHOST
icp_access deny ALL

#  СЕТЕВЫЕ НАСТРОЙКИ (NETWORK OPTIONS)
#  -----------------------------------------------------------------------------

#  TAG: http_port
#  -------------------------------------
#  Этот тэг устанавливает порт на котором, Squid будет слушать HTTP запросы
#  клиента.

http_port 3128

#  ДРУГИЕ АРГУМЕНТЫ ВЫБОРА (NEIGHBOR SELECTION ALGORITHM)
#  -----------------------------------------------------------------------------

#  TAG: hierarchy_stoplist
#  -------------------------------------
#  Этот тэг задает список слов, которые при нахождении их (этих слов) в URL,
#  сообщают Squid то, что объект расположенный по этому URL надо брать
#  напрямую, а не из кэша.

hierarchy_stoplist cgi-bin ?

#  НАСТРОЙКИ ПАМЯТИ КЭШИРОВАНИЯ (MEMORY CACHE OPTIONS)
#  -----------------------------------------------------------------------------

#  TAG: cache_mem    (bytes)
#  -------------------------------------
#  Этот тэг определяет количество памяти для использования под:
#  * In-Transit objects (Транзитные объекты)
#  * Hot Objects ("Горячие" объекты, т.е. часто запрашиваемые)
#  * Negative-Cached objects

cache_mem 8 MB

#  TAG: maximum_object_size_in_memory    (bytes)
#  -------------------------------------
#  Этот тэг задает размер объекта который может хранится в памяти.

maximum_object_size_in_memory 8 KB

#  TAG: broken_posts
#  -------------------------------------
#  Этот тэг определяет дописывание дополнительных CRLF после тела PUT/POST запроса.

acl bad_hosts dstdomain portal.portal.ru
broken_posts allow bad_hosts

#  ОПЦИИ ЛОГИРОВАНИЯ (LOGFILE OPTIONS)
#  -----------------------------------------------------------------------------

#  TAG: access_log
#  -------------------------------------
#  Этот тэг определяет местоположение журнала access.log в который будет
#  производится запись клиентской активности.

access_log /var/log/squid/access.log squid
buffered_logs on

#  URL REWRITING
#  -----------------------------------------------------------------------------

#  TAG: location_rewrite_program
#  -------------------------------------
#  Этот тэг определяет местоположение исполнительного файла программы
#  Location rewriter, которая используется для преобразования URL в ответах
#  сервера.

url_rewrite_program /usr/bin/samsredir

#  TAG: location_rewrite_concurrency
#  -------------------------------------
#   Этот тэг определяет возможное число запросов, к каждому экземпляру
#   преобразователя, которые могут быть обрабатыватся одновременно (параллельно).

location_rewrite_concurrency 0

#  TAG: location_rewrite_access
#  -------------------------------------
#  Этот тэг определяет список, содержащий запросы, которые будут
#  перенаправлены к преобразователю.


#  ОПТИМИЗАЦИЯ КЭШИРОВАНИЯ (TUNING THE CACHE)
#  -----------------------------------------------------------------------------

#  TAG: cache
#  -------------------------------------
#  Этот тэг позволяет определить объекты, которые не будут кэшироватся.

acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY

#  TAG: refresh_pattern
#  -------------------------------------
#  Этот тэг позволяет настраивать дополнительные параметры оптимизации кэширования.

refresh_pattern ^ftp:                1440    20%    10080
refresh_pattern ^gopher:            1440    0%    1440
refresh_pattern -i (/cgi-bin/|\?)        0    0%    0
refresh_pattern (Release|Package(.gz)*)$    0    20%    2880
refresh_pattern .                0    20%    4320

#  НАСТРОЙКИ HTTP (HTTP)
#  -----------------------------------------------------------------------------

#  TAG: upgrade_http0.9
#  -------------------------------------
#  не знаю, по дефолту стоит, пусть будет пока что

acl SHOUTCAST rep_header X-HTTP09-First-Line ^ICY\s[0-9]
upgrade_http0.9 deny SHOUTCAST

#  TAG: broken_vary_encoding
#  -------------------------------------
#  Этот тэг определяет запрещение использования ETag.

acl APACHE rep_header Server ^Apache
broken_vary_encoding allow APACHE

#  TAG: extension_methods
#  -------------------------------------
#  Этот тэг позволяет добавить расширенные методы запросов.

extension_methods REPORT MERGE MKACTIVITY CHECKOUT

#  TAG: header_access
#  -------------------------------------
#  Этот тэг является заменой старого тэга 'anonymize_headers' и ещё более
#  старого 'http_anonymizer'.

#  Куки - передача и прием, куда же без них...
header_access Cookie allow all
header_access Set-Cookie allow all

#  некоторые странички-сайты требуют источник перехода в целях защиты от ботов
header_access Referer allow all

#  ПРОЧЕЕ (MISCELLANEOUS)
#  -----------------------------------------------------------------------------

#  TAG: forwarded_for     on|off
#  -------------------------------------
#  Этот тэг определяет, будет ли Squid вставлять IP адрес клиента в заголовок
#  X-Forwarded-For.

forwarded_for off

#  TAG: coredump_dir
#  -------------------------------------
#  Этот тэг определяет местоположение директории, которая будет содержать core файлы.

coredump_dir /var/spool/squid

error_directory /usr/share/squid/errors/Russian-koi8-r

# Чтобы по фтп работал с ascii
ftp_telnet_protocol off

# Дескрипторы (дефолт 1024)
max_filedesc 4096

Проверяем ntlm авторизацию:

# ntlm_auth --username=USER --domain=DOMAIN --dianostics password

Создаем кэш (squid должен быть остановлен):

# squid -z

Стартуем сквид.

Зависимости для sams2:

# apt-get install apache2 apache2-doc apache2-utils ssl-cert mysql-server libmysqlclient-dev libapache2-mod-php5 php5 php5-common php5-dev php5-mcrypt php5-imagick php5-mysql libpcrecpp0 doxygen debhelper php5-gd libpcre3 libpcre3-dev libldap2-dev build-essential checkinstall

Скачиваем .deb пакеты sams2, устанавливаем их, а дальше в веб-интерфейсе настраиваем под свои нужды. Так же следует проверить /etc/sams2.conf (не исключено другое расположение), скорректировать название базы, пользователя, пароль, а так же проверить пути. Как пример:

+ открыть спойлер

;
; This is config file for sams2
; A line started with ; or # is a comment
;

; Database engine
; To use an engine it must be enabled during configuration
DB_ENGINE=MySQL
;DB_ENGINE=PostgreSQL
;DB_ENGINE=unixODBC

; Hostname where database is runing
; This parameter is not neccesary for unixODBC engine
DB_SERVER=localhost

; Database name
SAMS_DB=sams2db

;
ODBC=0
PDO=0
; Source as defined in odbc.ini
; This parameter is not neccesary for engine other than unixODBC
ODBCSOURCE=sams_mysql

; Username for database connection
DB_USER=sams

; Password for database connection
DB_PASSWORD=samspasswd

SQUIDCACHEFILE=access.log
SQUIDROOTDIR=/etc/squid
SQUIDLOGDIR=/var/log/squid
SQUIDCACHEDIR=/var/spool/squid

WBINFOPATH=/usr/bin
SAMSPATH=/usr
SQUIDPATH=/usr/sbin
SQUIDGUARDLOGPATH=/var/log
SQUIDGUARDDBPATH=/etc/squid
RECODECOMMAND=iconv -f KOI8-R -t 866 %finp > %fout
REJIKPATH=/usr/local/rejik
SHUTDOWNCOMMAND=shutdown -h now

; Proxy id
; Identificator of proxy, starting from 1
CACHENUM=1

42

Wi-Fi на ноутбуке Dell inspirion 5720 с ОС Debian Squeeze
Замечание: пользователям особо не искушенным в системах, лучше позвать помощника.

1. Если отсутствует подключение к репозиторию backports Debian Squeeze, то это нужно сделать. Любым текстовым редактором занесите в файл /etc/apt/sources.list строку deb http://backports.debian.org/debian-backports/ squeeze-backports main contrib non-free
и в консоли под рутом выполните команду:

# aptitude update

2. Скачиваем и устанавливаем прошивки firmware-realtek_0.28+squeeze1_all.deb с http://packages.debian.org/stable/firmware-realtek и firmware-realtek_0.36+wheezy.1_all.deb с http://packages.debian.org/sid/all/firm … k/download. Это делаем для того, что бы при компиляции ядра и модуля Wi-Fi исключить сообщения об ошибках типа

W: Possible missing firmware /lib/firmware/rtl_nic/rtl8105e-1.fw for module r8169

Устанавливаем прошивки:

# dpkg -i firmware-realtek_0.28+squeeze1_all.deb
# dpkg -i firmware-realtek_0.36+wheezy.1_all.deb

3. Обновляем ядро. Я выбрал версию ядра от 3.4.0 до 3.6.0 лишь потому, что гугление меня вывело на сайт "Собираем Broadcom драйвера wifi в Linux ядрах версий 3.4 и 3.5". Пересборка ядра хорошо описана на сайте http://www.alexor.ru/kak_eto_rabotaet/215/. К работе с инструкцией подходите с пониманием темы и вниманием, т.к. пути, версии и т.п. могут отличаться от Ваших. Ядро скачиваем из архива ядер https://www.kernel.org/ на Ваше усмотрение,  свежее ядро можно забрать в http://oscar.aptosid.com/debian/pool/ma … x-aptosid/. В операции сборки ядра make menuconfig, ничего не меняя в опциях, я использовал команду Load an Alternate Configuration File. Процесс компиляции долгий и по завершении его делаем reboot.
4. Теперь собираем модуль. Как это сделать подробно описано здесь http://lsoft.daraba.ru/content/broadcom … ий-34-и-35. Тут я не стал выполнять цепочку команд:

# rmmod ssb
# rmmod bcma
# rmmod wl
# insmod wl

Перегружаемся для того, чтобы посмотреть - есть-ли автозагрузка модуля wl.ko. Если этого не произошло, то его нужно вновь установить командой:

# insmod wl

и вручную прописать в автозагрузку.
5. Устанавливаем драйвер wireless broadcom, используя deb-пакет wireless-bcm43142-dkms_6.20.55.19-1_amd64.deb. Скачиваем его с сайта Jasmine's Debian Repository http://jas.gemnetworks.com/debian/pool/ … _amd64.deb и устанавливаем драйвер:

# dpkg -i wireless-bcm43142-dkms_6.20.55.19-1_amd64.deb

Перегружаемся. И либо Wi-Fi радаром видим список точек подключения, или с консоли командой:

# ifconfig -a

видим устройство wlan0. Вот и все.
Далее стандартная сетевая настройка под конкретный Ваш маршрутизатор (роутер).

43

Возвращаем монтирование в /media после обновления до udisks2 в Debian/Ubuntu

    В последних версиях Ubuntu (12.10,13.04) и выходом последнего обновления кед (KDE-4.11) для Ubuntu 12.04 из kubuntu-ppa-backpots-precise,как и в testing/unstable/experimental Debian по зависимостям kde-plasma-desktop (в Ubuntu) и,как минимум,новых версий gvfs-* в Debian,ставится новая версия автомонтировщика дисков и флешек udisks -> udisks2,после установки которого многие с неудовольствием заметили изменение точки монтирования по дефолту с /media/LABEL на /media/$USER/LABEL.Зачем это сделали разработчики пакета для меня остаётся тайной,но,коль скоро мне удобнее монтировать всё в /media/*,по старому,то я,после 10-ти минутного гуглинга и медитаций решил эту проблему так:

mkdir build;cd build;apt-get source udisks2;cd udisks2*

Так мы создадим локальный каталог для пересборки,перейдём туда,скачаем исходники пакета (записи deb-src *** должны быть раскомментированы в /etc/apt/sources.list & /etc/apt/sources.list.d/*.list) и перейдём в каталог автоматически распакованных и пропатченных исходников пакета.Всё делается от пользователя.

nano src/udiskslinuxfilesystems.c

Откроем для редактирования файл описания основных действий по монтированию поддерживаемых ФС udisks2 и удалим/закомментируем выделенную зелёным часть кода под спойлером ниже

+ открыть спойлер


...
  /* If we know the user-name and it doesn't have any '/' character in
   * it, mount in /media/$USER
   */
  if (!fs_shared && (user_name != NULL && strstr (user_name, "/") == NULL))
    {
      mount_dir = g_strdup_printf ("/media/%s", user_name);
      if (!g_file_test (mount_dir, G_FILE_TEST_EXISTS))
        {
          /* First ensure that /media exists */
          if (!g_file_test ("/media", G_FILE_TEST_EXISTS))
            {
              if (g_mkdir ("/media", 0755) != 0)
                {
                  g_set_error (error,
                               UDISKS_ERROR,
                               UDISKS_ERROR_FAILED,
                               "Error creating directory /media: %m");
                  goto out;
                }
            }
          /* Then create the per-user /media/$USER */
          if (g_mkdir (mount_dir, 0700) != 0)
            {
              g_set_error (error,
                           UDISKS_ERROR,
                           UDISKS_ERROR_FAILED,
                           "Error creating directory `%s': %m",
                           mount_dir);
              goto out;
            }
          /* Finally, add the read+execute ACL for $USER */
          if (!add_acl (mount_dir, uid, error))
            {
              if (rmdir (mount_dir) != 0)
                udisks_warning ("Error calling rmdir() on %s: %m", mount_dir);
              goto out;
            }
        }
    }
...

А заголовок следующей секции кода приведём к виду

/* otherwise to mounting in /media */

Сохраним файл с изменениями и соберём пакет стандартными средствами debian-based систем

dpkg-buildpackage -rfakeroot

Если сборка пройдёт без ошибок с первого раза,то в каталоге выше появятся *.deb пакеты udisks2 иже либы,доки и пр.
Если же в системе будет нехватка каких либо библиотек и зависимостей для сборки,то список недостающего будет виден в конце вывода сборки и нужно будет их доустановить.Например мне пришлось делать:

sudo aptitude install libpolkit-gobject-1-dev libpolkit-agent-1-dev libacl1-dev gobject-introspection libatasmart-dev

но вам,возможно придётся установить немного больше - просто напечатайте "sudo aptitude install ...",а затем выделите список недостающих сборочных зависимостей курсором gpm и вставьте по ПКМ,и нажмите Ввод,а когда все установится повторите:

dpkg-buildpackage -rfakeroot

Пока не получите сообщение,что,дескать,содержимое пакета было измененно и сборка отменена...Тогда делаем:

dpkg-source --commit && dpkg-buildpackage -rfakeroot


И после успешного завершения сборки чуть-чуть наводим лоску:

mkdir pkg && mv -vf udisks2_2.1.0-4~ubuntu12.04~ppa1_i386.deb pkg && cd pkg;dpkg -x udisks2_2.1.0-4~ubuntu12.04~ppa1_i386.deb debdir

Cоздаём новый подкаталог,перемещаем туда только пакет самого udisks2 и распаковываем,затем делаем:

sed -i 's/auth_admin/yes/g' debdir/usr/share/polkit-1/actions/org.freedesktop.udisks2.policy
sed -i 's/yes_keep/yes/g' debdir/usr/share/polkit-1/actions/org.freedesktop.udisks2.policy
nano debdir/DEBIAN/control

Т.е меняем настройки политик монтирования/размонтирования/доступа к устройствам для всех возможных пользователей вообще,что бы не морочить голову в дальнейшем и открываем для редактирования основной файл описания пакета.Следует поменять версию пакета на более высокую,например udisks2_2.9.9-9+custom и при желании изменить запись о мейнтейнере пакета.Затем соберем это дело с внесёнными правками и установим:

dpkg-deb -b debdir udisks2_2.9.9-9+custom_i386.deb && sudo dpkg -i udisks2_2.9.9-9+custom_i386.deb && cd ..;sudo dpkg -i *.deb

Вот,собственно,и все - пересобрали и установили самую последнюю версию udisks2 и теперь все что мы будем монтировать в файловых менеджерах завязанных на него,будет монтироваться/размонтироваться в /media/*,от пользователя и без запроса пароля,но - ведь прилетят обновления и udisks2 снова вернется к "неправильному" поведению?А вот тут есть,как минимум два варианта,либо просто заморозить пересобранный пакет:

echo "udisks2 hold" | sudo dpkg --set-selections && sudo apt-get update && sudo aptitude full-upgrade

либо организовать свой маленький репозиторий с помощью reprepro - http://anosov.org.ru/tag/reprepro/,расшарить каталог с этой репой в Wuala,UbuntuOne или Dropbox,добавить в список источников (/etc/apt/sources.list),добавить туда пересобранный пакет  и написать в файле /etc/apt/preferences ,к примеру следующее:

Package: *
Pin: origin "dl.dropbox.com"
Pin-Priority: 990

Затем:

sudo apt-get update && sudo aptitude full-upgrade

И в последствии просто ложить все собираемые нужные пакеты в эту свою репу,что бы они всегда были доступны по сети с любого компа с debian-based системой на борту.Удобно,ИМХО!

44

Бывает так,что в Debian,по разным причинам  (преимущественно,из разряда совместимости с оборудованием) проще поставить готовые ядра от Ubuntu,чем собирать самом,но это связанно с запуском браузера,поиском и переходом на сайт,скачиванием с последующей установкой...и всё это в Х-сах,а бывает,что и нет доспупа к иксам и нужно поставить ядро,чтобы завести видеокарту (например),а уже потом ,нормально загрузившись и все настроив,переустановить на на аутентичное дебиановское ядро "trunk" ,из экперементальной ветки,если кто не в курсе...

  И вот,при столкновении с подобной проблемкой были написанны два простых скрипта,которые позволяют сходить на сайт и стянуть нужные ядра и заголовки в готовых *.deb пакетах,и отсеяв ненужное установитьс пересборкой DKMS всех основных модулей ядра (видео,фреймбуффер,и всё что должно быть пересобранно...),с пересозданием образов initrd и обновлением grub,разумеется...
  Итак,первый скрипт "kernup" можно легко создать парой команд ниже:

echo "#"'!'"/bin/bash"  | sudo tee /usr/local/bin/kernup
echo -e "dpkg -i *.deb && apt-get install --reinstall nvidia-alternative nvidia-glx nvidia-driver nvidia-kernel-common nvidia-kernel-dkms nvidia-vdpau-driver nvidia-settings nvidia-xconfig xserver-xorg-video-nvidia vhba-dkms cdemu-daemon initramfs-tools aufs-tools unionfs-fuse grub-customizer && ldconfig -v && update-initramfs -vuk all && update-grub" | sudo tee -a /usr/local/bin/kernup
sudo chmod +x /usr/local/bin/kernup

Ну а второй будет проще скопировать в любимый текстовый редактор и сделать исполняемым,как и первый,не забудьте...

kupdater

sudo nano /usr/local/bin/kupdater
copy/past
...
#!/bin/sh
mkdir /tmp/kernel
cd /tmp/kernel
DIALOG=${DIALOG=dialog}
tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/test$$
w3m  http://kernel.ubuntu.com/~kernel-ppa/mainline

$DIALOG --title "Выберите версию ядра по имени подкаталога" --clear \
        --inputbox "Введите желаемую версию:" 16 51 2> $tempfile

wget -i  http://kernel.ubuntu.com/~kernel-ppa/mainline/$(cat $tempfile)
sleep 3
rm -f *.patch *.LOG BUILT CHANGES COMMIT *.gif* *.html* *_amd64.deb
ls -la 
echo " Сделайте Ctrl+C ,чтобы отменить установку"
sleep 10
kernup
cd
rm -rf /tmp/kernel
echo "Установленна последняя версия ядра,перезагрузитесь и выполните  "sudo service vboxdrv setup",если установлен VirtualBox "
sleep 10
exit 0
...
Ctrl+X ->Shift+Y ->Enter
sudo chmod +x /usr/local/bin/kupdater

  Собственно,скрипт "kupdater" открывает в консольном браузере w3m страницу http://kernel.ubuntu.com/~kernel-ppa/mainline,которую вы можете спокойно пролистать,выбирая подходящую версию ядра и запомнив полное имя подкаталога  выбранной версии,например "v3.11.2-saucy/",спокойно закрыть,нажав последовательно "q" & "y" в окне браузера и затем просто ввести это имя в чекбокс  окна dialog [v3.11.2-saucy/] и нажав Ввод наблюдать,как будет производиться скачивание содержимого избранного подкаталога с ядрами,отсев ненужного и установка с помощью скрипта "kernup",причём у вас будет время прервать работу скрипта простым нажатием Ctrl + C непосредственно перед началом установки ядер,если,вдруг,передумаете...
Пример для последующего использования в связке с aptitude:

sudo aptitude full-upgrade && sudo kupdater

Enjoy!

45 (01.05.2014 20:25:02 отредактировано kirillov3798)

Идеальные шрифты в Debian
Привет. Почти во всех дистрибутивах шрифты из коробки так себе (в плане их прорисовки и сглаживания), исключения составляют Ubuntu и ее производные. Сейчас я расскажу вам как это исправить в Debian (эта же инструкция применима к производным дистрибутивам от Debian).
Мы будем собирать сами .deb пакет, но ничего сложного в этом нет!
Для начала установим пакеты gcc и devscripts. Это можно выполнить следующей командой:

 Консоль: root
[root@linuxforum.ru ~]# aptitude install gcc devscripts

Теперь мы идем по этой ссылке: https://github.com/chenxiaolong/Debian-Packages.git, находим в нижнем углу кнопку Download ZIP.
Распаковываем. после того как мы распаковали архив, открываем консоль, набираем команду (при условии, что утилита sudo установлена и настроена):
 Консоль: user
[user@linuxforum.tech ~]$ sudo -i

Вводим пароль и выполняем следующие команды:
 Консоль: root
[root@linuxforum.ru ~]# cd Debian-Packages-master/

Потом надо проверить и установить зависимости, иначе готовые пакеты работать не будут. Для этого воспроизводим команды:
 Консоль: root
[root@linuxforum.ru ~]# cd freetype-infinality/

 Консоль: root
[root@linuxforum.ru ~]# dpkg-checkbuilddeps

Последняя команда выдаст неразрешенные зависимости. Их надо будет установить используя aptitude.
Проделаем то же самое но теперь с папкой Fontconfig-infinality:
 Консоль: root
[root@linuxforum.ru ~]# cd ../fontconfig-infinality/

 Консоль: root
[root@linuxforum.ru ~]# dpkg-checkbuilddeps

Установим указанные пакеты. Если последняя команда ничего не выдала, значит все в порядке и можно приступать к сборке пакетов. Выполните следующие команды:
 Консоль: root
[root@linuxforum.ru ~]# cd ../freetype-infinality/

 Консоль: root
[root@linuxforum.ru ~]# ./build.sh

 Консоль: root
[root@linuxforum.ru ~]# cd ../fontconfig-infinality/

 Консоль: root
[root@linuxforum.ru ~]# ./build.sh

Можно установить выбранные пакеты, но сначала их надо найти:
2 .deb пакета в папке freetype-infinality и 1 .deb пакет в папке fontconfig-infinality.
 Консоль: root
[root@linuxforum.ru ~]# cd .. && dpkg -i freetype-infinality/*.deb fontconfig-infinality/*.deb

Вот пример до и после установки пакетов:

+ открыть спойлер

http://storage6.static.itmages.ru/i/14/0111/h_1389437270_9415832_84462a9159.png http://storage5.static.itmages.ru/i/14/0110/h_1389360440_7931468_c837329d6a.png



Источник: http://forums.debian.net/viewtopic.php?f=16&t=88545

Fedora 21 Workstation KDE 4.14.4
Gigabyte GA-Z77-D3H, Intel Core i5-3470, nVidia GeForce GTX 660 2GB, 8GB RAM, 1TB HDD

46 (11.07.2014 02:18:38 отредактировано stalker_tk)

Возвращаем монтирование в /media вариант2
Тоже столкнулся с проблемой монтирования устройств udisks2.
Решение от http://linuxforum.ru/viewtopic.php?pid=359143#p359143 меня не устроило.
Нашел на https://wiki.archlinux.org/index.php/Ud … o_.2Fmedia простое решение

/etc/udev/rules.d/99-udisks2.rules

ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{UDISKS_FILESYSTEM_SHARED}="1"
Hunter, who is on the trail ...