Архив

Архив раздела ‘linux’

Проблема с MTU PPPoE

27 августа 2010 admin Нет комментариев

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

/proc/sys/net/ipv4/ip_no_pmtu_disc

Одним простым движением

echo "1" > /proc/sys/net/ipv4/ip_no_pmtu_disc

Всё решилось, но и для справки
Цитата с ОпенНЕТа

Переменная ip_no_pmtu_disc запрещает поиск PMTU (от англ. Path Maximum
Transfer Unit Максимальный Размер Пакета для выбранного Пути). Для
большинства случаев лучше установить в эту переменную значение FALSE,
или 0 (т.е. система будет пытаться определить максимальный размер
пакета, при котором не потребуется выполнять их фрагментацию, для
передачи на заданный хост). Но иногда, в отдельных случаях, такое
поведение системы может приводить к срывам соединений. Если у вас
возникают такие проблемы, то вам следует попробовать отключить эту опцию
(т.е. записать в переменную число 1) и установить нужное значение MTU.
Хочу обратить ваше внимание на то, что MTU и PMTU это не одно и то же!
MTU (от англ. Maximum Transfer Unit максимальный размер пакета)
определяет максимальный размер пакета для наших сетевых интерфейсов, но
не для сетевых интерфейсов на другом конце. PMTU опция, которая
заставляет систему вычислять максимальный размер пакета, при котором не
потребуется фрагментация пакетов, для маршрута к заданному хосту,
включая все промежуточные переходы. Значение по-умолчанию FALSE (0),
т.е. функция определения разрешена. Если записать число 1 в эту
переменную, то функция определения PMTU будет запрещена. Переменная
ip_no_pmtu_disc может принимать значение 0 или 1.

ещё для эта проблема должна решаться вот так.

iptables -t mangle -A FORWARD -p tcp -m tcp --tcp-flags RST,SYN SYN -j TCPMSS --clamp-mss-to-pmtu

либо вот так

 iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 128
Categories: linux Tags: ,

uptime 365 Дней!!!

9 июня 2010 admin 4 comments

Вот так порадовала меня моя ubuntu

# uptime
 12:52:18 up 365 days, 13:24,  2 users,  load average: 0.64, 0.42, 0.33
Categories: linux Tags:

boost 1.42 on ubuntu

mapnik  не назойливо требует boost 1.41 и выше.

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

cd /tools/jam/src
$ chmod u+x build.sh
$ ./build.sh

переходим в верх каталога и приступаем к сборке

tools/jam/src/bin.linuxx86/bjam  --without-mpi stage --build-type=complete  --layout=versioned

Минут на 30-40 можно идти курить.

Как всё скомпилится, можно и установить :)

tools/jam/src/bin.linuxx86/bjam --without-mpi install
Categories: linux, ubuntu Tags:

nginx на ubuntu – это просто ( Компиляция )

20 сентября 2009 admin Нет комментариев

1. ставим зависимости nginx

sudo aptitude install libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev

2. Создаём каталог. заходим в него, качаем свежий nginx

wget http://sysoev.ru/nginx/nginx-0.7.62.tar.gz

3. Извлекаем

tar -zxvf nginx-0.7.62.tar.gz

4. Заходим в каталог.

cd nginx-0.7.62

5. Компиляция. вполне стандартные опции, что первые выдал гугл.

./configure --sbin-path=/usr/local/sbin --with-http_ssl_module

в результате выполнения команды скрипт configure нам подсказывает, что и как будет

Configuration summary
+ using system PCRE library
+ using system OpenSSL library
+ md5: using OpenSSL library
+ sha1 library is not used
+ using system zlib library
nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/sbin"
nginx configuration prefix: "/usr/local/nginx/conf"
nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "/usr/local/nginx/logs/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"

Где будут находится конфиги, где логи т. п.

далее

make && make install

Вот и всё nginx готов к работе.
Можно его запустить командой

sudo /usr/local/sbin/nginx

Если мы хотим чтобы он запустился с вашими уже рабочими конфигурационными файлами. то создаём символическую ссылку предварительно удалив /usr/local/nginx/conf

ln -s /etc/nginx /usr/local/nginx/conf

