Показаны сообщения с ярлыком linux. Показать все сообщения
Показаны сообщения с ярлыком linux. Показать все сообщения

2017-08-22

Использование снапшотов LVM как точки восстановления

Это вольный перевод найденного в инете комментария. В ubuntu синтаксис немного отличается в части указания названия томов, например не "lvrename lvm root root-old", а "lvrename /dev/lvm/root /dev/lvm/root-old". В остальном все соответствует.



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

# lvrename lvm root root-old
# lvcreate -n root -s lvm/root-old -L 10G

Перезагрузимся, чтобы «новый» root смонтировался и мы могли произвести изменения. После этого мы можем их протестировать, а также вернуться к старой системе.

# lvrename lvm root root-new
# lvrename lvm root-old root
# reboot

Если мы хотим откатить изменения и вернуть все как было, выполняем (из старой системы)

# lvremove lvm/root-new

Если мы хотим применить изменения, выполняем (из старой истемы)

# lvconvert --merge lvm/root-new

или из новой системы

# lvrename lvm root root-new
# lvconvert --merge lvm/root-new
# lvrename lvm root-old root
# reboot


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

2017-02-15

Как перенести Linux с одного mdamd-raid на другой

Сегодня я бы хотел поговорить о такой серьезной с точки зрения надежности вещи, как линуксовый софтварный рейд. А, вернее, показать, как можно спасти систему, которая требует замены дисков, на которых она и была установлена. Я рассмотрю 2 дистрибутива линукса - CentOS 7 и Debian 8 - которые будут поставлены в идентичные исходные условия. Также, так как тема мне кажется достойной лишней наглядности, помимо традиционных скриншотов и текста, в конце я оставлю ссылки на видео, в которых полностью показана вся процедура: от момента установки исходной системы, до восстановления ее работоспособности на новых дисках.

Общая часть: приготовление и восстановление бэкапа

В качестве исходной системы у нас Дебиан/Центось, установленные на один ext4-раздел, который зеркалится на 2 физических диска (скриншоты с центоси).


Легким движением руки выдираем один из дисков, создавая деградацию рейда.


Время делать бэкап =)
Конечно лучше если бэкап уже есть, но в нашем простом случае сделать бэкап также легко:


tar -czpvf /mnt/backup.tgz --exclude=/dev --exclude=/proc --exclude=/sys --exclude=/mnt /  
Эта команда создаст сжатую копию всего корня, за исключением трех директорий содержимое которых регенерируется автоматически, и директории /mnt, в которой у нас в данном случае нет ничего, кроме файла бэкапа.

Когда бэкап приготовился, гасим машину и устанавливаем 2 новых харда, которые составят новое зеркало.
Также я использую убунтовый live cd "Boot-Repair" для дальнейших операции, но, собственно, встроенной функцией автоматического восстановления пользоваться не буду. Так что на месте этого диска может быть любой другой Live CD, главное чтобы совпадала архитектура и были доступны утилиты mdadm, chroot, и parted (в моем случае он идет с GUI)

Итак, теперь у нас есть машинка с тремя дисками: половинка бывшего рейда, от которой нам нужен только файл бэкапа; и два новых неотформатированных диска.

После загрузки с лайва, закрываем все выплывающие окошки и открываем редактор разделов. sda1 - бэкап, sdb и sdc - пустые


На дисках sdb и sdc создаем таблицу разделов (Device -> Create Partition Table). Я использую GPT, потому что она подразумевает возможность использования разделов большого объема, а также создает дополнительные сложности для восстановления системы.


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




Второй раздел нужен для установки загрузчика GRUB2 на GPT. Также необходимо этим разделам добавить флаг. После применения разметки, нужно кликнуть правой мышкой по разделу, выбрать Manage Flags и отметить флаг bios_grub. Это необходимо сделать также на обоих новых дисках.


Теперь, когда разделы подготовлены, открываем терминал и первым делом я устанавливаю mdadm, так как его нет на этом Live CD.

1
2
sudo bash
apt install mdadm


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

(Warning! Обратите внимание, что в результате выполнения первой команды, при восстановлении центоси создается устройство /dev/md127, а при восстановлении дебиана - /dev/md0. Нижеследующий блок справедлив для центоси)


