Punta de Choros

27 декември 2009

На 2009г й оставаха 120ч съществуване. От календара падна поредния лист с дата 27 декември и към 10.30ч сутринта ме събуди звън от телефона.

Инсталация на Microsoft шрифтове в Ubuntu 16.04

14 януари 2017

нсталация на Microsoft шрифтове в Ubuntu се поражда от идеята браузърите в различните системи, да показват еднакво текстовото съдържанието на интернет страниците.

Ubuntu 16.04 инсталация на USB disk on Key

19 ноември 2016

Арсеналът ми от мобилни компютри съдържа Fujitsu Lifebook AH530. Това е бюджетна машина от 2011г на Intel Core i5-480M процесор и 4GB DDR3 RAM памет.

gparted

Paragon ExtFS for Windows

30 юли 2016

ExtFS for Windows е утилита на Paragon Software разработена през 2013г. Тя представлява решение, предоставящо пълен достъп на четене и на запис до раздели ...

msvcr100.dll is missing Windows 10

04 октомври 2016

Майк Патерсън от Plixer, компания по компютърната сигурност, публикува доклад , че Windows 10 изпраща данни в криптиран вид от вашата машина на всеки пет минути. Той е направил максимума, за да спре изтичането, но системата продължавала да изпраща информация.


В поредната среща "Как да си направя домашен хостинг" следва уговорка - не разглеждаме случай за организиране на професионален хостинг, a ситуация по-проста - разучаване и разработка на web-сървър.

Статията не претендира за изчерпателност, тя обслужва преди всичко автора. Ползвайте на ваш риск и страх.

Profruit Lan

Това е моят LAN, познат ви от предходната тема тема FTP сървър ProFTPD в Ubuntu Server 10.04. Там се запознахме с начина за пренос на сайта от десктоп-машина към сървър-машината.

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

Нека първо погледнем какво получаваме по подразбиране в Ubuntu server и по-точно неговия пълководец Apache.

Всеки един каталог (разбирай папка) се браузва. Това трябва да се скрие на всяка цена. Най-лесния начин е да се добави празен файл - index.html.

На снимката съм дал за пример каталог, съдържащ всички CSS файлове. Същото важи и за каталог images, съдържащ всичката графика на сайта. Нещата бият тревога, ако тук стоят php-скриптове. Да речем, че прибегнете до WordPress или Joomla!. Тогава лошият ще види инсталираните допълнения, модули и т.н. и ще получи площадка за действие.

browsing directory

Вижте подписа:
Apache/2.2.14 (Ubuntu) Server at 192.168.1.103 Port 80
Това пък на кого му трябва и определено ще го скрия. Нека се чудят, нека се потят повече.

Втората изненада идва от URL на phpMyAdmin. Достатъчно е до IP-то или до домейна да допишем phpMyAdmin и ние сме пред портата му. Това положение разчита на една парола и остава да се включи брутфорс, за да се отгатне.

phpmyadmin

Как беше до сега?


До сега беше просто. Ползваш готов и настроен хостинг и ако ти трябва повече защита добавяш в корена на сайта файл .htaccess.


HTACCESS e файл без име с разширение .htaccess. Този файл служи за децентрализирано управление на сървър Apache. Хостинг- компаниите закриват достъпа до конфигурационните файловe на Apache по разбираеми причини за безопасност и нашего брата, хоствания му остава да ползва малкия брат на тези - .htaccess.

Какво постигах аз с него, например:

Бан на Сульо и Пульо по IP. Ако се обяви и Хульо, хайде и той с бан-ан.

## BAN
#това е Сульо
deny from 173.1.61.69
#това е Пульо
deny from 83.228.32.1

Забрана прегледа на каталозите (виж втора снимка горе). Тук забрана идва от добавен знак минус (-) пред Indexes.

## Без листинг на каталозите
RewriteBase /
Options -Indexes

Без подпис на сървъра (виж втора снимка горе)

## Без подпис
RewriteBase /
ServerSignature Off

Защита на файл .htaccess от достъп. Неговите атрибути са 0644.

## Защита на htaccess
RewriteBase /
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</Files>

Забрана HOTLINKING на списък от посочени файлове. Променете на вашето име в примера и на разширения, които желаете да защитите.