6. Правка скрипта запуска.
т.к. до этого у меня стоял пакет из репозитория, остались и рабочие файлы конфигурации и скрипт управления nginx (/etc/init.d/nginx)
скорректируем его с учётом нового места установки nginx

DAEMON=/usr/local/sbin/nginx

7. если до этого был установлен Nginx из пакета. то можно его удалить.

apt-get remove nginx

8. запускаем

/etc/init.d/nginx start

9. Проверяем работу сайта.

Оказалось вот на столько просто :)

PS Данный топик был отправлен мною в песочницу Хабра.

Categories: linux, man, ubuntu Tags:

Как определить какой linux установлен.

Вот заставляет же жизнь под админивать сервера, и зачастую это нечто старое типо 6-9 редхата и тому подобные древности.

Дистрибутив можно определить несколькими способами.

cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=8.04
DISTRIB_CODENAME=hardy
DISTRIB_DESCRIPTION="Ubuntu 8.04.2"

Также можно.

lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 8.04.2
Release:        8.04
Codename:       hardy

И ещё можно

cat /etc/issue
Ubuntu 8.04.2 \n \l

В случаи с редхадо подобными можно попробовать так

# cat /proc/version
Linux version 2.6.24-23-server (buildd@palmer) (gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu3)) #1 SMP Wed Apr 1 22:22:14 UTC 2009

Там зачастую говорят какой ршел стоит.

Categories: linux Tags:

iptables Автозагрузка

27 апреля 2009 admin 3 comments

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

1 сохраняем правила в файл

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

Дальше в конец файла /etc/network/interfaces дописываем

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

Ребутемся и проверяем iptables -L

Categories: iptables, linux, net, ubuntu Tags:

ubuntu почтовый сервер ( ubuntu mail server )

11 апреля 2009 admin 2 comments

И так прижало мне сделать для себя почтовый сервер на своём сервере. раньше оно работало из коробки и я горя не знал, но тут оказалось, что надо всё делать ну чтож приступим
ubuntu 8.10
UPD:
Прошло время, и сервер поднял по более стабильному варианту, всем рекоемндую
http://sudouser.com/ustanovka-pochtovogo-servera-postfix-dovecot-mysql-i-virtualnyx-domenov.html

Стами postfix (smtp), sasl2 (Авторизция) cyrus-pop3d (POP3 демон)

apt-get install postfix libsasl2-2 libsasl2-modules sasl2-bin cyrus-imapd-2.2 cyrus-pop3d-2.2 cyrus-admin-2.2

Во время первоначальной настройки postfix укажите конфигурацию для Интернет-сайта (Internet Site).
На вопрос об имени почтового сервера-оставьте вариант по-умолчанию или укажите свой. В нашем случае это было domain.ru

Настроим сервер авторизации saslauthd на использование базы данных паролей sasldb2.
Для этого отредактируем файл /etc/default/saslauthd:

START=yes
MECHANISMS=”sasldb”

Запускаем сервис

/etc/init.d/saslauthd start

проверим работает ли он, но для начала необходимо добавить хотя бы одного пользователя.

proxy:~# saslpasswd2 test
Password:
Again (for verification):

смотрим список пользователей

proxy:~# sasldblistusers2
test@proxy: userPassword

Пробуем авторизироваться

proxy:~# testsaslauthd -u test -p test

На что получаем ответ

0: OK “Success.

У почтового сервера postfix есть одна особенность – после запуска он работает в chroot окружении, которое находится в папке /var/spool/postfix/

Учитывая то, что для авторизации пользователей postfix будет использоваться демон saslauthd, нам нужно перенести его socket в рабочую директорию нашего сервера /var/spool/postfix/. Самый простой способ сделать это заключается в монтировании в нужную папку директории с уже созданным сокетом демона saslauthd.

Делается это редактированием файла /etc/fstab.

/var/run/saslauthd /var/spool/postfix/var/run/saslauthd none rw,bind 0 0

Не забудьте поставить [Enter] после последней строки.
Создаём каталог и монтируем.

mkdir -p /var/spool/postfix/var/run/saslauthd
mount /var/run/saslauthd

Настраиваем postfix на работу с sasl авторизацией
Добавим в /etc/postfix/main.cf

smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_authenticated_header = yes
smtpd_sasl_application_name = smtpd

