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

Я люблю работать c моими серверами с помощью Putty по SSH. Я думаю, что это больше чем просто клиент SSH, сама программа очень класная!
Continue reading

Проблема с чтением ftp каталога

Недавно возникла такая проблема, после авторизации на ftp сервере, не хочет считываться каталог. Что я уже не пробовал, устанавливал различные ftp сервера, игрался с пассивным режим и многое другое, оказалось, что проблема была в iptables, все, что нужно, это включить режим nf_conntrack_ftp. Для этого открываем файл /etc/sysconfig/iptables-config идобавляем модуль:

IPTABLES_MODULES=»nf_conntrack_ftp»

FTP Сервер pureftpd

Взять можно отсюда: PureFtpd Official Site.

Скачали, распаковали, далее делаем стандартные операции установки из исходников:

Для установки полного функционала сделать ./configure —with-everything

./configure
make
make install

После этого надо удостовериться какая home директория у пользователя ftp Выяснить это можно просмотрев файл /etc/passwd В разных дистрибутивах Linux домашняя директория пользователя ftp имеет разный путь.

К примеру в моем любимом дистрибутиве Centos Linux — каталог /home/ftp

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

В данной статье будет директория /home/ftp

Далее надо создать 2 директории:

mkdir /home/ftp/pub
mkdir /home/ftp/incoming

Создать пользователя ftpadmin , это будет админский аккаунт FTP, его домашняя директория будет /home/ftp

adduser ftpadmin

Далее надо назначить права на директорию incoming

chmod -R 0777 /home/ftp/incoming

Далее надо назначить права на директорию pub

chmod -R 0755 /home/ftp/pub

Сделали.

Ну а теперь запустим сам FTP сервер.

pure-ftpd -4 -A -B -M -l unix -U 022:022

Параметры: -4 — ipv4only, -A — chroot everyone — обязательный параметр (запирает пользователя в его домашней директории) -B — режим демона, -l unix использовать для аутентификации пароли unix, -U — выбираем маску для файлов и директорий — подробнее об этом параметре — man pure-ftpd.

Вариант анонимного FTP с поддержкой учетных записей:

pure-ftpd -4 -A -B -M -l unix -U 022:022

Вариант только анонимного FTP:

pure-ftpd -4 -A -B -M -e -U 022:022

Вариант только НЕ анонимного FTP:

pure-ftpd -4 -A -B -M -E -U 022:022

Все 😉 FTP работает

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

Файл автозагрузки в Centos Linux — /etc/rc.d/rc.local

Просто добавляем в конец файла строчку

pure-ftpd -4 -A -B -M -l unix -U 022:022

Устанавливаем на Centos pure-ftpd + MySQL

Будем считать, что MySQL уже установлен. Для установки pure-ftpd нам необходимо подключить RPMForge. Далее:

yum install pure-ftpd

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

groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c «pureftpd user» -g ftpgroup ftpuser

Заходим в консоль MySQL и выполняем:

CREATE DATABASE pureftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO ‘pureftpd’@’localhost’ IDENTIFIED BY ‘ftpdpass’;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO ‘pureftpd’@’localhost.localdomain’ IDENTIFIED BY ‘ftpdpass’;
FLUSH PRIVILEGES;
USE pureftpd;
CREATE TABLE ftpd (
User varchar(16) NOT NULL default »,
status enum(‘0′,’1’) NOT NULL default ‘0’,
Password varchar(64) NOT NULL default »,
Uid varchar(11) NOT NULL default ‘-1’,
Gid varchar(11) NOT NULL default ‘-1’,
Dir varchar(128) NOT NULL default »,
ULBandwidth smallint(5) NOT NULL default ‘0’,
DLBandwidth smallint(5) NOT NULL default ‘0’,
comment tinytext NOT NULL,
ipaccess varchar(15) NOT NULL default ‘*’,
QuotaSize smallint(5) NOT NULL default ‘0’,
QuotaFiles int(11) NOT NULL default 0,
PRIMARY KEY (User),
UNIQUE KEY User (User)
) TYPE=MyISAM;

Добавляем пользователя

INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES (‘exampleuser’, ‘1’, ‘secret’, ‘2001’, ‘2001’, ‘/home/www.example.com’, ‘100’, ‘100’, », ‘*’, ’50’, ‘0’);
quit;

Теперь время отредактировать конфиги, в /etc/pure-ftpd/pure-ftpd.conf

ChrootEveryone yes
[…]
MySQLConfigFile /etc/pure-ftpd/pureftpd-mysql.conf
[…]
CreateHomeDir yes

