Сети и интернет

BackUP MySQL с исключением не нужных баз и таблиц

Скрипт создает бэкап всех баз данных MySQL за исключением указанных баз и таблиц.

На выходе получаем дампы сжатые gz и именуемые по названию базы и дате создания бэкапа.

Бэкапы каждой базы в отдельной папке.

/BackUp
     Base1
        db-base1-2016-12-25-18-00.sql.gz
   
     Base2
        db-base2-2016-12-25-18-00.sql.gz

Старые бэкапы (старше 10-ти дней) автоматически удаляются.

Для автоматизации запуска можно добавить скрипт в cron c запуском в нужное время.
На пример, для запуска ежедневно в 3 часа 0 минут:

sudo crontab -e

И добавляем:

0 3 * * * /usr/local/bin/mysql_backup.sh

Не забыв при этом сохранить скрипт по адресу /usr/local/bin/mysql_backup.sh и сделав его выполняемым
sudo chmod +x /usr/local/bin/mysql_backup.sh

Chromium и kwallet

Что бы браузер chromium мог хранить пароли в kwallet, нужно запускать его с ключём: --password-store=kwallet

Комманда для запуска chromium в меню приложений после редактирования выглядит следующим образом:

/usr/bin/chromium-browser --password-store=kwallet %U

Теперь пароли chromium будут храняться в зашифрованном виде в хранилище паролей kwallet.

Минус заключается в том, что chromium создает отдельную папку в kwallet под названием Chrome Form Data и не использует пароли сохраненные в kwallet другими браузерами.

Проверенно на версии: 8.0.552.237

NAT и iptables (Как раздать интернет через вторую сетевую карту)

Дано:
Сетевая карточка eth0 подключенная с помощью PPPoE к интернету и
eth1 подключенная к сети с адресом 192.168.0.1 к которой подключена сеть с адресами 192.168.0.* в которой нужно раздать интернет.

Для начала включим форвардинг:

echo 1 > /proc/sys/net/ipv4/ip_forward

Чтобы форвардинг автоматически включался при запуске системы

Открываем файл:

sudo nano /etc/sysctl.conf

и добавляем в него строчку:

net.ipv4.ip_forward = 1

Затем включаем NAT
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Где ppp0 название вашего интерфейса через который выходите в интернет.

Чтобы NAT работал после перезагрузки делаем следующее:

сохраняем настройки iptables в файл

sudo iptables-save > /etc/iptables.up.rules

И добавляем в конец файла:

sudo nano /etc/networks/interfaces

эту строчку, для автоматической подгрузке правил

pre-up iptables-restore < /etc/iptables.up.rules

Так же в этот файл добавляем правила роутинга:

up route add -net 192.168.0.0 netmask 255.255.255.0 dev eth1
up route add -net 0.0.0.0 netmask 255.255.255.255 dev eth0

NetHogs: мониторинг трафика по отдельным процессам

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

Установка

Установите пакет nethogs в вашем менеджере пакетов, например, так:sudo aptitude install nethogs

Запуск

Для запуска требуются права суперпользователя. Если, например, вы хотите отследить трафик первого vpn-соединения, запустите утилиту так:sudo nethogs ppp0

Наименования сетевых интерфейсов в Linux

Вызов справки

nethogs -h

Приятной вам паранойи! (Ɔ) DarkneSS

Ссылки: человек, который познакомил меня с этой утилитой, сайт NetHogs, статья "сетевой интерфейс".

NetworkManager не работает с WiFi [Решение]

После установки 11.04 на ноутбук Lenovo 12S вылезла следующая проблема - не работает Wi-Fi.
Ни NM, ни wicd не работают.
1. оказалось, что wifi по умолчанию залочен.
$ rfkill list
0: ideapad_wlan: Wireless LAN
        Soft blocked: yes
        Hard blocked: no
1: i2400m-usb:2-3:1.0: WiMAX
        Soft blocked: yes
        Hard blocked: no
2: acer-wireless: Wireless LAN
        Soft blocked: yes
        Hard blocked: no
3: phy0: Wireless LAN
        Soft blocked: yes
        Hard blocked: no

Реакция на кнопку включения WiFi - лампочка загорается на секунду и тут же тухнет.
rfkill event говорит, что wireless разблокируется и тут же снова блокируется.
решение нашел тут.
Создаём /usr/local/sbin/unlock-wlan
#!/bin/sh
rfkill unblock wlan

Создаём /etc/init/unlock-wlan.conf
# unlock-wlan - unlock wireless device
#
description "unlock wireless device"

start on (starting network-interface
          or starting network-manager
          or starting networking)

task

exec /usr/local/sbin/unlock-wlan

wicd заработал, NM говорит, что wireless заблокирован программно.

2. Лечим NM.
При загрузке системы грузится ненужный драйвер acer-WMI.
Это приводит к появлению левого девайса.
rfkill list показывает его как
2: acer-wireless: Wireless LAN
На любые попытки его разлочить, он не реагирует и всегда остаётся заблокированным, работа NM же судя по всему изменена так, что раз есть хоть один залоченный девайс, то он не работает.
Отключаем acer-wmi:
sudo rmmod acer_wmi
NM оживает.
Отключаем загрузку драйвера при старте системы:
echo 'blacklist acer-wmi' > ~/blacklist-acer-wmi.conf && sudo mv ~/blacklist-acer-wmi.conf /etc/modprobe.d/blacklist-acer-wmi.conf
перезагружаемся
$ rfkill list
0: ideapad_wlan: Wireless LAN
        Soft blocked: no
        Hard blocked: no
1: i2400m-usb:2-3:1.0: WiMAX
        Soft blocked: yes
        Hard blocked: no
2: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: no

NetworkManager работает наравне с wicd, кроме того галочка Enable wirelss в NM уже стоит по умолчанию, чего очень не хватало в 10.10

дополнение: на Aser Aspire 1830T драйвер acer-wmi отвечает за встроенный bluetooth, так что пришлось его оставить и пользоваться только wicd.

OpenVPN установка и настройка в режиме маршрутизации

OpenVPN — свободная реализация технологии Виртуальной Частной Сети (VPN) с открытым исходным кодом для создания зашифрованных каналов типа точка-точка или сервер-клиенты между компьютерами. Она позволяет устанавливать соединения между компьютерами, находящимися за NAT-firewall, без необходимости изменения их настроек. OpenVPN была создана Джеймсом Йонаном (James Yonan) и распространяется под лицензией GNU GPL.
http://ru.wikipedia.org/wiki/OpenVPN

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

Настраиваем сервер

Для установки и настройки сервера достаточно скопировать в консоль строчку:

sudo wget -P/tmp http://kubuntu.ru/files/ovpn_install.sh; sudo chmod +x /tmp/ovpn_install.sh; sudo /tmp/ovpn_install.sh

команда скачает скрипт установки ovpn_install.sh, даст ему права на запуск и запустит на выполнение.

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

После установки вы получите настроенный сервер OpenVPN работающий в режиме маршрутизации и принимающей соединения на 777 порту.

Проверить правильность установки можно посмотрев активные сетевые устройства командой ifconfig
В случае успешной установки в списке сетевых карточек должно появиться новое устройство tun0 с ip 10.8.0.1

Примечание: при загрузке системы автоматически поднимаются все VPN соединения, для которых в папке /etc/openvpn есть соответствующие файлы с расширением .conf.

Настраиваем клиента

Устанавливаем OpenVPN

sudo apt-get install -y openvpn

Переносим с сервера любыми доступными средствами ключ и сертификат клиента который мы сгенерировали при установке сервера.

Нам нужны следующие файлы:
/etc/openvpn/ca.crt                      # Cертификат СА (центра сертификации)
/etc/openvpn/easy-rsa/keys/client1.crt   # Сертификат клиента, подписанный CA
/etc/openvpn/easy-rsa/keys/client1.key   # Ключ шифрования клиента

Копируем их в папку /etc/openvpn на компьютере-клиенте

Скачиваем и редактируем файл конфигурации клиента ovpn_client.conf

sudo wget -P/etc/openvpn http://kubuntu.ru/files/ovpn_client.conf; sudo nano /etc/openvpn/ovpn_client.conf

Запуск openvpn:
sudo service openvpn start

Остановка openvpn:
sudo service openvpn stop

Настраиваем подключение к серверу через Network-Manager

Для этого устанавливаем пакет network-manager-openvpn
sudo apt-get install network-manager-openvpn
и добавляем новое соединение OpenVPN указав адрес нашего сервера и расположение ключей и сертификатов

Для генерации дополнительных ключей и сертификатов для других клиентов, на сервере выполняем:

cd /etc/openvpn/easy-rsa/
sudo source ./vars
sudo ./build-key client2

Примечание: для каждого клиента должно быть указано своё уникальное имя (в данном случае client2).

Ресурсы по теме:

ВложениеРазмер
ovpn_install.sh1.66 кб
ovpn_server.conf4.22 кб
ovpn_client.conf672 байта

SSH авторизация по ключу

На локальном компьютере генерируем пару ключей, публичный и приватный командой:

ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa

Задаём пароль для шифрования ключа (!обязательно)

-t указывает тип шифрования
-b длину ключа
-f имя и место сохранения (id_rsa по умолчанию!)

Копируем публичный ключ (id_rsa.pub) на удалённый сервер для возможности подключаться:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@machine

Файл ключа будет скопирован в конец расположенного на сервере файла

$HOME/.ssh/authorized_keys

Для авторизации только по ключу без возможности входа по паролю на удалённой машине в /etc/ssh/sshd_config делаем:
PasswordAuthentication no

Что бы при каждом подключении не вводить пароль ключа

ssh-add ~/.ssh/id_rsa

SSH-Agent автоматический ввод пароля ключа при соединении с сервером и привязка к KWallet

sudo apt install ssh-agent ssh-add ksshaskpass

В ~/.bash_profile добавляем:
eval $(ssh-agent)
export SSH_ASKPASS=/usr/bin/ksshaskpass

Создаем скрипт для автозапуска при загрузке KDE

sudo nano ~/.config/autostart-scripts/ssh-add.sh

Следующего содержания:

#!/bin/sh
ssh-add $HOME/.ssh/key1 $HOME/.ssh/key2 $HOME/.ssh/key3 </dev/null

Где key1 key2 key3 имена ключей.

wiki.archlinux.org/index.php/KDE_Wallet
http://pashazz.github.io/blog/2015/11/08/ssh-agent-kde/
http://estan.dose.se/2016/04/ssh-agent-kwallet-pam-ssh-add-and-ksshaskpass-under-plasma

Автоматический ввод пароля SSH-ключа из консоли

Для автоматического ввода пароля от ключа SSH соединения из коммандной строки для подключения к SSH на пример из скрипта, используем:

sudo apt install expect

Создаем файл /usr/bin/exp следующего содержания:

#!/usr/bin/expect

set timeout 20

set cmd [lrange $argv 1 end]
set password [lindex $argv 0]

eval spawn $cmd
expect "passphrase for key"
send "$password\r";
interact

Даем права на выполнение:

sudo chmox +x /usr/bin/exp

Используем:

exp <пароль> ssh <параметры подключения>

Для автоматического входа по паролю из коммандной строки, есть пакет sshpass

Установка: sudo apt install sshpass

Использование:

sshpass -p <пароль> ssh <параметры подключения>

VPN & RDP скрипт (инструмент для администратора)

Наконец то я решился.
Итак имеем задачу; Быстро подключатся к удаленной машине по RDP через VPN и последующее отключение VPN после закрытия RDP подключения. А так же как бонус запуск и остановка VPN к нужным сетям.

Не думаю что данной темой притяну много комментаторов и + в карму, но все же решился хотя бы для того, чтоб на родном сайте иметь такую вот инструкцию для себя.
Поехали!

Установка необходимых пакетов

Для работы нашего скрипта понадобится программа pptp. Пишем в Konsole:
sudo apt-get install pptp-linux

Создания файла инструкции для VPN подключения

Итак, создадим первое соединение. Точнее, файл настроек для него. Для этого нам необходимо проделать следующее:
1.Создать файл
sudo nano -w /etc/ppp/companiya
companiya - я советую сразу давать осмысленные названия файлам-настроек, чтоб в будущем пореже залазить в папку ppp для уточнения - "А как же подключится в Рога_и_Копыта". Ибо мы крутые админы и в этой папке у нас не один десяток файлов-подключений будет. ;)
2. Вписываем туда следующее содержимое
pty "pptp 10.0.0.1 --nolaunchpppd"
name user
password "password"
refuse-eap
lcp-echo-failure 30
lcp-echo-interval 5
refuse-chap
refuse-mschap
require-mschap-v2
debug
noauth
nobsdcomp
nodeflate
require-mppe-128

не буду вдаваться в подробности, отмечу основные моменты которые будет необходимо менять для подключения:
a) 10.0.0.1 - вместо этого пишем hostname или ip сервера к которому осуществляется !VPN! подключение
b) name user - пишем имя пользователя для подключения
c) password "password" - пароль для подключения
В принципе на втором этапе все.

Скрипт для подключение VPN&RDP

Итак, чтоб скрипт без проблем можно было запускать из командной строки кидаем его например в /usr/local/bin/
Для этого делаем следующее:
sudo nano -w /usr/local/bin/vpn
вставляем туда следующее:
#!/bin/sh                                  
      case "$2" in                         
      rdp)                                 
         set $1 vpn $3                     
         . $0                              
         echo "Try to start rdesktop to addr $MASK.$3"
         rdesktop ${MASK}.$3 -u administrator -g 1270x750 -a 16  -k common
         $0 $1 stop
      ;;
      stop)
         echo -n "Stopping vpn: "
         poff $1
         echo
      ;;
      vpn)
         echo -n "Starting vpn: "
         pon $1
         sleep 6
         lolo=`ifconfig | grep "" -c`
         lolo=`expr $lolo - 6`
         MASK=`ifconfig | grep "" -n | grep $lolo: | awk '{print $3}' | awk -F: '{print $2}' | awk -F. '{print $1"."$2"."$3}'`
         lala=`ifconfig | grep $MASK -n -m 1 | awk '{print $1}' | awk -F: '{print $1}'`
         lala=`expr $lala - 1`
         blabla=`ifconfig | grep "" -n | grep ${lala}: | awk '{print $1}' | awk -F: '{print $2}'`
         echo $MASK
         route add -net $MASK.0 netmask 255.255.255.0 dev $blabla
      ;;
      *)
      $0 $1 vpn
      ;;
esac

делаем его исполняемым
chmod +x /usr/local/bin/vpn

