Skip to content

By Тодор in Linux

Digital Living Network Alliance – Нещо модерно и удобно, което набира популярност с доста голяма скорост 😉
Телевизорът ни има DLNA клиент, та трябваше да му спретна и съответен сървър от където да идва и видеото.
Операционна система CentOS 5.5 32bit.
Задължително е да сте добавили rpmforge хранилищата за yum!

# yum -y install ushare

Следва бърза редакция на /etc/ushare.conf:

USHARE_NAME=My_Server
USHARE_IFACE=
USHARE_PORT=
USHARE_TELNET_PORT=
USHARE_DIR=/mnt/md1/files/Movies
USHARE_OVERRIDE_ICONV_ERR=
ENABLE_WEB=
ENABLE_TELNET=
ENABLE_XBOX=
ENABLE_DLNA=yes

И стартиране на услугата:
# /etc/init.d/ushare start

Tags: , , , ,

By Тодор in Linux

Ето как можете да приложите chmod само върху директориите:
find . -type d -exec chmod 755 {} \;

А ето така върху файловете:
find . -type f -exec chmod 644 {} \;

Tags: , , , , ,

By Тодор in FreeBSD, Linux, Solaris, Windows

Налагало ли ви се е да достъпите адрес, който не е достъпен от мрежата в която се намирате, но да е напълно достъпен от друга мрежа (в която имате разположен Apache сървър)?
Ето как:

ProxyRequests Off
ProxyPass / http://foo.example.com/
ProxyPassReverse / http://foo.example.com/

или

ProxyRequests Off
ProxyPass / http://100.110.120.130/
ProxyPassReverse / http://100.110.120.130/

или

ProxyRequests Off
ProxyPass /foo http://foo.example.com/bar
ProxyPassReverse /foo http://foo.example.com/bar

Така, когато се обърнете към http://IP-адреса-на-Apache-сървъра/, той ще препрати заявката ви към крайната точка. По желание може да се ползва запис в HOSTS файла на локалния компютър, за да не се обръщате към Apache сървъра с IP адрес, а с името на недостъпния сайт.

Tags: , , , , ,

By Тодор in Windows

За въведем настройки за прокси на всички потребители в Windows XP/2003/3008/7 е необходимо следното:

Start > Run > gpedit.msc

Като се отвори, в него избираме:

User Configuration > Windows Settings > Internet Explorer Maintenance > Connection

И от дясната страна грейва опцийката Proxy Settings.

Tags: , , ,

By Димо Димов in Windows
  1. Инсталираме Windows server 2008 R2 (виж ръководство за инсталация на Windows 2008 R2)
  2. От мениджмънта на сървъра избираме Add Roles –> Next –> Print and Documents Service

От опцията Add Roles Services можем да избираме какви функции ще изпълнява нашият сървър. В нашият случай ще инсталираме само Print Server  ролята.

  1. Вече имаме работещ сървър сега ще трябва да инсталираме принтери .

За всеки принтер ползваме два вида драйвери 32-битови и 64-битови, които обикновено идват в един пакет с универсални драйвери. Някой ще попита защо 64 и защо  32- битови , защото  R2 е 64-битова ОС а повечето ПК са 32-битови и ще ни трябват драйвери за тях.

Пример :

-Ще  инсталираме принтер HP LaserJet M1522n , който се намира на  IP адрес 192.168.2.8

а) стартираме Print Management от Start menu  на сървъра от появилият се прозорец избираме :

Print Servers –> Print Server (local) –>Printers

Десен бутон с мишката и се отваря меню от което избираме :

Add Printer…

б) Следваме следните стъпки :

Search the  network for printers

От изкочилото меню избираме принтера който желаем

Променяме името на принтера според нашите желания (HPLaserJet8)

В следващите два прозореца  избираме  Next  и след това  Finish

в) Сега трябва да се промрни  64-битовия драйвер от универсалният пакет,   който сме свалили предварително от страницата на НР .

Посочваме новият драйвер  като следваме  менюто (десен бутон в/у принтера –> свойства) НЕ го избираме от листа а избираме опцията Have Disk и избираме съответния драйвер  за 64 битова ОС

г) От менюто (десен бутон в/у принтера –> свойства) избираме плаващият бутон Sharing >  Additional Drivers  и избираме същият драйвер но за 32 битова ОС . Завършваме с инсталацията ОК.

2. Сега трябва да добавим принтера към предварително създадено правило .

а) създаване на правило

Group Policy Management –> Forest –> Domains –> Домейна.на.фирмата –> Droup Policy Objects десен бутон  NEW кръщаваме политиката  Printer Policy

–  след като сме я създали десен бутон и избираме Edit

– избираме Computer configuration –> Windows settings –> Scripts –> Startup

– от появилото се меню избираме Add и добавяме Pushprinterconnections.exe можете да го свалите от тук.

!!! Можем да го направим по същият начин и за User Configuration

б) добавяме  GPO Обекта към  компютъра , групата или към каквото решим.

Рестартираме ПК на , които очакваме да се добавят принтерите

