+38 (067) 901-63-22

Корзина

0 товара(ов) на сумму
0 грн.

Апрель 2013 — К2®, Рудюк Сергей Анатольевич

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

При использовании RDP, временами возникает такая ошибка:

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

Для удаления лицензии RDP с клиентского компьютера, откройте ветку реестра

HKEY_LOCAL_MACHINE\Software\Microsoft\MSLicensing

и удалите все подразделы.

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

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

В продолжение данной темы...

После того, как Вы удалили, может выдасться другая ошибка:

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

Попытайтесь подключиться к удаленному компьютеру снова или обратитесь к системному администратору.

Причина данной ошибки - отсутствие у пользователя прав на создание данных разделов реестра. Для устранения данной ошибки выполните следующие действия:

- Запустите mstc.exe с правами администратора или войдите под правами администратора.

- Подключитесь к терминальному серверу. В этот момент будут автоматически созданы разделы в реестре HardwareID и StoreID.

- Отключитесь от терминального сервера.

09.04.13, 14:50

Автор сообщения: К2® Рудюк Сергей Анатольевич (Блог К2 - http://corp2.net)

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.

05.04.13, 13:48

Автор сообщения: К2® Рудюк Сергей Анатольевич (Блог К2 - http://corp2.net)

Защита от хакеров 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:

<strong>/etc/init.d/ssh restart</strong>

3. Ограничиваем доступ по ssh

Редактируем все тот же конфигурационный файл для ssh: /etc/ssh/sshd_config

Желательно, сменить номер порта ssh (чтоб никто не знал, что там находится ssh :):

Port 22

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

ListenAddress 0.0.0.0

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

AllowUsers user1 user2 user3

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

<strong>/etc/init.d/ssh restart</strong>

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.

Выполните команду:

<strong>curl -I -H "Request-Range: bytes=0-1,0-2,0-3,0-4,0-5,0-6" -s Ваш домен/robots.txt | grep Partial</strong>

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

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

sudo a2enmod headers

В Nginx пропишите:

<strong>proxy_set_header Range "";<br> proxy_set_header Request-Range "";</strong>

В Apache пропишите:

<strong>SetEnvIf Range (?:,.*?){5,5} bad-range=1<br> RequestHeader unset Range env=bad-range<br> RequestHeader unset Request-Range</strong>

Перезагрузите веб-сервис:

/etc/init.d/apache2 restart

03.04.13, 12:32

Автор сообщения: К2® Рудюк Сергей Анатольевич (Блог К2 - http://corp2.net)

Определение конфигурации компьютера в 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 — Посмотреть версию ОС

02.04.13, 21:41

Автор сообщения: К2® Рудюк Сергей Анатольевич (Блог К2 - http://corp2.net)