среда, 11 сентября 2013 г.

Виртуальная файловая система /proc

Файлы в папке /proc генерируются на лету и содержат полную информацию о ядре и каждом запущенном процессе в системе. С помощью этой виртуальной файловой системы Вы можете работать с внутренними структурами ядра, получать полезную информацию о процессах и изменять установки ( меняя параметры ядра ) на лету. Файловая система /proc располагается в памяти в отличие от других файловых систем, которые располагаются на диске.


Перечислим некоторые важные файлы:
  • /proc/cpuinfo - информация о процессоре ( модель, семейство, размер кэша и т.д.)
  • /proc/meminfo - информация о RAM, размере свопа и т.д.
  • /proc/mounts - список подмонтированных файловых систем.
  • /proc/devices - список устройств.
  • /proc/filesystems - поддерживаемые файловые системы.
  • /proc/modules - список загружаемых модулей.
  • /proc/version - версия ядра.
  • /proc/cmdline - список параметров, передаваемых ядру при загрузке. 

Большинство из рассмотренных нами файлов из каталога /proc доступны только на чтение. Тем не менее файловая система /proc предоставляет файлы для взаимодействия с ядром доступные на запись. Помещение информации в такие файлы изменяет состояние ядра и поэтому это надо делать очень аккуратно. Эти файлы нахдятся в каталоге /proc/sys.
В каталоге /proc/sys/kernel находится информация общего плана для ядра. Соответственно в /proc/sys/kernel/{domainname, hostname} находится информация о доменном имени и host имени, которую Вы можете изменить.

Еще один интересный каталог /proc/sys/net. В нем Вы можете произвести сетевые настройки, например спрятать Ваш компьютер в сети.


$ echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
Запретив ответы на icmp_echos мы спрятали компьютер. Наша машина не будет отвечать на команды "ping" других компьютеров.

$ ping machinename.domainname.com
no answer from machinename.domainname.com
Вернуть прежнее состояние можно следующим образом
$ echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all


Оперативная память linux

В файле можно найти пароли авторизации в открытом виде и много другой полезной информации, которая была загружена в память.
Расположение: /proc/kcore
Размер файла равен размеру RAM + SWAP
strings /proc/kcore | grep -A 50 -B 50 {username} | sort -u | uniq -u > /tmp/kdump.uniq
Странно но пароль всегда находился в пределах +-50 строк от имени пользователя

воскресенье, 8 сентября 2013 г.

HTTP Basic Authentication

"Базовая" схема установления подлинности основана на том, что агент пользователя должен доказывать свою подлинность при помощи идентификатора пользователя (user-ID) и пароля (password) для каждой области (realm)
LoadModule authn_file_module modules/mod_authn_file.so
<Location ~ "/(wp-login\.php|administrator|admin\.php)">.
 AuthType Basic.
 AuthName "Subdomain authorization".
 AuthUserFile "/etc/httpd/.htpasswd"
 Require valid-user.
</Location> 

Создание файла с паролями:
htpasswd -c Filename username
Добавление/изменение юзера:
htpasswd Filename username
Force MD5 encryption of the password:
htpasswd -m Filename username

Make sure that the AuthUserFile and .htpasswd are stored outside the document tree of the web-server. Do not put it in the directory that it protects. Otherwise, clients may be able to download the AuthUserFile.


Директива <Location> подобна директиве <Directory>, только вместо названия каталога указывается адрес URL. Этот адрес URL может указывать на каталог, отдельный файл либо содержать шаблон (строку *.html). В директиве <Location>, уже присутствующей в файле srm.conf, задается область, резервируемая для проверки вебмастером состояния сервера, /status. Доступ к этой области разрешен только пользователям домена nowhere.com. Если вы замените nowhere.com названием вашего домена, то получите возможность пользоваться этой информацией о состоянии (если вы откомпилировали модуль mod_status.c.

AuthType None|Basic|Digest|Form

http://httpd.apache.org/docs/current/mod/mod_authn_core.html#authtype

http://httpd.apache.org/docs/2.2/howto/auth.html 

Минусы HTTP Basic Authentication:
1) Юзабилити, внешний вид
2) Чтобы деавторизоваться необходимо закрыть браузер.

Digest Authentication (Дайджест_аутентификация):
http://ru.wikipedia.org/wiki/%D0%94%D0%B0%D0%B9%D0%B4%D0%B6%D0%B5%D1%81%D1%82_%D0%B0%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F 

Как узнать статус процесса

 cat /proc/PID/status | grep State | awk {'print $3'}

суббота, 7 сентября 2013 г.

FilesMatch

<Files "log.txt">
Order Allow,Deny
Deny from all
</Files>
<FilesMatch "config.php|function.php|include.php">
  Order allow,deny
  Deny from all
  Allow from 173.11.227.73 108.222.245.179
</FilesMatch> 

<FilesMatch "\.(gif|jpeg|jpg|png)$"> 
<FilesMatch "\.php$">
<FilesMatch "index[0-9]?\.php$">
   
If you'd like to deny all but a few files, this would read as
Order deny,allow
Deny from all
<FilesMatch "index.php|index.html">
Allow from all
</FilesMatch> 

<Limit GET POST> 
Order Allow,Deny 
Deny from 100.99.69.1, 100.99.69.2
Allow from All 
</Limit>