Рассмотрим скрипт. Точнее то, на что вам следует обратить внимание:
1. Строка #7
rdesktop ${MASK}.$3 -u administrator -g 1270x750 -a 16  -k common
Здесь описывается настройки подключения RDP посредством rdesktop - ИМХО наилучшим клиентом RDP под Linux
Я для удобства сразу подставляю пользователя (-u administrator), делаю удобное для меня разрешение (-g 1270x750) высчитанное так чтоб на моем wide экране я всегда видел панель задач Kubuntu, чтоб не нагружать сервер к которому осуществляю подключение делаю 16 битную цветовую схему (-a 16), ну и заплатку чтоб "нормально" работала переключалка рус\анг (-k common).
${MASK}.$3 пока не будем трогать - просто скажу что сюда подставляется ip сервера к которому осуществляется RDP подключение.

2. Строка #20
lolo=`expr $lolo - 6`
здесь строка в которой отражен ip который мы получили при подключении по vpn. Таким образом мы извлекаем подсеть. Обратите внимание на цифру 6. Чтоб было ясно я покажу на примере. Например мы сделали подключение
sudo pon companiya
и затем
ifconfig
Видим примерно такую картину:
    ...........
          RX packets:2899 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2899 errors:0 dropped:0 overruns:0 carrier:0
          коллизии:0 txqueuelen:0
          RX bytes:592049 (592.0 KB)  TX bytes:592049 (592.0 KB)

ppp0      Link encap:Протокол PPP (Point-to-Point Protocol)
          inet addr:192.168.13.201  P-t-P:192.168.13.200  Mask:255.255.255.255
          ВВЕРХ POINTOPOINT RUNNING NOARP MULTICAST  MTU:1396  Metric:1
          RX packets:9 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          коллизии:0 txqueuelen:3
          RX bytes:309 (309.0 B)  TX bytes:80 (80.0 B)

я привел не весь листинг ибо нам важны последние строки. Тут в 6й строке снизу видим что мы получили ip=192.168.13.201. ТАК ВОТ у вас есть проблемы то проверьте действительно ли у вас 6 строк и если надо поправьте.
В принципе это все на что вам необходимо обратить внимание.

Как это работает

Вот как выглядеть команда
sudo vpn companiya rdp 1
То есть запускаем скрипт vpn от имени root далее указываем конфигурационный файл для подключения (в данном случае companiya) далее указываем что мы хотим подключится по rdp (указанием опции rdp) и указываем последнюю цифру ip адреса сервера к которому мы осуществляем RDP подключение (в данном случае XXX.YYY.ZZZ.1)
Что делает скрипт?

Если мы осуществили только VPN подключение то отключить его можем следующей командой
sudo vpn conpaniya stop

Вот в принципе и все!
Жду вопросы, предложения, замечания.

sshfs подключаем удалённую папку

Что бы примонтировать удаленную папку расположенную на компьютере с установленным SSH

Устанавливаем sshfs

sudo aptitude install sshfs

И монтируем, на пример в локальную папку Share

sshfs remoteuser@remotehost:/home/remoteuser ~/Share

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

Дополнения:

Добавление сертификатов в браузер Chromium

  1. Устанавливаем libnss3-tools

    sudo aptitude install libnss3-tools

  2. Добавляем сертификат в Chromium

    pk12util -d sql:./.pki/nssdb -i sertifikat.p12

  3. Таким образом можно установить сертификаты, на пример для Webmoney Light

Запуск скриптов в зависимости от состояния сетевых интерфейсов

Понадобилось мне подмонтировать удаленную папку по sshfs.
Действие само по себе несложное, делается одной командой:sshfs [user@]host:[dir] mountpoint [options]
Но сразу же возникло еще одно условие - папка должна быть доступна всегда (ну, когда она доступна). То есть, по-хорошему, ее надо монтировать при старте системы.
Если сделать это, прописав команду в скрипте /etc/rc.local, то она просто-напросто не выполнится в связи с тем, что данный скрипт выполняется до старта графической среды. Вернее команда выполнится и ругнется на то, что никаких удаленных папок примонтировать не удалось из-за того, что сети-то нет - она поднимется только при старте графической подсистемы.
Такая же точно ситуация сложится и в том случае если прописать монтирование удаленной папки в fstab.
"Печально", - подумал я и решил написать скриптик, который проверял бы текущее состояние подключения к сети и при его наличии монтировал бы папку. Я его даже написал (благо несложный он) и он даже некоторое время поработал. Только вот, удаляя по маске какие-то файлы, я случайно удалил и его.
Переписывать не хотелось, поэтому решил почитать литературу (man interfaces). В итоге выяснил, что существуют так называемые {up/down/pre-up/post-down} скрипты, в которых выполняются определенные действия при {поднятии/опускании/перед-поднятием/после опускания} сетевых интерфейсов. Находятся они в /etc/network/if-up.d, /etc/network/if-down.d, /etc/network/if-pre-up.d, /etc/network/if-post-down.d соответственно. Сами эти скрипты запускаются из диспатчера /etc/NetworkManager/dispatcher.d/01ifupdown командой run-parts.

Итак, здесь у нас есть две возможности:

  1. Просто-напросто в разделе оператора case диспатчера /etc/NetworkManager/dispatcher.d/01ifupdown перед командой run-parts вставить необходимую строчку:su user -c "sshfs [user@]:[dir] mountpoint [options]" >/var/log/sshfs.log 2>&1
    И все хорошо заработает: загружается комп, стартуют кеды, подрубается сеть и монтируется сетевая папка. Вуаля, как говорится))
  2. Но такое же "вуаля" можно сделать и идеологически-правильным путем: пойти в каталог /etc/network/if-up.d, в нем создать скрипт (например sshfs_mount), приблизительно вот такой:#!/bin/bash
    su user -c "sshfs [user@]:[dir] mountpoint [options]" >/var/log/sshfs.log 2>&1
    exit 0

    Далее необходимо дать файлу права на исполнение. Все, этот файл запустится командой run-parts при поднятии интерфейса из диспатчера.

При написании скриптов также можно использовать некоторые специальные переменные, сообщающие нам информацию о подключении. Например, чтобы монтировать папку при подключении сети только по интерфейсу eth0, мы задействуем переменную $IFACE:if [ "$IFACE" = eth0 ]; then
        blah-blah-blah
fi

На самом деле, эти переменные задаются как раз в диспатчере, там же, думаю, можно задать свои собственные, которые будут потом использоваться во всех скриптах, запускаемых утилитой run-parts.

**********

Естественно данная история описывает личный опыт, поэтому и получилась довольно обширной, но если ее хорошо выжать, то получим вот что:

Как изменить MAC-адрес

Как сменить мак адрес, как это сделать? А то провайдер проверяет MAC-адрес. А регистрировать новый не хочу, так пользуюсь интернетом в гостях.

Как настроить VPN

Автор: CoderInside
e-mail: [email protected]
icq: 233503535

Версия 1.3

В статье описывается процесс настройки VPN клиента для организации подключения к услуге «Интернет+Дом» компании Информсвязь. Все данные которые необходимы для описанной ниже настройке выдаются на руки при подключении. Подключать будем машину с одной сетевой картой и установленной Ubuntu 6.06 LTS. Данные из карточки клиента (естественно вымышленные ;) ):

Для подключения к VPN серверу будем использовать pptp-linux. Переходим в терминал и устанавливаем этот пакет:

sudo aptitude install pptp-linux

Обратите внимание что вместо утилиты apt-get используется ее улучшенный вариант – aptitude. Она лучше справляется с зависимостями да и на сайте Debian ее настоятельно рекомендуют использовать вместо устаревшей apt-get.

Пакет установлен и первоначально сконфигурирован. Теперь переходим в каталог /etc/ppp, открываем только что созданный файл options.pptp, удаляем из него все строчки и добавляем следующее:

# Использовать lock в стиле UUCP для последовательного устройства
lock
# Не требовать удаленную сторону назвать себя
noauth
# Не отключаться когда соединение закрыто, пробовать открыть его снова
persist

Добавим в систему будущее соединие, назовем его ic. Для этого создадим файл /etc/ppp/peers/ic и наполним его следующим содержимым:

# При отсутствии связи всегда пытаемся подключиться
maxfail 0
# Узнаем о «самочуствии» удаленной стороны каждые 60 сек
lcp-echo-interval 60
# Если удаленная сторона не ответила 4 раза – считаем что нас отключили
lcp-echo-failure 4
# Установить маршрут по умолчанию
defaultroute
# Комманда для соединения
pty "pptp 192.168.149.1 --nolaunchpppd"
# Устанавливаем имя нашего хоста
name coder
# Устанавливаем имя удаленного хоста
remotename PPTP
# Читать дополнительные настройки из options.pptp
file /etc/ppp/options.pptp
# Дополнительный параметр для скриптов ip-up, ip-pre-up, ip-down
ipparam ic
# Включить «Deflate» сжатие (так работает заметно быстрее)
deflate 15,15
# Если переодически отваливается, следует ограничить максимальный размер пакета
mtu 1412

Теперь введем имя пользователя и пароль. Открываем файл /etc/ppp/chap-secrets и добавляем в него следующую строчку

coder PPTP qwerty *

Тунель настроен. Далее сконфигурируем сетевую карту. Правим файл /etc/network/interfaces, делам его похожим на мой (комментарии не пишу, тут и так все понятно)

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.172.15
netmask 255.255.255.192
up route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.172.1 dev eth0

Проверяем правильность перезагрузкой сети

sudo /etc/init.d/networking restart

Комманда должна выполниться без ошибочных сообщений. Если ошибки есть – то скорее всего в файле /etc/network/interfaces есть опечатки. Совет – ошибка пишется вместе с номером строки где она произошла, так что сразу смотрим на сроку номер х и делам все как надо.

Проверяем интерфейсы

ifconfig

Комманда должна показать два интерфейса lo0 и eth0

Если так и есть – все хорошо. Сеть настроена. Сейчас должен идти пинг на шлюз и PPTP сервер. Проверим

ping 192.168.172.1
ping 192.168.149.1

Если не идет пинг на шлюз – проверьте подключен ли кабель, если на шлюз пинг есть а на PPTP сервер нет – смотрим правильно ли прописана маршрутизация

route -n

Если все хорошо, пингуется как шлюз так и PPTP сервер – переходим к следующему шагу.

Создаем файл /etc/resolv.conf, прописываем в нем адреса наших DNS серверов

search
nameserver  195.98.64.65
nameserver  195.98.64.66

Запускаем тунель

sudo pon ic

Проверим. Вывод ifconfig должен показать интерфейсы lo0, eth0 и новый интерфейс ppp0 с вашим IP. Это и есть тунель. Все. Можно запускать браузер и наслаждаться настроящим скоростным интернетом :)

Выключать тунель коммандой poff ic

Если подключать и отключать руками вам не хочется – то можно добавить пару строк в файл /etc/network/interfaces и тунель будет автоматически подниматься при активации сетевой карты. Открываем /etc/network/interfaces и дописываем в конец следующие строки

auto ic
iface ic inet ppp
pre-up ip link set eth0 up
provider ic

Теперь тунель будет автоматически подниматься при старте :)

Удачи!

По всем вопросам пишите на [email protected]

Хочу добавить что в KUbuntu можно очень удобно для всего этого пользоваться утилитой KVPNC, предварительно установив следующие пакеты:

sudo aptitude install pptp-linux
sudo aptitude install pptpd
sudo aptitude install kvpnc

Настройка VPN при помощи KVPNC

После долгих мучений с конфигами нашел более простое решение настройки VPN в Kubuntu 8.10.
Для начала из другой системы скачаем и установим последовательно следующие пакеты:

После запуска KVPNC создадим новый профиль:

Далее выбираем тип нашего VPN:

Выбираем настройки согласно рисунку:

Вводим логин и пароль выданный провайдером:

Сетевое устройство оставляем по умолчанию:

Следующие два пункта без изменений:


Далее ставим соединение после создания профиля, хотя лучше не ставить:

Далее обзываем наш профиль и очень важно имя VPN сервера прописать не буквами а цифрами(у меня на скиншоте буквами!!!):

Все профиль создан теперь заходим в меню "Настройка" в пункт "Настроить kvpnc..." и в соответствующем пункте указываем IP нащего DNS сервера:

Для автоматического поднятия локальной сети в разделе "Before Connect" указываем наш локальный IP и основной шлюз в следующем виде:

После чего сохраняем и запускаем профиль. Можно еще настроить уведомления о соединении, чтобы не мешались на экране. Автоконнект не пробовал, но может у кого прокатит!!!

Простая настройка VPN по L2TP/PPTP

Всем, кто не может, не хочет или не умеет править конфиги и убивать NetManager; всем кто не дружит с xl2tpd; всем, кто без гуя жить не может, посвящается...

VPNPPTP


Как всегда, все просто:
sudo apt-get install vpnpptp-allde
Или взять "отсюда" (Версия для Убунту подходит)
Программа имеет доступную справку, понятный интерфейс, кому надо, - рaзберется.Глюков в работе пока не замечал, с НетМанагером не конфликтует.
Единственное, для несильных в буржуйском: при выборе типа аутентификации, галочка против, например, "refuse chap" не выбирает chap, а блокирует.
Удачи.

Как поменять имя компьютера

Где и в каких настройках можно изменить имя компьютера?

Как установить браузер Opera

Добавляем в файл /etc/apt/sources.list хранилище оперы deb http://deb.opera.com/opera/ stable non-free
echo "deb http://deb.opera.com/opera/ stable non-free" | sudo tee -a /etc/apt/sources.list

Добавляем ключ
sudo wget -O - http://deb.opera.com/archive.key | sudo apt-key add -

Обновляем список известных для установки пакетов и устанавливаем оперу
sudo apt-get update && sudo apt-get install opera

Настройка SAMBA

Чуть не убил себя ап стену..
2 дня читал форумы, не мог понять, почему, у меня либо расшарится принтер, но нет доступа к шарам, либо есть доступ к шарам, но нет доступа к принтерам.
В результате сделал
man smb.conf
и очень вдумчиво прочитал этот объёмный материал на английском языке. пока читал создавал с нуля свой smb.conf
вот что получилось:
[global]
workgroup = MSHOME
server string = Samba-Rumba-Mamba %v
interfaces = eth0 192.168.0.0/255.255.255.0
bind interfaces only = yes
invalid users = root @root
hosts deny = ALL
hosts allow = 192.168.0.
display charset = CP1251
dos charset = CP866
security = share
guest only = yes
log file = /var/log/samba/log.%m
smb passwd file = /etc/samba/smbpasswd
printer name = Canon MP160 Printer


[printers]
comment = Canon MP160 Printer
use client driver = yes
path = /var/spool/samba
guest ok = yes
printable = yes
write list = nobody, root