запретим отсылать почту через наш SMTP шлюз без авторизации. Для этого создадим файл /etc/postfix/sasl/smtpd.conf со следующим содержимым.

pwcheck_method: saslauthd
mech_list: PLAIN LOGIN

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

#/etc/init.d/postfix restart
#tail /var/log/mail.err
#tail /var/log/mail.info
#tail /var/log/mail.warn
#tail /var/log/mail.log

Если все чисто, сухо и гладко – обратимся к утилите telnet, для того, чтобы подключиться к нашему серверу.

root@proxy:/var/log# telnet localhost 25
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
220 krasfun ESMTP Postfix (Ubuntu)
EHLO www.ru
250-krasfun
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
root@proxy:/var/log#

Если у вас нечто похожее – продолжаем

Для того, чтобы “подружить” saslauthd и postfix необходимо выполнить следующее:

adduser postfix sasl

Cyrus – это мощный набор POP3/NNTP/IMAP и некоторых других демонов для создания полноценных сервисов работы с электронной почтой.

Отредактируем файл /etc/imapd.conf

admins: cyrus
allowplaintext: yes
sasl_mech_list: PLAIN
sasl_pwcheck_method: saslauthd auxprop
sasl_auxprop_plugin: sasldb

Обратите внимание, что cyrus так же, как и saslauthd, придется взаимодействовать с postfix, поэтому их нужно сделать доступными друг другу. Воспользуемся уже известным механизмом:
/etc/fstab :

/var/run/cyrus /var/spool/postfix/var/run/cyrus none rw,bind 0 0

создаём каталоги для cyrus.

mkdir -p /var/spool/postfix/var/run/saslauthd
mkdir -p /var/spool/postfix/var/run/cyrus
mount /var/spool/postfix/var/run/saslauthd
mount /var/spool/postfix/var/run/cyrus

Монтируем

mount /var/run/cyrus

предоставим возможность cyrus забирать почту у postfix и отпалять почту на куда угодно. Отредактируем файл /etc/postfix/main.cf:

mailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp
local_recipient_maps =

Добавим группу и добавим в неё постфикс

addgroup lmtp
adduser postfix lmtp

Дальше 2 команды

dpkg-statoverride –remove /var/run/cyrus/socket
dpkg-statoverride –force –update –add cyrus lmtp 750 /var/run/cyrus/socket

Добавим пользователя cyrus в нашу базу учетных записей:

saslpasswd2 -c cyrus

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

/etc/init.d/postfix start
/etc/init.d/cyrus2.2 restart
/etc/init.d/saslauthd restart

Добавим почтового пользователя например saber и создадим ему каталоги

saslpasswd2 –c saber
cyradm localhost –user cyrus
localhost>cm user.saber
localhost>cm user.saber.INBOX
localhost>cm user.saber.Sent
localhost>cm user.saber.Draft
localhost>cm user.saber.Trash

На этом всё, можно пользоваться, рекомендую ещё настроить шифрование, но мне оно не нужно было ;)

Настройка клиента
Буду на основе Аутглюк экспресс.
Добавляем почтовый акк, в общем всё как обычно КРОМЕ
не ставим галочку
“Использовать безопасную бла бла SPA”

и ставим галочку ниже Сервер исходящей почты “проверка подлинности пользователя”
И всё можно пользоваться :)

Categories: linux, man, ubuntu Tags:

Резервное копирование данных на сервере ( backup mysql)

18 января 2009 admin Нет комментариев

часть первая mysql
Важная часть стабильности жизни сервера.

создаём каталог для бэкапа например
/var/backup
в нём будет находится скрипт бэкапа и подкаталоги для различных баз.
у меня на сервере несколько сайтов для каждого сайта я создам отдельные подкаталоги
/var/backup/site1
/var/backup/site2
в них будут находится непосредственно бэкапы

далее создаём скрипт бэкапа mysql сервера.

#touch database.sh

делаем файл исполняемым

#chmod +x database.sh

первой строкой в файле указываем исполнять данный файл интерпретатором bash

#!/bin/bash

далее делаем дап

mysqldump -u root -pMyPass database_name > site1/database_name.sql

где
-u root имя пользователя БД
-p Указывает на пароль пользователя root в данном примере MyPass
database_name – имя базы данных
> site1/database_name.sql положить дам в данный файл.