1
2
3
4
5
6
7
# сканируем систему на наличие рейдов
# эта команда создаст устройство, в моем случае /dev/md127 - нашу 
# половинку зеркала с бэкапом
mdadm --assemble --scan
# создаем папку /mnt/backup и монтируем в нее найденный рейд
mkdir /mnt/backup
mount /dev/md127 /mnt/backup

Файлик бэкапа у нас в каталоге /mnt/backup/mnt/, теперь нужно приготовить новый рейд и залить на него бэкап.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# создаем новое устройство рейда
# имя может быть любым незанятым, 
# например /dev/md1
# --level=1 - зеркало
# --raid-devices=2 - 2 диска в рейде
mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
# форматируем новый рейд
mkfs.ext4 /dev/md1
# создаем директорию и монтируем рейд в нее
mkdir /mnt/root
mount /dev/md1 /mnt/root
# распаковываем архив 
tar -xpvf /mnt/backup/mnt/backup.tgz -C /mnt/root/

После распаковки нужно чрутнуться в корень восстанавливаемой системы.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# создаем недостающие директории
mkdir /mnt/root/dev
mkdir /mnt/root/proc
mkdir /mnt/root/sys
mkdir /mnt/root/mnt
# к первым трем монтируем рабочие директории лайва
mount -o bind /dev/ /mnt/root/dev/
mount -o bind /proc/ /mnt/root/proc/
mount -o bind /sys/ /mnt/root/sys/
# чрутимся
chroot /mnt/root/

С этого момента пути восстановления дебиана и центоси расходятся

Debian

После чрута выполняем команду 


blkid

Она покажет ID нашего рейда /dev/md1.


Этот ID нужно прописать в /etc/fstab вместо имеющегося там.


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


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# прописываем в конфиг данные актуального рейда
mdadm --detail --scan | grep md1  >  /etc/mdadm/mdadm.conf
# пересобираем initrd
update-initramfs -u
# обновляем конфиг загрузчика
update-grub2
# устанавливаем загрузчик на оба 
# физических диска
grub-install /dev/sdb
grub-install /dev/sdc

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

CentOS

С центосью возни чуть больше, чем с дебианом, но ненамного.
После чрута правим /etc/fstab, заменяя айдишник корня на имя устройства. В нашем случае /dev/md1
(Attention! на картинках ниже везде используется /dev/md0 - не обращайте внимания, просто я его так назвал во время экспериментов с центосью)


После этого правим /etc/dracut.conf, раскомментируем параметр mdadmconf и присвоим ему значение yes.


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

mdadm --detail --scan | grep md1

Эта команда выдаст ID нашего нового рейда.


Этот ID нужно указать в файлике /etc/default/grub вместо старого


Теперь


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# прописываем в конфиг данные актуального рейда
mdadm --detail --scan | grep md1  > /etc/mdadm.conf
# пересобираем initrd, 
# смотрим на ВАШ файлик *.img в директории /boot 
# и меняем версию по аналогии, если она отлична от моей
dracut /boot/initramfs-3.10.0-514.el7.x86_64.img 3.10.0-514.el7.x86_64 --force
# обновляем конфиг загрузчика
grub2-mkconfig -o /boot/grub2/grub.conf
# устанавливаем загрузчик на оба 
# физических диска
grub2-install /dev/sdb
grub2-install /dev/sdc
# создаем специальный файлик, без которого магии не случится
touch /.autorelabel

Перезагружаемся (один раз система перезагрузится автоматически - это нормально) и радуемся ожившей системе.

Вот и сказке конец

Обещанное в начале видео:



2016-09-08

Бэкап всех баз MySQL с ротацией (удалением старых) бэкапов

Скрипт делает дампы всех БД сервера, сохраняя в папки именованные по дате и времени создания. Сохраняются последние N (переменная $BACKUPS) бэкапов.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Optional variables for a backup script
MYSQL_USER="root"
MYSQL_PASS="password"
BACKUP_ROOT=/var/backups/mysql;
BACKUPS=2;
BACKUP_DIR="$BACKUP_ROOT/$(date +%Y-%m-%dT%H_%M_%S)";

