Questions? Feedback? powered by Olark live chat software


044 591 56 79

круглосуточно

МЫ ПРИНИМАЕМ

Сетевая активность

База знаний

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

target_server# nc -l -p 12345 | dd of=/dev/sdb
src_server# dd if=/dev/sda | nc target_server 12345

Проверка состояния процесса:

kill -SIGUSR1 PID



Установка и настройка mod_rpaf для отображения реальных IP пользователей при использовании DDoS защиты

 Ставим необходимое ПО на сервере. (Описана процедура под Redhat системы):
yum localinstall 
http://y-ken.github.com/package/centos/6/x86_64/mod_rpaf-fork-0.6-5.el6.x86_64.rpm
yum install httpd-devel
apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

LoadModule rpaf_module /usr/lib/apache/mod_rpaf-2.0.so

 <IfModule mod_rpaf.c>

RPAFenableOn

RPAFsethostnameOn

RPAFproxy_ips127.0.0.1

RPAFheader X-Forwarded-For

IfModule>


RPAFenable (On|Off) - Enable reverse proxy add forward

 

RPAFproxy_ips 192.168. 10.0.0. - What IPs to adjust requests for.

 

RPAFheader X-Forwarded-For - The header to use for the real IP address.

 

RPAFsetHostname (On|Off) - Update vhost name so ServerName & ServerAlias work

 

RPAFsethttps (On|Off) - Set the HTTPS environment variable to the header value 
contained in X-HTTPS, or X-Forwarded-HTTPS. (experimental)
Also work with X-Forwarded-Proto value were https.

 

RPAFsetport (On|Off) - Set the server port to the header value 
contained in X-Port, or X-Forwarded-Port.

 

Установка сервера ProxMox из Debian Wheezy с MD RAID

Установка из Debian Wheezy netinstall/minimal дистрибутива 7.4.0 x86_64
Ставим со следующей разбивкой диска
На 2хSSD дисках создаем в начале диска 200Мб раздел, и делаем там MD-RAID 1, 
монтируем его как /boot
Остальное на SSD размечаем как область для Software Raid и создаем там второй 
MD-RAID 1, после чего создаем на нем LVM и создаем 16G раздел swap, 20Gb /, 
остальное, оставив 2% отдаем под /var/lib/vz/private 
На SATA дисках создаем MD RAID 1 2Тб, создаем на нем LVM и создаем LVM-ы 30G 
/var/log и остальное оставив 1% отдаем под /var/lib/vz 
Форматируем в ext4, опции монтирования noatime
Ставим минимальный серверный пакет, только ssh. 
После загрузки сервера (опции загрузки - грузимся с ssd дисков) делаем 
vi /etc/hosts 
добавляем строчку pvelocalhost к текущей записи IP сервера:
192.168.6.177 proxmox-6-177.proxmox.com proxmox-6-177 pvelocalhost

Делаем тюнинг дисков с впсами: 
tune2fs -o journal_data_writeback /dev/ssd/ssd1 - для всех лвмов на которых будут виртуалки

Добавляем репозитарии для apt 
vim /etc/apt/sources.list

deb http://ftp.at.debian.org/debian wheezy main contrib

# PVE repository provided by proxmox.com, only for installation (this repo will stay on 3.1)
deb http://download.proxmox.com/debian wheezy pve

# security updates
deb http://security.debian.org/ wheezy/updates main contrib

Добавляем ключики 

wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add -
apt-get update && apt-get dist-upgrade

Ставим ядро 
apt-get install pve-firmware pve-kernel-2.6.32-26-pve
apt-get install pve-headers-2.6.32-26-pve

Правим /boot/grub/grub.cfg 
ставим загрузку с нужного pve ядра
Перегружаемся и смотрим что загрузилось нужное ядро
uname -a
Linux 2.6.32-26-pve ..
Сносим старое ядро 
apt-get remove linux-image-amd64 linux-image-3.2.0-4-amd64 linux-base
update-grub
Ставим пакеты
apt-get install proxmox-ve-2.6.32 ntp ssh lvm2 postfix ksm-control-daemon vzprocps open-iscsi bootlogd

