Имеется дерево доменов Active Directory с поддоменами. Необходимо извлечь вложенную зону subdomain1.subdomain2.example.com из домена example.com и создать отдельный DNS домен - subdomain1.subdomain2.example.com
Создаем файл extract-dns-zone.cmd:
set maindomain=example.com
set subdomain=subdomain1.subdomain2
set dcsrv=dc.example.com
del \\%dcsrv%\c$\WINDOWS\system32\dns\%maindomain%.txt
dnscmd %dcsrv% /zoneexport %maindomain% %maindomain%.txt
copy \\%dcsrv%\c$\WINDOWS\system32\dns\template.dns \\%dcsrv%\c$\WINDOWS\system32\dns\%subdomain%.%maindomain%.dns
findstr /i "%subdomain%" \\%dcsrv%\c$\WINDOWS\system32\dns\%maindomain%.txt >> \\%dcsrv%\c$\WINDOWS\system32\dns\%subdomain%.%maindomain%.dns
cscript replace.vbs \\%dcsrv%\c$\WINDOWS\system32\dns\%subdomain%.%maindomain%.dns ".%subdomain% " " "
cscript replace.vbs \\%dcsrv%\c$\WINDOWS\system32\dns\%subdomain%.%maindomain%.dns "%subdomain% " "@ "
dnscmd %dcsrv% /zoneadd %subdomain%.%maindomain% /primary /file %subdomain%.%maindomain%.dns /load
rem psexec.exe \\%dcsrv% dcdiag /test:registerindns /dnsdomain:%subdomain%.%maindomain%.dns
Поскольку в Windows нет штатной команды для замены текста в файле, создадим vbs скрипт replace.vbs:
Const ForReading = 1
Const ForWriting = 2
strFileName = Wscript.Arguments(0)
strOldText = Wscript.Arguments(1)
strNewText = Wscript.Arguments(2)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFileName, ForReading)
strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, strOldText, strNewText)
Set objFile = objFSO.OpenTextFile(strFileName, ForWriting)
objFile.WriteLine strNewText
objFile.Close
Файл extract-dns-zone.cmd импортирует всю зону example.com в файл, копирует шаблон пустой зоны subdomain2.subdomain2.example.com в новый файл и добавляет в него только строки, относящиеся к извлекаемому домену, затем на основе этого файла создает новую зону DNS. После создания зоны необходимо сдклать её интегрированной в AD и включить безопасный обновления. Старую подзону следует удалить и вместо неё создать делегированную зону.
Файл \\dc.example.com\c$\WINDOWS\system32\dns\template.dns:
;
@ IN SOA dc.example.com. hostmaster.example.com. (
2010060200 ; serial number
900 ; refresh
600 ; retry
86400 ; expire
3600 ) ; default TTL
;
; Zone NS records
;
@ NS dc.example.com.
Monday, September 27, 2010
Saturday, September 25, 2010
Заменяем файл-сервер Windows на сервер samba под Ubuntu Linux
Сначала необходимо настроить интеграцию учетных записей linux в домен Active Directory.
Ставим пакеты:
sudo apt-get install winbind krb5-user samba-common-bin
sudo service winbind stop
Создаем файл настройки /etc/samba/smb.conf:
[global]
workgroup = EXAMPLE
server string = %h server
wins server = 172.20.0.97 172.20.0.92
log file = /var/log/samba/%m.log
max log size = 1024
syslog = 0
realm = EXAMPLE.COM
security = ads
idmap backend = hash
idmap uid = 10000-4000000000
idmap gid = 10000-4000000000
winbind nss info = hash
idmap cache time = 1800
winbind refresh tickets = true
winbind cache time = 900
winbind offline logon = true
winbind expand groups = 2
winbind use default domain = No
template homedir = /home/%D/%U
template shell = /bin/bash
kerberos method = secrets and keytab
Добавляем в конце файла /usr/share/pam-configs/winbind
вместо
Session:
optional pam_winbind.so
строки
Session:
optional pam_winbind.so
required pam_mkhomedir.so umask=0022 skel=/etc/skel
Session-Initial:
required pam_mkhomedir.so umask=0022 skel=/etc/skel
Это позволит автоматически создавать каталог администратора, зашедшего на сервер по ssh
Включаем pam модуль:
sudo pam-auth-update
Отмечаем [*] Winbind NT/Active Directory authentication
Заменяем файл /etc/krb5.conf:
[libdefaults]
default_realm = EXAMPLE.COM
default_tgs_enctypes = RC4-HMAC DES-CBC-MD5 DES-CBC-CRC
default_tkt_enctypes = RC4-HMAC DES-CBC-MD5 DES-CBC-CRC
preferred_enctypes = RC4-HMAC DES-CBC-MD5 DES-CBC-CRC
dns_lookup_kdc = true
[realms]
EXAMPLE.COM = {
auth_to_local = RULE:[1:$0\$1](^EXAMPLE\.COM\\.*)s/^EXAMPLE\.COM/EXAMPLE/
auth_to_local = DEFAULT
}
[appdefaults]
pam = {
mappings = EXAMPLE\\(.*) $1@EXAMPLE.COM
forwardable = true
validate = true
}
httpd = {
mappings = EXAMPLE\\(.*) $1@EXAMPLE.COM
reverse_mappings = (.*)@EXAMPLE\.COM EXAMPLE\$1
}
Меняем строки файла /etc/nsswitch.conf:
passwd: compat winbind
group: compat winbind
Включаем в домен:
sudo net ads join -U Administrator
Запускаем winbind
sudo service winbind start
Проверяем работоспособность командой:
id EXAMPLE\\Administrator
При корректной работе будет выведен список групп пользователя EXAMPLE\Administrator.
Добавляем в файл /etc/ssh/ssh_config строки:
GSSAPIAuthentication yes
GSSAPIDelegateCredentials yes
Добавляем в файл /etc/ssh/sshd_config
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
AllowGroups EXAMPLE\netadmins admin root
Это позволит заходить по ssh на сервер членам группы EXAMPLE\netadmins
Разрешаем группе EXAMPLE\netadmins авторизовываться в правами root:
Через команду
sudo visudo
добавляем строку
%EXAMPLE\\netadmins ALL=(ALL) ALL
Интеграция сервера в домен закончена. Теперь участники группы EXAMPLE\netadmins могут заходить по ssh и пользоваться командой sudo.
Настраиваем файл-сервер samba
Устанавливаем пакеты:
sudo apt-get install samba attr acl
Добавляем в вышеприведенный /etc/samba/smb.conf
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=24576 SO_SNDBUF=24576
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
# Enable recycle bin and file acl like on ntfs volume (xfs or ext3/ext4 filesystem needed full acl work only on samba >3.5)
map acl inherit = yes
acl group control = yes
[all]
path = /var/shares/all
read only = no
hide unreadable = no
guest ok = no
veto files = /lost+found/
Создаем файл /etc/samba/recycle.conf
recycle:repository = .Корзина
recycle:keeptree = Yes
recycle:touch = Yes
recycle:versions = Yes
recycle:maxsize = 209715200
recycle:exclude = *.tmp|*.temp|*.o|*.obj|~$*|*.~??|*.TMP
recycle:excludedir = /tmp|/temp|/cache
recycle:noversions = *.doc|*.xls|*.ppt
На сервере отключается поддержка печати и включается расширенная настройка списка доступа на файловой системе, максимально приближеного к NTFS. Поддержка расширенных список доступа и потоков NTFS обеспечивается файловыми системами xfs, ext3, ext4. Монтировать том для ext3/ext4 необходимо с параметром noatime,acl,user_xattr. Для XFS монтировать с параметрами noatime, attr2.
Дополнительно используется vfs-модуль recycle. Он позволяет не удалять файлы а складывать их в каталог .Корзина.
Перенос файлов с Windows сервера.
Для переноса файлов с windows сервера на сервер samba можно использовать утилиту robocopy из Windows Server 2003 Resource Kit Tools
Например, для копирования файлов с сервера srv1 на сервер srv2 выполните команду:
robocopy \\srv1\all \\srv2\all /e /zb /copy:dats /xd DfsrPrivate /purge
На samba сервер нельзя скопировать информацию о владельце файла и протоколе аудита. Поэтому используется параметр /copy:dats. Параметр /xd указывает пропустить каталог DfsrPrivate.
Ставим пакеты:
sudo apt-get install winbind krb5-user samba-common-bin
sudo service winbind stop
Создаем файл настройки /etc/samba/smb.conf:
[global]
workgroup = EXAMPLE
server string = %h server
wins server = 172.20.0.97 172.20.0.92
log file = /var/log/samba/%m.log
max log size = 1024
syslog = 0
realm = EXAMPLE.COM
security = ads
idmap backend = hash
idmap uid = 10000-4000000000
idmap gid = 10000-4000000000
winbind nss info = hash
idmap cache time = 1800
winbind refresh tickets = true
winbind cache time = 900
winbind offline logon = true
winbind expand groups = 2
winbind use default domain = No
template homedir = /home/%D/%U
template shell = /bin/bash
kerberos method = secrets and keytab
Добавляем в конце файла /usr/share/pam-configs/winbind
вместо
Session:
optional pam_winbind.so
строки
Session:
optional pam_winbind.so
required pam_mkhomedir.so umask=0022 skel=/etc/skel
Session-Initial:
required pam_mkhomedir.so umask=0022 skel=/etc/skel
Это позволит автоматически создавать каталог администратора, зашедшего на сервер по ssh
Включаем pam модуль:
sudo pam-auth-update
Отмечаем [*] Winbind NT/Active Directory authentication
Заменяем файл /etc/krb5.conf:
[libdefaults]
default_realm = EXAMPLE.COM
default_tgs_enctypes = RC4-HMAC DES-CBC-MD5 DES-CBC-CRC
default_tkt_enctypes = RC4-HMAC DES-CBC-MD5 DES-CBC-CRC
preferred_enctypes = RC4-HMAC DES-CBC-MD5 DES-CBC-CRC
dns_lookup_kdc = true
[realms]
EXAMPLE.COM = {
auth_to_local = RULE:[1:$0\$1](^EXAMPLE\.COM\\.*)s/^EXAMPLE\.COM/EXAMPLE/
auth_to_local = DEFAULT
}
[appdefaults]
pam = {
mappings = EXAMPLE\\(.*) $1@EXAMPLE.COM
forwardable = true
validate = true
}
httpd = {
mappings = EXAMPLE\\(.*) $1@EXAMPLE.COM
reverse_mappings = (.*)@EXAMPLE\.COM EXAMPLE\$1
}
Меняем строки файла /etc/nsswitch.conf:
passwd: compat winbind
group: compat winbind
Включаем в домен:
sudo net ads join -U Administrator
Запускаем winbind
sudo service winbind start
Проверяем работоспособность командой:
id EXAMPLE\\Administrator
При корректной работе будет выведен список групп пользователя EXAMPLE\Administrator.
Добавляем в файл /etc/ssh/ssh_config строки:
GSSAPIAuthentication yes
GSSAPIDelegateCredentials yes
Добавляем в файл /etc/ssh/sshd_config
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
AllowGroups EXAMPLE\netadmins admin root
Это позволит заходить по ssh на сервер членам группы EXAMPLE\netadmins
Разрешаем группе EXAMPLE\netadmins авторизовываться в правами root:
Через команду
sudo visudo
добавляем строку
%EXAMPLE\\netadmins ALL=(ALL) ALL
Интеграция сервера в домен закончена. Теперь участники группы EXAMPLE\netadmins могут заходить по ssh и пользоваться командой sudo.
Настраиваем файл-сервер samba
Устанавливаем пакеты:
sudo apt-get install samba attr acl
Добавляем в вышеприведенный /etc/samba/smb.conf
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=24576 SO_SNDBUF=24576
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
# Enable recycle bin and file acl like on ntfs volume (xfs or ext3/ext4 filesystem needed full acl work only on samba >3.5)
map acl inherit = yes
acl group control = yes
[all]
path = /var/shares/all
read only = no
hide unreadable = no
vfs objects = recycle acl_xattr streams_xattr
inherit acls = yes
include = /etc/samba/recycle.confguest ok = no
veto files = /lost+found/
Создаем файл /etc/samba/recycle.conf
recycle:repository = .Корзина
recycle:keeptree = Yes
recycle:touch = Yes
recycle:versions = Yes
recycle:maxsize = 209715200
recycle:exclude = *.tmp|*.temp|*.o|*.obj|~$*|*.~??|*.TMP
recycle:excludedir = /tmp|/temp|/cache
recycle:noversions = *.doc|*.xls|*.ppt
На сервере отключается поддержка печати и включается расширенная настройка списка доступа на файловой системе, максимально приближеного к NTFS. Поддержка расширенных список доступа и потоков NTFS обеспечивается файловыми системами xfs, ext3, ext4. Монтировать том для ext3/ext4 необходимо с параметром noatime,acl,user_xattr. Для XFS монтировать с параметрами noatime, attr2.
Дополнительно используется vfs-модуль recycle. Он позволяет не удалять файлы а складывать их в каталог .Корзина.
Перенос файлов с Windows сервера.
Для переноса файлов с windows сервера на сервер samba можно использовать утилиту robocopy из Windows Server 2003 Resource Kit Tools
Например, для копирования файлов с сервера srv1 на сервер srv2 выполните команду:
robocopy \\srv1\all \\srv2\all /e /zb /copy:dats /xd DfsrPrivate /purge
На samba сервер нельзя скопировать информацию о владельце файла и протоколе аудита. Поэтому используется параметр /copy:dats. Параметр /xd указывает пропустить каталог DfsrPrivate.
Доступ к файловым ресурсам Windows с Linux при помощи autofs
Для доступа к файловым ресурсам Windows будем использовать autofs.
Необходимо установить пакеты autofs и smbclient
# apt-get install autofs smbclient
Создаем следующие файлы:
/etc/auto.master:
/var/autofs/cifs /etc/auto.cifs.top
/etc/auto.cifs.top:
* -fstype=autofs,-Dhost=& file:/etc/auto.cifs.sub
/etc/auto.cifs.sub:
* -fstype=cifs,credentials=/home/user1/domain-user.psw,uid=user1,codepage=866,iocharset=utf8 ://${host}/&
В последнем файле мы указываем параметры монтирования smb ресурса. В данном примере в файле /home/user1/domain-user.pws задана учетная запись для подключения к windows компьютерам.
/home/user1/domain-user.psw:
username=user1
password=user1pasword
domain=EXAMPLE
Создаем каталог куда будут монтироваться smb ресурсы.
# mkdir /var/autofs/cifs
# chown user1 /var/autofs/cifs
Перезапускаем autofs
# service autofs restart
Теперь мы можем подключать любой windows ресурс просто обратившись к папке /var/autofs/cifs/{имя сервера}/{имя шары}, например
# ls /var/autofs/vifs/fileserv1/share1
Необходимо установить пакеты autofs и smbclient
# apt-get install autofs smbclient
Создаем следующие файлы:
/etc/auto.master:
/var/autofs/cifs /etc/auto.cifs.top
/etc/auto.cifs.top:
* -fstype=autofs,-Dhost=& file:/etc/auto.cifs.sub
/etc/auto.cifs.sub:
* -fstype=cifs,credentials=/home/user1/domain-user.psw,uid=user1,codepage=866,iocharset=utf8 ://${host}/&
В последнем файле мы указываем параметры монтирования smb ресурса. В данном примере в файле /home/user1/domain-user.pws задана учетная запись для подключения к windows компьютерам.
/home/user1/domain-user.psw:
username=user1
password=user1pasword
domain=EXAMPLE
Создаем каталог куда будут монтироваться smb ресурсы.
# mkdir /var/autofs/cifs
# chown user1 /var/autofs/cifs
Перезапускаем autofs
# service autofs restart
Теперь мы можем подключать любой windows ресурс просто обратившись к папке /var/autofs/cifs/{имя сервера}/{имя шары}, например
# ls /var/autofs/vifs/fileserv1/share1
Tuesday, February 16, 2010
Настраиваем реплицируемый сервер WINS samba4wins на ubuntu linux
Добавляем репозиторий и устанавливаем samba4wins:
$ sudo add-apt-repository ppa:a.bono/samba4wins
$ sudo apt-get update
$ sudo apt-get install samba4wins-ldbtools samba4wins
WINS сервер готов и работает.
Добавим партнера по репликации:
sudo ldbedit -H /var/lib/samba4wins/private/wins_config.ldb -a
и добавляем строки:
dn: CN=WINSSERVER-02,CN=PARTNERS
objectClass: wreplPartner
address: 192.168.9.9
Здесь WINSSERVER-02 - имя сервера с которым настраивается репликация, 192.168.9.9 - его ip адрес.
На сервере WINSSERVER-02 добавляем наш WINS в качестве партнера.
Теперь командой
$ ldbsearch -H /var/lib/samba4wins/wins.ldb
можно вывести дамп всех записей нашего сервера. Количество записей можно узнать командой:
$ ldbsearch -H /var/lib/samba4wins/wins.ldb | grep ^name | wc -l
Протестировать работу WINS сервера можно командой
$ nmblookup -U winsservername -R 'SERRV1'
где winsservername - адрес нашего сервера, 'SERRV1' - имя сервера или рабочей станции, зарегистрировавшейся на WINS сервере.
$ sudo add-apt-repository ppa:a.bono/samba4wins
$ sudo apt-get update
$ sudo apt-get install samba4wins-ldbtools samba4wins
WINS сервер готов и работает.
Добавим партнера по репликации:
sudo ldbedit -H /var/lib/samba4wins/private/wins_config.ldb -a
и добавляем строки:
dn: CN=WINSSERVER-02,CN=PARTNERS
objectClass: wreplPartner
address: 192.168.9.9
Здесь WINSSERVER-02 - имя сервера с которым настраивается репликация, 192.168.9.9 - его ip адрес.
На сервере WINSSERVER-02 добавляем наш WINS в качестве партнера.
Теперь командой
$ ldbsearch -H /var/lib/samba4wins/wins.ldb
можно вывести дамп всех записей нашего сервера. Количество записей можно узнать командой:
$ ldbsearch -H /var/lib/samba4wins/wins.ldb | grep ^name | wc -l
Протестировать работу WINS сервера можно командой
$ nmblookup -U winsservername -R 'SERRV1'
где winsservername - адрес нашего сервера, 'SERRV1' - имя сервера или рабочей станции, зарегистрировавшейся на WINS сервере.
Friday, February 29, 2008
Подключаемся к ssh серверу через прокси сервер
Понадобилось подключиться к ssh серверу сети, единственный вход к которой организован через http/https прокси сервер squid.
Для поддержки данного соединения стандартному ssh клиенту ubuntu понадобится дополнительный пакет:
# apt-get install corkscrew
после этого подключаемся командой:
$ ssh username@server -o ProxyCommand='corkscrew proxy.domain.com 3128 %h %p'
где proxy.domain.com это адрес прокси сервера, работающего на порту 3128
На прокси сервере должно быть разрешено подключаться к порту 22
Можно не указывать -o ProxyCommand в командной строке а задать параметр глобально в файле /etc/ssh/ssh_config:
ProxyCommand corkscrew proxy/domain.com 3128 %h %p
При этом через прокси-сервер будут выполняться все соединения, в том числе kio протокола sftp://. Т.е. можно будет подключаться через krusader и konqueror. Nautilus в gnome к сожалению игнорирует параметры ssh_config и пытается подключиться напрямую.
Для поддержки данного соединения стандартному ssh клиенту ubuntu понадобится дополнительный пакет:
# apt-get install corkscrew
после этого подключаемся командой:
$ ssh username@server -o ProxyCommand='corkscrew proxy.domain.com 3128 %h %p'
где proxy.domain.com это адрес прокси сервера, работающего на порту 3128
На прокси сервере должно быть разрешено подключаться к порту 22
Можно не указывать -o ProxyCommand в командной строке а задать параметр глобально в файле /etc/ssh/ssh_config:
ProxyCommand corkscrew proxy/domain.com 3128 %h %p
При этом через прокси-сервер будут выполняться все соединения, в том числе kio протокола sftp://. Т.е. можно будет подключаться через krusader и konqueror. Nautilus в gnome к сожалению игнорирует параметры ssh_config и пытается подключиться напрямую.
Thursday, February 21, 2008
Авторизуем пользователей Apache в Active Directory
Настраиваем авторизацию Apache 2 (ubuntu 7.10 gutsy) в Active Directory.
Сначала я хотел настроить авторизацию пользователей через модуль pam. Но из-за ошибки в текущем модуле libapache2-mod-auth-pam от данного способа пришлось отказаться.
Мой выбор остановился на модуле authnz_ldap. Итак настраиваем авторизацию через LDAP.
Включаем модуль authnz_ldap и ldap:
# a2enmod authnz_ldap
Настраиваем авторизацию в конфигурационном файле Apache (приведены только необходимые для авторизации команды):
# Отключаем проверку сертификата при ssl подключении к ldap
LDAPVerifyServerCert OFF
AuthType Basic
AuthBasicProvider ldap
# Строка подключения к LDAP серверу (http://httpd.apache.org/docs/2.0/mod/mod_auth_ldap.html#authldapurl)
AuthLDAPURL "ldaps://dc.example.com/ou=dep,dc=firma,dc=com?sAMAccountName?sub?(objectClass=user)" NONE
# Поскольку Active Directory не разрешает анонимные подключения то необходимо указать пользователя и пароль под которым будет выполняться поиск в LDAP
AuthLDAPBindDN "ldapquery@firma.com"
AuthLDAPBindPassword "topsecret"
# Ограничиваем доступ только членам группы subversion в Active Directory. Необходимо указывать memberOf в формате LDAP
require ldap-attribute memberOf=CN=subversion,OU=dep,DC=firma,DC=com
# Информационная строка, которая отображается при запросе пароля
AuthName "Subversion repository"
Если нет необходимости в использование SSL для подключения к LDAP, то команду LDAPVerifyServerCert можно убрать использовать параметр AuthLDAPURL вида "ldap://..."
Сначала я хотел настроить авторизацию пользователей через модуль pam. Но из-за ошибки в текущем модуле libapache2-mod-auth-pam от данного способа пришлось отказаться.
Мой выбор остановился на модуле authnz_ldap. Итак настраиваем авторизацию через LDAP.
Включаем модуль authnz_ldap и ldap:
# a2enmod authnz_ldap
Настраиваем авторизацию в конфигурационном файле Apache (приведены только необходимые для авторизации команды):
# Отключаем проверку сертификата при ssl подключении к ldap
LDAPVerifyServerCert OFF
AuthType Basic
AuthBasicProvider ldap
# Строка подключения к LDAP серверу (http://httpd.apache.org/docs/2.0/mod/mod_auth_ldap.html#authldapurl)
AuthLDAPURL "ldaps://dc.example.com/ou=dep,dc=firma,dc=com?sAMAccountName?sub?(objectClass=user)" NONE
# Поскольку Active Directory не разрешает анонимные подключения то необходимо указать пользователя и пароль под которым будет выполняться поиск в LDAP
AuthLDAPBindDN "ldapquery@firma.com"
AuthLDAPBindPassword "topsecret"
# Ограничиваем доступ только членам группы subversion в Active Directory. Необходимо указывать memberOf в формате LDAP
require ldap-attribute memberOf=CN=subversion,OU=dep,DC=firma,DC=com
# Информационная строка, которая отображается при запросе пароля
AuthName "Subversion repository"
Если нет необходимости в использование SSL для подключения к LDAP, то команду LDAPVerifyServerCert можно убрать использовать параметр AuthLDAPURL вида "ldap://..."
Tuesday, February 12, 2008
JavaScript for adding users to Active Directory
Понадобилось добавить сразу несколько десятков пользователей в Active Directory. Слегка погуглив и не найдя простого решения решил что проще написать скрипт самому. С импортом из Excel или текстового файла решил пока не заморачиваться а просто задавать список пользователей в переменной типа:
var users = "Иванов Петр Сергеевич,Сенкевич Петр Телевизорович";
Доменное имя пользователя формируется из фамилии и инициалов через тире, затем транслитерацией переводится в латиницу вида senkevich-pt.
http://kvadriga.googlecode.com/files/addusers.js
var users = "Иванов Петр Сергеевич,Сенкевич Петр Телевизорович";
Доменное имя пользователя формируется из фамилии и инициалов через тире, затем транслитерацией переводится в латиницу вида senkevich-pt.
http://kvadriga.googlecode.com/files/addusers.js
Subscribe to:
Posts (Atom)