[print$]
comment = Printer Drivers
guest ok = yes
path = /var/lib/samba/printers
write list = nobody, root

[DOWNLOADED]
path = /media/sdb1/DOWNLOADED/
guest ok = yes

[MP3]
path = /media/sdb1/Mp3/
guest ok = yes

[DISTR]
path = /media/sdb1/DISTR/
guest ok = yes

[GAME]
path = /media/sdb1/Game/
guest ok = yes

также добавил пользователя nobody в группу plugdev. дело в том, что /media/sdb1/ принадлежит этой группе, и если просто так шарить от туда ресурсы, то их видно, но зайти нельзя - "нет доступа".
Некоторые из дериктив явно лишние. Но когда я пытаюсь минимализировать этот файл опять что-нибудь не работает. так что я оставил всё так, как есть сейчас. работает и ладно.

Настройка VPN (протокол L2TP)

Не знаю, как у вас, а у нас в доме уже три провайдера сменили pptp на l2tp =))
Поиск на Kubuntu.ru не нашёл ни чего полезного, поэтому, решил на всякий случай, выложить свою инструкцию, вдруг кому-нибудь пригодится.

Настраивать будем простым, но эффективным методом — ручной правкой конфигурационных файлов, например в Konsole через nano. То есть без использования нетворк-менеджера или другой GUI-утилиты.
Начнём пожалуй:

1. Первичная настройка сети:

1) Отключаем Knetwork-manager:
Не знаю, как у вас, а у меня KNetworkManager вызывает нездоровое желание... закопать его!
По-этому, на ваше усмотрение: отключите или совсем удалите его.

2) Далее в зависимости от того есть ли у вас в сети DHCP-сервер, конфигурационные файлы могут быть разными (а или b):


2.а) Настройки сети раздаются через DHCP автоматический:
Правим файл /etc/network/interfaces:
$ sudo nano /etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp


2.б) Настройки сети прописываются вручную:
Правим файл /etc/network/interfaces:
$ sudo nano /etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address ВАШ_IP
netmask ВАША_МАСКА
gateway ВАШ_ВНУТРЕННИЙ_ШЛЮЗ
#up route add -net x.x.x.0 netmask x.x.x.0 gw Ваш_Шлюз dev eth0

Правим файл /etc/resolv.conf
$ sudo nano /etc/resolv.conf

nameserver  IP_АДРЕС_ПЕРВОГО_DSN
nameserver  IP_АДРЕС_ВТОРОГО_DNS

3) На всякий случай перезагружаем компьютер, и проверяем соответствие параметров командой:
$ netstat -nr

x.x.x.0         0.0.0.0         255.255.255.0   U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
0.0.0.0         x.x.x.x         0.0.0.0         UG        0 0          0 eth0



2. Настройка Интернета (VPN && l2tp)

1) Для подключения к VPN серверу потребуется пакет xl2tp.
Ищем его для своей версии и архитектуры, где-нибудь там:
http://packages.ubuntu.com/ru/
Или конкретно для 9.10:
http://packages.ubuntu.com/ru/karmic/net/xl2tpd

2) Идём в папку /etc/ppp/ ($ cd /etc/ppp/), Делаем бекап файла options ($ cp options options.backup), открываем и стираем содержимое данного файла (options).

3) Правим файл /etc/ppp/options.xl2tpd:
$ sudo nano /etc/ppp/options.xl2tpd

unit 0
name ВАШ_ЛОГИН_ИНТЕРНЕТ
remotename l2tp
ipparam provaider
connect /bin/true
mru 1450
mtu 1450
nodeflate
nobsdcomp
persist
maxfail 0
nopcomp
noaccomp
#usepeerdns
defaultroute
replacedefaultroute

4) Правим файл /etc/ppp/chap-secrets:
$ sudo nano /etc/ppp/chap-secrets

# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
Ваш_Логин_Интернет  l2tp    Ваш_Пароль       *

5) Правим файл nano /etc/xl2tpd/xl2tpd.conf
$ sudo nano /etc/xl2tpd/xl2tpd.conf

[global]
access control = yes

[lac provaider]
lns = АДРЕС  VPN СЕРВЕРА, НАПРИМЕР: vpn.internet.beeline.ru
redial = yes
redial timeout = 1
require chap = yes
require authentication = no
name = ВАШ_ЛОГИН_ИНТЕРНЕТ
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
require pap = no
autodial = yes

6) На всякий случай перезагружаем компьютер.

7) Даём команду:
$ sudo /etc/init.d/xl2tpd start
Ждём секунд пять и проверяем, поднялся ли туннель. Даем команду: ifconfig и получаем результат!

многа буков, а в конце:
ppp0      Link encap:Point-to-Point Protocol
          inet addr:88.85.218.217  P-t-P:217.76.183.249  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:40 (40.0 B)  TX bytes:46 (46.0 B)

Если же туннель не установлен (нет третьего абзаца), переходим в /var/log/messages, идем в конец файла и смотрим, что там не срослось. Наиболее вероятная причина отказа - небрежно заполненные файлы, о которых речь шла выше. Может просто лечь VPN-сервер: это проверяется пингом. Иногда он действительно выпадает.

8) Создаём в папке /etc/ppp/ip-up.d исполняемый(!) (Если не знаете как сделать исполняемый файл, можете скопировать файл скриптов лежащий в данной папке, переименовать его (но убрать вначале имени цифры, чтобы ваш файл исполнялся последним), и заменить текст на этот) файл со следующим текстом:

#!/bin/sh
for i in $(grep "^nameserver" /etc/resolv.conf | awk '{print $2}') ; do
        route add -host $i gw ВАШ_ВНУТРЕННИЙ_ШЛЮЗ
done
route del $5 dev $1
route add -host $5 gw ВАШ_ВНУТРЕННИЙ_ШЛЮЗ

9) Создаём в папке /etc/ppp/ip-down.d исполняемый(!) файл со следующим текстом:

#!/bin/sh
route add default gw Ваш_внутренний_шлюз

10) Интернет настроен!
Стартуем: $ sudo /etc/init.d/xl2tpd start
Останавливаем: $ sudo /etc/init.d/xl2tpd stop


____________________________________________________
Некоторые ремарочки:

1) Опция autodial = yes — поднимет интернет автоматический при старте машины, но работает эта хрень раз через другой, поэтому зачастую необходимо, сначала остановить псевдоподнятый-нерабочий тунель, а затем снова поднять его:
$ sudo /etc/init.d/xl2tpd stop
$ sudo /etc/init.d/xl2tpd start

2) Данной настройкой мы будем пускать весть трафик через внешний шлюз — грубо говоря откажемся от внутри-сети. Если вам нужна внутрисеть вам необходимо добавить маршрут на внутрисеть:
Либо в /etc/network/interfaces:
up route add -net Подсеть netmask Маска gw Шлюз dev eth0
Либо в скрипте старта (/etc/ppp/ip-up.d/Ваш_Скрипт):
route add -net Подсеть netmask Маска gw Шлюз

Настройка выхода в интернет

Самой первой и, я думаю, самой важной задачей после установки Kubuntu на настольный компьютер является настройка выхода в интернет. С ним уже жить можно) И доступ к репам есть и на форуме можно вопрос задать.

Тема эта на форуме поднималась неоднократно. И силами модераторов были подобраны темы, в которых удачно освещен какой нибудь аспект этой проблемы.

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

Товарищь salt навёл на замечательную статю: http://help.ubuntu.ru/wiki/настройка_сети_вручную. Отдельное ему спасибо. Рекомендую воспользоваться указанной статьёй а не моей. Вместо редактора nano или gedit воспользуйтесь kate, т.е. замените $ sudo nano /etc/network/interfaces на $ kdesudo kate /etc/network/interfaces

Полезные команды

ifconfig - показывает поднятые интерфейсы.
ifconfig -a - показывает все интерфейсы.
route - показывает таблицу маршрутов.
Собственно кроме отображения они умеют ещё и редактировать), но нам понадобятся в первую очередь для проверки.

Для начала удалим KNetworkManager

К сожалению графический настройщик весьма глючен. Гораздо проще отредактировать файл /etc/network/interfaces.
Удалите пакет network-manager через управление программами или командой apt-get remove network-manager

Настройка выхода в локальную сеть (через ethernet)

Нажмите клавиши Alt+F2, в появившуюся строку введите:"kdesudo kate /etc/network/interfaces". Система запросит у вас пароль и откроет файл /etc/network/interfaces с правами суперпользователя.

Автоматический приём параметров с сервера.

Отредактируйте /etc/network/interfaces, что бы он содержал:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

Перезапустите у себя сеть командой sudo /etc/init.d/networking restart
Проверьте выводы команд ifconfig и route.

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

Отредактируйте /etc/network/interfaces, что бы он содержал нечто подобное:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
  # IP адрес назначаемый интерфейсу.
  address ххх.ххх.ххх.ххх
  # Сетевая маска
  netmask 255.255.255.0
  # Шлюз по умолчанию
  gateway yyy.yyy.yyy.yyy

Полный список параметров смотрите в man interfaces

DNS Прописывается в /etc/resolv.conf
nameserver   xxx.xxx.xxx.xxx
nameserver yyy.yyy.yyy.yyy

Перезапустите у себя сеть командой sudo /etc/init.d/networking restart
Проверьте выводы команд ifconfig и route.

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

Настройка выхода в интернет через PPPoE

Вам понадобятся логин и пароль для соединения PPPoE, предоставленные провайдером. Проверьте их наличие.
Перед началом убедитесь, что настроен выход в локальную сеть.

Теперь скомандуйте sudo pppoeconf
Там весьма простой диалог. Думаю, дополнительные пояснения не нужны.
Перезапустите у себя сеть командой sudo /etc/init.d/networking restart
Проверьте выводы команд ifconfig и route.
Зайдите на какой нибудь внешний ресурс. Кпримеру kubuntu.ru .

Настройка выхода в интернет через VPN

L2TP

Настройка VPN (протокол L2TP)

Настройка wi-fi

Взято отсюда
Перевод и переработка вышеуказанной статьи товарищем Mike
Нажмите клавиши Alt+F2, в появившуюся строку введите:"kdesudo kate /etc/network/interfaces". Система запросит у вас пароль и откроет файл /etc/network/interfaces с правами суперпользователя.
Добавьте строки (значения параметров укажите свои):
auto wlan0
iface wlan0 inet static
address 192.168.168.40
gateway 192.168.168.230
netmask 255.255.255.0
wpa-driver wext
wpa-ssid <your_essid>
wpa-ap-scan 2
wpa-proto RSN
wpa-pairwise CCMP
wpa-group CCMP
wpa-key-mgmt WPA-PSK
wpa-psk <your_hex_key>

  • wpa-driver: Use "wext" only. All other drivers are outdated no longer used.
  • wpa-ssid: Your network's ESSID (no quotes ""). Please avoid blanks/spaces as they will created problems during key generation (see below).
  • wpa-ap-scan: "1" = Broadcast of ESSID. "2" = Hidden broadcast of ESSID.
  • wpa-proto: "RSN" = WPA(2) "WPA" = WPA(1)
  • wpa-pairwise & wpa-group: "CCMP" = AES cipher as part of WPA(2) standard. "TKIP" = TKIP cipher as part of WPA(1) standard.
  • wpa-key-mgmt: "WPA-PSK" = Authentication via pre-shared key (see 'key generation' further below). "WPA-EAP" = Authentication via enterprise authentication server.

Надеюсь на помощь форумчан ;) : конструктивную критику, советы и описание того, что у меня не описано.
Спасибо тем, кто помог)

Настройка кодировки в наиболее популярных IRC-клиентах.

В данном HowTo рассматривается настройка кодировки (в данном случае UTF-8) в наиболее популярных IRC-клиентах.

Xchat:
Выбираем сервер из списка или создаём свой. Наводим на него курсор мыши и выделяем. В боковой панеле нажимаем "изменить" - в самом низу из выпадающего списка "кодировка" выбираем UTF-8. Если окно XChat уже открыто, то меню XChat -> Список сетей и далее по инструкции выше.

Kopete:
Создание новой учётной записи -> irc -> вкладка "Подключение" -> UTF-8.

Konversation:
При выборе сервера (сбоку) -> изменить -> identify -> изменить -> дополнительно -> кодировка -> UTF-8.

LostIRC:
Выбираем сервер - коннектимся. далее, во вкладке View выбираем параметры. Во первой же вкладке есть поле кодировки центральное (их всего 3) выпадющий список UTF-8.

KSirc:
Выбираем сервер, подключаемся. Дальше в окне подключения есть вкладка (первая) канал. В ней (предпоследним пунктом) есть "Кодировка" и выбираем UTF-8.

Opera:
Окно аккаунтов -> выделить аккаунт -> изменить -> вкладка "Исходящие" -> список "Кодировка" -> UTF-8.

Opera (eng.)
chat -> manage accounts -> <аккаунт> -> edit -> outgoing ->default encoding -> UTF-8.

ChatZilla:
Нажимаешь вкладку с аналогичным названием -> свойства (самый первый пункт)-> смена кодировки -> UTF-8 придется руками прописывать. (А вообще, у меня она стояла по умолчанию.)

XChat-GNOME:
Правка -> параметры -> Сети -> выбираем канал -> правка -> вкладка "Настройки сети" -> Выпадающий список "Кодировка" - UTF-8.

Gajim, PSI, tkaber и для прочих "чисто"-Jabber-клиентов:
Настройка кодировки, если сидишь через Jabber-транспорт. В разных клиентах по-разному нужно найти транспорт. Нажать "зарегестрировать транспорт", в окне вписать [{"irc.freenode.net","utf-8"}]. Потом по нему подключаться к нужному каналу.

Gaim, Pidgin:
Учетные записи -> добавить/изменить -> выбираем аккаунт или создаем -> вкладка "Дополнительно" -> Кодировка UTF-8

Gaim, Pidgin (eng.)
Buddy List -> Accounts -> add/edit -> %account -> modify -> advanced -> encodings -> UTF-8.

KVirc:
Заходишь на канал, щелчок правой кнопкой мыши по каналу в списке каналов, там выбираешь кодировку UTF-8.

mIRC 6.17
Данный клиент и версии выше поддерживают UTF-8. Идём в Tools -> Options -> в окне mIRC Options в Category -> IRC -> Messages. Смотрим стоит ли галка возле UTF-8 display. Если её там нет то установить обязательно. Затем идём в View -> Font... -> в раскрывающемся списке UTF-8 выбираем "Display and encode".