# Create folders
test -d "$BACKUP_DIR" || mkdir -p "$BACKUP_DIR"
# Get the database list, exclude information_schema
for db in $(mysql -B -s -u $MYSQL_USER --password=$MYSQL_PASS -e 'show databases' | grep -v information_schema)
do
  # dump each database in a separate file
  mysqldump -u $MYSQL_USER --password=$MYSQL_PASS "$db" | gzip > "$BACKUP_DIR/$db.sql.gz"
done

# backup cleanup
ls "$BACKUP_ROOT" \
        | head -n$(expr $(ls "$BACKUP_ROOT" | wc -l) - $BACKUPS) \
        | while read in; 
                do rm -rf  "$BACKUP_ROOT/$in"; 
          done

2016-04-01

Простейший пингер с логированием под bash

Собственно пингуем, ведем лог и это все что надо )

#!/bin/bash

if [[ -z "$1" ]]; then
    echo "Please enter IP, ex.: $0 127.0.0.1"
    exit
else
    echo "Logfile: /tmp/ping_$1"
fi

while true
do
    
    while ! ping -c1 $1 &>/dev/null
 do echo "Ping Fail - `date`" >> /tmp/ping_$1
    done

    echo "Host Found - `date`" >> /tmp/ping_$1
    sleep 1
done

2014-03-19

Как склеить видео разных форматов, разного разрешения, аспекта, с разными прочими характеристиками

Работая с записями игровых стримов, столкнулся с необходимостью склеивать небольшие их кусочки в одно видео. Обычно с этим не возникает проблем, но в некоторых случаях приходится иметь дело с кусками, которые были записаны в разном разрешении, или разной частотой кадров, не говоря о разных кодеках. Обрабатывать видео в avidemux, в котором я это обычно делал, конечно было можно, но хотелось максимально автоматического решения. Оказалось что собрать такое самому не очень сложно, более того решение основано на совершенно бесплатных и мультиплатформенных утилитах: avconv (форк ffmpeg) и MP4Box.

Как же склеить разное видео? Алгоритм обработки следующий: привести исходные видеофрагменты к общему формату и характеристикам, затем собрать воедино. В качестве формата видеопотока был выбран H264, для аудио - mp3. Стоит учесть, что для успешного склеивания фрагментов, требуется не только общий формат, но и характеристики, такие как частота кадров или частота аудиопотока. Также надо иметь в виду, что в процессе видео подвергаются перекодированию, что не может не сказаться на качестве. Впрочем, для того видео, с которым нужно работать мне, это не критично, и вообще avconv весьма хорошо справляется с кодированием.

Итак, как же это юзать. Предположим мы имеем 2 видео: S1.flv и S2.flv. Переконвертим их командой:

avconv -i S1.flv -map 0 -vf "scale=iw*sar*min(1280/(iw*sar)\,720/ih):ih*min(1280/(iw*sar)\,720/ih),pad=1280:720:(ow-iw)/2:(oh-ih)/2" -c:a libmp3lame -ar 48000 -c:v libx264 -r 30 -bf 2 -g 30 -profile:v high -preset veryfast -level 42 O1.mp4

avconv -i S2.flv -map 0 -vf "scale=iw*sar*min(1280/(iw*sar)\,720/ih):ih*min(1280/(iw*sar)\,720/ih),pad=1280:720:(ow-iw)/2:(oh-ih)/2" -c:a libmp3lame -ar 48000 -c:v libx264 -r 30 -bf 2 -g 30 -profile:v high -preset veryfast -level 42 O2.mp4


Выглядит устрашающе, но на выходе мы получим 2 ролика с одинаковыми характеристиками и, даже, растянутых (или ужатых) до одинакового разрешения - 1280x720 - с добавленными черными полосами там, где это нужно. Последнее нужно для склеивания видео в один ролик, поэтому с черными полосами так или иначе придется смириться, а за процесс "скейлинга" отвечает замечательный параметр -vf, значение для которого вывел некто Kevin Locke, оно является практически ключевым местом всех преобразований и я очень рад что кто-то проделал эту работу за меня =). Параметры, с которыми можно попробовать поиграться:

