вівторок, 9 квітня 2013 р.

Ошибка RDP: Удаленный сеанс отключен, поскольку для данного компьютера отсутствуют клиентские лицензии удаленного рабочего стола

При использовании RDP, временами возникает такая ошибка:
Ошибка RDP: Удаленный сеанс отключен, поскольку для данного компьютера отсутствуют клиентские лицензии удаленного рабочего стола


Для удаления лицензии RDP с клиентского компьютера, откройте ветку реестра
HKEY_LOCAL_MACHINE\Software\Microsoft\MSLicensing
и удалите все подразделы.

После этого повторите подключение к серверу RDP. При первом подключении запустите клиент «от имени Администратора».

--------------

В продолжение данной темы...
После того, как Вы удалили, может выдасться другая ошибка:
Удаленный компьютер отключил сеанс, из-за ошибки в протоколе лицензирования.
Попытайтесь подключиться к удаленному компьютеру снова или обратитесь к системному администратору.

Причина данной ошибки - отсутствие у пользователя прав на создание данных разделов реестра. Для устранения данной ошибки выполните следующие действия:
- Запустите mstc.exe с правами администратора или войдите под правами администратора.
- Подключитесь к терминальному серверу. В этот момент будут автоматически созданы разделы в реестре HardwareID и StoreID.
- Отключитесь от терминального сервера.

пʼятниця, 5 квітня 2013 р.

2-й экземпляр apache

Иногда, возникает необходимость запустить 2-ю копию apache. Понятное дело, хочется использовать один и тот же исполняемый файл apache и не заниматься установкой различных версий продукта.

Определимся, чем должны, отличаться наши экземпляры.
Это конфигурационными файлами:
 /etc/apache2/apache2.conf  - указаны порты и специфичные для каждого из Апачей виртуальные хосты
/etc/apache2/ports.conf - содержит прослушиваемые порты.
/etc/apache2/envvars - путь к файлу для сохранения pid запущенного демона.

Стоит разделить логи директивами в в apache2.conf:
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined


Идем в папку init скриптов:
cd /etc/init.d

Создаем копию init скрипта родного Apache:
cp apache2 apache2_srv

Где apache2_srv - это название нового экземпляра Apache.

Сразу Добавляем фейловер Апача в автозапуск:
update-rc.d apache2_srv defaults

Корректируем скрипт apache2_srv:

Вместо блока:
PIDFILE=`. /etc/apache2/envvars ; echo $APACHE_PID_FILE`
if [ -z "$PIDFILE" ] ; then
echo ERROR: APACHE_PID_FILE needs to be defined in /etc/apache2/envvars >&2
exit 2
fi


Вставляем:
PIDFILE=`. /etc/apache2/envvars_apache2_srv ; echo $APACHE_PID_FILE`
if [ -z "$PIDFILE" ] ; then
echo ERROR: APACHE_PID_FILE needs to be defined in /etc/apache2/envvars_apache2_srv >&2
exit 2
fi


Чуть выше корректируем ENV:
ENV="env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin APACHE_ENVVARS=/etc/apache2/envvars_apache2_srv"

Корректируем конфиги:
cp /etc/apache2/envvars /etc/apache2/envvars_apache2_srv

Заменяем
export APACHE_PID_FILE=/var/run/apache2.pid
на
export APACHE_PID_FILE=/var/run/apache2_apache_2.pid

Создаем файл портов /etc/apache2/ports_apache_srv.conf:
В нем пишем:
Listen 81

Создаем файлы логов:
touch /var/log/apache2/error_apache2_srv.log
touch /var/log/apache2/other_vhosts_access_apache2_srv.log
chown root:root /var/log/apache2/other_vhosts_access_apache2_srv.log
chown root:adm /var/log/apache2/error_apache2_srv.log
chmod 640 /var/log/apache2/error_apache2_srv.log

Теперь давайте посмотрим, как осуществляется управление демоном Апача. Сразу скажу, что кэш мы не используем и следовательно "check_htcacheclean" всегда будет выдавать ложь.
Запуск:

start)
log_daemon_msg "Starting web server" "apache2"
if $APACHE2CTL start; then
if check_htcacheclean ; then
log_progress_msg htcacheclean
start_htcacheclean || log_end_msg 1
fi
log_end_msg 0
else
log_end_msg 1
fi
;;



То есть все вопросы к: $APACHE2CTL, его мы будем использовать не как SysV инит скрипт, а будем им проксировать все наши вопросы к apache

Для этого в верху скрипта делаем замену:

APACHE2CTL="$ENV /usr/sbin/apache2ctl"
на
APACHE2CTL="$ENV /usr/sbin/apache2ctl -f /etc/apache2/apache2_srv.conf"


Далее изменяем все параметры вызов APACHE2CTL:

$APACHE2CTL start на $APACHE2CTL -k start
$APACHE2CTL stop на $APACHE2CTL -k stop
$APACHE2CTL graceful на $APACHE2CTL -k graceful
$APACHE2CTL configtest на $APACHE2CTL -t

 Теперь надо скорректировать функцию pidof_apache, иначе при stop мы будем убивать всех Апаче разом:

Делаем замену:
pidof_apache() {
# if pidof is null for some reasons the script exits automagically
# classified as good/unknown feature
PIDS=`pidof apache2` || true

на:
pidof_apache() {
# if pidof is null for some reasons the script exits automagically
# classified as good/unknown feature
PIDS=`ps aux | grep 'apache2_srv' | grep -v 'grep' | awk '{print $2}' | xargs` || true



Теперь попробуем запустить второго Апача:
/etc/init.d/apache2_srv  start
Starting web server: apache2apache2: Could not open configuration file /etc/apache2/apache2_failover.conf: No such file or directory
failed!


Теперь необходимо на основе apache2.conf составить /etc/apache2/apache2_srv.conf

Скопируем оригинал
cp /etc/apache2/apache2.conf /etc/apache2/apache2_srv.conf

И далее корректируем пути к файлами, которые обсуждали выше.


CustomLog /var/log/apache2/other_vhosts_access_apache2_srv.log vhost_combined
ErrorLog /var/log/apache2/error_apache2_srv.log
Include /etc/apache2/ports_apache2_srv.conf


Теперь надо поменять порты у директив NameVirtualHost xx.xx.xx.xx:80 и VirtualHost xx.xx.xx.xx:81.

Повторяем попытку запуска:


/etc/init.d/apache2_srv  start
Starting web server: apache2.


середа, 3 квітня 2013 р.

Защита от хакеров Linux Ubuntu

Чем интересней ресурс, тем выше вероятность того, что взломают сервер. Поэтому, приходится бороться со взломами, искать процессы и т.п.


1. Есть подозрение, что кто-то подключился к рабочему столу

Смотрим:
who

r        tty7         2013-03-11 06:52 (:0)
r        pts/2        2013-04-03 05:21 (192.168.3.62)
r        pts/6        2013-04-03 08:27 (192.168.3.62)
r        pts/5        2013-04-03 07:58 (192.168.3.62)
(unknown) tty8         2013-04-03 06:16 (:1)
(unknown) tty9         2013-04-03 08:28 (:2)
(unknown) tty10        2013-04-03 08:47 (:3)


Прежде всего, обращаем внимание на подозрительных пользователей. Так, например, пользователь (unknown) - это странное явление. Значит, нужно его выкинуть и закрыться от возможности его подключения.
Выполняем:

who -a -p
           завантаження системи 2013-03-11 06:54
           рівень виконання 2 2013-03-11 06:54
ВХІД   tty4         2013-03-11 06:54              1575 id=4
ВХІД   tty5         2013-03-11 06:54              1581 id=5
ВХІД   tty2         2013-03-11 06:54              1588 id=2
ВХІД   tty3         2013-03-11 06:54              1589 id=3
ВХІД   tty6         2013-03-11 06:54              1593 id=6
r        + tty7         2013-03-11 06:52  да        4824 (:0)
ВХІД   tty1         2013-03-11 06:52              5937 id=1
           pts/2        2013-03-11 06:57                 0 id=/2    термінал=0 вихід=0
r        + pts/2        2013-04-03 05:21 01:26        2104 (192.168.3.62)
r        + pts/6        2013-04-03 08:27   .           409 (192.168.3.62)
           pts/7        2013-03-11 11:45                 0 id=/7    термінал=0 вихід=0
           pts/8        2013-04-03 09:21             15957 id=ts/8  термінал=0 вихід=0
           pts/10       2013-04-03 09:13             14507 id=s/10  термінал=0 вихід=0
           pts/12       2013-03-11 10:18             19235 id=s/12  термінал=0 вихід=0
           pts/14       2013-03-11 10:31             21030 id=s/14  термінал=0 вихід=0
r        + pts/5        2013-04-03 07:58 00:05       23871 (192.168.3.62)
           pts/3        2013-04-03 07:36              5537 id=ts/3  термінал=0 вихід=0
           pts/7        2013-04-03 09:17             10140 id=ts/7  термінал=0 вихід=0
           pts/9        2013-04-03 09:14             14013 id=ts/9  термінал=0 вихід=0
           pts/11       2013-03-19 18:33              6218 id=s/11  термінал=0 вихід=0
           pts/13       2013-03-11 22:14             17281 id=s/13  термінал=0 вихід=0
           pts/15       2013-03-11 22:33             18853 id=s/15  термінал=0 вихід=0
           pts/17       2013-03-11 21:52             19310 id=s/17  термінал=0 вихід=0
           pts/6        2013-03-25 07:43                 0 id=/6    термінал=0 вихід=0
           pts/8        2013-03-25 07:43                 0 id=/8    термінал=0 вихід=0
(unknown) + tty8         2013-04-03 06:16  да        5873 (:1)
(unknown) + tty9         2013-04-03 08:28  да         813 (:2)
           tty10        2013-04-03 09:10              7691 id=:3    термінал=0 вихід=0


Убиваем злодея:
kill 5873 813

После того, как убили, анализируете, ищите, как он мог войти. Убираете возможность подключения не прошенных гостей.


2. Запрет удаленного подключения к X11 через ssh
По умолчанию, ssh разрешает запускать x11 через ssh. Т.е. можно запускать графические приложения linux на сервере, используя протокол ssh.
Как это делается, написано в статье: http://d51x.ru/page/udalennyj-dostup-x11-forwarding

Но, вопреки этому, советую все же данную возможность отключать.
Редактируем файл: /etc/ssh/sshd_config 
Меняем выражение:
X11Forwarding    no

Перезагружаем ssh:

/etc/init.d/ssh restart


3. Ограничиваем доступ по ssh
Редактируем все тот же конфигурационный файл для ssh: /etc/ssh/sshd_config 
Желательно, сменить номер порта ssh (чтоб никто не знал, что там находится ssh :):
Port 22

Так же, можно изменить адрес, на котором слушает демон:
ListenAddress 0.0.0.0

Разрешаем вход по ssh только определенным пользователям:
AllowUsers user1 user2 user3


Перезагружаем ssh:

/etc/init.d/ssh restart

4. Настраиваем файервол

Устанавливаем расширение (настройки) для iptables:
apt-get install arno-iptables-firewall

Конфигурируем порты /etc/arno-iptables-firewall/conf.d 
Например:

EXT_IF="eth0 ppp0"
EXT_IF_DHCP_IP=1

# 3343,4434 - Порты для администрирования svn
# 9000 - порт для darkstat
# 3389 - терминал Windows
# 1500 - ???
# 8080 - порт для доступа к svn
# 1500 - ISP админка
# 440 - новый номер порта для ssh
# 22 - был ssh УБРАН

OPEN_TCP="80,443,21,6543,47,3343,4434,8080,1500,440"

# 110,25,995

OPEN_UDP=""
INT_IF="eth1"
NAT=0
INTERNAL_NET="192.168.3.0/24"
NAT_INTERNAL_NET="eth1"
OPEN_ICMP=1
LAN_OPEN_TCP="80,443,21,6543,1723,47,3389,1500,9000,5900,440"



Перезагружаем:
invoke-rc.d arno-iptables-firewall restart


5. Из sudo удаляем лишних пользователей
Редактируем файл: /etc/sudoers


Комментарим root, перечисляем наших пользователей-админов и комментарим доступ к sudo для груп администраторов и т.п.

Вот пример, того, что у меня получилось:


# User privilege specification
#root    ALL=(ALL:ALL) ALL
r           ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
#%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
#%sudo<>ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d


6. Делаем сложный пароль для пользователя root
Хакеры пытаются подобрать пароль супер-пользователя root простым перебором. Поэтому, делайте пароль для данного пользователя не менее 12 символом и посложнее.

Для изменения пароля пользователя root, выполняем:
passwd root

7. Защита дыр в Apache.
Выполните команду:
curl -I -H "Request-Range: bytes=0-1,0-2,0-3,0-4,0-5,0-6" -s Ваш домен/robots.txt | grep Partial

Если у Вас выдастся ответ 206 Partial Content, то это означает, что Ваш Apache имеет не плохую уязвимость.

Для того, чтоб убрать данную уязвимость, выполните:
sudo a2enmod headers

В Nginx пропишите:
proxy_set_header Range "";
proxy_set_header Request-Range "";


В Apache пропишите:
SetEnvIf Range (?:,.*?){5,5} bad-range=1
RequestHeader unset Range env=bad-range
RequestHeader unset Request-Range


Перезагрузите веб-сервис:
/etc/init.d/apache2 restart



вівторок, 2 квітня 2013 р.

Определение конфигурации компьютера в Linux

В Linux не нужно ставить специальное программное обеспечение для того, чтоб определить конфигурацию компьютера.  Можно просто просмотреть некоторые из файлов в каталоге proc:
cat /proc/cpuinfo — CPU
cat /proc/meminfo — ОЗУ
cat /proc/interrupts — прерывания
cat /proc/swaps — вся информация про swap
cat /proc/version — версия ядра и другая информация
cat /proc/net/dev — сетевые интерфейсы и статистика
cat /proc/mounts — смонтированные устройства
cat /proc/partitions — доступные разделы
cat /proc/modules — загруженные модули ядра
cat /etc/issue — Посмотреть версию ОС

Мені соромно за українські ЗМІ. Але ще не пізно згадати, для чого існує журналістика

Мені соромно за українські ЗМІ, які на 12 році війни часто мовчать про українське, але легко знаходять місце для того, що оплачено. Поки вор...