Tags: , ,

By Тодор in Фун

Tags: , ,

By Тодор in Uncategorized, Windows, Мрън-мрън

Та освен, че са доста неудобни за работа с една ръка HTC телефоните с тъч скрийн (Windows mobile) имат и друг ОГРОМЕН пропуск – сортират телефонния указател по „Фамилия, Име“ – доста непрактично според мен.
Единият вариант е да се редактират всички контакти един по един, като за всеки се посочи в опцията „File as“ как желаем да го виждаме.
Имало и малко по-лесенв ариант как да „преобразим“ всички – Contact Changer.
Прикачам и копие на програмчето, за да пробвате.

Contact_changer_v1.3

(Конкретно се възмущавам от HTC Diamond)

Tags: , , , , ,

By Тодор in Linux

За линукс рутери е много добра идея да се следи състоянието на ip_conntrack_count таблциата. Препълни ли се – повече не се препращат заявки. А и чисто статистически е добре да имате идея колко се товари рутера.
Най удобния инструмент за отдалечен мониторинг е SNMP, да но ip_conntrack_count по подразбиране го няма там.
Ето как да си го направим:

Пишем едноредово скриптче, което ще проверява колко конекции са заети (ip_conntrack_count):

#!/bin/bash
cat /proc/sys/net/ipv4/netfilter/ip_conntrack_count

Записваме скрипта в /root/ctrack.sh
Правим го изпълним:
chmod +x /root/ctrack.sh

Някъде към края на snmpd.conf се добавя:
exec conntrac_count /root/ctrack.sh

Правим проверка:

# snmpwalk -v2c -c public localhost .1.3.6.1.4.1.2021.8
UCD-SNMP-MIB::extIndex.1 = INTEGER: 1
UCD-SNMP-MIB::extNames.1 = STRING: conntrac_count
UCD-SNMP-MIB::extCommand.1 = STRING: /root/ctrack.sh
UCD-SNMP-MIB::extResult.1 = INTEGER: 0
UCD-SNMP-MIB::extOutput.1 = STRING: 44234
UCD-SNMP-MIB::extErrFix.1 = INTEGER: 0
UCD-SNMP-MIB::extErrFixCmd.1 = STRING:

Изхода от скриптчето вече се вижда в UCD-SNMP-MIB::extOutput.1.

Сигурно стопляте колко мощен е този инструмент. Може да се добави и роботче за проверка на температурата на хард дисковете с нещо от сорта на:
/usr/sbin/smartctl -A /dev/hdа | grep -i temperaturе | awk '{print  $10}'

Въпрос на фантастика 😉
Честито на успелите!

Tags: , , , , ,

By Тодор in Мрън-мрън

Tags: ,

By Тодор in Linux

Това е елементарна защита на хост с отворен достъп по SSH. Налага се поради огромния брой сканиращи роботчета и злонамерени персонажи, които опитват да налучкат пароли за достъп.
Логиката на тази защита е – следи се лог файла /var/log/secure и при наличие на повече от 5 грешни опита за влизане през SSH блокира достъпа на IP адреса чрез iptables правило.

Изваждане на списъка с „провинилите“ се адреси:

# cat /var/log/secure | grep "]: Failed " | awk -F "from " '{print $2}' | awk '{print $1}' | sort | uniq -d -c | awk '{if ($1 > 5) print $2}' > /ssh-banned.txt
(всичко е на един ред)

Всички адреси, които са правили повече от 5 неуспешни опита да влязат през SSH ще се запишат в /ssh-banned.txt.

Следва да се блокира достъпа на тези адреси.
Добавя се това в началото на firewall скрипта, който ползвате:

#!/bin/bash
SSHBAN=/ssh-banned.txt
if [ -f $SSHBAN ]; then
    for BAN_IP in `cat $SSHBAN`
        do
            iptables -A INPUT -s $BAN_IP -j DROP
        done
fi

Скрипта парсва файла с адресите и добавя блокиращо iptables правило за всеки адрес от него.

За автоматизиране се добавя в cron:

*/10 * * * * cat /var/log/secure | grep "]: Failed " | awk -F "from " '{print $2}' | awk '{print $1}' | sort | uniq -d -c | awk '{if ($1 > 5) print $2}' > /ssh-banned.txt && /etc/rc.d/rc.fw

Приемам че firewall-ът е в /etc/rc.d/rc.fw, необходимо е дой да се стартира винаги след като списъка с баннатите адреси се опредни. Променете го с пътя до вашия.

(Примерът е за Red Hat базирани дистрибуции)

Tags: , , , , ,

By Тодор in FreeBSD, Linux, Solaris, Windows

Наистина могат да се намерят 49582638 причини да ползвате прокси – няма да изброявам нито една.
Бърз, лесен и най-вече сигурен начин е ползването на SSH прокси. Т.е. трафикът ви се прекарва през SSH тунел до „точката за достъп до Интернет“ (проксито).

Конфигурира се PuTTY да направи тунел до отстрешната страна:
PuTTY Tunnel setup