## Без HOTLINKING
#RewriteEngine on
RewriteBase /
Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?profruit.blogspot.com/.*$ [NC]
RewriteRule \.(gif|jpg|jpeg|png|js|css|rar|zip|php)$ - [F]

Пренасочване на безсмислени заявки към дадена страница от сайта.
Да речем, че потребител задава URL в вашия сайт до несъществуващ файл или каталог, тогава ще бъде пренасочен към избрано място от вас, в случая index.php.

## Пренасочване на безсмислени заявки
RewriteBase /
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ./index.php [L]
</IfModule>

Срещу DDoS атаки

## DDOS atack with HEAD requests
RewriteBase /
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} HEAD
RewriteRule .* - [F]
</IfModule>

В каталози ~/images/, ~/style/, ~/js/ и т.н. срещу браузване на съдържанието им, слагам следния .htaccess файл. Той пренасочва при всеки опита за преглед съдържанието им на главната страница на сайта. Аман от воайори! Променете на IP-то на сайта ви и спете спокойно.

## Пренасочване
RewriteBase /
RewriteEngine on
RewriteCond %{HTTP_HOST} ^84.228.91.15$ [OR]
RewriteCond %{HTTP_HOST} ^84.228.91.15$
RewriteRule ^$ http://84.228.91.15 [R=301,L]

Какво следва?


С притежаването на Ubuntu server нещата стават по-интересни. Определeно вие държите в ръцете си всички лостове за управление на Apache. Стартирането на .htaccess забавя сървъра, защото той преглежда при всяка заявка първо за него. Така, че .htaccess само по необходимост.

Това е командния пулт на Apache (/etc/apache2) под Ubuntu server. В тези папки и файлове ще ровим.

каталог на Apache2

За по-лесно ориентиране на нещата се свървам с Ubuntu server от Ubuntu desktop, чрез Nautilus и едновременно още с PuTTY по локална мрежа.

Първия начин ми дава графика,за да не се лутам и по-лесен прочит на даден файл през gedit, докато през втория редактирам с Midnight Commander под sudo.

Активация на .htaccess в Ubuntu server 10.04

mod-rewrite.
При опит да качите в корена на сайта файл .htaccess, Apache го отхвърля. Причина са първоначалните настройки на Ubuntu server след инсталация. За да активирате тази опция преминете в каталог

/etc/apache2/sites-enabled

вътре се намира файл 000-default. Редактирайте следния ред в него така:

...
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
...

Сега е момента да добавим знак минус (-) пред Indexes. По този начин ще си спестим писане в .htaccess за забрана прегледа на каталозите. Нещата изглеждат така:

Options -Indexes FollowSymLinks MultiViews

Съхраняваме изменениятa в Midnight Commander с F2, a c F10 излизаме, за да рестартираме Apache. По този начин нещата влизат в сила и вече може да качвате .htaccess в сайта си.

sudo /etc/init.d/apache2 restart

Вижда се от примерите горе, че някои рестрикции изискват активен mod_rewrite или проверяват за наличието му. Това е модул на сървър Apache. Този мод служи за преобразуване на адресите в фиктивни в CMS, тоест, прави ги по-разбираеми и нагледни. Реверанс към WordPress и Joomla! и въпрос на една команда и рестарт.

sudo a2enmod rewrite
sudo invoke-rc.d apache2 restart

Логовете четем в /var/log
На Apache2 в /var/log/apache2

Защита на URL http://site/phpMyAdmin

Преминете в

/etc/apache2/conf.d/phpmyadmin.conf

Първи начин е да промените псевдонима (Alias) на phpMyAdmin на нещо по ваш избор. Да речем, че phpmyadmin промените на mydbadmin. Тогава URL ще бъде

http://site/mydbadmin

Това става като редактирате файл phpmyadmin.conf. В самото начало променете Alias /phpmyadmin на Alias /mydbadmin или направено е така:

# phpMyAdmin default Apache configuration
Alias /mydbadmin /usr/share/phpmyadmin
...

Втори начин е да сложите парола на каталог

/usr/share/phpmyadmin

Това определено не ми допада, защото става банков трезор от писане на пароли и губене на време.

Как става е описано тук