Далее надо упаковать данный дамп и указать дату его создания

7z a -t7z site1/$(date +%d_%b_%Y)_database_name.sql.7z site1/database_name.sql

7zip упаковывает файл site1/database_name.sql в каталоге site1 с именем сегодняшняя_дата_database_name.sql.7z

$(date +%d_%b_%Y) – задаётся формат даты. в данном примере имя файла будет выглядеть так:
14_Янв_2009_database_name.sql.7z

Теперь можно удалить временный файл дампа, ведь есть его архив :) )

find ./ -name “*.sql” -exec rm {} \;

утилита find находит все файлы в данном каталоге и подкаталогах соответствующие формату “*.sql” и удаляет их.
в итоге в каталогах остаются лишь архивные копии дампов.

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

редактируем список задач крона

crontab -e

дописываем наш скрипт
00 01 * * * /var/backup/database.sh

выходим с сохранением
Ctrl+X
и подтверждаем наши намерения Y

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

Categories: backup, linux, man Tags:

Какой Linux выбрать?

29 декабря 2008 admin Нет комментариев

Наверное каждый ставил\ставит себя перед выбором дистрибутива linux.

Когда-то я установил ASP Linux 7.3
этот дистрибутив оставил самые тёплые впечатления о linux, удобно, многое работает из коробки.
потом я хотел идти к первоисточнику и установил fedora 2 но она конфликтовала с моей мамой asus p4p800 и я искаль альтернативу, так я попал на мандрейк (ныне мандрива) (ух потрудился чтоб найти её на местной барахолке)
У мандривы понравилась на тот момент панель управления, после я добрался до RedHat 4 AS
это мега дистрибутив, на котором я прожил больше года, многое работает из коробки, но если надо что-то поставить, всё…. когда мне надоел секс с зависимостями я хотел что-то принципиально нового, и тут подвернулась gentoo. после RedHat, гента казась мне верхом счастья юношеского, я ставил её везде, на серверы доверенные мне, но радость была не долгой, время на компиляцию (например php) затрачивалось невероятно много времени (минут 30-40) при этом если собрал что-то не так иди заного компиль… а это всё простои сервера.
гента также оставила приятные воспоминания, о производительности, о гибкости конфигурирования, наверное ни что не сравнится с ней в этом плане.

Дальше была Ubuntu она сочетала в себе почти все мои мечты о linux дистрибутиве. для изучения поставил на конторскую проксю, снеся от туда венду и началось изучение :)
система установки приложений радовала, конечно в чём-то уступала системе gentoo, но для повседневной жизни самое оно.
Установка софта занимает пару секунд, и то тратится на скачивание пакета с инета, работает с коробки всё, и не только всё а даже больше :)
просто поставил и наслаждаешся работой.
потом убунта пошла уже на корпаративный HP сервер, на котором стоит уже больше года и на отлично выполняет свои функции.
также убунта трудится и на ещё одном публичном моём сервере, тот что обеспечивает работу сайта www.krasfun.ru

документации на ubuntu было мало :) но пробились

Categories: linux Tags:

Создать раздел linux

29 декабря 2008 admin Нет комментариев

просмотр linux разделов

root@SERVER:/# fdisk -l
Disk /dev/sda: 499.9 GB, 499989348352 bytes
255 heads, 63 sectors/track, 60786 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0000849c

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1       59650   479138593+  83  Linux
/dev/sda2           59651       60786     9124920    5  Extended
/dev/sda5           59651       60786     9124888+  82  Linux swap / Solaris

Disk /dev/sdb: 1499.9 GB, 1499989016576 bytes
255 heads, 63 sectors/track, 182363 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00093e0c

Создание linux раздела

#fdisk /dev/sdb

далее жмём n
далее жирным что вводил

Command action
e   extended
p   primary partition (1-4)

p

Partition number (1-4):1
First cylinder (1-182363, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-182363, default 182363):
Using default value 182363

Сохраняем и выходим

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

раздел sdb1 создан. далее форматируем его.

# mkfs -t ext3 /dev/sdb1
mke2fs 1.40.2 (12-Jul-2007)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
183107584 inodes, 366207691 blocks
18310384 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
11176 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Монтируем и вперёд :)

Categories: linux, man, ubuntu Tags: