Това е моят 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-адрес, потребител и порт съобразно вашата настройка.
или така:
след въвеждане на парола ще видите готовност на командната обвивка на сървъра.
Аз предпочитам работа с PuTTY (тази програма се предлага за Ubuntu и за Windows).
В дистрибутив Ubuntu са достъпни около 5 разни програми, предлагащи достъп до файлове по протокол ftp. Най-известни са pure-ftpd, vsftpd и proftpd. Моят избор спря на ProFTPD.
Точен списък на достъпни ftp сървъри за инсталация в системата ви можете да видите, изпълнявайки команда за търсене по ключова дума ftpd.
След първоначално разучаване, избрах ProFTPd за FTP - сървър на моя Ubuntu server 10.04
ProFTPD е рожба на Linux света, благодарение на институт Бъркли и техния набор програми с открит код за BSD.
Инсталация на ProFTPD
Команда за инсталиране
По време на инсталацията ще се появи прозорец с въпрос в какъв режим ще ползвате сървъра:
- inetd - самостоятелно ползване или ftp - сървъра няма да се ползва постоянно.
- standalon - в този случай демонът ще стартира заедно с пуска на web - сървъра и ще бъде активен през цялото време.
Настройки на ProFTPD
Първоначално е нужно да се изменят настройките в конфигурационен файл /etc/proftpd/proftpd.conf. Това ще даде достъп до файловете в папка /var/www, съдържаща сайта в вид html и php страници и прилежащи към тях изображения.
Архивирайте оригинала и работете с копие на proftpd.conf
# mc /etc/proftpd/proftpd.conf
Отворете конфигурационния файл на ProFTPd в визуален файлов мениджър midnight commander или редактори: nano, vim.
Ще видите голям набор от параметри и съпътствуващи коментари.
За целите на домашен хостинг много от тях ще останат непроменени.
Първата промяна в proftpd.conf ще ускори работата на ftp сървъра. Добавя се параметър, отключващ обратното преобразуване на компютърни имена при опит за достъп по ftp.
Намерете в конфигурационния файл /etc/proftpd/proftpd.conf блок
# Use this to jail all users in their homes
# DefaultRoot ~
и добавете в него ред UseReverseDNS off
UseReverseDNS off
# Use this to jail all users in their homes
# DefaultRoot ~
Рестартирайте, за да влязат промените в сила
Авторизация в 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.
Успешната авторизация ще ви покаже съдържанието на коренната директория на вашия web - сървър.
Назначаване на права
В темата 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
Резултатът ще върне липса на права. Това може да се промени с следните команди
# 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 изкача прозорец с съответни настройки за връзка по даден тип протокол и съответни потребителско име и парола. Например, по протокол ssh.
В този прозорец е достатъчно да променим Service type на FTP и Port на 21, за да се свържем по протокол ftp.
По протокол ftp нищо интересно обаче. Не виждаме атрибутите на файлове и папки. Можем единствено да качваме, трием, разместваме, преименуваме файлове и папки.
Връзка по ssh с този сервиз ни дава същата възможност като при по ftp, но предлага още следната възможност, затова нека продължим. Най-същественото е, че извършваме промените под GUI и боравим с мишката, което пести време (лично мнение).
Преминавайки в /var/www ние можем да променим атрибутите на файл с десен бутон на мишката, а още да маркираме група файлове и променим атрибутите им под общ знаменател. За целта преминаваме в Permission и назначаваме права на притежател (Owner), група (Groupe) и останалите (Others), съответно изпълнение (Allow executing).
Тук обаче казвам, че това е нищо повече от опция и този начин (Connect to Server по протокол ssh) дава още възможност, да разглеждате Ubuntu server 10.04 на длан. За целта има FTP - клиент и такъв е FileZilla. Нещата с него придобиват завършен вид.
Под Windows също се предлага FileZilla FTP - клиент, но аз предпочитам работа с Total Commander, заради допълнителните притурки, по-комфортно меню и добра интеграция в Windows.
Изменение на атрибути в Total Commander
Безопасност
Тук си позволявам волни мисли.
Идеята от самото начало е наличие на FTP сървър, чрез когото да качите вашия сайт в /var/www на домашния си хостинг. В един момент, може да ви хрумне да създадете виртуални хостове в Apache. Тогава броя на сайтовете ще нарасне до 2, до 5, до n на брой. След време ще последва обновления по сайтовете и тяхното съдържание. Малко или много това не е повседневна дейност, която да налага FTP сървъра, да бъде винаги активен. С един ред команда през ssh - сървъра той може да бъде спрян и пак от там пуснат по нужда. Спрян означава обезопасен.
Разглеждайки строежа на домашния хостинг имаме рутер, който раздава интернет на десктоп - машина и на сървър - машина. На десктопа създавате сайта и през вътрешен IP адрес се свързвате с вашия сървър по протокол FTP. Качвате сайта. Нищо обезпокоително до тук, защото вие сте невидим по FTP достъп от към глобалната мрежа. Рутерът ви пази от злоумишленици.
В живота има случаи разни. Вашият сървър е вкъщи, а вие се намирате на друго място и имате желание да промените нещо по сайта. Налага се вашия FTP сървър, да бъде видим зад пределите на рутера. Тогава пренасочете порт 21 към IP-то на вашата Ubuntu server машина и направете следните изменения в proftpd.conf.
Можете да подсилите безопасността на вашия 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.
до нови срещи ^.^
Много добра статия