Miranda IM:
Идем в главное меню клиента (левый верхний угол окна контаков) -> "Options" -> слева в группе "Network" выбираем "IRC" -> вкладка "Advanced" -> в разделе "Other" снизу в раскрывающемся списке выбираем "UTF-8". Если вы уже были подключены к серверу, то, чтобы настройки вступили в силу, вам надо переподключиться.

Тема постоянно редактируется и будут рассмотрены любые замечания и новые данные об отсутствующих в списке irс клиентах.

buba, simp_lg, постояльцы канала #ubuntu-ru

Обустройство локального и удаленного веб-сервера для PHP разработчиков. Переход на Nginx.

Данное руководство предназначено для разработчиков на PHP, переходящих на повседневное использование (K)Ubuntu Linux и организующих на ней рабочее место; желающих перейти на nginx; а также всех тех, кто хочет разобраться, как гибко управлять (вручную, но быстро) компонентами своего локального / удаленного веб-сервера.
Следуя современному подходу, я не буду рассматривать использование, установку и настройку Apache. Консерваторам, противникам всего нового, ленивым и задающим вопрос «зачем это все надо?» я предлагаю рассмотреть очевидные преимущества Nginx.

  • Легковесный и быстрый. К примеру, 10 000 неактивных keep-alive соединений занимают примерно 2.5Мб памяти.
  • Является лучшим средством в качестве фронт-энда, т.е. для обработки клиентских запросов.
  • Предлагает очень гибкую настройку.
  • Без nginx уже не обходится практически ни один highload (высоконагруженный) проект на открытых технологиях. Опыт работы с ним и настройки может оказаться очень полезным.
  • В подавляющем большинстве случаев позволяет вообще отказаться от использования Apache.
  • Как следствие роста популярности, многие современные стеки приложений уже опираются на него, нежели Apache.

Но зачем это все лично вам, если у вас пока нет highload проектов?
Наверняка, через какое-то время, вам захочется арендовать VPS/VDS - виртуальный выделенный сервер (возможно, он у вас уже есть) и размещать на нем свой сайт, блог, созданные вами сайты (проекты) для ваших клиентов или какие-либо демонстрационные работы. Как правило, ресурсы на виртуальных серверах ограничены и использование nginx дает очевидные преимущества. Вы сможете получить лучшую скорость/отзывчивость на менее мощных и дешевых VPS.
От себя добавлю, что мне не удалось добиться на самой честной виртуализации KVM и тарифе 2x1000 Мгц / 2 Гб RAM, даже со всеми ухищрениями и использованием mpm_event апача, тех же результатов, которые дает nginx из коробки.
Поэтому, единообразие настроек и подобный опыт сможет помочь вам в любой момент поднять быстрый и эффективный сервер на любом железе / VPS. Также, в некоторых случаях, вы сможете сэкономить на панели ISPManager, арендовав пустой VPS и затратить не более 15-30 минут на его обустройство. Хозяин - барин, и выбор, использовать или нет, конечно же, делать вам.

Итак, при построении нашего сервера будут три основных независимых компонента:

  1. nginx — фронт-энд, обработка клиентских (браузерных) подключений;
  2. php-fpm — бэк-энд, менеджер процессов FastCGI для PHP;
  3. mysql — сервер баз данных.

Для новичков: вопреки тому, что традиционно их используют в связке, как и LAMP, они могут работать и совершенно независимо. Вы можете установить MySQL и использовать его из С++, Perl, Python и даже делать запросы и парсить результаты с помощью bash. Nginx вы можете использовать как веб-сервер для раздачи статики (html), как прокси-сервер, а можете с его помощью расшарить свои фильмы с компьютера для просмотра на мобильных устройствах (кстати, один из самых быстрых способов, например, на Nexus 7 смотреть FullHD фильмы без задержек в отличие от использования SMB). PHP же может быть установлен в систему как CLI и вы можете вызывать его из командной строки или писать shell скрипты на PHP.

Установка Nginx.

Под (K)Ubuntu есть три пакета, отличающиеся по количеству включенных модулей:
nginx-light — базовый набор;
nginx-full — стандартный набор;
nginx-extras — полный набор.

Если вы не знаете точно, какой вам нужен, я рекомендую в общем случае ставить nginx-full.
apt-get install nginx-full
Да, всего 400 килобайт скачалось и чуть больше мегабайта установилось =)
Кстати, для получения самой свежей стабильной версии для всех актуальных версий дистрибутива есть репозиторий ppa:nginx/stable, поддерживаемый разработчиками, а с версии 14.04 nginx добавлен в main и поддержкой вплотную обещали заняться Canonical.

Установка PHP

Не устанавливайте пакет php5, он потянет за собой апач.
apt-get install php5-fpm
В дополнение рекомендую поставить пакет php5-cli, для возможности вызова php-скриптов из командной строки. Расширения PHP устанавливать также очень просто, поставим базовый набор (допишите нужные вам):
apt-get install php5-cli php5-curl php5-gd php5-mcrypt php5-mysql

Установка MySQL.

Тут все просто:
apt-get install mysql-server
Установщик спросит у вас два раза пароль на пользователя root для MySQL.
Сразу, не отходя от кассы, внесем настройки в /etc/mysql/my.cnf в любое место секции [mysqld], например, после skip-external-locking
character-set-server = utf8
для дефолтного использования кодировки UTF-8 в таблицах.
Обратите внимание, что начиная с версии 5.5 тип таблиц, создаваемых по умолчанию, являются innodb. Если вам нужен тип myisam по умолчанию, допишите строку default-storage-engine = myisam, хотя лучше всегда писать точные запросы при создании таблиц.

Если вы переходите на использование nginx с апача, то вам нужно либо остановить и отключить автозапуск последнего, либо удалить пакеты с ним, nginx установить как показано выше, php переустанавливать не обязательно, достаточно доустановить пакет php5-fpm.

Конфигурация PHP.

Конфиги находятся в каталоге /etc/php5. Важно: для каждой конфигурации, будь то модуль апача, CLI или FPM существуют отдельные конфиги и, соответственно, отдельный php.ini.
Если у вас был апач, то конфиги под него находятся в /etc/php5/apache2 и больше использоваться не будут.
Для скриптов, вызываемых из консоли, будут использоваться конфиги из каталога /etc/php5/cli.
FPM же имеет некоторые отличия. Помимо отдельной конфигурации, он представляет собой менеджер процессов, работающий как демон. Nginx сам не запускает интерпретатор PHP и не «скармливает» ему конкретные скрипты, он только обрабатывает запросы, быстро отдает статику, но когда требуется выполнить скрипт — он передает эту задачу бэк-энду FPM, который намного лучше решает эту задачу, после чего результат идет по цепочке обратно (на самом деле, раньше это решалось через FastCGI, но этот метод устарел и в нынешних реалиях неэффективен).
Настройка FPM сводится к конфигурированию пулов, что дает большую гибкость. Если вам нужно выполнять скрипты от другого пользователя или с другими конфигурационными настройками — это можно сделать, создав новый пул.
По умолчанию создается пул www, конфиг которого находится в /etc/php5/fpm/pool.d/www.conf. Чтобы создать дополнительный, нужно просто скопировать файл в этот же каталог под новым именем, дать пулу другое имя в квадратных скобках и настроить под себя. На начальном этапе этого делать не требуется, важен лишь параметр listen.
Он может принимать значение listen = /var/run/php5-fpm.sock в случае использования unix-сокета и listen = 127.0.0.1:9000 в случае tcp-сокета (в различных дистрибутивах дефолтные параметры могут разниться). Через этот сокет происходит общение nginx и php-fpm.
На рабочем сервере / VPS параметры пула нужно будет настроить в соответствие нагрузке.
Внесем пару изменений в /etc/php5/fpm/php.ini, поскольку настраиваем сервер под разработку и нам нужно будет видеть все ошибки:
display_errors = On
error_reporting = E_ALL | E_STRICT

Для вступления изменений в силу, не нужно по привычке перезапускать веб-сервер, нужно перезапустить fpm:
service php-fpm restart

Создание виртуальных хостов.

Алгоритм добавления виртуального хоста следующий:

  • создать домашний каталог;
  • сделать копию /etc/nginx/sites-available/default в том же каталоге с новым именем и внести изменения;
  • сделать символическую ссылку созданного файла в /etc/nginx/sites-enabled/;
  • перезагрузить правила/конфиги nginx;
  • добавить запись в /etc/hosts (или DNS), чтобы получить возможность открывать в браузере.

Пара примеров. Начнем с «песочницы», где у нас будут всякие обрывки скриптов и тестовая фигня.
Для начала определимся, где у нас будут лежать домашние каталоги хостов и как их будем именовать. Как правило, единообразие в этом вопросе приводит к порядку и уменьшает головную боль в дальнейшем. Допустим, что пользователь в системе один, поэтому домашние каталоги расположим в /var/www (если нет — создадим, есть не пустой — очистим), а виртуальные хосты будем именовать через точку с local, например, для «песочницы» будет выглядеть как test.local.
Вы можете выбрать другой каталог, например в /home/user/www и выбрать другой принцип именования, но все же, рекомендую придерживаться единой схемы.

sudo -s
mkdir -p /var/www/test.local
chown -R user:user /var/www #где user — пользователь DE
cd /etc/nginx/sites-available
cp default test.local
nano test.local

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

Создаем ссылку (аналог команды a2ensite апача):
ln -s /etc/nginx/sites-available/test.local /etc/nginx/sites-enabled/

Удаляем дефолтный виртуальный хост:
rm /etc/nginx/sites-enabled/default

Перезагружаем правила:
service nginx reload
(отличается от restart тем, что не прерывает работы, полезно на работающих серверах)

Добавляем в /etc/hosts такую строчку:
127.0.0.1 test.local

Под юзером или в своей любимой IDE делаем файлик /var/www/test.local/test.php что угодно, вроде:
<?php
phpinfo
();
?>

Заходим в браузере на http://test.local

Установка и полноценная настройка phpmyadmin.
Приложения вроде phpmyadmin, drupal, wordpress и т. д. можно, конечно, поставить из пакетов, но... версии в пакетах практически всегда устаревшие, потянут апач, да и все равно потребуют серьезной настройки, так что будем ставить свежую версию и настраивать ее для получения максимальной функциональности.
Архив с последней версией можно получить тут http://www.phpmyadmin.net/, создаем каталог /var/www/mysql.local, распаковываем туда файлы из архива.
Настраиваем для него отдельный виртуальный хост, теперь это еще проще.
Копируем наш шаблон /etc/nginx/sites-available/test.local в /etc/nginx/sites-available/mysql.local, правим: убираем default в директиве listen, изменяем домашний каталог, имя сервера и пути к логам

создаем ссылку в sites-enabled, делаем reload
ln -s /etc/nginx/sites-available/mysql.local /etc/nginx/sites-enabled/
service nginx reload

добавляем запись в /etc/hosts
127.0.0.1 mysql.local
В принципе, phpmyadmin уже готов к работе и доступен из браузера через http://mysql.local, но локально каждый раз вводить пароль не комильфо, а часть функционала не будет задействована, пока не создать для phpmyadmin собственную базу.
Заходим в phpmyadmin под root, нажимаем «Импорт», выбираем файл /var/www/mysql.local/examples/create_tables.sql. Создастся база phpmyadmin, выбираем ее, нажимаем «Привилегии», «Добавить пользователя», указываем имя пользователя pma, хост — локальный, создать пароль — жмем «Генерировать», копируем пароль в буфер обмена. Должна стоять галочка «Выставить полные привилегии на базу данных phpmyadmin», глобальные привилегии не даем, жмем внизу «ОК».
Переименовываем файл /var/www/mysql.local/config.sample.inc.php в config.inc.php и правим:

Дополнительная информация по параметрам конфигурации http://php-myadmin.ru/doc/config.html.

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

По аналогии вы можете сделать виртуальный хост под рабочий проект и еще неограниченное количество оных.

Поиск и решение проблем.

Если что-то не заработало — читайте логи. Не ленитесь писать для каждого виртуального хоста свой лог - будет намного проще найти причину проблемы. Также, если все работает верно, FPM передает ошибки и предупреждения stderr Nginx и результат будет писаться в /var/log/nginx/.
Также частой проблемой начинающих является превышение лимита client_max_body_size при передаче между nginx и fpm, возникающую, например, при попытке загрузить файл на сервер через POST. Решается добавлением
client_max_body_size 20M
в блок server отдельного виртуального хоста, либо в блок http в файл /etc/nginx/nginx.conf для всех хостов. На рабочем сервере желательно согласовать размер с настройками PHP.
Если встречается ошибка "could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32", нужно добавить в http блок
server_names_hash_bucket_size 64;

На какие технологии стоит обратить внимание.

Для дальнейшей оптимизации рабочего сервера / VPS стоит обратить внимание на следующие вещи.
memcached — связующее программное обеспечение, реализующее сервис кэширования данных в оперативной памяти на основе парадигмы хеш-таблицы. Для работы из php есть расширения php5-memcache или php5-memcache. Также, nginx умеет брать статику / часть контента из memcached напрямую. Поддерживается плагинами многих готовых решений (drupal, wordpress etc).
zend opcache - данное расширение сохраняет компилированный байт код скрипта и повышает производительность, избавляя от интерпретации кода при каждом обращении к скрипту. В отличие от Zend Optimizer, Zend Opcache не загружает файлы, закодированные по Zend Guard, и является только акселератором. Входит в состав начиная с версии 5.5, однако собрать и подключить можно начиная с 5.3.

Версии PHP.

В (K)Ubuntu 12.04.3 LTS по умолчанию 5.3.10. Версию 5.5 можно получить, используя репозиторий ppa:ondrej/php5, а версию 5.4 - ppa:ondrej/php5-oldstable.
Для (K)Ubuntu 13.10 текущая версия 5.5.3.
Для Debian 7.3 текущая версия 5.4.4
В (K)Ubuntu 14.04 текущей будет 5.5.х, но поскольку она будет LTS, предположу, что после релиза появятся репозитории с пакетами 5.4 (не точно).

____________________________________________________________________
Буду признателен за дополнения и полезные советы для начинающих.

Подключение к точке доступа Wi-fi. Подробное руководство.

В данном практическом руководстве рассматривается простейший случай: настройка и подключение компьютера на Debian GNU/Linux к уже существующей wi-fi локальной сети. Указаны особенности настройки wi-fi карточек: мобильной Intel 2200 BG (в ноутбуке Dell) и PCI-карточки D-Link DWA-510 (на чипе RaLink RT2561/RT61), установленной в стационарном компьютере.

