Profruit banner

Умен звънец в openHAB

16 декември 2023

Телефонът е винаги с мен и сега, където и да се намирам получавам известие от openHAB, че някой е позвънил и чака пред вратата. А ако ме няма вкъщи става ясно часа и датата на последното позвъняване.

Tasmota Multipress

30 септември 2023

Идеята е Sonoff Touch T1 US 2 в салона, да управлява освен своето осветление и това в кухнята, а още вентилатора.

DIY 12V 1A WiFi Router UPS

22 април 2023

При поредно прекъсване на захранването вкъщи, батерията на нoтбука и двата UPS автоматично превключват на аварийно захранване и едновременно полита съобщение за конфуза

Zigbee2MQTT клониране

21 януари 2023

... как да клонираме съществуваща настройка на Zigbee2MQTT без да се налага последвало интервю на zigbee-устройствата.

LD2410 - бюджетен датчик присъствие в openHAB

11 февруари 2023

Цената на HLK-LD2410 зададе име на поредната тема в моя блог. С негова помощ се постига "народен" датчик присъствие в домашната автоматизация. . ...

Profruit Lan

Това е моят LAN, познат ви от тема EW-7128g и WEP. Новото е добавена машина с инсталиран Ubuntu Server 10.04 в качеството на web - сървър. С две думи - домашен хостинг, движещ мои сайтове.

За пренос на сайта от работна машина към сървъра ползвам FTP сървър ProFTPD. За него иде реч надолу.



В директория /var/www на Ubuntu server 10.04 се намира файл index.html. Този файл е демонстрация на работоспособността на Apache. Файл index.html ще бъде заменен от бъдещ сайт. За целта е нужен FTP сървър с достъп до тази директория на web-сървъра.

Стартирайте терминала, за да се свържете към вашия сървър по ssh.

IP-адрес, потребител и порт съобразно вашата настройка.


ssh 192.168.1.103 -l profruit -p8822

или така:

ssh profruit@192.168.1.103 -p8822

след въвеждане на парола ще видите готовност на командната обвивка на сървъра.
Аз предпочитам работа с PuTTY (тази програма се предлага за Ubuntu и за Windows).

PuTTY Ubuntu

PuTTY Windows XP

В дистрибутив Ubuntu са достъпни около 5 разни програми, предлагащи достъп до файлове по протокол ftp. Най-известни са pure-ftpd, vsftpd и proftpd. Моят избор спря на ProFTPD.

Точен списък на достъпни ftp сървъри за инсталация в системата ви можете да видите, изпълнявайки команда за търсене по ключова дума ftpd.

# aptitude search ftpd

search ftpd

След първоначално разучаване, избрах ProFTPd за FTP - сървър на моя Ubuntu server 10.04

ProFTPD е рожба на Linux света, благодарение на институт Бъркли и техния набор програми с открит код за BSD.

Инсталация на ProFTPD



Команда за инсталиране

# aptitude install proftpd

По време на инсталацията ще се появи прозорец с въпрос в какъв режим ще ползвате сървъра:
  • inetd - самостоятелно ползване или ftp - сървъра няма да се ползва постоянно.
  • standalon - в този случай демонът ще стартира заедно с пуска на web - сървъра и ще бъде активен през цялото време.
standalone

Настройки на ProFTPD



Първоначално е нужно да се изменят настройките в конфигурационен файл /etc/proftpd/proftpd.conf. Това ще даде достъп до файловете в папка /var/www, съдържаща сайта в вид html и php страници и прилежащи към тях изображения.

Архивирайте оригинала и работете с копие на proftpd.conf

# cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf.old
# mc /etc/proftpd/proftpd.conf

Отворете конфигурационния файл на ProFTPd в визуален файлов мениджър midnight commander или редактори: nano, vim.

Ще видите голям набор от параметри и съпътствуващи коментари.
За целите на домашен хостинг много от тях ще останат непроменени.

настройка на proftpd

Първата промяна в proftpd.conf ще ускори работата на ftp сървъра. Добавя се параметър, отключващ обратното преобразуване на компютърни имена при опит за достъп по ftp.

Намерете в конфигурационния файл /etc/proftpd/proftpd.conf блок

DenyFilter \*.*/
# Use this to jail all users in their homes
# DefaultRoot ~

и добавете в него ред UseReverseDNS off

DenyFilter \*.*/
UseReverseDNS off
# Use this to jail all users in their homes
# DefaultRoot ~

Рестартирайте, за да влязат промените в сила