-ar 48000 - частота аудиопотока
-r 30 - частота кадров видео
-g30 - частота ключевых кадров
-preset veryfast - скорость кодирования, для улучшения качества можно выбрать veryslow или один из прочих пресетов H264.

После конвертации мы получим два файла: O1.mp4 и O2.mp4, контейнер выбран не случайно и заточен под утилиту MP4Box. Синтаксис объединения таков:

MP4Box -add O1.mp4  -cat O2.mp4 out.mp4

Стоит отметить, что параметр -add указывается для первого файла, для всех последующих справедлив параметр -cat.
На выходе получаем out.mp4, содержащий в себе все видеофрагменты в порядке их указания.

Разумеется данное решение не совсем автоматично без скрипта, а так как хотелось еще и платформонезависимого решения, то пришлось навая скрипт на питоне. Да, питон не входит в дитрибутив винды, но и avconv с MP4Box (входит в пакет GPAC) поставить придется (http://win32.libav.org/win64/ и http://gpac.wp.mines-telecom.fr/downloads/) зато после этого выходит действительно "однокнопочное" решение - стоит в консоли зайти в директорию с набором flv-файлов (формат можно указать в начале скрипта) и выполнить:
python путь_к_скрипту
дальше можно откинуться на спинку кресла =)

Ссылка на актуальную версию скрипта: http://pastebin.com/hCfFSF5a

Ссылка на архив со всем необходимым: https://drive.google.com/file/d/0B3kqpI0yeB0iVG1hRmpBdEN5emM/edit?usp=sharing

Видео про то как все это поставить:



Upd: сделал бинарник, все-в-одном-экзешнике: avmerge_x64.7z , avmerge_x86.7z

2014-02-19

Отправка SMS с помощью GSM-модема из командной строки linux

Используя minicom или другой эмулятор терминала, зацепиться за порт (например /dev/ttyS0) и набрать:

AT+CMGF=1 [Enter] AT+CMGS=+79261234567 [Enter] this is test message [Ctrl+Z]


2012-07-22

Как восстановить GRUB2

Инструкция проверена на Linux Mint 12, в случае с другими дистрибутивами возможны нюансы в 8-м пункте, остальное вроде должно подойти к большинству популярных дистров использующих GRUB2.
  1. Загрузиться с Live CD той же архитектуры, что и основная система
  2. Смонтировать корневой раздел (в примере - sda1) в /mnt
    mount /dev/sda1 /mnt
  3. При вынесенном в отдельный раздел каталоге /boot (в примере - sda2), смонтировать его в /mnt/boot
    mount /dev/sda2 /mnt/boot
  4. Смонтировать каталоги /dev, /proc и /sys на их места в /mnt
    1. mount --bind /dev /mnt/dev
    2. mount --bind /proc /mnt/proc
    3. mount --bind /sys /mnt/sys
  5. Чрутнуться в /mnt
    chroot /mnt
  6. Убедиться что существует файл /boot/grub/grub.cfg (если заведомо не известно, что он был удален), забэкапить
    cp  /boot/grub/grub.cfg  /boot/grub/grub.cfg.bak
  7. Сгенерировать новый конфиг
    grub-mkconfig -o  /boot/grub/grub.cfg
  8. Заинсталлить загрузчик на диск (в примере - sda)
    grub-install.real /dev/sda
  9. Убедиться что операция прошла успешно (читать консоль)
  10. Перезагрузиться

2012-07-18

Как избавиться от кракозябр в zip-архивах в Ubuntu/Mint Linux


  1. Добавить репозиторий:sudo add-apt-repository ppa:frol/zip-i18n
  2. Обновиться

2012-07-14

Adobe-flashplugin: высокая скорость воспроизведения в Linux x64

Для лечения проблемы с ускоренным воспроизведением видео в Google Chrome под Linux Ubuntu/Mint x64 следует:

  1. Открыть страницу about:plugins
  2. В правом-верхнем углу страницы нажать ссылку Подробнее
  3. Найти раздел Flash и отключить PepperFlash (и вообще все лишние версии)