В приведенном ниже типичном примере сеть имеет адрес 192.168.7.0, базовая wi-fi станция (точка доступа, AP - access point) является также шлюзом в интернет и имеет адрес 192.168.7.1, маска wi-fi подсети 255.255.255.0, радиосигнал идет на 3-ем канале (задается в настройках точки доступа), шифрование wi-fi сигнала осуществляется по алгоритму WPA методом TKIP с помощью PSK ключа (PSK - pre-shared key).

2. Модуль ядра и установка прошивки (фирменного программного обеспечения) для wi-fi карточки

У многих дистрибутивов определение типа wi-fi карточки и настройка соответствующего программного модуля таким образом, чтобы он загружался при каждом запуске системы, происходит автоматически в процессе инсталляции операционной системы на компьютере. Однако наличие в системе модуля не означает, что wi-fi карточка будет сразу работать. Для работы многих карточек нужно еще где-то взять специальное фирменное программное обеспечение (прошивку) и указазать модулю путь к каталогу, в котором она будет находится.

Таким образом, настройка wi-fi карточки распадается на 2 этапа:
проверка наличия в операционной системе модуля ядра для работы с карточкой;
установка прошивки для карточки.
2.1. Модуль ядра

Чтобы узнать производителя и тип карточки, можно дать команду, которая выведет строчку с указанием на PCI-устройство, связанное с беспроводной (wireless) сетью:

$ lspci | grep -i wireless
Для карточки Intel 2200 BG получаем вывод строки:
02:03.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection
Если вывода нет, надо дать команду

lspci | grep -i network
и среди разных сетевых контроллеров найти тот, который стоит на wi-fi карточке.
Для D-Link-овской карточки получаем подобный вышеприведенному вывод - однако с указанием производителя не карточки, а чипа (RaLink RT2561/RT61). Это важно, поскольку модуль и прошивка подбираются для чипа. Две разные карточки одного производителя и одной модели могут быть основаны на разных чипах - соответственно, их работоспособность под GNU/Linux и сложность настройки могут отличаться.

Далее надо понять, установлен ли уже модуль при инсталляции операционной системы. Имя модуля обычно содержит номер модели, иногда - сокращение имени производителя. Команда имеет такой вид (под рутом):
# lsmod | grep -i {модель_чипа}
Если перебор всех возможных вариантов названия, как и просмотр вывода всех подгруженных модулей командой
# lsmod | less
не дал результата - значит, при инсталляции системы карточка не распозналась и надо либо установить дистрибутив с более новым ядром, где, возможно, карточка уже поддрживается, либо попытаться найти информацию в интернете о работоспособности чипа данной карточки под GNU/Linux (задав в поисковике фразу наподобие "{модель_чипа} linux"). Ряд чипов под GNU/Linux не поддерживаются.
Обе рассмотренные в данной статье карточки были обнаружены дистрибутивом Debian Lenny и соответствующие модули ядра были настроены для автоматической загрузки во время старта системы. Убедимся в этом.

Для Intel 2200 BG дадим команду поиска модуля и получим вывод:

# lsmod | grep -i 2200
[Название ] [размер] [сколько используют] [кто использует]
ipw2200 130760 0
ieee80211 30632 1 ipw2200
firmware_class 9088 2 ipw2200,pcmcia
Для RaLink RT2561/RT61 я пытался искать сначала модуль rt2561, но этот вариант не дал результата; потом я попробовал параметр "rt61" и обнаружил, что есть модуль rt61pci (который, в свою очередь, используется модулями rt2x00pci, rt2x00lib и eeprom_93cx6):

# lsmod | grep -i rt61
[Название ] [размер] [сколько используют] [кто использует]
rt61pci 2212 0
rt2x00pci 10208 1 rt61pci
rt2x00lib 21280 2 rt61pci,rt2x00pci
eeprom_93cx6 2304 1 rt61pci

2.2. Установка фирменного программного обеспечения (прошивки)

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

Например, можно убедиться, что карточку D-Link DWA-510 на чипе RaLink RT2561/RT61 rev B 802.11g система видит, даже создала для этих целей интерфейсы (и не один, а сразу два - это необычно), wlan0 и wmaster0, но они оба неактивны:
# ifconfig -a

eth0      Link encap:Ethernet  HWaddr 00:0c:6e:4e:24:04 
...
lo        Link encap:Local Loopback 
...
wlan0     Link encap:Ethernet  HWaddr 00:1c:f0:d4:34:61 
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wmaster0  Link encap:UNSPEC  HWaddr 00-1C-F0-D4-34-61-65-74-00-00-00-00-00-00-00-00 
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

К беспроводным относится только интерфейс wlan0, что видно из вывода команды, показывающей беспроводные интерфейсы:
# iwconfig

lo        no wireless extensions.

eth0      no wireless extensions.

wmaster0  no wireless extensions.

wlan0     IEEE 802.11g  ESSID:"" 
          Mode:Managed  Channel:0  Access Point: Not-Associated  
          Tx-Power=0 dBm  
          Retry min limit:7   RTS thr:off   Fragment thr=2352 B  
          Encryption key:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Любые попытки обратиться к интерфейсу wlan0 (после того, как он был прописан в файле /etc/network/interfaces, об этом см. ниже) приводили к сообщению, что он не настроен. Вывод команды dmesg показал ошибку - отсутствие фирменной прошивки для этой карточки.

Где взять прошивку? Ответ на этот вопрос имеет несколько вариантов.

1. Попытаться узнать, нет ли среди пакетов, идущих в составе дистрибутива, пакета, содержащего эту прошивку? Естественно, этот пакет не может находиться в группе свободных пакетов Debian (т.е. ни в репозитории main, ни в contrib), он может быть только в репозитории non-free. Поэтому соответствующую строку в файле /etc/apt/sources.list, которая отвечает за подключение к сетевому репозиторию, надо настроить на не-свободную часть репозитория: вместо
deb http://ftp.ru.debian.org/debian/ lenny main
deb-src http://ftp.ru.debian.org/debian/ lenny main
вписываем
deb http://ftp.ru.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.ru.debian.org/debian/ lenny main contrib non-free

и даем команду, позволяющую обновить список пакетов:
# aptitude update
Теперь пытаемся искать по фразе, соответствующей названию чипа / модуля для чипа - она должна быть в названии или описании соответствующего пакета; т.е. даем команду
# apt-cache search {поисковая_фраза}
Для Intel 2200 поиск не дал положительных результатов, а вот для чипа RaLink RT2561/RT61 такой пакет нашелся (ищем по фразе "rt61"):
# apt-cache search rt61
firmware-ralink - Binary firmware for Ralink RT2561, RT2571, RT2661
and RT2671 wireless cards

Посмотрим теперь, это то, что нам надо, или нет:
# aptitude show firmware-ralink
Пакет: firmware-ralink
Новый: да
Состояние: не установлен
Версия: 0.12
Приоритет: необязательный
Раздел: non-free/admin
Сопровождающий: Debian Kernel Team <[email protected]>
Размер в распакованном виде: 69,6k
Предлагаются: initramfs-tools, linux-image
Описание: Binary firmware for Ralink RT2561, RT2571, RT2661 and RT2671
wireless cards.
This package contains the binary firmware for PCI, CardBus and USB
wireless network cards  with the Ralink RT2501 [Turbo],  RT2600, RT5201
[Turbo], RT5600 or RT5201USB chipset,  supported by the rt61, rt61pci,
or rt73, rt73usb drivers.

Contents:
* Ralink RT2561 (RT2501/RT5201 chipset) firmware, version 1.2
* Ralink RT2561S (RT2501 Turbo/RT5201 Turbo chipset) firmware, version 1.2
* Ralink RT2661 (RT2600/RT5600 chipset) firmware, version 1.2
* Ralink RT2571W/RT2671 (RT2501USB/RT5201USB chipset) firmware, version 1.8
Сайт: http://www.ralinktech.com/ralink/Home/Support/Linux.html

Из описания следует, что это как раз то, что нам нужно (binary firmware), поэтому инсталлируем данный пакет:
# aptitude install firmware-ralink
После его установки необходимая прошивка была помещена в /lib/firmware. Карточка стала готовой к работе.
2. Попытаться найти прошивку для чипа карточки в интернете и загрузить оттуда. Задаем в поисковике фразу "{модель_чипа} linux firmware" или "{модель_чипа} linux driver" и внимательно смотрим результаты.

Именно так нашлась прошивка для карточки Intel 2200 BG. Поиск в Google по сочетанию "Intel Wireless 2200BG linux driver" уже первым результатом дает ссылку на сайт, где находится прошивка этой карточки для GNU/Linux - http://ipw2200.sourceforge.net/ (см. раздел сайта "Firmware"). Вообще, корпорация Intel известна тем, что для большинства своих устройств разрабатывает и предоставляет драйверы под GNU/Linux. Поэтому при покупке оборудования имеет смысл учитывать это обстоятельство, если есть планы использовать GNU/Linux.