и в /etc/pure-ftpd/pureftpd-mysql.conf

MYSQLSocket /var/lib/mysql/mysql.sock
#MYSQLServer localhost
#MYSQLPort 3306
MYSQLUser pureftpd
MYSQLPassword ftpdpass
MYSQLDatabase pureftpd
#MYSQLCrypt md5, cleartext, crypt() or password() — md5 is VERY RECOMMENDABLE uppon cleartext
MYSQLCrypt md5
MYSQLGetPW SELECT Password FROM ftpd WHERE User=»\L» AND status=»1″ AND (ipaccess = «*» OR ipaccess LIKE «\R»)
MYSQLGetUID SELECT Uid FROM ftpd WHERE User=»\L» AND status=»1″ AND (ipaccess = «*» OR ipaccess LIKE «\R»)
MYSQLGetGID SELECT Gid FROM ftpd WHERE User=»\L»AND status=»1″ AND (ipaccess = «*» OR ipaccess LIKE «\R»)
MYSQLGetDir SELECT Dir FROM ftpd WHERE User=»\L»AND status=»1″ AND (ipaccess = «*» OR ipaccess LIKE «\R»)
MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User=»\L»AND status=»1″ AND (ipaccess = «*» OR ipaccess LIKE «\R»)
MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User=»\L»AND status=»1″ AND (ipaccess = «*» OR ipaccess LIKE «\R»)
MySQLGetQTASZ SELECT QuotaSize FROM ftpd WHERE User=»\L»AND status=»1″ AND (ipaccess = «*» OR ipaccess LIKE «\R»)
MySQLGetQTAFS SELECT QuotaFiles FROM ftpd WHERE User=»\L»AND status=»1″ AND (ipaccess = «*» OR ipaccess LIKE «\R»)

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

chkconfig pure-ftpd on
service pure-ftpd start

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

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

И так, для начала устанавливаем epel репозитарий, как это сделать можно прочесть тут. Теперь :

yum install iperf

на одном, и на втором сервере. Далее, на машинке получателе запускаем —

iperf -s -p 65000

а на машинке которая будет отдавать выполняем

iperf -c [ip сервера] -p 65000

Samba: Unable to connect to CUPS server

Если вы не собираетесь использовать на вашем Samba сервере принтеры, и в smbd.log постоянно появляется вот такая ошибка:

Unable to connect to CUPS server localhost:631 – Connection refused

Для, того, что бы избавиться от этой ошибки достаточно добавить в конфиг:

load printers = no
show add printer wizard = no
printing = none
printcap name = /dev/null
disable spoolss = yes

Устанавливаем временную зону

Создаем ссылку на обновленную временную зону. Я живу в Киеве, поэтому моя зона Europe/Kiev:

ln -sf /usr/share/zoneinfo/Europe/Kiev /etc/localtime

Проверяем установленную зону в файле /etc/sysconfig/clock

cat /etc/sysconfig/clock | grep ZONE

Вот и все, проверяем при помощи

date

Подключаемся по VPN через iptables nat

Вот, столкнулся с такой ситуацией, пользователи за шлюзом, на шлюзе вся подсеть натиться без ограничений, а вот VPN работать не хочет. Решение оказалось простым, все что нужно, это подгрузить следующие модули — ip_gre, ip_nat_pptp, ip_conntrack_pptp. Подгрузить можно вот так:

modprobe ip_gre
modprobe ip_nat_pptp
modprobe ip_conntrack_pptp

Бэкапы виртуальных машин в VMWare ESXi

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

#!/bin/sh

sourcedir=/vmfs/volumes/datastore1
backupdir=/vmfs/volumes/nfs-backup

for i in `vim-cmd vmsvc/getallvms|awk '{print($1 "-" $2)}'`; do
if [ $i != "Vmid-Name" ]; then
vmid=${i%%-*}
vmfs=${i#*-}

mkdir $backupdir/$vmfs.`date +%d.%m.%Y`
vim-cmd vmsvc/snapshot.create $vmid [email protected] [email protected] includeMemory 0
for j in `ls $sourcedir/$vmfs`; do
cat $sourcedir/$vmfs/$j | gzip > $backupdir/$vmfs.`date +%d.%m.%Y`/$j.gz
done
vim-cmd vmsvc/snapshot.removeall $vmid
fi
done

cd $backupdir; find . -type d -mtime +5 -exec rm -rf {} \;

/vmfs/volumes/nfs-backup – соответственно nfs диск где будут лежать бэкапы
/vmfs/volumes/datastore1 – хранилище виртуальных машин