PuTTY Tunnel setup

По желание може да се ползва и компресиране на трафика:
PuTTY Tunnel setup - compression

Закачайки се за отсрещния хост с SSH вече имате изграден тунел през локален TCP порт 45678. Не е задължително да ползвате root за да се логнете, всъщност най-добре да е ограничен акаунт с лимитиран шел – вместо bash, променете го на lynx да кажем.

Конфигурация на браузъра да ползва тунела:
Firefox SOCKS using SSH tunnel

Почти всяко мрежово програмче включително skype може да ползва SOCKS проксиране – настройва се елементарно, както виждате 🙂

Можете да споделите въпросите си в коментарите.

Tags: , , , , ,

By Тодор in FreeBSD, Linux, Solaris, Windows

Налага се някои сайтове да са защитени с парола ползвайки basic механизъма на Apache или друг подобен. Сайтовете са защитени наистина… докато някой не открадне паролата, а това е лесно – много хора ползват елементарни пароли от сорта на „12345“, името си, фамилията, ЕГН, телефонен номер и т.н. Паролата може да бъде записана на листче, някой може да види какво натискате по клавиатурата и пак да бъде открадната.
Един по-добър метод е ползването на клиентски сертификати. В баузъра на клиента има инсталиран сертификат, който го идентифицира пред сървъра при опит за отваряне на защитен сайт. Сървърът предоставя достъп само на валидни за него сертификати.
Казах „по-добър метод“, което означава, че кражбата на сертификата е по-трудна от кражбата на парола. Значително по-трудна.

Създаваме СА (Certificate Authority):

<strong># openssl genrsa -aes256 -out ca.key 2048</strong>
Generating RSA private key, 2048 bit long modulus
..............+++
...................................................................+++
e is 65537 (0x10001)
Enter pass phrase for ca.key:
Verifying - Enter pass phrase for ca.key:

Добре е да сложим парола на личният ключ – ако някой го докопа ще може да си вади колкото си иска сертификати с него.

<strong># openssl req -new -x509 -days 3650 -key ca.key -out ca.crt</strong>
Enter pass phrase for ca.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:BG
State or Province Name (full name) [Berkshire]:Plovdiv
Locality Name (eg, city) [Newbury]:Plovdiv
Organization Name (eg, company) [My Company Ltd]:Kamenitza.ORG
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:Kamenitza.ORG
Email Address []:

Common Name: – името на организацията, която ще притежава сертификата, не е нужно да е интернет адрес.

Следва да се създаде потебителският сертификат:

<strong># openssl genrsa -out ivan.key 2048</strong>
Generating RSA private key, 2048 bit long modulus
.....................+++
..................................................................................+++
e is 65537 (0x10001)
<strong># openssl req -new -key ivan.key -out ivan.csr</strong>
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:BG
State or Province Name (full name) [Berkshire]:Plovdiv
Locality Name (eg, city) [Newbury]:Plovdiv
Organization Name (eg, company) [My Company Ltd]:Kamenitza.org
Organizational Unit Name (eg, section) []:KO
Common Name (eg, your name or your server's hostname) []:Ivan Ivanov
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
<strong># openssl x509 -req -in ivan.csr -out ivan.crt -sha1 -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650</strong>
Signature ok
subject=/C=BG/ST=Plovdiv/L=Plovdiv/O=Kamenitza.org/OU=KO/CN=Ivan Ivanov
Getting CA Private Key
Enter pass phrase for ca.key:
<strong># openssl pkcs12 -export -in ivan.crt -inkey ivan.key -name "Ivan Ivanov Cert" -out ivan.p12</strong>
Enter Export Password:
Verifying - Enter Export Password:

Паролата сложена тук се ползва при инсталацията на сертификата. Без нея не може да бъде импортнат в браузъра.

ivan.p12 – е потребителският сертификат, който трябва да се внесе в браузъра на клиента.

За да ограничим достъпа до дадена директория от сайт слагаме това в .htaccess файла:

SSLVerifyClient require
SSLVerifyDepth 1

Или в <directory> на конфигурационния файл на Apache.

Но най-важното е да кажем на Apache, кои са „доверените“ сертификати и как да ги познава. За това трябва да се постави този ред в конфигурационният файл на Apache:

SSLCACertificateFile /ssl/ca/ca.crt

(естествено заменете пътя с вашия)

След рестартиране на Апача всичко би трябвало да работи.

(В статията приемам, че сайтът е вече конфигуриран успешно да работи с SSL сертификат през HTTPS)

Tags: , , , , , ,

By Тодор in FreeBSD, Linux, Solaris, Windows

IIS а и много други програми ползват сертификати в pkcs12 формат (и публичният и частният ключ се съхраняват в един файл – PFX).

openssl pkcs12 -export -in my.crt -inkey my.key -certfile my.bundle -out my.pfx

Tags: , , , , , , , ,

By Тодор in Uncategorized, Windows

wmic product get /format:csv > Software_%Computername%.csv

Списъкът ще бъде експортнат в CSV файла.

Tags: , , , , ,