# /etc/init.d/proftpd restart

Авторизация в ProFTPD



По подразбиране, след инсталация proftpd позволява вход в web-сървъра по протокол ftp с логин и парола на потребителя (същите логин и парола, които ползвате при вход в сървъра по ssh).

За себе си реших да ползвам тази възможност, защото единствено аз ще ползвам достъп по ftp и да не обременявам излишно паметта си с поредна парола.

Стартирайте Nautilus на вашия Ubuntu desktop и преминете в домашната папка. В случая /home/profruit.

Отворете адресното поле (Ctrl-L) и въведете адреса на вашия ftp сървър (ftp://192.168.1.x).

Натиснете Enter.

Ако всички настройки са направени вярно, то Nautilus ще поиска да въведете логин и парола за достъп до файловете на Ubuntu server 10.04 по протокол ftp.

Въведете вашите логин и парола, които ползвате за достъп до web - сървъра по ssh.

вход по ftp

Успешната авторизация ще ви покаже съдържанието на коренната директория на вашия web - сървър.

root

Назначаване на права



В темата Ubuntu LAMP инсталация ни преминахме с помощта на браузър на адрес http://127.0.0.1 и прочетохме надпис "It works!". Нека пробваме нещо познато.

Преминете в папка /var/www

Кликнете десен бутон на мишката по файл - index.html. В появилото се контекстно меню изберете открий с помощта на текстови редактор и прегледайте неговото съдържание. И там и в темата тук, това е един и същи файл, който "отдава" Apache, когато захождате с браузър на адрес http://192.168.1.x

Безполезно е да се опитвате да промените файла. Просто ще получите критични съобщения за неуспешна операция. Това означава, че потребителя, под когото сте авторизирани по протокол ftp няма права над файл /var/www/index.html.

За ваше сведение изпълнете следната команда в прозореца на PuTTY

ls -l /var/www

Резултатът ще върне липса на права. Това може да се промени с следните команди

# chown -R profruit /var/www
# chmod 775 /var/www

Сега ще може да четете и пишете.
profruit променете на вашето потребителско име.

Този начин за получаване права над /var/www не е най-елегантният. Атрибутите на файл/файлове и на папка/папки в този каталог стават 0777. От друга страна това е вашия web - сървър с прилежащ ftp - сървър, също ваш, и най-вече само вие ще имате достъп до каталога на Apache, така че нищо обезпокоително. Малкият дявол е, че ако пуснете сайт с файлове, имащи атрибути 0777, сайтът ви става уязвим.

В Ubuntu desktop 10.04 има инструмент Connect to Server. Нека видим какво предлага той.

Gnome -> Places -> Connect to Server e пътят до него (на снимката в дясно се вижда, че вече съм се свързал по протокол ftp и по протокол shh).

Connect to Server

Натискайки бутон Connect to Server изкача прозорец с съответни настройки за връзка по даден тип протокол и съответни потребителско име и парола. Например, по протокол ssh.

SSH Connect to Server

В този прозорец е достатъчно да променим Service type на FTP и Port на 21, за да се свържем по протокол ftp.

По протокол ftp нищо интересно обаче. Не виждаме атрибутите на файлове и папки. Можем единствено да качваме, трием, разместваме, преименуваме файлове и папки.

Връзка по ssh с този сервиз ни дава същата възможност като при по ftp, но предлага още следната възможност, затова нека продължим. Най-същественото е, че извършваме промените под GUI и боравим с мишката, което пести време (лично мнение).

Преминавайки в /var/www ние можем да променим атрибутите на файл с десен бутон на мишката, а още да маркираме група файлове и променим атрибутите им под общ знаменател. За целта преминаваме в Permission и назначаваме права на притежател (Owner), група (Groupe) и останалите (Others), съответно изпълнение (Allow executing).

Permissions

Тук обаче казвам, че това е нищо повече от опция и този начин (Connect to Server по протокол ssh) дава още възможност, да разглеждате Ubuntu server 10.04 на длан. За целта има FTP - клиент и такъв е FileZilla. Нещата с него придобиват завършен вид.

FileZilla

Под Windows също се предлага FileZilla FTP - клиент, но аз предпочитам работа с Total Commander, заради допълнителните притурки, по-комфортно меню и добра интеграция в Windows.

настройка на ftp - съединение в Total Commander

Изменение на атрибути в Total Commander

атрибут

Безопасност



Тук си позволявам волни мисли.

Идеята от самото начало е наличие на FTP сървър, чрез когото да качите вашия сайт в /var/www на домашния си хостинг. В един момент, може да ви хрумне да създадете виртуални хостове в Apache. Тогава броя на сайтовете ще нарасне до 2, до 5, до n на брой. След време ще последва обновления по сайтовете и тяхното съдържание. Малко или много това не е повседневна дейност, която да налага FTP сървъра, да бъде винаги активен. С един ред команда през ssh - сървъра той може да бъде спрян и пак от там пуснат по нужда. Спрян означава обезопасен.

Разглеждайки строежа на домашния хостинг имаме рутер, който раздава интернет на десктоп - машина и на сървър - машина. На десктопа създавате сайта и през вътрешен IP адрес се свързвате с вашия сървър по протокол FTP. Качвате сайта. Нищо обезпокоително до тук, защото вие сте невидим по FTP достъп от към глобалната мрежа. Рутерът ви пази от злоумишленици.

В живота има случаи разни. Вашият сървър е вкъщи, а вие се намирате на друго място и имате желание да промените нещо по сайта. Налага се вашия FTP сървър, да бъде видим зад пределите на рутера. Тогава пренасочете порт 21 към IP-то на вашата Ubuntu server машина и направете следните изменения в proftpd.conf.

TP LINK Forwarding

Можете да подсилите безопасността на вашия ProFTPD чрез следните стъпки:

# изключване протокол
UseIPv6 off

# Тук присвоявате измислено име/псевдоним (alias) на потребителя userftp, например bill_gates
UserAlias bill_gates userftp

TimeoutNoTransfer 600
TimeoutStalled 100
TimeoutIdle 2200

ListOptions "-l"

RootLogin off

# Не ползвам файл /etc/ftpusers (списък на потребители с ограничен достъп)
UseFtpUsers off

# Стандартен порт 21, може да се избере друг с цел повишаване на безопасност
Port 21

MaxClients 8 "Горен предел на количество клиенти"
MaxClientsPerHost 8 "Горен предел на количество клиенти на вашия хост"
MaxClientsPerUser 8 "Горен предел на количество включвания (%m)"
MaxHostsPerUser 8 "Горен предел"

# домашна папка /var/www
DefaultRoot /var/www

# запор на потребителя над домашната папка (строго препоръчително)
DefaultRoot ~

# новокачен файл получава атрибут 0644 автоматично
Umask 022 022

# брой опити за авторизация, следва пауза при неуспех
MaxLoginAttempts 5

# анонимен достъп (всичко коментирано никакви анонимни)
#<Anonymous /папка/за/достъп>
# User userftp
# Group nogroup
# UserAlias anonymous userftp
# MaxClients 8 "Извинете, опитайте отново по-късно"
# DisplayChdir .message
#
# <Directory *>
# <Limit WRITE>
# DenyAll
# </Limit>
# </Directory>
#</Anonymous>


Отново рестартирайте ProFTPD, за да влязат промените по proftpd.conf в сила. Задавайки конкретна домашна папка на потребителя (DefaultRoot /var/www) и запор на потребителя над домашната папка (DefaultRoot ~), то след авторизацията в ProFTPD ще попадате точно в /var/www и достъпът над нея ще бъде блокиран. Нещо изключително важно за сигурността на вашия сървър. Имал съм случай на обществен web - хост, да се разхождам зад пределите на моята домашна папка и да разглеждам съдържанието на други потребители. Това говори за стойността на хоста.

Още за ProFTPD



Тук искам да спомена, че ProFTPD дава възможност към него да се интегрира антивирус. Това ще пази сайта ви от гадости, които в последствие атакуват Windows - потребители на вашия сайт.

В отделни форуми препоръчват ProFTPD пред Samba, ако градите FTP - хранилище на файлове. Там твърдят, че бил по-бърз пред въпросната Samba.

FTP е несигурен протокол, защото пароли и данни се предават в пряк текст. ProFTPD дава възможност преноса да бъде криптиран чрез TLS.





до нови срещи   ^.^

26.03.2011 profruit 

1 Response to "FTP сървър ProFTPD в Ubuntu Server 10.04"


Публикуване на коментар

Този блог е реинкарнация на първите ми опити за споделяне в нета. На времето започнах с къси разкази на преживяното. После се обезсмисли и превърнах блога си в системно радио. Пиша единствено неща, които карат душата ми да живее: openHAB, Ubuntu, Споделено и т.н. Това е моето системно радио, разбирате ли? Моята вълна и вие сте на нея сега.

Архив на блога