Все, можно подключаться к https://server_ip:8006


Настройка VRRP на ExtremeXos
На основном коммутаторе если в влене есть уже адрес то 
unconfig vlan vlant1 ipaddr
 Потом 
config vlan colo4 ipaddr 1.2.3.55/28 - ставим тот что будет последним в сети
Создаем конфиг: 

create vrrp vlan vlan1 vrid 22
configure vrrp vlan vlan1 vrid 22 priority 110 ; по умолчанию приоритет 100, больше - приоритетнее
configure vrrp vlan vlan1 vrid 22 preemtp      ; при переходе на резерв и возврате основного - вохвращаться ли на основной
configure vrrp vlan vlan1 vrid 22 accept-mode on ; разрешать отклики на виртуальный адре
configure vrrp vlan vlan1 vrid 22 add 1.2.3.1        ; добавляем виртуальный адрес в VRRP группу
enable vrrp vlan colo4 vrid 22                              ; включаем vrrp в влане

Синхронизация папок с помощью rsync
Копирование виртуального openvz контейнера, или любой папки через ssh транспорт между двумя сервермми посредством rsync
 Необходимо чтобы пакет rsync был установлен на target и source нодах
  "ssh -p 2222" добавляется если ssh висит на альтернативном порту
 Первый проход - на source сервере
rsync поср --stats --progress -axH --numeric-ids -e "ssh -p 2222 " /vz/private/210 target.host:/vz/private/ 
 второй проход
rsync --stats --progress -axH --delete --numeric-ids -e "ssh -p 2222 " /vz/private/210 target.host:/vz/private/ 
  Синк исключающий папку folder из синхронизации
rsync --stats --progress -axH --delete --exclude 'folder/' --numeric-ids -e "ssh -p 2222 " /vz/private/210 target.host:/vz/private/ 

Создание SVN репозитария под CentOS
Устанавливаем нужные пакеты: 
yum install mod_dav_svn subversion
vim /etc/httpd/conf/httpd.conf -- Edit what you need and save the file
vim /etc/httpd/conf.d/subversion.conf

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

 

# # cd /var/www/svn
# # svnadmin create stuff
# # chown -R apache.apache stuff
# # chcon -R -t httpd_sys_content_t stuff

DAV svn
SVNParentPath /var/www/svn/repos
SVNListParentPath On
# # Limit write permission to list of valid users.

# # Require SSL connection for password protection.
# # SSLRequireSSL
#
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/svn-auth-conf
Require valid-user

 
htpasswd -cm /etc/svn-auth-conf yourusername

cd /var/www/
mkdir svn
cd svn
svnadmin create repos
chown -R apache.apache repos
/etc/init.d/httpd restart

svnserve -d -r /var/www/svn/
svn import /home/preta/logs/ svn://91.235.142.4/preta -m "Initial import" импортим в репу папку /home/preta/logs/

или так
svn import svn://91.235.142.4/имя_репы . 
тогда заимпортит текующую папку

svn co
svn add * --force
svn commit -m "Added a line to testconf1.cfg."
svn up r*
svn list svn://91.235.142.4/repos/

Как пользоватся:
добавляем файлы или меняем что то в существующих файлах, затем выполняем svn add /путь_к_файлу
после всех изменений делаем svn up
чтобы вернуть другую версию, делаем svn up -r(номер изменения)


Добавление блока IPv4 или IPv6 адресов на Linux машине
Для добавления диапазона IPv4 адресов выполняем 
for i in {1..10}; do ip a a a.b.c.$i/24 dev eth0 ; done;
 Данную строку можно записать записать в rc.local для добавления адресов при старте системы.

 Для добавления IPv6 адресов из файла выполняем команду: 

cat /home/data/hosts | awk '{print $1}' | xargs -I {} ip -6 a a {}/64 dev eth0




Настройка накопительных бекапов посредством rsnapshot
apt-get install rsync rsnapshot

Редактируем rsnapshot.conf: 

vi /etc/rsnapshot.conf