Браво на мен, защото мога да броя до три. Третия начин нарекох тесла за хацкерите Сульо и Пульо. Хайде няма нужда да ми пълзят по админчето.
Пак там дописваме IP-то на компютрите от вътрешната мрежа и режем външния свят. Съответно напишете адресите от вашия рутер, модем или каквото е там. След редакция:

# phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
order deny,allow
deny from all
allow from 192.168.1.100/10


Options FollowSymLinks
DirectoryIndex index.php
...

На практика, всеки заредил адрес http://your_site/phpmyadmin ще вижда това

phpmyadmin forbidden

Защита от Brute force атаки

Brute force атаките се числят за най-прости, но към днешен ден все още ефективни за проникване в сървърна система. Техният успех зависи от мързела на администратора. Атаката се заключава в налучкване на паролата с помощта на речник или метода на прекия подбор.

Противодействието е закриване достъпа на атакуващия до интересуващия го порт. На помощ идва огнена стена (firewall), а още скрипт, анализиращ лога за аутентификация. Признат скрипт в това дело fail2ban, позволяващ защитаване от брутфорс на голямо число сервизи (ssh, apache, vsftpd, proftpd, postfix, sasl).

Този скрипт упоменах в тема Настройка на SSH. Време е да го инсталираме.

sudo apt-get install fail2ban

Конфигурационите файлове на fail2ban се намират в каталог /etc/fail2ban.

Тук се намират два важни файла: fail2ban.conf (конфигурация на демона) и jail.conf, в когото се указват настройките на защитаваните сервизи

/etc/fail2ban/fail2ban.conf


В конфига се променя единствено детализацията на логовете.

[Definition]
loglevel = 3 # ниво детализация на логове (1-4)
logtarget = /var/log/fail2ban.log # лог файл
socket = /tmp/fail2ban.sock # сокет на демона

/etc/fail2ban/jail.conf

Тък промените са повечко, в зависимост от ползваните демони.
Променяте enabled = false на enabled = true за дадения демон, задавате порт, на когото да слуша и брой опити за аутентификация.

Списъкът е дълъг, но интуитивен и можете сами да го разучите. Изучавайте регулярни изрази.

Съхранете изменеията и пуснете сервиза

sudo invoke-rc.d fail2ban start

Имитация на злоумишленик

На една от машините си ще се опитам да се свържа с сървъра, като налучквам. Тази машина има сив адрес 192.168.1.101. Предварително съм задал три опита за въвеждане на име и парола в fail2ban. При неуспех, програмата ще ban-ва.

Стартирам PuTTY и правя три поредни налучквания за вход. Нищо. На четвъртия опит виждам това:

putty fatal error

От машина 192.168.1.100 се свързвам по ssh протокол и чета лога на fail2ban. Вижда се, че ме е сложил в затвора за време зададено в конфигурацията му.

log

Отделни настройки по Apache2

Преминаваме в каталог /etc/apache2/conf.d и редактираме файл charset. Задаваме кодировка по подразбиране UTF-8, просто махаме коментара.

# Read the documentation before enabling AddDefaultCharset.
# In general, it is only a good idea if you know that all your files
# have this encoding. It will override any encoding given in the files
# in meta http-equiv or xml encoding tags.

AddDefaultCharset UTF-8

Редактираме съседния файл - security. Там ще скрием подписа на сървъра и запитванията за тип ОС-ма. Намираме следните части и редактираме както е показано долу:

...
#ServerTokens OS
...
#
#ServerSignature Off
ServerSignature Off
...

Нюанси

В Windows и по-точно в програмата за него - xampp, настройките на apache се задават в файл httpd.conf. Той се намира традиционно в директория C:\xampp\apache\conf
Това е подражание на Unix.
В този файл можем да променим портове 80 и 443, на които слуша apache по протоколи http и https, например.


В Ubuntu server - файл httpd.conf е празен. Неговото съдържание е поделено в файлове apache2.conf и в ports.conf. Това е подражание на Debian.

По-подробно за тях в бъдеща среща.


Извор:
htaccess.net.ru
Enable .htaccess in Apache2
apache2 mod_rewrite в Ubuntu
Защита от брутфорс атак






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

08.04.2011 profruit 

0 Response to "Базова защита на Ubuntu Server 10.04"

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

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

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