Скачав с сайта прошивку последней версии (на данный момент - 3.0 по адресу http://ipw2200.sourceforge.net/firmware.php?fid=7), получаем файл архива ipw2200-fw-3.0.tgz. В режиме суперпользователя распаковываем его содержимое в директорию /lib/firmware (в некоторых дистирбутивах это может быть директория /usr/share/firmware или /usr/lib/hotplug/firmware/). В результате в этой директории будут находиться файлы:
# ls -l /lib/firmware
-rw-r--r-- 1 root root 191142 Мар  7  2006 ipw2200-bss.fw
-rw-r--r-- 1 root root 185660 Мар  7  2006 ipw2200-ibss.fw
-rw-r--r-- 1 root root 187836 Мар  7  2006 ipw2200-sniffer.fw
-rw-r--r-- 1 root root  12007 Мар  7  2006 LICENSE.ipw2200-fw

3. Попытаться использовать бинарный файл, идущий в составе драйвера карточи под MS Windows, поставляемого вместе с устройством. Это делается с помощью программы ndiswrapper. Подробнее см., например, здесь: http://citkit.ru/articles/423/ (раздел "Включаем").

3. Установка необходимых программ

Теперь необходимо поставить пакеты для работы с беспроводными сетями - как минимум, wireless-tools и (для обеспечения шифрования по алгоритму WPA) wpasupplicant. Для кого-то могут быть полезны и графические утилиты (мне не пригодились): kwifimanager, kwirelessmonitor и (для шифрования по WPA) wpagui. Инсталлируем; для этого под рутом даем команду:

# aptitude install wireless-tools wpasupplicant kwifimanager kwirelessmonitor wpagui
Также, по совету М. Конника, имеет смысл поставить пакеты для работы с ACPI (системой энергосбережения):
# aptitude install acpi-support acpid laptop-mode-tools
В результате будет запущен демон acpid и в /etc/acpi добавится ряд необходимых скриптов.
4. Возможные проблемы с выключателем wi-fi карточки в ноутбуке

После перезагрузки попытка проверить работоспособность (об этом см. ниже) ноутбучной wi-fi карточки Intel 2200 показыват, что она по-прежнему неработоспособна.

Смотрим вывод сообщений системы при загрузке:

# dmesg | less
Листаем вниз и находим примерно следующие строки:
[ 8.443703] ieee80211_crypt: registered algorithm 'NULL'
[ 8.468166] ieee80211: 802.11 data/management/control stack, git-1.1.13
[ 8.468170] ieee80211: Copyright (C) 2004-2005 Intel Corporation
[ 8.527267] ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.2kmprq
[ 8.527271] ipw2200: Copyright(c) 2003-2006 Intel Corporation
[ 8.527350] ACPI: PCI Interrupt 0000:02:03.0[A] -> GSI 17 (level, low) -> IRQ 17
[ 8.547046] ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
[ 8.934885] ipw2200: Radio Frequency Kill Switch is On:
[ 8.971250] Kill switch must be turned off for wireless networking to work.
...
[ 9.272808] ipw2200: Detected geography ZZD (13 802.11bg channels, 0 802.11a channels)
Модуль загружается (о чем свидетельствует надпись ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.2kmprq), однако не работает - по очень простой и банальной причине: в BIOS'е компьютера в разделе "Wireless" ("Беспроводная сеть") это устройство... отключено при старте компьютера! Об этом и сообщает надпись "Выключатель wi-fi инициирован" (по английски звучит более зловеще: "Radio Frequency Kill Switch is On" - "Убийца-переключатель радиопередатчика включен"). Чтобы катрочка заработала, надо этот выключатель отключить ("Kill switch must be turned off for wireless networking to work").

Проблема решается просто: перезагружаем компьютер, входим в BIOS (нажимаем Del или другую специальную клавишу до начала загрузки операционной системы), выставляем в BIOS'е wi-fi-карточку как изначально активированную, если это ноутбук - разрешаем ее включать-выключать с помощью нажатия специальной комбинации клавиш - функциональной клавиши и той, где нарисован передатчик (у меня это Fn + F2).

Запускаем систему вновь и имеем:
# dmesg | less
...
[    8.443703] ieee80211_crypt: registered algorithm 'NULL'
[    8.468166] ieee80211: 802.11 data/management/control stack, git-1.1.13
[    8.468170] ieee80211: Copyright (C) 2004-2005 Intel Corporation
[    8.527267] ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.2kmprq
[    8.527271] ipw2200: Copyright(c) 2003-2006 Intel Corporation
[    8.527350] ACPI: PCI Interrupt 0000:02:03.0[A] -> GSI 17 (level, low) -> IRQ 17
[    8.547046] ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
...
[    9.272808] ipw2200: Detected geography ZZD (13 802.11bg channels, 0 802.11a channels)

Неприятное сообщение больше не появляется.
Если выключатель-"убийцу" отключить не удалось, можно попробовать более сложные способы - например, использовать для этого специальную программу rfswitch, которая производит принудительное отключение (сайт: http://rfswitch.sourceforge.net/), или перекомпилировать ядро (алгоритм - здесь).

5. Проверка работоспособности wi-fi-карточки

Теперь можно попробовать поймать сигнал от wi-fi-точки доступа. Даем команду

# ifconfig -a
чтобы узнать, какое имя получил в системе беспроводной интерфейс, соответствующий нашей карточке. Для ноутбучной карточки Intel 2200 у меня появился новый интерфейс eth1, для карточки в стационарном компьютере (на чипе RaLink RT2561/RT61) появилось аж два интерфейса - wlan0 и wmaster0, но только первый из них является беспроводным (чтобы выяснить это, можно дать команду iwconfig -a , пример см. выше)
Затем для найденного беспроводного интерфейса задаем команду (покажем на примере eth1) для сканирования эфира на предмет обнаружения wi-fi точки доступа:
# iwlist eth1 scan

eth1      Scan completed :
          Cell 01 - Address: 11:22:6B:81:A8:6A
                    ESSID:"home_wireless_network"
                    Protocol:IEEE 802.11bg
                    Mode:Master
                    Frequency:2.412 GHz (Channel 3)
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s
                              11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
                              48 Mb/s; 54 Mb/s
                    Quality=100/100  Signal level=-19 dBm
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : TKIP
                        Authentication Suites (1) : PSK
                    Extra: Last beacon: 176ms ago

Здесь видно, что точка доступа 11:22:6B:81:A8:6A, предоставляет доступ в сеть с именем "home_wireless_network" (такое название я дал сети при настройке точки доступа через web-интерфейс) на 3-ем канале. При этом используется шифрование по алгоритму WPA методом TKIP с помощью ключа (PSK - pre-shared key).

Самый простой, удобный и надежный способ настроить беспроводную сеть в Debian GNU/Linux - записать ее параметры в файл /etc/network/interfaces .

Примечание 1 (для любителей графических конфигурялок). Данный файл в Debain GNU/Linux исполняет роль самой удобной из всех возможных конфигурялок: нужно всего лишь записать подряд несколько строчек с адекватными значениями. Если же Вы твердо намерены использовать графическую конфигурялку, то тогда для Вас не составит труда, руководствуясь значениями в соответствующие поля вписать те же значения, которые приведены далее в конфигурационном файле /etc/network/interfaces .

Примечание 2. Беспроводной интерфейс может быть настроен из консоли и другим способом - с помощью iwconfig.

6. Настройка беспроводного интерфейса
со статическим адресом компьютера в беспроводной сети

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

Ниже приведен пример части конфигурационного файла /etc/network/interfaces (с подробными комментариями), отвечающего за работу wi-fi сети, где адреса компьютеров - статические, заранее назначенные администратором.
#-------------------------------------------------
# Интерфейс беспроводной локальной сети - eth1
#-------------------------------------------------
#
# описание интерфейса:
# inet - сетевой
# static - с фиксированным (статическим) IP-адресом
iface eth1 inet static

# адрес интерфейса в сети - обязательный параметр
# этот адрес будет иметь наш компьютер,
# когда выходит в беспроводную сеть вида 192.168.7.*
address 192.168.7.15

# маска беспроводной сети - обязательный параметр
netmask 255.255.255.0

# адрес сети - обязательный параметр
network 192.168.7.0

# широковещательный адрес
broadcast 192.168.7.255

# шлюз - адрес беспроводной точки доступа
# Этот адрес присваивается точке доступа при ее настройке
gateway 192.168.7.1

# название беспроводной сети - у нас это "home_wireless_network"
wireless-essid home_wireless_network

# режим доступа "managed" - подключение к одной (или более) точкам доступа
wireless-mode managed

# используем канал 3 - зависит от настроек точки доступа
wireless-channel 3

# скорость передачи данных - определяется автоматически
wireless-rate auto

#-------------------------------------------------
# настройки для шифрования по методу WPA
#-------------------------------------------------
#
# ssid для wpa - название беспроводной сети
#  в нашем примере - "home_wireless_network"
wpa-ssid home_wireless_network

# Ключ PSK для шифрования по методу WPA
# Он задан при настройке беспроводной точки доступа
# Ключ должен быть символьным от 8 до 63 символов или цифровым - 64 цифры.
# Используем символьный ключ
wpa-psk paw6102bdse889mpaaj9828nhhiizpsye8732j

# тип шифрования - WPA-PSK
wpa-key-mgmt WPA-PSK

# метод шифрования - TKIP, как парный ему - CCMP
wpa-pairwise TKIP CCMP

# группа шифрования - TKIP
wpa-group TKIP

# протокол шифрования - WPA
        wpa-proto WPA

Все параметры, которые начинаются с "wireless-", относятся к настройке беспроводной сети, а с "wpa-" - к настройке шифрования при передачи данных по протоколу WPA (Wi-Fi Protected Access), который сейчас считается более надежным, чем уже устаревший WEP (Wired Equivalent Privacy). Точно такие же настройки должны быть выставлены и в беспроводной точке доступа (маршрутизаторе).

Естественно, на компьютере должны быть прописаны сервера DNS (сервера, которые позволяют по введенному символьному адресу получить цифровой сетевой адрес; например, для lenta.ru это будет 81.19.69.232 и т.д.). Обычно их указывают в файле /etc/resolv.conf следующим образом:

# Пример содержимого файла /etc/resolv.conf
#
# После слова nameserver приводится IP-адрес DNS-сервера
#
# Адреса могут быть адресами DNS-серверов провайдера интернета -
# тогда их надо получить у него;
# или же можно использовать публичные сервера
# (время отклика может быть дольше).
#
# Ниже приведены реальные адреса двух публичных серверов
#
nameserver 213.133.105
nameserver 199.166.29.3

Адреса других публичных DNS-серверов можно посмотреть здесь.
Теперь перезагружаемся и, в случае необходимости, активируем интерфейс eth1 комадной из-под рута:

# ifup eth1
Естественно, если до этого использовался сетевой проводной интерфейс (у меня он имеет обозначение eth0), то его нужно предварительно дезактивировать (из-под рута):

# ifdown eth0
Аналогично отключается, в случае необходимости, и беспроводной интерфейс:
# ifdown eth1
Если же есть желание, чтобы eth1 активировался автоматически при запуске системы (и в ряде других случаев), то надо перед описанием интерфейса (т.е. перед iface eth1 inet static) добавить такую строчку:

auto eth1
7. Настройка беспроводного интерфейса
с динамически распределяемыми адресами компьютеров в беспроводной сети

Этот случай аналогичен предыдущему, за исключением того, что в части конфигурационного файла /etc/network/interfaces, отвечающего за беспроводной интерфейс, вместо строки

iface eth1 inet static
надо вписать
iface eth1 inet dhcp
и удалить строку, жестко задающую адрес компьютера:
address 192.168.7.15
Примечание. Не забывайте про настройку адресов DNS-серверов (см. выше).

8. Некоторые тонкости настройки WPA

Пользователи GNU/Linux с ядром 2.4 или 2.6 меньше, чем 2.6.14, должны явным образом указать драйвер для WPA (для Debian - все там же, в файле /etc/network/interfaces):

wpa-driver {драйвер}
где {драйвер} - один из следующих:
wext - наиболее общий драйвер (работает в большинстве случаев);
atmel - драйвер для ATMEL AT76C5XXx (USB, PCMCIA);
wired - драйвер для проводной Ethernet сети.
Наиболее употребительные опции для WPA
(для Debian - указываются в соответствующей секции файла /etc/network/interfaces);
взято отсюда
Элемент Возможные значения
(в файле /etc/network/interfaces разрешенные значения перечисляются через пробел) Описание
wpa-ssid {текстовая строка} устанавливает название (ssid) сети
wpa-bssid Пример:00:1a:2b:3c:4d:5e идентификатор (bssid) точки доступа, к которой идет подключение
wpa-psk Пример:iehRHbfGy89620ksjDHFЗ WPA-ключ шифрования
wpa-key-mgmt NONE, WPA-PSK, WPA-EAP,IEEE8021X список принимаемых способов шифрования
wpa-group CCMP, TKIP, WEP104,WEP40 список приемлемых групп шифрования для WPA
wpa-pairwise CCMP, TKIP, NONE список попарных методов шифрования для WPA
wpa-auth-alg OPEN, SHARED, LEAP список допустимых алгоритмов аутентификации для IEEE 802.11
wpa-proto WPA, RSN список принимаемых протоколов
wpa-identity Пример:vasya имя пользователя, получаемое у администратора (EAP-аутентификация)
wpa-password Пример:rRt89Nbvc4 пароль (EAP-аутентификация)
9. Заключение

Описанный в статье способ настройки wi-fi сети является универсальным для Debian GNU/Linux. Однако у него есть свой недостаток: в случае, если регулярно используются два интерфейса - например, проводной и wi-fi сети - переключение между интерфейсами производится вручную и требует знания пароля суперпользователя. Во многих случаях он может быть неизвестен рядовому пользователю.

В случае частого и активного использования нескольких интерфейсов или регулярного подключения к новым wi-fi-сетям (и первое, и второе справедливо при работе на ноутбуке) рекомендуется освоить альтернативный подход - программу NetworkManager. Узнать о ней больше можно, например, здесь.

В случае использования KDE наблюдать за работой интерфейса(ов) удобно с помощью программы KNemo (после установки настраивается из "Центра управления KDE" --> "Сеть и интернет" --> "Монитор сети").

Статья написана не мною, но честно вырвана из глубин интернетов, буквально от туда, где бы ее ни один (!!! и не в коем случае начинающий) линуксоид не нашел бы.
Считаю этот подробный ман просто обязан быть на kubuntu.ru.
Оригинал статьи находится здесь.

Поднятие WiFi в консоли.

В жизни бывает всякое - KNetworkManager отказывается дружить с вашей сетевухой, полетели насмерть иксы, еще какой-нибудь катаклизм... И вот тут вы ВНЕЗАПНО вспоминаете что где-то в недрах ваших красивостей запылилась консоль. Это значит, что пора натереть глаза кулаками до равномерно-красного цвета, и вспоминать, что такое конфиги...
Так как все нормальные люди сейчас используют WPA/WPA2, то рассмотрим конфигурирование на примере этих технологий.

Итак, поехали...
Перед тем, как начать, удостоверьтесь, что у вас отключены всякие КНетворкМенеджеры и прочие гуёвины, которые подминают под себя вай-файную сетевуху. Они вам больше не нужны, и даже будут мешать.

0. По умолчанию wpa-supplicant уже должно быть установлено, но если по какой-то причине у вас этот пакет не стоит, то ставим:
sudo apt-get install wpasupplicant

1. Проверяем, что ваша сетевуха ("wlan0" или типа того) работает, и беспроводная сеть детектится:

2. любым доступным текстовым редактором, запущенным под правами рута, открываем конфиг "/etc/network/interfaces". В нем гарантировано есть такое:
auto lo
iface lo inet loopback

Но вполне может быть что-нибудь еще.

3. Если есть упоминание вашей файфайной сетевки, то внимательно смотрим, что именно, должно быть вот так (если нет вообще ничего, то дописываем, но после прочтения всего мануала целиком):

4. Теперь немного теории:
5. вот мы и подошли к генерированию ключа:
6. Теперь возвращаемся к п.3, и уже вдумчиво вносим изменения в сетевой конфиг в соответствии со всей той информацией, что мы вычитали в пунктах 4 и 5.
7. После того, как все прописали, перезапускаем всю сетевую часть:
sudo /etc/init.d/networking restart либо просто перезагружаем комп.

Теоретически этого достаточно. Наслаждайтесь!

(с) Оригинальная буржуйская статья - там. Там же есть уйма примеров для различных вариаций.
(с) Вольный перевод мой.
(с) За наводку на статью благодарим камрада _KoT_

Расшаривание папок в линуксе или настройка NFS.

Задача: Сделать общую папку доступную по сети между двумя компьютерами с linux. Проще говоря нам нужно расшарить папку на компьютере с linux чтобы мы могли видеть её по сети на другом компьютере с linux.

Компьютеры имеют адреса:

10.0.0.1 - Сервер (на нем физически находится папка с общим доступом) и
10.0.0.2 - Клиент с него будем осуществлять доступ.

Устанавливаем NFS на компьютер - сервер

  1. sudo aptitude install nfs-kernel-server nfs-common portmap
  2. Создаем папку в домашней директории пользователя к которой будем открывать доступ:
    mkdir Share
  3. Добавляем в файл /etc/exports строку:
    /home/user/Share 10.0.0.0/255.255.255.0(rw,no_root_squash,async,subtree_check)
    echo "/home/user/Share 10.0.0.0/255.255.255.0(rw,no_root_squash,async,subtree_check)" | sudo tee -a /etc/exports
  4. Перезагружаем NFS сервер чтобы изменения вступили в силу:
    sudo /etc/init.d/nfs-kernel-server restart
    можно также использовать команду:
    sudo exportfs -a

Настраиваем компьютер - клиент

  1. sudo aptitude install portmap nfs-common
  2. Создаем папку в которую будем монтировать сетевую папку компьютера - сервера
    mkdir Share
  3. Монтируем сетевую папку:
    sudo mount 10.0.0.1:/home/user/Share Share
    если нужно чтобы сетевая папка монтировалась автоматически, тогда добавляем в файл /etc/fstab строку: 10.0.0.1:/home/user/Share /home/user/Share nfs timeo=50,hard,intr
    echo "10.0.0.1:/home/user/Share /home/user/Share nfs timeo=50,hard,intr" | sudo tee -a /etc/fstab
    при загрузке и после обрыва связи сетевая папка будет монтироваться автоматически.

P.S. Если вы используете firewall, то вам потребуется открыть порты: 32771, 111 и 2049

Расшаривание сканера в сеть

Сабж собствено.
На сервере, в терминале выполняю:
sudo su
все остальные команды соответственно выполняются автоматом от суперюзера.
Устанавливаю демон saned с зависимостями:

aptitude install sane sane-utils libsane xinetd
Проверяю наличие группы scanner:
cat /etc/group | grep scanner
если отсутствует то добавляю:
groupadd scanner
Добавляю пользователя saned (от него будет запускаться демон) в группы scanner и lp:
usermod -aG scanner,lp saned
Проверяю, видит ли sane сканер:
scanimage -L
У меня видит:
device `hp:libusb:002:002' is a Hewlett-Packard ScanJet 63x0C flatbed scanner
Если не видит: для некоторых новых сканеров требуется дополнительно установить пакет libsane-extras или специфические драйвера (искать на сайте производителя сканера).
Включаю у демона автоматический запуск:
nano /etc/default/saned
меняю
RUN=no
на
RUN=yes
nano /etc/init.d/saned
меняю
RUN=no
на
RUN=yes
Описываю порт занимаемый демоном:
echo 'service sane-port
{
disable = no
socket_type = stream
protocol = tcp
user = saned
group = scanner
wait = no
server = /usr/sbin/saned
}' > /etc/xinetd.d/sane-port

Редактирую:
nano /etc/sane.d/saned.conf
последней строкой добавляю свою подсеть (подсеть с которой разрешено обращение к сканеру):
192.168.0.0/24
Серевер готов, перегружаю.
На клиенте необходимо прописать IP адрес сервера:
sudo nano /etc/sane.d/net.conf
и последней строкой добавляю ip сервера.
Устанавливаю программу сканирования (мне достаточно skanlite):
sudo aptitude install skanlite
И сканирую.
Клиент для win32 брать здесь: ftp://ftp2.sane-project.org/pub/sane/old-ftp.sane-project.org/xsane/

Синхронизация папок в локальной сети

Итак, есть два компьютера: один мой, второй жены. Есть папки с семейным фотоальбомом на обоих машинах. Как можно догадаться, я скидываю фотографии себе, а жена себе. В связи с этим имеем два разных семейных фотоархива для одной семьи. После того, как мне пришлось в ручную, перетаскивать папки по сети, я решил, что работать "грузчиком" мне надоело, и я сделал автоматическую синхронизацию семейного фотоальбома с помощью моего обожаемого ssh и rsync.

Создаём скрипт mysync:
#!/bin/bash
rsync -e "ssh -p 22" --partial -av /home/lyopa/Изображения/Семейный_фотоальбом/ [email protected]:/home/ira/Изображения/Семейный_фотоальбом/

Делаем его исполнимым:
chmod +x mysync
Ну и чтоб уж совсем потешить свою лень и писать потом поменьше, сделаем ссылку:
sudo ln -s mysync /usr/bin/mysync
Затем добавляем mysync в расписание командой crontab -e:
0 3 * * * mysync #Синхронизация семейного фотоальбома
Таки образом, синхронизация с моей стороны начнётся в 3 часа ночи. Подробно о настройке cron можно прочесть тут и ещё в сотне мест.
Ну подключившись по ssh, чтобы не поднимать задницу и не бегать от компа к компу делаем то же самое у жены. Только mysync у неё будет выглядеть немного иначе:
#!/bin/bash
rsync -e "ssh -p 22" --partial -av /home/ira/Изображения/Семейный_фотоальбом/ [email protected]:/home/lyopa/Изображения/Семейный_фотоальбом/

И расписание на пару часов позже (бережёного бог бережёт):
0 5 * * * mysync #Синхронизация семейного фотоальбома

Собственный DNS сервер

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

Для этого на благо меня будет трудится пакет BIND (sudo apt-get install bind9). После установки bind уже готов к работе. Но я решил, что будет лучше, если те запросы, на которые не сможет ответить мой сервер, он будет обращаться к DNS моего провайдера. Для этого мне необходим файл настроек /etc/bind/named.conf.options.
Выглядит он примерно так:
options {
        directory "/var/cache/bind";

        // If there is a firewall between you and nameservers you want
        // to talk to, you may need to fix the firewall to allow multiple
        // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

        // If your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses repla$
        // the all-0's placeholder.

        forwarders {
                62.213.0.12; // - DNS сервер провайдера
                62.213.2.1; // - слейв сервер
         };

        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
         };

Если добавить опцию " forward only", то мы запретим нашему серверу любую самостоятельную деятельность даже в случае, если ни один forward сервер его не удовлетворит.

Кстати стоит отметить, что для управление bind используется rndc. наберите "rndc status" чтобы увидеть статус сервера. Ежели набрать без опций, то утилита покажет список всех команд.
Теперь осталось только внести наш DNS сервер в файл /etc/resolv.conf. Примерно так:
nameserver 127.0.0.1
Все бы хорошо, но я столкнулся с проблемой, когда при каждой загрузке мой resolv.conf злостно затирался. Решил проблему следующем образом: Так как информацию для соединения машина получает по dhcp, то в файле /etc/dhcp3/dhclient.conf я раскомментировал следующую строку:
prepend domain-name-servers 127.0.0.1;. Теперь инфа о моем DNS в resolf.conf не затирается и сервер функционирует в штатном режиме-)

Создание своего сайта/блога и зеркалирование его в i2p

I2P — это не TOR, не анонимайзер, а собственная сеть, свои сайты.
Прошло всего ничего с последней статьи о том как подключиться к ней (не буду вдаваться в подробности - сам хотел такую написать, но всё никак руки не доходили), и мне захотелось поэксперементировать.

Итак. Цель статьи как понятно из заголовка - установка и настройка своего хостинга с сайтом и пробросом его в i2p.

Имеется:
роутер i2p (настроенный по этой статье)
Безлимитный интернет.

Для справки и тех, кто в танке, на всякий пожарный:
$HOME - переменная, указывающая на домашнюю директорию в папку пользователя
$USER - переменная, обозначающая имя пользователя. В примерах ниже надо заменять на свои значения.


Ну.. поехали.

Для начала ставим LAMP. В интернете есть куча статей по настройке nginx в i2p, но я увы преверженец apache. Посему LAMP....

sudo apt-get install php5 apache2 mysql-server php5-mysql libapache2-mod-php5

Так сказать прожиточный минимум. Остальное подтянется. Не забудьте в mysql ввести пароль от root'a при установке. И хорошо запомнить его, для тех у кого нет памяти - лучше записать.

Теперь нам надо настроить Apache.

Для начала определимся. У меня сайт... эм.. блог... Эм.. страничка.. В общем не важно. Мне хватит и на /home метров 200... Посему буду его держать в папке с i2p.
Создаём папку $HOME/.i2p/eepsite/docroot/www - там у нас будет сайт.
Если он уже есть у вас, то его бэкапчик, или самораспаковывающийся архив суём туда. Если нет - ну и пофиг. Попозже к этому вернемся.
Поехали, нас ждёт Apache!
В теории тут настраивается всё просто.

Для копирования файла настройки из виртуального узла по умолчанию в новый файл (mysite) введите в командной строке следующую команду:

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mysite

Отредактируйте в нем новый файл настройки (mysite):

sudo nano /etc/apache2/sites-available/mysite

Измените корневой узел документов, указав в нем новое местоположение:

/home/$USER/.i2p/eepsite/docroot/www/

Измените «Directory directive» путем замены <Directory /var/www/> на <Directory /home/$USER/.i2p/eepsite/docroot/www/>

Сохраните файл mysite

Активация нового виртуального узла

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

sudo a2dissite default && sudo a2ensite mysite

Перезапустите сервер HTTP Apache:

sudo service apache2 restart

Работа с несколькими проектами

После этого небольшого тюнинга по адресу http://localhost нам выводится содержимое папки «www». И если там что-то уже лежит, то это нам и покажут 8) Но порой работаешь сразу над несколькими проектами — и теперь нам необходимо создать домены в этой папке с соответствующими привязками.

Итак, идем в папку /etc/apache2/sites-available/ и создаем там файл vhosts.conf.
touch /etc/apache2/sites-available/vhosts.conf

После этого открываем его любым текстовым редактором и добавляем туда такой текст:

<VirtualHost *:80>

ServerName first.my

ServerAlias www.first.my

DocumentRoot /home/$USER/.i2p/eepsite/docroot/www/first.my

</VirtualHost>

<VirtualHost *:80>

ServerName second.my

ServerAlias www.second.my

DocumentRoot /home/$USER/.i2p/eepsite/docroot/www/second.my

</VirtualHost>

Сохраняем документ, идем в свою папку /home/$USER/.i2p/eepsite/docroot/www/ и там создаем соответственно папки first.my и second.my.

Далее открываем в текстовом редакторе файл /etc/hosts и добавляем в конце следующий текст:

127.0.0.1 first.my
127.0.0.1 second.my

После этого активируем vhosts.conf в apache:
cd /etc/apache2/sites-enabled/

sudo ln -s ../sites-available/vhosts.conf

Задача выполнена. Все, что теперь осталось — только перегрузить сервер.

sudo service apache2 restart

После этого, набрав в адресной строке адреса http://first.my или http://second.my Вы должны увидеть содержимое соответствующих папок.

mod_rewrite

PS как выяснилось позже, у установленного таким образом апача отсутствует mod_rewrite, что делает невозможным использование .htaccess. Решение:

sudo a2enmod rewrite

sudo nano /etc/apache2/sites-available/default

Меняем у элементов «AllowOverride NONE» на «AllowOverride ALL»

sudo services apache2 restart

Поздравляю. Тут кончается первая часть. Установка и настройка apache. Теперь можно положить свой сайт в /home/$USER/.i2p/eepsite/docroot/www/ если ещё не сделали конечно. Для тех, кто за NAT'om - рекомендую использовать например сервис noip - на данный момент он бесплатен, и на 1-м аккаунте одновременно можно держать до 3-х доменов, правда чтобы настроить надо натыкаться..

Кроме того там есть удобная утилита noip2, которую можно поставить из исходников... ИЛи из deb-пакета. Скачать скомпиленный уже пакетик можно тут (57,32 kb). При установке он запросит логин/пароль от учётной записи, ваше доменное имя и частоту обновления.
Теперь осталось только дообавить в /etc/crontab строчку
@reboot /usr/local/bin/noip2
Вуаля, всё должно работать. ЗЫ Это не является рекламой, если не доверяете noip, поставьте свой Dinamic DNS... Много информации про DynDNS есть на FreeDNS

Для дальнейшей простоты я буду называть "свой" сайт test.no-ip.biz. В сети i2p он будет носить имя test.i2p. Вы же не забудьте поменять их на свои.

Часть 2-ая. Настройка i2p. Зеркалирование блога на wordpress.

Помните начальную фразу про заворачивание Apache? Тоже самое надо сделать и для i2p.
nano $HOME/.i2p/eepsite/contexts/base-context.xml
И меняем значение переменной
<Set name="resourceBase">/home/$USER/.i2p/eepsite/docroot/</Set>
на
<Set name="resourceBase">/home/$USER/.i2p/eepsite/docroot/www/</Set>

Заходим в менеджер туннелей: 127.0.0.1:7657/i2ptunnel/index.jsp
Создаём новый серверный HTTP туннель:





Попадаем в настройки:






Теперь по пунктам:

  • Название(N) и Описание(e) — Просто имя и описание туннеля. Ни на что не влияют.
  • Адрес(H) и Порт(P) — Адрес и порт нашего веб-сервера. Мы будем ставить на 127.0.0.1 и порт 80.
  • Имя веб-сайта(W) — Домен, на котором мы планируем держать сайт.
  • Файл секретного ключа(k) — Файл, в котором будет храниться ключ, по которому генерируется адрес туннеля. Совет: после генерации файла (размер 663 байта) сразу сделайте его резервную копию, иначе, при его потере, вы потеряете доменное имя. Оно будет забито за вами, но вы не будете иметь к нему доступ.

Нажимаем «Сохранить». Затем «Запустить». После запуска идём в настройки туннеля и копируем Локальный адрес назначения(L). Он пригодится нам при регистрации в DNS.


Регистрация в DNS (красивый и бесплатный DNS в i2p)

Регистрация на сайте, предоставляющем hosts.txt в общем-то необязательна, ибо в I2P DNS является полностью распределённым. Клиенты сами обмениваются между собой «адресными книгами». Но уж если хочется, то… заходим на сервер stats.i2p и вводим свой хост [Имя веб-сайта(W)] и Локальный адрес назначения(L).

Регистрация завершена!

Через некоторое время ваш test.i2p будет доступен в сети i2p прямо по доменному имени!

Теперь начнём линковку....

Прежде, чем приступить к этой задаче, необходимо переделать туннель для сайта. Это несложно и делается в консоли управления. Сделайте у себя также, как на картинке, вставив свой адрес сервера, порт и домен.

Local destination создается автоматически. Больше на той странице менять ничего не надо. Сохраняйте (кнопка в самом низу страницы) и стартуйте этот туннель. После старта станет доступна кнопка Preview со ссылкой типа http://q3ekhqgqxnrgaeshsesdhdfhfsjhsf5vxlzoj76soarecgf3a.b32.i2p/ (не тыркайте зря, не работает, это ж пример). Если ваш сайт загружается по этой ссылке, то считайте вы уже прошли квест на четверть пути.

Теперь адаптация сайта под i2p. У меня - блог на Wordpress.

Для начала надо заменить все ссылки на сайте. Это можно сделать путем изменения записей в базе данных.

Подключитесь к базе данных и выберите вашу базу (моя называется wordpress):
# mysql -p
mysql> use wordpress;

Теперь необходимо найти таблицу опций

mysql> show tables;
У меня она называетя wp_options. У вас может быть имя таблицы с каким-нибудь другим префиксом, или вообще без него. Например, просто options. Когда вы нашли нужную таблицу пошлите 2 запроса, исправляющих параметры сайта. Их через админку wordpress не получится изменить.

mysql> pdate wp_options set option_value="/" where option_name="siteurl";
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> update options set wp_option_value="/" where option_name="home";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

Вуаля, теперь бОльшая часть ссылок будет работать правильно как в обычной сети, так и в i2p.

Следующий шаг это поиск абсолютных ссылок внутри сайта. Например, вот код меню, которое показывается посетителю моего сайта. Например:

<div id="menu">
<ul>
<LI><a href="/">Главная страница</a></LI>
</ul>

Остальное шаманство автор запретил выкладывать, чтобы не переписывать и не травить ему душу - просто выложу путь к его страничке. Этот аффтор очень щепетилен по поводу печенек для себя любимого, и до коле очень жаден, поэтому будьте людьми, покормите его, зайдя к нему на сайт, отключив AdBlock... он будет признателен!

Не забудьте посмотреть как выглядит ваш сайт в i2p.

Вот как это выглядит в итоге (ВНИМАНИЕ! Если не работает, значит я сплю, увы пока не накопил на домашний сервачёк):
chibiko.no-ip.biz
i2p: chibiko.i2p

PPS по мотивам:
http://www.wikireality.ru/
http://www.shpargalko.com/2010/03/01/i2p-nastrojka/
http://habrahabr.ru/post/97996/

Средства обнаружения и защиты от вторжения

Линукс - сетевая ОС и практически все из нас пользуются интернетом. Чтобы обезопасить себя от несанкционированного вторжения в линуксе разработаны много средств. Я хочу рассказать о некотрых из них.
Portsentry
Программа предназначена для обнаружения попыток сканирования портов и организации ответа.
Основные возможности Portsentry:
- обнаруживает практически все известные виды сканирования UNIX-машин;
- в реальном времени блокирует хост, с которого происходит сканирование портов, посредством установленного на атакуемом компьютере брандмауэра;
- записывает в log-afqks посредством syslog информацию об атаке;
- в ответ на сканирование или подключение к защищенному порту вызывает программу, указанную администратором при конфигурировании.
Tripwire
Пакет предназначен для обнаружения изменения файлов,позволяя обнаруживать порчу данных и взломы. База данных контрольных сумм файлов шифруется, что предотвращает ее подделку взломщиками. Непосредственно после установки ОС лучше установить этот пакет, который, используя правила, определенные политикой безопасности, создает базу данных, содержащую информацию обо всех файлах в системе - размер, контрольная сумма, дата модификации и т.п. После создания базы данных она ежедневно сравнивается с текущим состоянием файловой ситемы, позволяя обнаружить добавленные, измененные и удаленные файлы. Все изменения записываются в файл отчета.
AIDE
Система обнаружения вторжений, основанная на использовании мониторинга изменения контрольных сумм защищаемых файлов ОС. Аналог Tripwire, только имеет более простые конфигурационные файлы.
SystraqСистема обнаружения вторжений, основанная на использовании мониторинга изменения всех процессов в системе.
RSBAC
Надстройка над ядром Linux и комплект утилит управления.Мощная система защиты и разграничений прав доступа.
LIDS
LIDS (Linux Intrusion Detection/Defense System) - система обнаружения и защиты от вторжения. Представляет собой дополнение к ядру ОС, позволяет запретить или ограничить доступ к файлам,памяти,устройствам,сетевым интерфейсам,запущенным приложениям пользователю root, что дает возможность надежно оградить уже взломанную систему от дальнейшего вмешательства Главное отличие - эту систему нельзя отключить не зная пароль администратора LIDS.
Источник - книга Linux в подлиннике 2-е издание
P.S. В данный момент я установил, разбираюсь и настраиваю некоторые из этих систем.
См. также Portsentry -программа для обнаружения попыток сканирования портов и организации ответа

Удаленный рабочий стол (VNC, x11vnc). Настройка

С линуксом жизнь становится интересней, я бы даже сказал экспериментальней!
Меня потянуло на эксперименты с ssh, и то, что я получил в итоге - доступ с работы к домашнему компу - мне очень понравилось! Еще бы - классно управлять домашним компом, обновлять его и т.п. С девушкой даже с помощью festival разговаривал)))
Однако, захотелось пойти дальше, интересно, можно ли настроить удаленный доступ к рабочему столу, как позволяет это RAdmin в Windows? Можно конечно! Надо только настроить))

Покопался в интернете, нашел несколько статей про VNC - Virtual Network Computing, решил такое счастье сделать и у себя!
Для этого сначала необходимо было поставить несколько утилит:
sudo aptitude install vnc4-common vnc4server xvnc4viewerЭти утилиты необходимы непосредственно для того, чтобы запускать удаленный сервер (vnc4server) и подключаться к нему с удаленного клиента (xvnc4viewer).
Установили! Теперь дело остается за малым: сначала нужно запустить vnc-сервер, а потом подключиться к нему.
Для запуска удаленного сервера, нужно в консоли набрать vncserverЕсли это первый запуск vncserver в системе с этой учётной записью пользователя, тогда вы должны ввести пароль, который клиенты будут использовать при подключении, после чего запустится сервер, который будет доступен на порту 5901. Кстати, при запуске сервера в консоль выведется номер дисплея (виртуального), на котором он будет доступен, отсчет ведется с 1 (так как 0 - текущий дисплей). Пример запуска: igor@Voyageur:~$ vncserver

New 'Voyageur:1 (igor)' desktop is Voyageur:1

Starting applications specified in /home/igor/.vnc/xstartup
Log file is /home/igor/.vnc/Voyageur:1.log
Здесь строчка New 'Voyageur:1 (igor)' desktop is Voyageur:1 как раз говорит о том, что у меня компе запустился сервер на дисплее 1, доступен он на порту 5901.
Если vncserver запустить еще раз, то загрузится новый терминальный сервер :2 на порту 5902 и т.д.
Теперь попробуем зайти на этот сервер с удаленной машины. Для этого необходимо в консоли удаленного клиента ввести команду: vncviewer __hostname__:1В этой команде __hostname__ - это имя или ip машины, на которой запущен удаленный сервер. Далее необходимо будет ввести пароль и в результате появится приблизительно вот такое окно:

Немного не то я ожидал увидеть если честно)) Начал разбираться, и оказалось, что vncserver запускает лишь новую сессию, а не подключается к текущей, именно для этого и нужны виртуальные дисплеи. А в этой сессии запущены twm (Tab Window Manager for the X Window System) и xterm.
Между прочим это все добро запускается из скрипта ~/.vnc/xtartup, который можно редактировать, удаляя ненужные и добавляя свои строчки запуска необходимых приложений. В самом верху скрипта есть небольшой комментарий: # Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
То есть, чтобы получить нормальный рабочий стол, нужно раскомментировать 2 строчки. Я их раскомментировал, но ничего хорошего из этого у меня не вышло.
Посмотрел я на этот twm, и решил, что с этим убожеством работать нельзя. Я установил fluxbox (занимает всего 6 Мб) и в скрипте xstartup заменил строчку twm &наfluxbox &В итоге у меня получилось вот так:

Нормально для работы. Но не айс! Оперу можно запустить, еще некоторые приложения, но далеко не все (приложения kde выламываются)! Пробовал я вместо fluxbox'a запустить kde, но не пошло...Играет приветствие входа в систему, но вылетает окно с крахом плазмы и все, черный экран, занавес...

В итоге я получил удаленный доступ, но не такой как хотел! Мне-то хотелось иметь доступ к текущему рабочему столу, а не к мифическому дисплею 1, на котором загружается fluxbox, но не kde.

Что делать? Надо копать еще!!!
Я поискал в репозиториях пакеты, в названии которых присутствует "vnc", список оказался не очень большой, я начал читать комментарии к утилитам и библиотекам...В самом конце списка я увидел такую строчку: p   xvnc4viewer                    - Virtual network computing client software for XОчень похоже на то, что мне нужно!
Я установил x11vnc...man у этой утилиты знатный, несколько тысяч строк)) После небольшого его изучения я более менее разобрался с процедурой запуска и назначением утилиты.
Итак, x11vnc является фактически удаленным сервером (как и vncserver), но позволяет получать доступ к уже существующей X-сессии!
На машине, к которой необходимо подключиться: x11vnc -storepasswdЭта команда позволит позаимствовать пароль для подключения к серверу из файла ~/.vnc/passwd (тут лежит пароль, который был задан при первом запуске vncserver). Далее непосредственно запустим x11vnc: x11vnc -usepw -display :0Опция -usepw задействует использования пароля при подключении к серверу, -display :0 - запускает сервер на нулевом дисплее (так, где открыта текущая X-сессия).
Теперь мы с удаленной машины можем подключиться к текущей X-сессии, выполнив vncviewer __hostaname__:0 и введя пароль.

При закрытии окна удаленного рабочего стола, завершается и работа x11vnc (на сервере)
Таким образом, я получил то, что хотел))))
Напоследок приведу несколько опций для утилит vncserver, x11vnc и vncviewer, облегчающих траффик и жизнь))
vncserver

x11vnc

vncviewer

P.S. Кстати, если нужно, чтобы x11vnc запускался автоматически, то для этого его нужно добавить в автозагрузку: в Настройках системы выбрать пункт Автозагрузка (на второй вкладке), там добавить скрипт x11vnc -usepw -display :0 -q -forever &и указать, что он должен запускаться до старта KDE!

Установка и настройка DLNA в Linux

Собственно, возникло желание поднять DLNA-сервер на ноутбуке, чтобы не кидать файлы на роутер (в TomatoUSB уже есть DLNA, но это уже совсем другая история) для просмотра на Samsung Smart TV, а если кидать 3D blue-ray (14-25 гигов), то это уже не реал... Поэтому, надо поднимать - поднимаем!

Как обычно, в роли linux-системы - Kubuntu 12.04.2 LTS
Существует три, более-менее вменяемых, DLNA-сервера под linux, но у одного с кириллицей траблы, у второго фляга при индексации медиаконтента течёт, а третий прост и функционален. Имя ему MiniDLNA, кстати его в основном и используют в медиацентрах на базе linux-систем...

Как установить? Да очень просто (в линуксе всегда всё очень просто, пока не касается конфигурирования), либо через стандартный репозиторий
sudo apt-get install minidlna

, либо через PPA...
sudo add-apt-repository ppa:stedy6/stedy-minidna && sudo apt-get update && sudo apt-get install minidlna

На личном опыте, советую использовать именно PPA - меньше головной боли.

А вот теперь самое интересное - конфигурирование или настройка.
Сам конфиг лежит тут - /etc/minidlna.conf
Открываем его
sudo mcedit /etc/minidlna.conf

mcedit - редактор, Вы можете юзать nano, gedit, vim, kate или аналогичные...
Далее смотрим, что там есть. Базовый файл с настройками имеет комментарии ко всем параметрам. Все довольно просто и понятно.
Вносим лишь кастом-поправки, такие как пути до каталогов с медиаконтентом, имя сервера и так далее.

Вот пример моего конфига (комменты переведены):

В принципе, из переведённого мною конфига всё и так понятно. Сделаю несколько оговорок.
1. Пусть Вас не смущает, что у меня медиа контент в /var/dlna/
На самом деле туда симлинками пробрасываются каталоги со второго NTFS-раздела, на котором находится весь медиаконтент. Это я сделал для удобства.
2. По поводу db_dir=/var/dlna/db, скорее всего Вам придётся создать данный каталог вручную
sudo mkdir -p /var/dlna/db

И дайте адекватные права на доступ
sudo chown -R minidlna:minidlna /var/dlna
sudo chown -R minidlna:minidlna /var/dlna/db

Вообще, на все папки, куда лезет (исходя из Вашего конфига) MiniDLNA, нужно установить права владельца и группы на minidlna. Если же Вы указали пути на папки с примонтированного NTFS-раздела, то тогда нужно выполнить следующее:
sudo useradd -G plugdev minidlna

Для тех, кто юзает WebMin есть модуль, который упростит процесс конфигурирования. Я немного поколупался с ним, в итоге руссифицировал и добавил отдельные кнопки для Запуска/Остановки сервера. Русские локализации сохранены в кодировках KOI-8R, CP-1251 и UTF-8 - на любой вкус и цвет
Модуль устанавливается как обычно, нужная кодировка подхватится автоматически. Модуль в аттаче (после загрузки смените расширение с txt на gz), пользуйтесь ;)

Вот и всё, перезагружаем DLNA:
sudo service minidlna restart

теперь можно смотреть видео на телевизоре или Android-планшете (приложение BubbleUPnP):

Оригинал статьи

ВложениеРазмер
minidlna_0.12_by_MMX166_v0.2.wbm_.txt5.51 кб

Установка и настройка WireGuard VPN

WireGuard — это современный VPN-протокол с открытым исходным кодом, который стремится быть быстрее, проще, легче и полезнее, чем более старые протоколы, при этом обеспечивая высокий уровень безопасности. В этой статье будет описана установка и настройка WireGuard на сервере на базе kubuntu и подключение к нему клиента. Более подробная информацию по wireguard.

Установка серверной части

Прежде всего, вам необходимо установить WireGuard на сервер. WireGuard доступен в стандартных репозиториях, поэтому установка происходит довольно просто:

sudo apt update
sudo apt install wireguard iptables

Эти команды установят все необходимые компоненты WireGuard.

Генерация ключей на сервере

Затем, необходимо сгенерировать приватный и публичный ключи для вашего VPN-сервера:

wg genkey | tee /etc/wireguard/privatekey | wg pubkey > /etc/wireguard/publickey

Настройка WireGuard на сервере

Для настройки сервера создайте конфигурационный файл в `/etc/wireguard/`, например `wg0.conf`, и добавьте следующее содержимое:

[Interface]
Address = 10.0.0.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = <ваш приватный ключ>

PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = <публичный ключ клиента>
AllowedIPs = 10.0.0.2/32

Замените `<ваш приватный ключ>` на реальный приватный ключ сервера, который вы сгенерировали ранее, а `eth0` — на имя вашего внешнего интерфейса.

Включение IP-преобразования

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

echo 'net.ipv4.ip_forward=1' | sudo tee /etc/sysctl.d/99-sysctl.conf
sudo sysctl -p

Запуск сервера WireGuard

Чтобы начать работу WireGuard, используйте следующую команду:

wg-quick up wg0

Для автоматического запуска WireGuard при старте системы, включите его в systemd:

systemctl enable wg-quick@wg0

Настройка клиента

На стороне клиента вам также предстоит сгенерировать ключевую пару и создать конфигурационный файл. Установка WireGuard на клиенте происходит так же, как и на сервере:

sudo apt update
sudo apt install wireguard

Генерация ключей на клиенте

wg genkey | tee privatekey | wg pubkey > publickey

Конфигурация клиента

Создайте файл `wg0-client.conf` со следующим содержанием:

[Interface]
PrivateKey = <ваш приватный ключ клиента>
Address = 10.0.0.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = <публичный ключ сервера>
AllowedIPs = 0.0.0.0/0
Endpoint = <IP_сервера>:51820
PersistentKeepalive = 25

После замены `<ваш приватный ключ клиента>` и `<публичный ключ сервера>` на соответствующие значения, а также `` на внешний IP-адрес вашего сервера, конфигурация клиента будет завершена.

Для подключения к VPN используйте приведенную команду:

wg-quick up wg0-client

Если вы хотите, чтобы VPN запускался при старте системы, используйте systemd:

systemctl enable --now wg-quick@wg0-client

Теперь у вас должен быть рабочий VPN-сервер на базе WireGuard и клиент, подключенный к нему.

Установка и настройка i2p на кубунте

Всем привет.

Понадобилось мне сегодня зайти на один любимый сайт а тут - опаньки!
Соединение с 94.100.180.74 не удалось
Система вернула: (110) Connection timed out

Хорошо, на днях читал что он (сайт) представлен в сети i2p.

"I2P - это открытое программное обеспечение, созданное для организации сверхустойчивой анонимной, оверлейной, зашифрованной сети и применимое для веб-сёрфинга, анонимного хостинга, систем обмена мгновенными сообщениями, ведения блогов, а также для файлообмена, электронной почты, VoIP и многого другого."

Решил установить себе i2p роутер.
Делается это все очень просто.
1. Добавляем РРА
sudo apt-add-repository ppa:i2p-maintainers/i2p
2. Синхронизируем базы и устанавливаем роутер
sudo apt-get update && sudo apt-get install i2p
3. От текущего пользователя (не от рута!!!) запускаем роутер
i2prouter start
Роутер при старте откроет свою "Консоль маршрутизатора I2P" страницу в браузере по умолчанию ( http://127.0.0.1:7657/ ).
Для работы в сети необходимо прописать прокси 127.0.0.1:4444 в браузере, из под которого планируется работать. Мне показалось что будет удобнее, если этот браузер будет НЕ браузером по умолчанию. Если комп находится за NAT, для качественной работы необходимо пробросить один порт tcp+udp для входящего соединения на компьютер. Номер порта для проброски смотрим в Консоль маршрутизатора i2p -> НАСТРОЙКИ I2P -> Сеть -> Конфигурация UDP

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

ЗЫ Создается такое впечатление, что инструмент этот будет востребован все чаще.
ЗЫЫ До любимого сайта удачно достучался с первого раза.