Результат должен выглядеть примерно так:


2012-06-27

Как установить Zabbix 2.* на Ubuntu 12.04

Исходники на сайте: http://www.zabbix.com/download.php 
Мануал по установке на сайте: http://www.zabbix.com/documentation/2.0/manual/installation/install

Предустановочные требования.

  1. Установленный с установочными опциями LAMP (Apache+MySQL+PHP) Ubuntu Server 12.04.
  2. Набор дополнительных пакетов для сборки:
    aptitude install build-essential checkinstall libmysqlclient-dev libcurl4-openssl-dev libsnmp-dev libopenipmi-dev libiksemel-dev
    (для 16.04 также: libxml2-dev php-mbstring php-bcmath php-xml )
  3. Распакованный архив с заббиксом (все команды далее исполняются внутри корневой папки с исходниками).
  4. Правка /etc/php5/apache2/php.ini:
    post_max_size = 16M (или больше)
    max_execution_time = 300 (или больше)
    max_input_time = 300 (или больше)
    date.timezone = 'Etc/GMT-4' (для МСК)

Установка базы данных.


shell> mysql -u -p
mysql> create database zabbix character set utf8;
mysql> quit;
shell> mysql -u -p zabbix < database/mysql/schema.sql
# stop here if you are creating database for Zabbix proxy
shell> mysql -u -p zabbix < database/mysql/images.sql
shell> mysql -u -p zabbix < database/mysql/data.sql

Создание пользователя для работы сервиса.

groupadd zabbix ; useradd -g zabbix zabbix

Конфигурационные ключи и установка.

Для сервера:
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-openipmi

Для агента:
./configure --enable-agent --enable-static
make
checkinstall

Кофигурационные файлы Zabbix.


  • Сервер: /usr/local/etc/zabbix_server.conf (DB, username, password. Остальные параметры в зависимости от нагрузки) 
  • Агент: /usr/local/etc/zabbix_agentd.conf (IP сервера) 
  • Прокси: /usr/local/etc/zabbix_proxy.conf (DB, username, password, IP сервера, Hostname)

Запуск сервисов.

Вручную

zabbix_server
zabbix_agentd
zabbix_proxy

Автостарт

Скопировать из misc/init.d/debian/ файлы zabbix_server и zabbix_agent в каталог /etc/init.d. Добавить в автозапуск:

update-rc.d zabbix-agent defaults
update-rc.d zabbix-server defaults

Установка веб-интерфейса

cd frontends/php cp -a . /var/www
rm /var/www/index.html 


 Далее открыть http://адрес_сервера/ и произвести с помощью мастера установку фронтэнда. Войти под учетной записью admin:zabbix

2012-06-21

Не показывается меню Dropbox в Linux Mint 12


sudo ln -s  /usr/lib/nautilus/extensions-2.0/libnautilus-dropbox.* /usr/lib/nautilus/extensions-3.0/

2012-06-03

удаление старых ядер в Ubuntu

dpkg -l linux-image-* | grep ii | grep -v [a-z]-generic | grep -v `uname -r` | awk '{ print $2 }' | xargs apt-get -y purge

2012-02-10

Как настроить прокси в Google Chrome (отличный от системного)

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

--proxy-server=IP-адрес

В Windows, например, можно изменить ярлык:

«"C:\..\chrome.exe" --proxy-server=IP-адрес»

2011-08-31

Как определить в какой порт на циске включен компьютер?

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

https://docs.google.com/document/pub?id=1QmUqSV2t-aQ1GMEvv9cqIFuCR5GnVTrbvQ3evHMubJU

2010-05-12

Настройка nginx как фронтэнда для apache2, и установка eaccelerator

Выражаю благодарность автору статьи: http://rubuntu.ru/blog/server/435/nastrojka-apache-2-nginx-php-5-mysql-memcached-eaccelerator-sphinx-v-ubuntu.html

Рассматривается настройка на примере Debian/Ubuntu, в частности я использовал Ubuntu 8.04 с установленным и уже настроенным апачем.

Часть первая: nginx.

Все очень просто. Устанавливаем nginx:
sudo aptitude install nginx