Бэкапим из сервера server папку /home/user1/public_html в папку user1/
backup  root@server:/home/user1/public_html      user1/

interval        hourly  2

interval        daily   7
interval        weekly  4
interval monthly 1
Добавляем в крон 

0 */12         * * *           root    /usr/bin/rsnapshot hourly
30 3          * * *           root    /usr/bin/rsnapshot daily
0  3          * * 1           root    /usr/bin/rsnapshot weekly
30 2          1 * *           root    /usr/bin/rsnapshot monthly

rsnapshot configtest
 
 
Резервное копирование LVM через snapshotы
Для создания резервной копии сначала создаем snapshot, размер 2 гигабайта, что достаточно для хранения обновлений за сутки средненагруженного впс : 
#lvcreate -s -L 2G -n yourlvm_snapshot /dev/yourvolgroup/yourlvm (подставить тут нужную VG и название лвма)
Делаем образ и пакуем его bzipом - при желании, можно без bzip 
#dd if=/dev/yourvg/yourlvm_snapshot | bzip2 | dd of=/var/backups/xen_vps/domU.bz2

Удаляем снепшот
#lvremove /dev/youvg/yourlvm_snapshot

 Восстановление 
#bunzip2 /var/backups/xen_vps/domU.bz2 | dd of=/dev/vg0/domU conv=sync,noerror bs=512
Исправление ошибок с ProxMox no subscription found
Лечение сообщения о подписке при авторизации через веб-консоль:

---------------------------------
root@proxmox:/# diff -Naur /usr/share/pve-manager/ext4/pvemanagerlib.js.original /usr/share/pve-
manager/ext4/pvemanagerlib.js
--- /usr/share/pve-manager/ext4/pvemanagerlib.js.original    2013-08-20 08:07:54.000000000 +0100
+++ /usr/share/pve-manager/ext4/pvemanagerlib.js    2013-08-21 18:16:22.417007719 +0100
@@ -447,22 +447,7 @@
         success: function(response, opts) {
         var data = response.result.data;

-        if (data.status !== 'Active') {
-            Ext.Msg.show({
-            title: 'No valid subscription',
-            icon: Ext.Msg.WARNING,
-            msg: PVE.Utils.noSubKeyHtml,
-            buttons: Ext.Msg.OK,
-            callback: function(btn) {
-                if (btn !== 'ok') {
-                return;
-                }
-                orig_cmd();
-            }
-            });
-        } else {
-            orig_cmd();
-        }
+                orig_cmd();
         }
     });
Настройка Sysctl FreeBSD
Для оптимизации под высокую нагрузку FreeBSD систем можно применять такие настройки sysctl:
> net.inet.tcp.blackhole=2
> net.inet.udp.blackhole=1
> net.inet.tcp.rfc1323=0
> net.inet.tcp.path_mtu_discovery=0
> net.inet.tcp.keepidle=30000
> net.inet.tcp.keepintvl=60000
> net.inet.tcp.keepinit=15000
> net.inet.tcp.delayed_ack=0
> net.inet.tcp.drop_synfin=0
> net.inet.tcp.maxtcptw=262140
> net.inet.tcp.syncache.rst_on_sock_fail=0
> net.inet.tcp.syncache.rexmtlimit=1
> net.inet.tcp.syncookies_only=1
> net.inet.tcp.msl=10000
> net.inet.tcp.nolocaltimewait=1
> net.inet.tcp.fast_finwait2_recycle=1
> net.inet.tcp.ecn.enable=0
>
> kern.ipc.maxsockbuf=33554432
> net.inet.tcp.sendbuf_max=33554432
> net.inet.tcp.recvbuf_max=33554432
> net.inet.tcp.sendbuf_inc=1049600
> net.inet.tcp.recvbuf_inc=1049600
>
> kern.maxfiles=204800
> kern.maxfilesperproc=200000
> kern.ipc.maxsockets=204800
>
> net.inet.tcp.icmp_may_rst=0
> net.inet.tcp.tso=0
>
> net.route.netisr_maxqlen=4096
> kern.ipc.nmbclusters=2048000
>
> kern.ipc.somaxconn=8192