Blog

Перенос vsftpd на другой сервер с пользователями [Centos]

Начнем с установки на новый сервер:

$ yum install -y vsftpd db4-utils
Installed:
vsftpd.x86_64 0:2.2.2-13.el6_6.1

Для нормальной работы FTP добавить правила в фаервол /etc/sysconfig/iptables:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 64000:65535 -j ACCEPT

Перезапускаем iptables

$ /etc/init.d/iptables restart
iptables: Цепочкам назначается политика ACCEPT: filter [ OK ]
iptables: Сбрасываются правила межсетевого экрана: [ OK ]
iptables: Выгружаются модули: [ OK ]
iptables: Применяются правила межсетевого экрана: [ OK ]

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

$ scp -r /etc/vsftpd ваш_логин@имя_хоста.ru:/etc

Далее нужно откоректировать файл конф (поставить ип нового сервера)
После - рестартануть фтп сервер

$ /etc/init.d/vsftpd restart

Дальше пробовал актуализировать базу пользователей, паролей, разрешений и тд.
Начал с /etc/pam.d
Потом попробовал db_load -T -t hash -f /etc/vsftpd/accounts.tmp /etc/vsftpd/accounts.db
В итоге легче было создать с нуля все, особенно если пользователей не много.
Но раз начал нужно было закончить, в результате сделал следующий скрипт (нужно править под себя):

#!/bin/sh

HOMEDIR=/ftp
FTPCONF=/etc/vsftpd
LOGINS=/etc/vsftpd/logins.tmp

# Копируем файл аккаунтов
cp $FTPCONF/accounts.tmp $LOGINS
# Заменяем строки паролей на '#' (по этому знаку будем пропускать строку). Нужно сделать в цикле для четных строк!!!
sed -i '2c#' $LOGINS
sed -i '4c#' $LOGINS
sed -i '6c#' $LOGINS
sed -i '8c#' $LOGINS
sed -i '10c#' $LOGINS
sed -i '12c#' $LOGINS
sed -i '14c#' $LOGINS
sed -i '16c#' $LOGINS
sed -i '18c#' $LOGINS
sed -i '20c#' $LOGINS
sed -i '22c#' $LOGINS
sed -i '24c#' $LOGINS
sed -i '26c#' $LOGINS
sed -i '28c#' $LOGINS
sed -i '30c#' $LOGINS
sed -i '32c#' $LOGINS
sed -i '34c#' $LOGINS
sed -i '36c#' $LOGINS
sed -i '38c#' $LOGINS
sed -i '40c#' $LOGINS
sed -i '42c#' $LOGINS

#Пересобираем базу пользователей и паролей
rm -f $FTPCONF/accounts.db
db_load -T -t hash -f $FTPCONF/accounts.tmp $FTPCONF/accounts.db

# Перебираем в файле строки логинов - создаем папку пользователя и назначаем ей права
while read line; do
    if [ "$line" = "${line%#*}" -a "$line" ]; then
        /usr/sbin/useradd -d "${HOMEDIR}/$line" -s "/sbin/nologin" -c "$line" $line
        /bin/chmod 750 $HOMEDIR/$line
        /usr/bin/chcon -t public_content_rw_t $HOMEDIR/$line
    fi
done < $LOGINS

#Дропаем и перезапускаем
rm -f $LOGINS
/bin/chmod 600 $FTPCONF/accounts.db
/sbin/service vsftpd reload

Read 2700 times Last modified on Пятница, 02 Январь 2015 21:08
Rate this item
(0 votes)

Leave a comment

Make sure you enter the (*) required information where indicated. HTML code is not allowed.

Счетчики

Gallery

Contact us

Украина, Киев

P: +38(044) 361-0274