Говорим апачу слушать 81 порт локалхоста, исправив строчку в /etc/apache2/ports.conf :
Listen 127.0.0.1:81

Говорим апачу убивать себя, /etc/apache2/apache2.conf:

KeepAlive Off

Далее, допустим у нас есть сайт, по адресу example.com и лежащий в /var/www/example.com/
Прописываем конфиг /etc/nginx/sites-available/example.com:
server {
listen *:80;
server_name examlpe.com

location / {
proxy_pass http://127.0.0.1:81/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}


location ~* \.(jpg|gif|png|css|js)$ {
root /var/www/example.com/;
}

}



Таким образом мы говорим nginx самостоятельно отдавать jpg, gif, png, css и, соответственно, js-файлы.

Делаем симлинк:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Перезапускаем сервисы:
sudo /etc/init.d/apache2 restart
sudo /etc/init.d/nginx restart

Часть вторая. eAccelerator


Устанавливаем memcached и пару нужностей для eaccelerator:
aptitude install memcached php5-dev make

Устанаваливаем eaccelerator:
cd /tmp/
wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2
tar xvjf eaccelerator-0.9.5.3.tar.bz2
cd eaccelerator-0.9.5.3
phpize
./configure --enable-eaccelerator=shared
make
make install

Создаем папку кеша
mkdir -p /var/cache/eaccelerator
chmod 0777 /var/cache/eaccelerator

Редактируем конфиг PHP /etc/php5/apache2/php.ini:
[PHP]
; eAccelerator configuration
; Note that eAccelerator may also be installed as a PHP extension or as a zend_extension
; If you are using a thread safe build of PHP you must use
; zend_extension_ts instead of zend_extension
extension = "eaccelerator.so"
eaccelerator.shm_size = "16"
eaccelerator.cache_dir = "/var/cache/eaccelerator"
eaccelerator.enable = "1"
eaccelerator.optimizer = "1"
eaccelerator.check_mtime = "1"
eaccelerator.debug = "0"
eaccelerator.filter = ""
eaccelerator.shm_max = "0"
eaccelerator.shm_ttl = "0"
eaccelerator.shm_prune_period = "0"
eaccelerator.shm_only = "0"
eaccelerator.compress = "1"
eaccelerator.compress_level = "9"
eaccelerator.allowed_admin_path = "/var/www/eaccelerator"


Рестартим все:
sudo /etc/init.d/apache2 restart
sudo /etc/init.d/nginx restart
sudo /etc/init.d/memcached restart

2010-02-25

Настройка VPN-сервера PPTPD в Ubuntu и подключение Windows-клиентов

Захотелось связать несколько удаленных компьютеров в одну локальную сеть. Сказано - сделано.


Настройка сервера.


Берем сервер с ubuntu (или debian), доступный для клиентов через интернет. Ставим необходимое:

sudo aptitude install ppp pptpd

Приводим следующие файлы к подобному виду:

/etc/pptpd.conf
~~~~~~~~~~~~~~~~~~~~~~~~~~
option /etc/ppp/pptpd-options
logwtmp
localip 10.1.1.1 # адрес сервера в создаваемой виртуальной сети
remoteip 10.1.1.50-59 # адреса, раздаваемые клиентам

(диапазоны адресов не должны пересекаться с уже используемыми клиентами в их реальных сетях)

/etc/ppp/pptpd-options
~~~~~~~~~~~~~~~~~~~~~~~~~~
lock
name pptpd
nodefaultroute
refuse-pap
refuse-mschap
require-mschap-v2
#require-mppe-128 # шифрование. В теории должно работать, на практике у меня не вышло его завести
proxyarp
nodefaultroute


cat /etc/ppp/chap-secrets
~~~~~~~~~~~~~~~~~~~~~~~~~~
# Secrets for authentication using CHAP
# client server secret IP addresses
user pptpd password *
user2 pptpd password2 10.1.1.54

(заводим пользователей, указываем пароли и, опционально, айпишники, которые они будут получать)

После настройки перезапускаем демона:
sudo /etc/init.d/pptpd restart

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


XP:

Открываем список сетевых соединений и запускаем мастера создания подключений:


Выбираем подключение использующее VPN или модемное соединение


Выбираем VPN


Вбиваем имя для соединения


Опциональный шаг - если есть вручную устанавливаемые соединения типа модемного, указываем надо ли устанавливать такое соединение (ну, если оно и ведет в интернет, например) перед нашим


Указываем адрес сервера


Удобства ради добавляем ярлык соединения на рабочий стол и закрываем мастера



Далее открывается окно с вводом имени и пароля. Перед этим заходим в свойства:


На вкладке безопасности снимаем галку шифрования:


Если не предполагается использование клиентами интернета через наш сервер, на вкладке открываем свойства TCP/IP, в новом окне открываем дополнительные настройки и снимаем галку использования маршрута по умолчанию:


Применяем все изменения, вводим имя и пароль

2009-12-27

Установка и допиливание Lubuntu

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

Часть первая: установка оси (67.9 МБ)
Использовался DVD убунты. Неграфическая установка системы в режиме "хочу консоль онли", с последующим натягиванием lubuntu-desktop и gdebi. Разбиение диска "все под root".

Часть вторая: допиливание (53.9 МБ)
Установка обновленного pcmanfm для исправления бага с ассоциациями приложений. Установка gXneur и Google Chrome. Добавление русской раскладки (тут меня можно отдельно покусать за решение). Поверхностная пробежка по фейсу, панелькам.

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

2009-12-06

Простой шлюз из Linux & PS3 через Yota

Для начала немного о моем домашнем интернете. У меня их два:
1. первый (Inet1) - обычный домашний интернет через локалку
2. Yota, втыкаемая в ноутбук

Схема:


Notebook - Yota
|
Inet1 - Router - Srv
|
PS3


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


Итак, на повестке дня 2 вопроса:
1. Как из компа под линуксом сделать простеший шлюз?
2. Как настроить PS3 для работы через шлюз в целом, и через Yota-инет в частности?

Ответы на оба вопроса элементарны. Чтобы линуксовый комп стал шлюзом, достаточно выполнить:
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -P FORWARD ACCEPT
# iptables -t nat -A POSTROUTING -j MASQUERADE

Разумеется, все интерфейсы, которые предполагается использовать, должны быть настроены. В моем случае одним интерфейсом является подключенная Yota, а второй имеет адрес (192.168.1.5) внутри локальной сети (192.168.1.0/24).

Теперь о PS3. Заходим в настройки сети и вбиваем все руками. Отмечу стратегически важное:
IP - 192.168.1.50 (свободный айпишник внутри локальной сети)
Маска - 255.255.255.0 (используемая в локальной сети)
Шлюз - 192.168.1.5 (локальный адрес йотового компа-шлюза)
DNS - 8.8.8.8 (гугловский DNS-сервер)
DNS - 8.8.4.4 (еще гугловский DNS-сервер)
MTU - 1400 (с другими работать отказалась, возможно тут скрывается йота-особенность)
UPnP - выключить
Прокси - не использовать

С такими настройками приставка радостно ломится в ноут за инетом и получает его от йоты, гип-гип ура и все такое =)

2009-09-16

Как сохранить полный вывод консоли?

Бывает возникает желание сохранить все, что происходит в терминале. Вывод одной программы, конечно, можно перенаправить в файл, а небольшой кусочек просто скопипастить. Но если коннектишься к удаленному серваку (в моем случае вообще - циске) и долго и упорно его конфигуришь, эти подходы могут быть не очень подходящими. На эти случаи есть замечательная команда «script». Формат:

script имя_файла_лога

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

exit

2009-09-15

Тормоза и повисание VirtualBox при использовании DameWare Remote Control

Сидя в линуксе, я использую DameWare Remote Control из-под виртуалбокса для управления вин-машинами. Начиная с какой-то версии VirtualBox начал подвисать как только я коннектился к удаленной машине. Решение оказалось простым: чтобы избежать подвисания следует зайти в меню «View» и, выбрав пункт «Local Global Options...», снять галку «Warning Border on Connect» — во всем виновато анимированное обрамление окна удаленной машины.