четвъртък, ноември 03, 2011

Basic DNS and Mail Troubleshooting

За следващото обучение/презентация

DNS Troubleshooting

DNS server - server who is answering on DNS queries
DNS query - major function: convert IP-to-NAME/NAME-to-IP
FQDN - Fully Qualified Domain Name (name=mail fqdn=mail.evolink.com)

DNS server types:
    * Master/Primary - server which gets its zone data from a local source (zone/domain files are stored on a local storage)
    * Secondary/Slave - hich gets its zone/domain data from an external source (from master for example)
    * Cache - jsut caching results of DNS queries for a pre-defined time interval (depends of TTL)
    * Forwarder - just redirect dns queries from client to another DNS
    * SplitHorizont Server - ACL view/Geographic Mapping (Google DNS )
---------------------------------------------------------------------------------------------
    * Iterative - only answer information they know or have cached (Master/Slave/Cache)
    * Recursive - know how and who to ask for information (Master/Slave/Forwarder)

DNS types of record

    * Host (A) -- This is the basic mapping of IP address to host name, the essential component for any domain name.
    * Canonical Name (CNAME) -- This is an alias for your domain. Anyone accessing that alias will be automatically directed to the server indicated in the A record.
    * Mail Exchanger (MX) -- This maps e-mail traffic to a specific server. It could indicate another host name or an IP.
    * Name Server (NS) -- This contains the name server information for the zone. Server will let other DNS servers know that yours is the ultimate authority (SOA) for your domain when caching lookup information on your domain from other DNS servers around the world.
    * Start of Authority (SOA) -- This is one larger record at the beginning of every zone file with the primary name server for the zone and some other information.
    * Pointer record (PTR) -- Responsible for reverse DNS resolution (rDNS) - determination of a domain name that is associated with a given IP address

Durty (but not right) way to check Is DNS server working

telnet DNS.IP.ADD.RESS 53
nmap  DNS.IP.ADD.RESS

Ask specific server

dig @DNS.IP.ADD.RESS mail.evolink.com

nslookup
    server DNS.IP.ADD.RESS
    mail.evolink.com

Ask specific server for certain type of RR

dig @DNS.IP.ADD.RESS -t [NS/MX/A/CNAME/TXT/...ALL] mail.evolink.com

nslookup
    server DNS.IP.ADD.RESS
    set type=[NS/MX/CNAME/etc]
    mail.evolink.com

Ask for PTR RR

dig -x 194.12.255.146 +short
nslookup
    set type=PTR
    194.12.255.146
ping -a 194.12.255.146

Trace DNS communication

dig @8.8.8.8 mail.evolink.com +trace

Recomended resources:
Understanding DNS - http://technet.microsoft.com/en-us/library/cc728412%28WS.10%29.aspx
DNS for Rocket Scientist : http://www.zytrax.com/books/dns/

Mail Troubleshooting

e-mail servers function : nothing more than sends piece of text over the Internet

Major Steps : MUA > MSA > MTA > … > MTA > MDA >> MRA >> MUA

MUA - Mail User Agent - end user's mail client (MS Outlook, Thunderbird, WEB Browser, etc)
MSA - Mail submission agent - complicated, but treat it like a borderline MTA (kind of SMTP proxy or smart host for example)
MTA - Mail Transfer Agent - A true mail server (exim, postfix, qmail, exchange)
MDA - Mail Delivery Agent - performs the actual delivery including process "filtering" (auto-replay, white/black lists, spamassassin, amavis, AV, etc)
MRA - Mail Retrival Agent - POP(s)/IMAP(s) services (cyrus, courier, dovecot, qmail)

What's realy happen after hitting SEND button:

1. MUA looks in their settings and find outgoing mail server entry
2. MUA perform DNS lookup to convert NAM-IP
3. MUA perform route/arp/etc lookup to find route out to outgoing mail server destination
4. SEnding MTA perform DNS lookup to find MX record (respect MX priority), ask Receiving MTA to accept message and send that message
5. Receiving MTA perform initial check and accept/reject mail (message format check, WL/BL check, AV check etc)
6. MDA perform some additional checks and manipulations and deliver mail to users home foleders (SPAM check and classification, rewrite, re-route, etc)
7. MRA is waiting for connections via well-known protocols/ports
8. MUA authenticate/connect to MRA and get mails

Troubleshooting tools: nmap, telnet, mail-message source

MTA     SMTP  - tcp/25
            SMTPs - tcp/465
MRA     POP3  - tcp/110
            POP3s - tcp/995
            IMAP  - tcp/143
            IMAPs - tcp/993

Successful communication (MTA service is working)

telnet mail.example.com 25
Trying 11.12.13.14...
Connected to mail.example.com.
Escape character is '^]'.
220  ESMTP
ehlo privet
250-
250-STARTTLS
250-PIPELINING
250-8BITMIME
250-SIZE 20971520
250 AUTH LOGIN PLAIN CRAM-MD5
quit
221
Connection closed by foreign host.

Unsuccessful communication (no running MTA service or firewall issue)

telnet mail.example.net 25
Trying 1.2.3.4...
telnet: Unable to connect to remote host: Connection refused

SMTP command

   * HELO - introduce yourself
    * EHLO - introduce yourself and request extended mode
    * MAIL FROM: - specify the sender
    * RCPT TO: - specify the recipient
    * DATA - specify the body of the message (To, From and Subject should be the first three lines.)
    * RSET - reset
    * QUIT - quit the session
    * HELP - get help on commands
    * VRFY - verify an address
    * EXPN - expand an address
    * VERB - verbose

POP3 commands

    * USER - enter your user ID
    * PASS - enter your password
    * QUIT - quit the POP3 server
    * LIST - list the messages and their size
    * RETR - retrieve a message, pass it a message number
    * DELE - delete a message, pass it a message number
    * TOP - show the top x lines of a message, pass it a message number and the number of lines

Sending mail via telnet

telnet example.com 25
ehlo example.com
mail from: username@example.com
rcpt to: friend@hotmail.com, friend2@yahoo.com
data
Subject: Send mail via telnet
I was here!
.

Check or read email with telnet

user username@example.com
pass passwordgoeshere
list
retr 2
dele 1
quit

Reading mail-message source

Full mail-message header example: (spammer's mail address and IP intentionaly leaved as is)

Return-Path: <0-chinomi@akita-pu.ac.jp>
X-Original-To: mailinglist_or_mail.alias@example.com
Delivered-To: me@example.com
Received: from localhost (localhost [127.0.0.1])
    by mail.example.com (Postfix) with ESMTP id 9872A8221A2
    for <mailinglist_or_mail.alias@example.com>; Thu, 3 Nov 2011 12:31:01 +0300 (EEST)
X-Virus-Scanned: Debian amavisd-new at mail.example.com
X-Spam-Flag: NO
X-Spam-Score: 9.372
X-Spam-Level: *********
X-Spam-Status: No, score=9.372 tagged_above=2 required=14.31
    tests=[BAYES_99=3.5, DCC_CHECK=2.17, DIGEST_MULTIPLE=0.001,
    PYZOR_CHECK=3.7, UNPARSEABLE_RELAY=0.001]
Received: from mail.example.com ([127.0.0.1])
    by localhost (mail.example.com [127.0.0.1]) (amavisd-new, port 10024)
    with ESMTP id Fm+2o1grwwo5 for <mailinglist_or_mail.alias@example.com>;
    Thu, 3 Nov 2011 12:30:29 +0300 (EEST)
Received: by mail.example.com (Postfix, from userid 5001)
    id 0A1948221A6; Thu, 3 Nov 2011 12:30:29 +0300 (EEST)
Received-SPF: none (akita-pu.ac.jp: No applicable sender policy available) receiver=mail.example.com;
identity=mailfrom; envelope-from="0-chinomi@akita-pu.ac.jp"; helo="[59.94.251.160]"; client-ip=59.94.251.160
Received: from [59.94.251.160] (unknown [59.94.251.160])
    by mail.example.com (Postfix) with ESMTP id 95C9382219D
    for <mailinglist_or_mail.alias@example.com>; Thu, 3 Nov 2011 12:30:28 +0300 (EEST)
Received: from  59.94.251.160 (account <mailinglist_or_mail.alias@example.com> HELO example.com)
    by example.com (CommuniGate Pro SMTP 5.2.3)
    with ESMTPA id 168978161 for <mailinglist_or_mail.alias@example.com>; Thu, 3 Nov 2011 15:00:27 +0530
From: <something@somewhere.xxl>
To: <mailinglist_or_mail.alias@example.com>
Subject: Administrative Assistant Vacancy
Date: Thu, 3 Nov 2011 15:00:27 +0530

Return-Path: - contains FQDN of originating sender. Cannot be forged. From where realy mail comes
X-Original-To: - original send-to destination
Delivered-To: - to wich mailbox this email was delivered
Received: - added to the envelope header for each step of the host-to-host delivery process. Include address of sending MTA, local (for MTA) date and time of message transfer and type of used application
X-Virus/X-SPAM/Received-SPF - some additional checks with basic information about who-chek-what
From: - can be anything including google@boiko.borisov.yes
To: - content in TO field on sending MUA
Subject: - can be re-writed by MDA, corporate policy, etc
Date: - this field is set by originating (sending) host [realy clever way to place your message on-top of received messages in recipient's mailbox]

 

Basic DNS & Mail troubleshooting

За следващото обучение/презентация

MAIL TROUBLESHOOTING

e-mail servers function : nothing more than sends piece of text over the Internet
Major Steps : MUA > MSA > MTA > … > MTA > MDA >> MRA >> MUA
MUA - Mail User Agent - end user's mail client (MS Outlook, Thunderbird, WEB Browser, etc)
MSA - Mail submission agent - complicated, but treat it like a borderline MTA (kind of SMTP proxy or smart host for example)
MTA - Mail Transfer Agent - A true mail server (exim, postfix, qmail, exchange)
MDA - Mail Delivery Agent - performs the actual delivery including process "filtering" (auto-replay, white/black lists, spamassassin, amavis, AV, etc)
MRA - Mail Retrival Agent - POP(s)/IMAP(s) services (cyrus, courier, dovecot, qmail)
What's realy happen after hitting SEND button:
1. MUA looks in their settings and find outgoing mail server entry
2. MUA perform DNS lookup to convert NAM-IP
3. MUA perform route/arp/etc lookup to find route out to outgoing mail server destination
4. SEnding MTA perform DNS lookup to find MX record (respect MX priority), ask Receiving MTA to accept message and send that message
5. Receiving MTA perform initial check and accept/reject mail (message format check, WL/BL check, AV check etc)
6. MDA perform some additional checks and manipulations and deliver mail to users home foleders (SPAM check and classification, rewrite, re-route, etc)
7. MRA is waiting for connections via well-known protocols/ports
8. MUA authenticate/connect to MRA and get mails
Troubleshooting tools: nmap, telnet, mail-message source
MTA SMTP - tcp/25
SMTPs - tcp/465
MRA POP3 - tcp/110
POP3s - tcp/995
IMAP - tcp/143
IMAPs - tcp/993
Successful communication (MTA service is working)
telnet mail.evolink.com 25
Trying 194.12.255.146...
Connected to mail.evolink.com.
Escape character is '^]'.
220 ESMTP
ehlo privet
250-
250-STARTTLS
250-PIPELINING
250-8BITMIME
250-SIZE 20971520
250 AUTH LOGIN PLAIN CRAM-MD5
quit
221
Connection closed by foreign host.
Unsuccessful communication (no running MTA service or firewall issue)
telnet linkstat.evolink.net 25
Trying 85.14.44.7...
telnet: Unable to connect to remote host: Connection refused
SMTP command
* HELO - introduce yourself
* EHLO - introduce yourself and request extended mode
* MAIL FROM: - specify the sender
* RCPT TO: - specify the recipient
* DATA - specify the body of the message (To, From and Subject should be the first three lines.)
* RSET - reset
* QUIT - quit the session
* HELP - get help on commands
* VRFY - verify an address
* EXPN - expand an address
* VERB - verbose
POP3 commands
* USER - enter your user ID
* PASS - enter your password
* QUIT - quit the POP3 server
* LIST - list the messages and their size
* RETR - retrieve a message, pass it a message number
* DELE - delete a message, pass it a message number
* TOP - show the top x lines of a message, pass it a message number and the number of lines
Sending mail via telnet
telnet example.com 25
ehlo example.com
mail from: username@example.com
rcpt to: friend@hotmail.com, friend2@yahoo.com
data
Subject: Send mail via telnet
I was here!
.
Check or read email with telnet
user username@example.com
pass passwordgoeshere
list
retr 2
dele 1
quit
Reading mail-message source
Full mail-message header example: (spammer's mail address and IP intentionaly leaved as is)
Return-Path: <0-chinomi akita-pu.ac.jp="">
X-Original-To: mailinglist_or_mail.alias@example.com
Delivered-To: me@example.com
Received: from localhost (localhost [127.0.0.1])
by mail.example.com (Postfix) with ESMTP id 9872A8221A2
for ; Thu, 3 Nov 2011 12:31:01 +0300 (EEST)
X-Virus-Scanned: Debian amavisd-new at mail.example.com
X-Spam-Flag: NO
X-Spam-Score: 9.372
X-Spam-Level: *********
X-Spam-Status: No, score=9.372 tagged_above=2 required=14.31
tests=[BAYES_99=3.5, DCC_CHECK=2.17, DIGEST_MULTIPLE=0.001,
PYZOR_CHECK=3.7, UNPARSEABLE_RELAY=0.001]
Received: from mail.example.com ([127.0.0.1])
by localhost (mail.example.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id Fm+2o1grwwo5 for ;
Thu, 3 Nov 2011 12:30:29 +0300 (EEST)
Received: by mail.example.com (Postfix, from userid 5001)
id 0A1948221A6; Thu, 3 Nov 2011 12:30:29 +0300 (EEST)
Received-SPF: none (akita-pu.ac.jp: No applicable sender policy available) receiver=mail.example.com;
identity=mailfrom; envelope-from="0-chinomi@akita-pu.ac.jp"; helo="[59.94.251.160]"; client-ip=59.94.251.160
Received: from [59.94.251.160] (unknown [59.94.251.160])
by mail.example.com (Postfix) with ESMTP id 95C9382219D
for ; Thu, 3 Nov 2011 12:30:28 +0300 (EEST)
Received: from 59.94.251.160 (account HELO example.com)
by example.com (CommuniGate Pro SMTP 5.2.3)
with ESMTPA id 168978161 for ; Thu, 3 Nov 2011 15:00:27 +0530
From:
To:
Subject: Administrative Assistant Vacancy
Date: Thu, 3 Nov 2011 15:00:27 +0530
Return-Path: - contains FQDN of originating sender. Cannot be forged. From where realy mail comes
X-Original-To: - original send-to destination
Delivered-To: - to wich mailbox this email was delivered
Received: - added to the envelope header for each step of the host-to-host delivery process. Include address of sending MTA, local (for MTA) date and time of message transfer and type of used application
X-Virus/X-SPAM/Received-SPF - some additional checks with basic information about who-chek-what
From: - can be anything including google@boiko.borisov.yes
To: - content in TO field on sending MUA
Subject: - can be re-writed by MDA, corporate policy, etc
Date: - this field is set by originating (sending) host [realy clever way to place your message on-top of received messages in recipient's mailbox]

понеделник, октомври 10, 2011

Cisco packet switching

Here is the short description of what happens at physical level with those three switching methods:

There are the following components in shared memory router:
1. Central CPU - RISC processor in older routers or custom ASIC in newer.
2. Interface ASIC - responsible for receiving/sending packets from/to physical media.
3. Memory - Divided between main memory accessible by central CPU and iomem accessible by interface ASICs.

Process switching:
1. Packet arrives at ingress interface.
2. Ingress ASIC puts packet to iomem and interrrupts main CPU.
3. Main CPU copy packet from iomem to main memory.
4. IOS routing process checks routing table and decides which interface is egress.
5. Packet's L3 and L2 headers are modified and packet is copied to iomem into egress interface output queue.
6. Egress ASIC gets packet from the queue and sends.

Fast switching:
1. Packet arrives at ingress interface.
2. Ingress ASIC puts packet to iomem and interrrupts main CPU.
3. Main CPU copy packet from iomem to main memory.
4. IOS checks if this dest is already in cache-memory. If so all L3 and L2 information is there. If not IOS routing process is invoked and result is copied into fast cache.
5. Packet's L3 and L2 headers are modified and packet is copied to iomem into egress interface output queue.
6. Egress ASIC gets packet from the queue and sends.

CEF switching
1. Packet arrives at ingress interface.
2. Ingress ASIC puts packet to iomem, checks FIB and determines next-hop entry in adjacency table.
3. If packet is CEF-switchable modify L3 header and replace L2 header with the header from adjacency table. If not CEF switchable fallback to fast switching or process switching.
4. iomem area that contains packet is linked to the output queue of egress ASIC.
5. Egress ASIC gets packet from the queue and sends.

There are some nuances but above is basic idea of what happens. Notice that with CEF central CPU and main memory don't get involved in the switching process.
High-end routers work in the similar way but instead of central CPU and memory line-card's CPU and memory are used for the dCEF.

source: https://learningnetwork.cisco.com/message/22503#22503

четвъртък, октомври 06, 2011

Console

Това което променям на Linux console [debian and derivates](глезотийка ама красотата ще промени света)
/etc/update-motd.d
/etc/update-motd.d$ diff 00-header ../update-motd.d.orig/00-header
< printf "%s\n" < printf "%s\n" "$(hostname -f) $(lsb_release -s -d)" < printf "%s\n" --- > uname -a
> printf "%s\n" "$(lsb_release -s -d)"

Manualy edit ~/.bashrc
timestamp in history
export HISTTIMEFORMAT="%F %T ""
Да се записват в history и дупликатите
#export HISTCONTROL=ignoredups
fancy colors on man-pages
export PAGER="/usr/bin/most -s"
(apt-get install most)

fancy epigram on login
fortune /usr/share/games/fortunes/bg | cowsay -b -f /usr/share/cowsay/cows/tux.cow -n
(apt-get install fortune-mod fortunes-bg cowsay)
Color promt
case "$TERM" in
xterm*|rxvt*)
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"';;
*) ;;
esac
Aliases:
alias ls='ls -alh --color=auto'
alias grep='grep -i --color=auto' # -i ignore case
alias rm='rm -i' # interactive -> ask before delete can be overrode with -f(orce)
alias mv='mv -i' # interactive -> ask before delete can be overrode with -f(orce)

Junos
edit
set system login message "\n Thinking doesn't hurt anyone! \n"
commit and-quit
[sho ver and haiku]

Mikrotik RouterOS
file edit sys-note.txt
paste от тук нещо по избор примерно

ToDo: да си довърша research-a за cmd replacement и въобще shell change

вторник, септември 27, 2011

Жизнь в 100 словах:

В стил Александър Блок или Безглаголното стихотворение на Радой Ралин но пък ми харесва
Колыбель. Пеленки. Плач.
Слово. Шаг. Простуда. Врач.
Беготня. Игрушки. Брат .
Двор. Качели. Детский сад.
Школа. Двойка. Тройка. Пять.
Мяч. Подножкам. Гипс. Кровать.
Драка. Кровь. Разбитый нос.
Двор. Друзья. Тусовка. Форс.
Институт. Весна. Кусты.
Лето. Сессия. Хвосты.
Пиво. Водка. Джин со льдом.
Кофе. Сессия. Диплом .
Романтизм. Любовь. Звезда.
Руки. Губы. Ночь без сна.
Свадьба. Теща. Тесть. Капкан.
Ссора. Клуб. Друзья. Стакан.
Дом. Работа.
Дом. Семья.
Солнце. Лето.
Снег. Зима.
Сын. Пеленки. Колыбель.
Стресс. Любовница. Постель.
Бизнес. Деньги. План. Аврал.
Телевизор. Сериал.
Дача. Вишни. Кабачки.
Седина. Мигрень. Очки.
Внук. Пеленки. Колыбель.
Стресс. Давление. Постель.
Сердце. Почки. Кости. Врач.
Речи. Гроб. Прощанье. Плач

събота, август 20, 2011

CentOS yum

Някакъв наличен сървър с MySQL който трябва да се мигрира към PostgreSQL

cat /etc/issue.net
CentOS release 5.5 (Final)
Kernel \r on an \m

Драмата:
[root@db ~]# yum list postgres
Traceback (most recent call last):
File "/usr/bin/yum", line 28, in ?
import yummain
ImportError: No module named yummain
[root@db ~]# yum search postgresql
Traceback (most recent call last):
File "/usr/bin/yum", line 28, in ?
import yummain
ImportError: No module named yummain

Проверката:
ls -lh /usr/share/yum-cli/
total 552K
-rw-r--r-- 1 root root 8.4K Feb 1 2011 callback.py
-rw-r--r-- 1 root root 6.1K Feb 1 2011 callback.pyc
-rw-r--r-- 1 root root 6.1K Feb 1 2011 callback.pyo
-rw-r--r-- 1 root root 58K Feb 1 2011 cli.py
-rw-r--r-- 1 root root 43K Feb 1 2011 cli.pyc
-rw-r--r-- 1 root root 43K Feb 1 2011 cli.pyo
-rw-r--r-- 1 root root 53K Feb 1 2011 output.py
-rw-r--r-- 1 root root 45K Feb 1 2011 output.pyc
-rw-r--r-- 1 root root 45K Feb 1 2011 output.pyo
-rw-r--r-- 1 root root 13K Feb 1 2011 shell.py
-rw-r--r-- 1 root root 9.9K Feb 1 2011 shell.pyc
-rw-r--r-- 1 root root 9.9K Feb 1 2011 shell.pyo
-rw-r--r-- 1 root root 4.8K Feb 1 2011 utils.py
-rw-r--r-- 1 root root 4.4K Feb 1 2011 utils.pyc
-rw-r--r-- 1 root root 4.4K Feb 1 2011 utils.pyo
======> липсват
yummain.* & yumcommands.*

Dirty fix:
RPM Advanced Search
wget ftp://ftp.muug.mb.ca/mirror/centos/5.6/os/i386/CentOS/yum-3.2.22-33.el5.centos.noarch.rpm
rpm -Uv yum-3.2.22-33.el5.centos.noarch.rpm
yum update
--------------
Transaction Summary
================================================================================
Install 4 Package(s)
Upgrade 158 Package(s)

Total download size: 211 M
Is this ok [y/N]: y

понеделник, август 08, 2011

ESXi on Dell PowerEdge T710

+ iDRAC 6 Enterprise - големи гадове са тезиот Dell ... стандартният iDRAC модул без enterprise лиценз за 350$ никаква работа не върши. През него можеш само да рестартираш сървъра
Инсталация на 64b OS - ала-бала this host is VT-capable but VT disabled. Още ала-бала; For detailed information see http://vmware.com/info?id=152.
Там нищо интересно не пише ама пък то си е ясно
Restart през iDRAC-a; F2; BIOS; Processor Settings; Virtualization Technology - от Disabled на Enabled
Интересно защо инсталацията на 32b OS не се оплаква за изключено VT, а тази за 64b реве?

сряда, юли 13, 2011

Zimbra OpenSource + LDAP (MS AD DS) integration

Setup:
Windows 2008 RC (NIC: private IP), Ubuntu LTS 10.04.2 (eth1:public routable IP, eth2:private IP), Zimbra CS Open Source (zmcontrol -v Release 7.1.1_GA_3196.UBUNTU10_64 UBUNTU10_64 FOSS edition.)
Windows 2008 up and running MS Active Directory Domain Services
Ubuntu - virtual machine on ESXi 4.1 (4x CPU core + 4G of RAM) --> start install - next-next - finish. Това което трябва да се има предвид е:
1. Освен /etc/hosts; /etc/hostname == FQDN; /etc/mailname валиден MX запис за домейна е задължителен
2. apt-get remove --purge --umri_v_kofite_s_bokluk apparmor
3. rm -f /bin/sh и ln -s /bin/bash /bin/sh --> иначе умира slapd и оставаш без коса (или перчем) от скубане
Zimbra install - ./install.sh - YES/ENTER - finish.Инсталира си self signed certificates освен за всичко останало и за криптиране/аутентифициране на комуникацията м/у процесите си - ако имам някой multi cluster / cloud където имам по машина за процес ОК ама иначе ...
Ще изреве за някой и друг пакет ама apt-get/aptitude ги има
https://zimbra.domain.com:7071/zimbraAdmin
AD (ldap) integration -
1. zimbra user в АД-то - не пише, че трябва ама ... направих си и не съжалявам
2. http://wiki.zimbra.com/wiki/LDAP_Authentication#Configuring_external_LDAP_authentication - помага... LDAP over SSL = 3 дни борба м/у MS AD integrated CA/Zimbra self-signed/Other bulshits и няма EndUser authentication via MS Active Directory и го зарязах (L2 tunnel ще е по-лесно или да си живеят в LAN-a)
Пръчка: в Open Source версията няма автоматичен импорт на AD users (* CN=users,dn=domain,dn=com) в другите - незнам
Преди това: Admin Console: mail.domain.com:7071/zimbraAdmin - domains - needed domain - Configure Authentication - Active Directory - магьосника си знае работата
3. Manualy add users from AD to Zimbra
a) zmprov -l ca Pencho@domain.com Pencho's_(LDAP)Pass displayName "Pencho e Pich" -- Мъка за повечко хора - не съм го пробвал
б) http://wiki.zimbra.com/wiki/User_Migration - IMAP migrationa работи- за друго незнам
в) http://wiki.zimbra.com/index.php?title=Bulk_Provisioning#LDAP_Users_to_Zimbra_Accounts -- ldap2zm -h adserver -u administrator -p s3cr3t -b "DC=example,DC=com" -f '(memberOf=CN=Zimbra Users,OU=Employees,DC=example,DC=com)' имаше някакви малки драми ама... яде се... иначе е като Лада Нива - работи
Сертификатите - ако е до self signed - няма драма; по manual - ако сам си направя CSR от сървъра и го пратя да го подпишат и да ми върнат истински - пак трябва да сме ОК, но ако имам пратен по мейл от GlobalSign CEDS%date%SN.pfx --
Средна пръчка:
Convert to PEM: openssl pkcs12 -in filename.pfx -clcerts -nokeys -out commercial.crt
Export private key: openssl pkcs12 -in filename.pfx -nocerts -out commercial.key
Removepassphrase: openssl rsa -in commercial.key -out commercial.key
правилният manual: http://wiki.zimbra.com/index.php?title=Preexisting_Certifcate_Installation_for_Zimbra_6.0&oldid=24499
Голяма пръчка:
при # /opt/zimbra/bin/zmcertmgr addcacert /opt/zimbra/ssl/zimbra/commercial/commercial.crt
Получавам:
** Importing certificate /opt/zimbra/ssl/zimbra/commercial/commercial.crt to CACERTS as zcs-user-commercial...failed.
XXXXX ERROR: failed to import certficate.
keytool error: java.lang.Exception: Input not an X.509 certificate

И нищо не се стартира /тръгва като хората (добре че ESXi има Snapshots иначе тази игра не ми се играе)
Solution:
cat /opt/zimbra/ssl/zimbra/commercial/commercial.crt
Bag Attributes
localKeyID: ala-bala
subject=ala-bala
issuer=neshto_drugo
-----BEGIN CERTIFICATE-----
drun-drun
-----END CERTIFICATE-----
Изтрих всичко преди -----BEGIN CERTIFICATE----- и вече # /opt/zimbra/bin/zmcertmgr addcacert /opt/zimbra/ssl/zimbra/commercial/commercial.crt светна!
$ zmtlsctl redirect
$ zmcontrol restart --> красота!
Другото е тук: http://www.zimbra.com/support/

вторник, юни 14, 2011

mikrotik SAFE mode

CTRL+X - enter in Safe Mode
повторно CTRL+X излиза от Safe Mode (и apply-ва направените промени !)
Промените направени в Safe mode се изтриват при reboot (ако не сме излезнали от Safe Mode преди рестарт-а)

събота, май 28, 2011

Ubuntu natty

Brand new Ubuntu Server Natty
apt-get update
W: GPG error: http://extras.ubuntu.com natty Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 16126D3A3E5C1192
 
 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 16126D3A3E5C1192
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv-keys 16126D3A3E5C1192
gpg: requesting key 3E5C1192 from hkp server keyserver.ubuntu.com
gpg: key 3E5C1192: public key "Ubuntu Extras Archive Automatic Signing Key <ftpmaster@ubuntu.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1

apt-get update
Fetched 73 B in 1s (55 B/s)
Reading package lists... Done


петък, май 27, 2011

makefs.ext3

This filesystem will be automatically checked every 38 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.


Кое ли ще настъпи първо - 38 месеца или 180 дни.

P.S. аз съм глупавият защото mount не е баш същото като month

вторник, май 24, 2011

Robocopy

Задача: да се мигрират redirected user folders(Desktop & My Documents) на друг сървър и storage.
Варианти: rsync for Windows, но това искаше иснталации и на двете машини (source & destination) и native за Windows - robocopy.
Сериозните опции са /mir и /copyall
Същественната разлика м/у /mir и /copyall, е че /mir изтрива съдръжанието на destination folder-a и го замества със съдържанието на source folder-a, докато при /copyall ако има промени в source folder-a при стартирането ще се отразят в destination folder-a без да се загубят промените които м/у временно са възникнали в destination folder-a
Примерно:
Robo_source : file1, dir1
Robo_dest: file2, dir2
след robocopy \\server1\Robo_source \\server2\Robo_dest /mir /e /tee съдържанието на Robo_dest == file1, dir1;
докато след robocopy \\server1\Robo_source \\server2\Robo_dest /copyall /e /tee съдържанието на Robo_dest == file2, dir2, file1, dir1;
Useful switches:
/z - restartable mode
/save:job.file - run and save command + swtiches in job.file.rcj (/save:job.file.rcj трабва да е най-накрая в списъка с допълнителните ключове - т.е. записва се всичко до /save:xxx, но не и след него). Създава се файл: job.file.RCJ
/save:job.file /quit - just save command + switches (do not run anything)
/job:job.file - read from job.file.rcj and run what you read
/mon:N - monitor for N changes in Source_dir
/mot:N - monitor in N min for changes in Source_dir
Examples:
1. full mirror
robocopy \\server1\Robo_source \\server2\Robo_dest /mir /e /tee
2. Update Robo_dest with changes in Robo_source (e.g. differential)
\\server1\Robo_source \\server2\Robo_dest /copyall /e /tee
3. Just monitor for 3 changes every 3 minutes
\\server1\Robo_source \\server2\Robo_dest /mon:3 /mot:3 (?!)- на теория трябва само да следи за промени ама май направо си ъпдейтва Robo_dest с промените в Robo_source

П.С. версиите до W2k8 не "реагират" при промяна на атрибутите за NTFS permissions, но във Vista и Windows 2008 (R2) вече има допълнителен ключ - /secfix
MS графичен фронт-енд
Robocopy записва в EventViewer-a какво се случва, но по-юзъбъл за мен е mail notification

петък, май 20, 2011

Mikrotik change TTL

Голяма глупост е set-ването на TTL=1 от страна на доставчика (opticom AS42555) с
цел да се ограничи броя на устройствата per account. На Микротик нещата се
байпасват така:
/ip firewall mangle print where
Flags: X - disabled, I - invalid, D - dynamic
0 ;;; Change TTL
chain=prerouting action=change-ttl new-ttl=set:155 in-interface=pppoe-out1

P.S. колкото повече ги гледам толкова повече стигам до извода, че няма да ги
използвам

четвъртък, май 19, 2011

Add Windows 2008R2 DomainController in existing 2003 AD Domain

1. Raise functional domain functional level to Windows Server 2003
2. Preparing AD DS for a new domain controller (W2k8)
 
   Стартираме на  infrastructure master from Windows 2008 Install CD\support\adprep\: 
    adprep32 /forestprep
    adprep32 /domainprep /gpprep
    By default се стартира adprep64!
3. Promote new W2k8 Server to a Domain Controller



сряда, май 11, 2011

... wisdom ...

с времето ще открием, че самият акт на заспиването (навреме), а и на събуждането след това (сух) са си постижения :
source: http://yovko.net/blog/5673#comments
author: Дончо

вторник, май 03, 2011

Mikrotik firewall

N.B. Mikrotik firewall (/ip firewall filter) работи на принципа на последното
съвпадение (last match) - т.е. при дублирани или сходни правила ще сработи
последното.

/ip firewall filter
add action=log chain=input comment="Telnet logging" disabled=no dst-port=23
log-prefix="" protocol=tcp
add action=drop chain=input comment="disabe telnet except My_IP" disabled=no
dst-port=23 protocol=tcp src-address=!192.168.234.83
add action=drop chain=input comment="disable all" disabled=no dst-port=23
protocol=tcp

Заради последното правило телнет връзката ми ще бъде дропната

петък, март 18, 2011

daily wisdom

Глупостта е безкрайна. Тя може да сътвори повече, отколкото знанието може да опровергае.

вторник, март 15, 2011

Monthly wisdom

Добрите решения идват с опита, а голяма част от опита идва с лоши решения.

The Mechanic

понеделник, януари 31, 2011

online wisdom

[14:14:35] nuke: "Човек сам се ражда и сам умира, а през останалото време някакви хора непрекъснато се опитват да му досаждат"

неделя, януари 16, 2011

New hobby ?

Ето с това

направих ето това

Подаръците ми за Именният ден

Оригиналното нещо е тук

вторник, януари 04, 2011

Remotely Terminate and Disconnect Remote Desktop

net use /user:Administrator \\Server.IP.or.NetBIOS\c$
qwinsta /server:<sServer.IP.or.NetBIOS> -- > list of active and connecting Remote Desktop or Terminal Services sessions 
rwinsta <ID> /server:<Server.IP.or.NetBIOS> --> reset and disconnect the Remote Desktop connections or sessions 

qwinsta = Query Window Station
rwinsta = Reset Window Station


четвъртък, декември 30, 2010

Новогодишно

Предновогодишно изтрещяха един Support-a... на-зомбираха машината и сега
пред-новогодишна миграция & преинсталация.
To-Do: да се мигрират всички сървиси с LDAP authentication

вторник, декември 21, 2010

Daily wisdom

"Горчивината от лошото качество остава дълго след като е преминало удоволствието от ниската цена."  from LUG-BG mailing-list 

петък, декември 17, 2010

DNS balance for service

Имаме PPTP сървър който разни хора го ползват за разни неща. Проблема е когато рупа потребители се опитат да направят повече от една сесия към този сървър със един и същи source (примерно когато са зад НАТ)- първият е ОК, а всеки следващ получава error 619
Един вариантите е да инициират сесия към различно IP като най-лесният начин (с gambling елементи) е round-robin/cycling DNS balancer
Като цяло идеята, е че ще се опитват да правят сесия на FQDN не на IP и тогава ДНС-а ще им отговаря с различно IP като се разчита, че DNS да върне IP което вече се използва е малка, а дори и да се случи един re-dial ще оправи нещата
named -v
BIND 9.4.2-P2
cat /proc/version
Linux version 2.6.24-23-server (buildd@crested) (gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu3)) #1 SMP Wed Apr 1 22:14:30 UTC 2009

В /etc/bind/named.conf.option
; Искам да ми се връща различно IP за А запис като принципа е цикличен
; т.е. при първо запитва Bind-a дава първото IP, при втори - 2рото и т.н
; като изчерпи броя на заделените IP започва пак от първото
rrset-order {type A name "pptp.domain.com" order cyclic;}; 

в /etc/bind/pri/domain.com zone file :
; format is
;name  ttl      class    rr                 ip
;joe               IN      A      192.168.254.3

pptp    1s      IN      A       192.168.1.50
pptp    1s      IN      A       192.168.1.51
pptp    1s      IN      A       192.168.1.52
pptp    1s      IN      A       192.168.1.53
pptp    1s      IN      A       192.168.1.54
pptp    1s      IN      A       192.168.1.55
pptp    1s      IN      A       192.168.1.56
pptp    1s      IN      A       192.168.1.57
pptp    1s      IN      A       192.168.1.58
pptp    1s      IN      A       192.168.1.59


понеделник, декември 06, 2010

Scheduled Skype.exe start/stop

Целта е да се изключва Skype когато вечер си тръгвам от офиса (да не стои онлайн по цели дни и нощи) и да се включва сутрин като дойда (за да не го забравям). Конзолата калява характера (пък е и по-хакерско) затова:
 Вариант 1:
start:
at \\polarbear 9:00 /every:monday,tuesday,wednesday,thursday,friday "C:\Program Files\Skype\Phone\Skype.exe"
stop:
at \\polarbear 19:00 /every:monday,tuesday,wednesday,thursday,friday "taskkill /im skype* /t /f"

Вариант 2:
SCHTASKS /Create /SC DAILY /TN Skype /TR "C:\Program Files\Skype\Phone\Skype.exe" /ST 09:00 /ET 19:00 /K

На теория трябва да работи...

четвъртък, декември 02, 2010

default route backup





При горната картинка Remote Office комуникира с Central Office през L2 свързаност. Целта е когато падне основната връзка трафика да се изнася през L3 VPN закачен за dedicated за това машина с минимална (сиреч никаква) намеса на потребителите в Remote Office
Най-лесният начин ми се стори - смяна на default route на R2  към RAS-a при отпадане на основната връзка. Отпадането се трак-ва с ip sla (и в двата края рутерите са cisco)
ip sla monitor 1
# cisco-то ще ping-вa 192.168.61.1 
#със source р2р IP - да съм сигурен, защото 192.168.61.1 може да се вижда
#от друго място (през VPN-a примерно)
 type echo protocol ipIcmpEcho 192.168.61.1 source-ipaddr 192.168.61.2
#и ще чака 1000ms да му отговори нещото отсреща
 timeout 1000
tag CHANGE-DEFAULT-ROUTE
# на всеки 2 sec ще прави по 1 ping
 frequency 2
exit
# schedule-вам цялата анджиклЪмЪ да се случва non-stop и да започне сега
ip sla monitor schedule 1 life forever start-time now
# подтвърждавам reachability нa 192.168.61.1
track 10 rtr 1 reachability
# правя reverse triger т.е ako track 10 is not true then mark "event"
track 11 list boolean and
 object 10 not
# apply this default route if "event" occur (track 11 == true if track 10 <> true)
ip route 0.0.0.0 0.0.0.0 192.168.64.152 track 11  
Когато primary връзката се възтанови, track 10 == true; track 11 == false 0.0.0.0/0 via 192.168.64.152 не се инсталира в рутинг таблицата и трафика си тръгва през prez 192.168.61.1

четвъртък, ноември 25, 2010

Задача

Получено в Skype:
Мама е по-голяма от сина си с 21 години. След 6 години ще бъде 5 пъти по-голяма от него. Пита се къде е тате?

четвъртък, ноември 11, 2010

What is my OS

Каква е версията на OS на машината на която съм се логнал ?
Linux:
uname -a -- kernel version, 32/64 bits
lsb_release -a
cat /etc/*issue
cat /etc/*-release
cat /etc/*_version
cat /proc/version
*BSD:
uname -a
Solaris
showrev -a
HP-UX:
uname -r -> това дава release identifier и после по този release identifier тук примерно
IOS/XOS (Extreme Networks) :
show ver
NT based Windows (7/Vista/2003/XP/2000/NT4):
Run/cmd -> msinfo32
Run/cmd -> winver
Run/cmd systeminfo | find /i "System Type:"

понеделник, ноември 01, 2010

Disable Automatic Windows Update

Понякога (неизвестно как/защо/кога) при изрично спрени AU от Control Panel-a, клавиатурата на  с инсталиран  започва да се държи много странно

Affective device : FS Amilo PI3525
Software : Windows 7 Pro ++++
Problem: на част от клавиатурата (частта където е NUM PAD-a) при не-натиснат fn клавиш работи като num pad, а при настиснат такъв работи като както си трябва
сиреч:
  • при не-задействан fn и натискането на бутона k се отпечатва 2
  • при задействан fn и натискането на бутона k се отпечатва k 
Тъй като това е машина която се използва за работа най-бързото решение което ползвах беше System Restore до предишна дата.
При този System Restore виждах, че разликата м/у сегашното и настоящето състояние е наличието на един или няколко Security/Critical Updates
Първо спрях през Control Panel-a автоматичните ъпдейти - не се получи... продължиха Security/Critical Updates които най-вероятно ми трошат профила и клавиатурата - профила защото се логвам на машината (паролата ми съдържа част от символите в района на num pad-a) , а след зареждането профила ми тогава почват да се печат дивотиите
Омръзна ми на 4-5 дни да правя system restore и исках бързо и окончателно решение - windows-ките ъпдейте въобще не ме интересуват
Мислех да null route-на мрежите отговарящи за Windows Update, но ...  много са защото се оказа, че тези тарикати за да затруднят настройките на firewalls на всичките сериозни win admins (най-вероятно !) сменят А записите за ъпдейт сървърите си и те се въртят м/у
64.4.*.*
64.158.*.*
65.59.*.*
67.72.*.*
207.46.*.*
208.172.*.*
Ако го направя ще убия и ценни неща като download.windows.com, msn.com, technet.microsoft.com etc
в host file да ги опиша да сочат към 127.0.0.1 или пък някакви подобни DNS магарии пак не става - освен всичко останало ако съм в мрежа/доставчик който работи с Akamai на запитване за подобен ресур ще получа нещо като :
nslookup download.windowsupdate.com
Non-authoritative answer:
Name:    a26.ms.akamai.net
Addresses:  85.14.5.170
          85.14.5.169
Aliases:  download.windowsupdate.com
          download.windowsupdate.nsatc.net
          main.dl.wu.akadns.net
          intl.dl.wu.akadns.net
          dl.wu.ms.geo.akadns.net
т.е. списъкът с Aliases прави настройката на firewall-a базиран на DN/DNS rules трудна, неблагодарна и най-вероятно неработеща схема
Това което ми се струва желязно работещо и отговарящо на изискванията (никакви ъпдейти които да ми трошат клавиатурата и/или да губя време да ги гледам кой от всичките ъпдейти го прави това - хич не ми дреме, че операционната ми система е non-updated)
1. Варианта net stop wuaserv ще работи само до първия рестарт така че: sc config wuaserv start=disabled  (сигурно и с netsh ще да стане нещото ама някой гуру да го каже как)
2. HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\  --> new DWORD NoAutoUpdate 0=AU enable 1=AU disable
3.Най-чистият и елегантен начин : gpedit.msc > Computer Configuration > Administrative Templates > Windows Components > Windows Update > Specify intranet Microsoft update service location > Enabled http://localhost
Да се ъпдейтва сега... и да страда

N.B. Оказа се , че от списъка с ъпдейти ако маркирам конкретен ъпдейт и след десен клик в/у него избира Hide той няма да влезне в скеджула за инсталация повече и съответно няма да се инсталира

вторник, септември 21, 2010

Daily wisdom

Опита е като Мъдростта - когато го придобиеш в повечето случаи се оказва доста
късно

неделя, септември 12, 2010

понеделник, август 09, 2010

Monthly wisdom

Това, че винаги си го правил по този начин, не означава, че не е пълна глупост !

неделя, август 08, 2010

Linksys WRT54GL with dd-wrt

Задача: 2 тунела до една централана точка. 1 префикс разнасян от рутинг протокол с различна метрика (за бекъп)
Цена: до 100 лв.
Реализция:
Устройство: Linksys WRT54GL (по препоръка като най-стабилен SOHO router, а и наличен в необходимите количества на склад) - микротик рутербордове по това време на БГ пазара нямаше
Software: dd-wrt tomato-не предлагаше нужната функционалност; open-wrt-по мненията из разни форуми и етц не толкова стабилен, и по-малък брой поддържани устройства; други проекти както и варинта да се инсталира пълноценна Linux дистрибуция отпаднаха по една или друга причина (като цяло крайната реализация трябваше да бъде не произведение на изкуството, а нещо достатъчно стабилно и лесно да подръжка, обслужване и евентуален extend/expand )
Configuration:
1. 30/30/30 Hard reset procedure
2. Избран е този image заради размера, възможността да се mount-не router flash-a with read&write permissions, подръжка на необходимите неща + още някоя и друга глезотийка която може и да не се ползва, но е добре да я има в случай на нужда
3. Заради големият брой устройства които трябва да се конфигурират и разпратят така, че само да се закачат и всичко да тръгне almost zero-day install се реализира така:
а) basic config На един от рутерите - всички необходими неща които са еднакви за всички nodes - firewall, QoS, disable DHCP on LAN, remote access, enable/disable services, NAT, etc и цялото това нещо се запази като backup bin file през WEB интерфейса.
firewall-а e стандартен iptables чиято конфигурация се записва в /tmp/.rc_firewall, но може да се пишат тези правила през WEB-Administration-Commands-Save firewall
b) за спецефичните за всеки node неща (WAN IP, LAN IP,Tunnel IP, BGP neighbor, static routes, etc) се използва startup script (/tmp/.rc_startup или през WEB-Administration-Commands-Save Startup). StratUp script-a е последователност от nvram set name=value
формат:
nvram set lan_ipaddr=10.134.254.253
nvram set lan_netmask=255.255.255.252
nvram set routing_bgp_neighbor_ip=172.16.254.253
nvram commit

За routing demon се използва bird - трябва да се прочете повече дали и как може да се правят повече неща с него в тази му реализация (load balance, prefix filters, BGP attributes change, etc). Има възможност да се инсталират стандартни *.deb и *.ipk packages през ipkg, но quagga не можах да инсталирам (а и нямах време да дебъгвам)
По интересно е нещото което не се поддържа директно от конкретният image - IPinIP/GRE tunnels. Беше избран IPinIP тунелинг заради по-малкият овърхед, през него не минава мултикаст (сиреч no OSPF,no RIP), но пък GRE тунелите използват protocol 47 (също като pptp) който се филтрира от някои доставчици.Повече инфо тук и тук Като алтернатива могат да се използват подържаните от image pptp, openvpn и EoIP tunnels, но най-лесно и чисто като че ли е варианта с IPinIP tunnel
Наличието на iproute2 пакета улесни и опрости много нещата тъй че в моят случай сетъпа изглежда така:
#tunnel specific
insmod ipip.o
# local == Tunnel Source
ip tu ad tun0 mode ipip local $Tunnel_source_IP remote $Tunnel_dest_IP ttl 250 dev vlan1
# 172.17.254.254 == Tunnel IP spoke side; peer 172.17.254.253/32 == tunnel IP remote side
ip ad ad dev tun0 172.17.254.254 peer 172.17.254.253/32
ip li se dev tun0 up

Това присъства в startup script-a и се изпълнява при всеки (re)start на рутера.
Linksys WRT54 има един WAN порт + switch module в който членуват останалите 4 порта. За да има реална бекъп връзка до Spoke през вторият тунел най-чистият вариант беше да се "осигури" втори WAN порт. В случая е реализирано така:
# vadim port 1 ot switch-modula i go prawim WAN
# nvram show | grep vlan.ports
#0 = port 4
#1 = port 3
#2 = port 2
#3 = port 1
#4 = WAN
#5 = CPU internal
#5* = CPU internal default

nvram set vlan0ports="0 1 2 5*"
nvram set vlan1ports="3 4 5"
nvram commit

Правилната статия по темата е тук
Най-сериозният проблем (който в момента не ми е толкова критичен, но си е сериозен) е добавянето на user с ограничени права...
Номерът с echo 'admin:$1$bLL3EQ3А$3SNexDssIzKZx9KmUP1.O.:0:0:Admin User,,,:/tmp/root:/bin/sh' >> /etc/passwd работи като ми добавя User: admin с root права;
Но пък:
mkdir /tmp/user
echo 'user:$1$unix crypted pass here.:1234:1234:LimitedUser,,,:/tmp/user:/bin/sh' >> /etc/passwd
echo 'user:x:1234' >> /etc/group

ми дава един мноооого limited user който дори и ping команда не може да изпълни въпреки, че върху /bin/ping са UID bits
Anyway... за целите на first level support-a по-скоро ще се мисли за някакъв вариант в който се изпълнява някой script който да се логва на устройството и взима Output-a на няколкото команди необходими за това да се отвори или затвори тикет или ще получава същите работи през snmp

ToDo: всичкото това със сигурност може да се постигне с един startup script т.е. да се избегне стъпката с изливането на basic_config.bin, но искаше повече копане и време (което нямах). Някой ден ще трябва да го направя (но защо да отлагам днешната работа за утре, като мога да я отложа за вдругиден)

P.S. 3 седмици след старта иснталациите изглежда като да работят нещата добре, въпреки, че имаме 2 (засега) рутера които след някакви токови удари и/или други незнайни причини са си загубили напълно конфига и на практика са brick-нати. Да се надяваме, че са "случайни случки", а не някакъв посевместен бъг в имиджа който изливаме

понеделник, юли 19, 2010

На попрището жизнено в средата

Първо бих искал да благодаря на XXXXX за коректното и професионално отношение към мен като кандидат за работа при Вас и да се извиня за това, че ще откажа отправеното ми предложение за работа.
Отказът ми е свързан с причини от чисто лично естество и няма отношение към техническите параметри на отправената оферта и същността на свободната позиция.
Още веднъж се извинявам за отнетото време и ресурси и пожелавам бързо откриване на правилният човек за сглобяването на успешен ИТ тиим.



Дано изборът да работя нещо което мисля, че е по-интересно спрямо нещо което е (доста) по-добре платено се оакже правилен и да не се налага да съжалявам (и за това) в последствие.

четвъртък, юни 10, 2010

Google Maps for Windows Mobile

Жега.Пек.Просто да умре човек.И затова деца джабуркат си ...(краката?) във водата.
Та в това топло и задушно посреднощие се заиграх с телефона и инсталираните google maps... Тези не са хора! Освен доста приличните снимки навързани една с друга по един почти незабелижим начин така, че се създава илюзията за едно цялостно фото-изображение, има доста точни карти на забутани места (като наше село например), че и навигация от рода step-by-step-instructions-to-reach-Пичковци N42a от асансьора в дясно до хладилника.Слоевете са много практични... въпреки, че доста цъках из София така и не намерих място което да ми каже нещо по-различно от "тук няма информация за трафика". За сметка на това като се натисне и задържи в/у някоя точка изкача адреса от който мога да си изтегля упътвания как да стигна пеш (къ ли пъ не! пеш само до тоалетната и то ако не ме мързи... много); Какво има наблизо - изкачат много интересни неща (например Студио за епилация и солариум 'АриАяр' някъде наблизо около нас); Изпращане на SMS с точният адрес по Google Maps (дали може и GPS координати да изпраща? Сигурно трябва да включа GPS-a преди това едва ли не ?!), а на всичкото отгоре и повечето места са нацвъкани с Wikipedia лого-то през което се стига до кратка извадка (с опция read full article) от статията в Wikipedia.
Но пък най-интересното нещо беше когато планирах (за пореден път) обиколка из Лондон... има Градски Изглед! Същото като РС версията на Google Earth... дори с опция да се "поразходиш" из улицата напред-назад (даже и бегъл поглед през витрината на някакъв магазин на Gucci хвърлих). Това което ми направи впечатление: номерата на колите по улиците са замазани и не си личат (но пък лицата на хората се виждат почти прилично!). Още по-интересното е, че успях да се "разходя" из Waterloo Station и да видя графитите по стените (като как са го излъгали този сателит да се навре там и да снима на - съда не стана ясно )
А това как тиквите от google labs успяват да определят позцията ми с точност до 200м в/у картата без SIM и без пуснат  GPS само с активирана wireless връзка си остава загадка... v.0.0.1a теоритично нещата (биха могли да) се случват така: има определени сървъри с точно известни GPS координати (примерно на AKAMAI акселераторите са такива); аз през активната си wireless връзка пращам нещо (хелло уорлд! ) на най-близките до мен (на база текущо IP/hop path); те си джуркат тяхната триангулираща магия и казват - те тука си. Слабото ми място е, че според мен за да ме заковат в радиус от 200м ... бая на брой трябва да са тези сървъри с фиксирани координати... от друга страна кой знае колко са тез TCP-IP-триангулачни точки.. може и да са достатъчен брой
ToDo: да взема да си синифна трафика м/у телефона и АР-то да видим дали и кои си говорят така
Да го направят цялото това нещо 3D и тези от ... забраих къде беше може да идват у нас да снимат Аватар 2 (или пък онези от онзи филм с Брус Уилис дето го играеше детектив и си имаха по една кукла с която излизаха навън да се фукат... и него го забравих как се казваше)

четвъртък, юни 03, 2010

Mikrotik L2 filtering

Целта на упражнението: да се забрани ползването на услугите предоставяни
от рутера (в случая RouterBoard RB705, но предполагам, че ще работи и за
други модели)
До 3 работещи варианта стигнах в крайна сметка
1.
interface bridge filter export
# jan/09/1970 01:36:42 by RouterOS 4.6
#
/interface bridge filter
add action=accept chain=input comment="" disabled=no mac-protocol=arp \
src-mac-address=00:2D:7D:C1:4F:01/FF:FF:FF:FF:FF:FF
add action=drop chain=input comment="" disabled=no mac-protocol=arp \
src-mac-address=FF:FF:FF:FF:FF:FF/FF:FF:FF:FF:FF:FF
(add action=drop chain=input comment="" disabled=no mac-protocol=arp \
src-mac-address=00:00:00:00:00:00/FF:FF:FF:FF:FF:FF)
Микротик firewall-a има експлитицно правило allow any any... т.е. ако
нещо изрично не е забранено, то ТО по подразбиране е разрешено
В този случай не сработиха последните правила (XOR) които според мен
трябваше да забранят всичко останало което не е match-нато в първото
правило.
Сиреч може да се използва при зададено условие: на всички е разрешено,
освен на тези на които изрично е забранено

2.
2.1. маркираме пакети и конекшъни
/ip firewall mangle export
# jan/10/1970 01:05:47 by RouterOS 4.6
#
/ip firewall mangle
add action=mark-connection chain=prerouting comment="" disabled=no \
new-connection-mark=allowedpassthrough=yes src-mac-address=\
00:1D:7D:C1:4F:01
add action=mark-packet chain=prerouting comment="" disabled=no \
new-packet-mark=allowedpassthrough=yes src-mac-address=00:1D:7D:C1:4F:01
2.2. block/allow на базата на маркировката от 2.1.
/ip firewall filter
add action=drop chain=forward comment="" connection-mark=!allowed
disabled=yes packet-mark=!allowed
Основният плюс тука, е че наличната "марка" може да се използва и за
други неща... Queue примерно...
3.
/ip firewall filter> export
# jan/04/1970 02:39:09 by RouterOS 4.5
#
/ip firewall filter
add action=accept chain=input comment="" disabled=no src-mac-address=\
00:19:66:09:64:14
add action=accept chain=input comment="" disabled=no src-mac-address=\
00:1D:7D:C1:6F:BE
add action=accept chain=input comment="" disabled=no src-mac-address=\
00:13:8F:3A:70:02
add action=drop chain=input comment="" disabled=no in-interface=\
ether2-local-master
(add action=drop chain=input comment="" disabled=no
src-address=192.168.88.0/24)
Първите 3 правила описват allowed PC закачени зад switch "модула" (2-5
порт по подразбиране с default config на RB750), като последните 2 (XOR)
забраняват всичко останало
Хитрото тук е, че се блок-ва трафика иницииран от "вътрешният интерфейс"
(т.е. този за който in-interface е споменат в правилото), но трафика
адресиран "от вън" към този МАС си е ОК. Може да се използва в при
зададено условие: на всички е забранено, освен на тези на които изрично
им е разрешено.

събота, май 08, 2010

Monthly wisdom

"Някои места остават неизследвани защото никой не е дръзвал стигне до там или никой не се е върнал от там за да разкаже."

неделя, април 25, 2010

КРАТЪК КУРС ПО РОДНА ИСТОРИЯ

В България отначало е имало фърст българско царство. Било гмеж от ханове и боляри. Спешъл копелета от стари родове. Тия баровци вилнеели по купони и си пиели уискито от черепи на разни филери и гнусавци. Най-фърст/дъ-бест станало при цар Саймън (Симеон). Тогава България била спешъл и много фърст, на три курорта. Саймън имал три копелета. Едното решило да му свие номер да му гепи трона и зеленото. Обаче стария печен взема една лъжица и му изчовърка зъркелите. Бе това дали беше тоя, ама имаше един такъв. После имало един друг Сейми. Тоя направил търкал с някакъв педал от гръцко, обаче нашите балъци. Оня ги гепил и всичките ги изкьорвил. Жестока отврат. Въобще била адска гнус. На разните скапаняци и боклуци им режели ръцете да няма повече далавери.
Второто царство било още по спешъл пак на три курорта. Най-големия баровец бил Джони Калоян. Значи веднъж се довлякло от запад някакво тъпо копеле с тайфа макаронаджий. Обаче Джони бил направил комбина с кумани и всякакви боклуци па ги гепил тия, а копелето го турил в една кула да се скапе. Джони си имал страхотно гадже, чифутка. Тя си падала по баровеца в кулата и почнала да го рути. Джони като ги скивал един път му пробил на оня кратуната с шиш. После го бутнал от кулата или обратно, все едно.
Царството се свършило защото се довлекли всякакви рязани гагаузи и кукери. Те набивали готините копелета на колове а мацките на вериги, жестока отврат. След рязаните дошло и Третото царство. Обаче то било балъшко, щото комунягите го срутили. Отначало те не били на власт и разни фашаги им рязали главите и им набивали клечки под ноктите. Тия после като докопали кокала заровили мръсните копелета или ги пращали да се здухват в Ловеч или Белене, дето им пръскали главите с тояги. Гнус и отврат. И накрая ню таим демокрация бабета правят купони по улицата или кибичат по опашки, припадат и после се бесят. Жестоко. Само дето водката татарлии я пробутват по трийсет кинта мангасарите му с мангасари...

Иво Беров

P.S.що пък не... и това е вариант

Simple като свинска опашка

Обичам такива "хакерски" команди
rsync -avrpogPht -e "ssh -l eol" eol@backup.serv:/daily .

вторник, април 20, 2010

BG Peering

http://retn.net/en/ --
Apr 19, 2010 RETN became a participant of the traffic exchange point BIX.BG in Sofia, Bulgaria (Bulgarian Internet eXchange). This is the 22th traffic exchange point where RETN is involved
ето това според мен би трябвало да промени интернет бизнеса у нас. Най-малкото вместо традиционният БГ пииринг се отвори exchange point в който членуваха само БГ оператори, но след влизането на най-малко 1 по-голям чуждестранен такъв (и изтърването на BIX префиксите в пииринг-а от което пострадахо доста хора за различно време) вече понятието Peering & Internet (като услуги които се продават от ISP-та) вече ->0... вярно, че ISP-та нямат финансова изгода от това, но явно някой има иначе нямаше да се интерконектва в RU-NET :)

понеделник, април 19, 2010

Automatically end RDP session

Local Policy:
Start - Run - tscc.msc - RDP-Tcp Properties - Sessions - Override User
Settings
GPO (domain policy has precedence over local policy or manual configuration)
Computer Configuration\Administrative Templates\Windows
Components\Terminal Services\Sessions

вторник, април 06, 2010

Free Coupons from DinoDirect

I receive two free cache coupons from DinoDirect
First of them is for $5 discount for orders that are more than $20. The second one is for $10 discount with same condition. These coupons are expires on 30 April 2010.
Cash Coupon ID (same for both) 10Spring4E6N
Just leave a comment when you are going to use them.

The easiest /lazy way...

Продължавам да смятам, че по света има толкова много интересни неща, а толкова малко време да си поиграеш с тях... от тук и мнението ми, че когато се прави нещо за някой което не е под прякото ми целодневно управление, то трябва да се отделя повече време на идеологията и технологията на решението, а не да губя по една седмица в мигриране на сървиси защото трябва да ъпдейтна php3.x до php4.x (Slackware 10), да чакам 28 часа да се build-не gentoo-то на скромна машинка за прост nat+firewall или пък да изпълнявам гръмкото build world (FreeBSD) при по-сериозен ъпгрейд. За това моята дистрибуция е debian - позволява ми да обърна повече внимание на самата "услуга" от колкото на нейната конфигурция. Рутинните неща трябва да стават бързо, лесно и удобно K0b3-то веднага ще кажи, че така не разбираш какво става отдолу ама то който го мързи да чете и с това да се хване пак няма да разбере от къде се дои айряна
Та моят TOP XXX от рънг§тръг open source solutions за момента е :
I. SOHO entry box - Firewall (NAT/DMZ/VPN)

  • IPCop
  • m0n0wall
  • SME Server

  • II. LAMP & Mail server

  • Ubuntu Server / Debian way
  • SME Server
  • iRedMail

  • III. Entry box - Router

  • Vyatta

  • IV. Desktop

  • andLinux
  • cygwin
  • PCLinux
  • сряда, март 31, 2010

    сряда, март 24, 2010

    Look at ...

    ... the future за времето когато виртуализацията спре да бъде iPhone сред smartphones. Някой ден трябва да се намери малко време и да си поиграе повечко човек с това: http://open-tube.com/seven-valuable-open-sources-resources-for-cloud-computing

    вторник, март 23, 2010

    Office space

    Имам чувството, че работя в Детска градина "Слънчо", Група 2 - "Калинка" ...

    сряда, март 03, 2010

    R.I.P.

    Хочу с прискорбием добавить что на той же фотографии два человека уже не с нами. Губочкин Валерий Борисович, учитель русского языка и летиратуры, и девушка, что стоит рядом с ним, Таня Гайер. Пусть земля им будет пухом.
    [/quote]
    Току що ми отиде около 70% от желанието да се върна дори и за седмица в Коми

    петък, февруари 26, 2010

    The Soul Of The Game

    This is ten percent luck, twenty percent skill
    Fifteen percent concentrated power of will
    Five percent pleasure, fifty percent pain
    And a hundred percent reason to remember the name

    Video

    четвъртък, февруари 18, 2010

    Kubuntu remove KDE/desktop

    apt-get remove akonadi-server akregator amarok amarok-common
    amarok-utils apport-kde apturl-kde ark cdrdao dolphin dragonplayer exiv2
    foomatic-db-gutenprint gdebi-kde gnupg-agent gtk2-engines-qtcurve
    gwenview hpijs-ppds ibus-qt4 ijsgutenprint imagemagick install-package
    jockey-kde k3b k3b-data kaddressbook kamera kate kcm-gtk
    kde-icons-oxygen kde-style-qtcurve kde-window-manager kde-zeroconf
    kdebase-bin kdebase-data kdebase-plasma kdebase-runtime
    kdebase-runtime-bin-kde4 kdebase-runtime-data
    kdebase-runtime-data-common kdebase-workspace-bin kdebase-workspace-data
    kdebase-workspace-kgreet-plugins kdebase-workspace-libs4+5 kdebluetooth
    kdegraphics-strigi-plugins kdelibs-bin kdelibs5 kdelibs5-data
    kdemultimedia-kio-plugins kdepasswd kdepim-groupware kdepim-kresources
    kdepim-runtime kdepim-runtime-data kdepim-runtime-libs4
    kdepim-strigi-plugins kdepim-wizards kdepimlibs-data kdepimlibs5 kdesudo
    kdm kfind khelpcenter4 kipi-plugins klipper kmag kmail kmix kmousetool
    knotes konq-plugins konq-plugins-l10n konqueror konqueror-nsplugins
    konqueror-plugin-searchbar konqueror-plugins konsole kontact kopete
    korganizer kpackagekit kppp krdc krfb ksnapshot ksysguard ksysguardd
    ksystemlog ktimetracker ktorrent ktorrent-data kubuntu-artwork-usplash
    kubuntu-default-settings kubuntu-desktop kubuntu-docs
    kubuntu-firefox-installer kubuntu-konqueror-shortcuts kvkbd
    kwalletmanager kwin-style-qtcurve language-selector-qt
    libakonadiprivate1 libao2 libaudio2 libboost-program-options1.38.0
    libclucene0ldbl libepub0 libexiv2-5 libfftw3-3 libflac++6
    libindicate-qt0 libjpeg-progs libk3b6 libkabcommon4 libkcddb4 libkdcraw7
    libkdecorations4 libkdepim4 libkexiv2-7 libkipi6 libkleo4
    libknotificationitem1 libkonq5 libkonq5-templates libkonqsidebarplugin4
    libkontactinterfaces4 libkopete4 libkorundum4-ruby1.8 libkpgp4 libksane0
    libksieve4 libkwineffects1 liblancelot0 liblastfm0 liblzma0 libmimelib4
    libmodplug0c2 libmpcdec3 libmsn0.1 libokularcore1 libotr2
    libpackagekit-glib11 libpackagekit-qt11 libplasma3 libpolkit-dbus2
    libpolkit-grant2 libpolkit-qt0 libpolkit2 libpoppler-qt4-3 libqca2
    libqca2-plugin-ossl libqimageblitz4 libqscintilla2-5 libqt4-assistant
    libqt4-dbus libqt4-designer libqt4-help libqt4-network libqt4-opengl
    libqt4-phonon libqt4-qt3support libqt4-ruby1.8 libqt4-script
    libqt4-scripttools libqt4-sql libqt4-sql-mysql libqt4-sql-sqlite
    libqt4-svg libqt4-test libqt4-webkit libqt4-xml libqt4-xmlpatterns
    libqtcore4 libqtgui4 libqtscript4-core libqtscript4-gui
    libqtscript4-network libqtscript4-sql libqtscript4-uitools
    libqtscript4-xml libruby1.8 libscim8c2a libsmokekde4-2 libsmokeqt4-2
    libsoprano4 libstreamanalyzer0 libstreams0 libstrigiqtdbusclient0
    libtag-extras1 libtidy-0.99-0 libvncserver0 libxcb-shape0 libxcb-shm0
    libxcb-xv0 libxine1 libxine1-bin libxine1-console libxine1-misc-plugins
    libxine1-x libzip1 mysql-server-core-5.1 okular okular-extra-backends
    openoffice.org-kde openoffice.org-style-oxygen oxygen-cursor-theme
    packagekit packagekit-backend-apt phonon-backend-xine pinentry-gtk2
    pinentry-qt4 plasma-dataengines-addons plasma-dataengines-workspace
    plasma-scriptengine-python plasma-widget-facebook
    plasma-widget-folderview plasma-widget-googlecalendar
    plasma-widget-indicatordisplay plasma-widget-kimpanel
    plasma-widget-kubuntu-qa-feedback plasma-widget-lancelot
    plasma-widget-networkmanagement plasma-widget-quickaccess
    plasma-widgets-addons plasma-widgets-workspace policykit printer-applet
    python-kde4 python-packagekit python-qt4 python-qt4-dbus python-sip4
    quassel quassel-data ruby ruby1.8 software-properties-kde soprano-daemon
    speedcrunch system-config-printer-kde systemsettings ttf-arphic-uming
    ttf-dejavu ttf-dejavu-extra update-manager-kde update-notifier-kde
    usb-creator-kde userconfig
    ..................
    0 upgraded, 0 newly installed, 263 to remove and 123 not upgraded.
    After this operation, 967MB disk space will be freed.
    Do you want to continue [Y/n]?

    apt-get remove kde*
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    ...........................
    0 upgraded, 0 newly installed, 136 to remove and 134 not upgraded.
    After this operation, 366MB disk space will be freed.
    Do you want to continue [Y/n]?

    сряда, януари 13, 2010

    NS4300 + VMware ESXi

    Е... не работи! Генералната идея беше на този low-cost SOHO NAS да се използва възможността за NFS sharing като export-не конкретна доректория и тя да се Mount-не на ESXi като допълнителен datastore.Е... не работи!
    The nfs server does not support mount version 3 over tcp.

    Оказа се, че ESXi NFS client-а работи само по ТСР, докато NS4300 NFS server-a само на UDP.
    От SmartStore ме почерпиха културно: SmartStor products are not qualified for VMWare ESX(i) environment. They won't work at all. At the moment there is no planning to support this.
    Реших да се правя на интересен: NS4300 export over UDP -> Linux NFS client + NFS server re-export over TCP before mounted NFS (UDP) share -> ESXi -- строшена схема ама като в онзи виц: така и така не кълве, що не вземеш да се изкъпеш поне?
    apt-get install nfs-kernel-server nfs-common portmap
    mount.nfs 192.168.0.100:/VOLUME1/NFS /mnt/nfs/
    cat /etc/exports | grep nfs
    /mnt/nfs 192.168.0.253(rw,sync,insecure)

    Е... не работи! След малко четене се оказа, че неможе да се re-експортват преди импортнати NFS shares. Simlink-a м/у NFS mount и NFS export folder-a пак не върши работа - ESXi монтира каквото съм му експортнал, но не отваря simbolyc link-a
    Next try по идея на K0b3 - NS4300 smb share -> Linux smb client + NFS server re-export over TCP before mounted SMB share -> ESXi

    apt-get install smbfs smbclient
    modprobe smbfs
    echo 'smbfs' >> /etc/modules
    mount -t cifs //192.168.0.100/NFS /mnt/nfs -o username=DOMAIN/eol,password=*********
    /mnt/nfs 192.168.0.253(rw,sync,insecure)

    Е... не работи!
    Определено е ден за гаври:

    apt-get install fuse-utils sshfs
    modprobe fuse
    sshfs root@192.168.0.253:/vmfs/volumes/datastore1/ /home/eol/ssh-mount/

    Не че ми трябва или ще ми свърши някаква работа, ама поне частично щях да си оправдая износването на клавиатурата ако проработеше.Е... не работи!
    Изчерпах се откъм гениални идеи и се чувствам празен като главата на хибрид м/у чалга певица и футболист от А група.
    Извод: два дни блъскане спестява два реда четене!

    П.С. и на всичкото отгоре:
    lguest.c:1027: warning: implicit declaration of function ‘eventfd’
    make[1]: *** [lguest] Error 1
    make[1]: Leaving directory `/usr/src/linux-2.6.32.3/Documentation/lguest'
    make: *** [debian/stamp/build/kernel] Error 2

    Song of the Post: тази

    неделя, януари 10, 2010

    Toyota Yaris payments

    Вече  585 дни се возим с горната машина. Основният й минус, е че е simple като американски скункс; освновният й плюс е … че е simple като американски скункс… правена е като за американци който изпадат в паника и звънят на 911 когато има повече от 2 показания на таблото, и независимо от двете си врати :) е достатъчно мощна за да не се налага да изключвам климатика когато тръгвам да изкачвам някой баир или да изпреварвам някой. Малко цифри за периода на ползването на yaris-a:

    за 585 дни съм изгорил 1635.62 л бензин А95Н като за него съм дал 2842.88 BG лв (средна цена за литър 1.888 лв като най-много съм плащал 2.26лв/л, а най-малко 1.56лв/л зареждайки средно по 32.06 л) изминавайки средно 34.03 км дневно (общо 19906.56) като 80% от този път, е шофиране в градски условия (в стандартните софийски задръствания сутрин и вечер) От тези цифри –> средният разход на гориво на машинката е приблизително 8.22 л/100км (но ми се струва, че статиската куца малко защото няколкото междинни засичания по-малко от 9.5 л/100км не са показвали). Средният ми дневен финансов разход (касаещ горивото на автомобила) е 4.723 лв.


    P.S. ето ако имах интерфейс към бордовият компютър можеше да си спестя всичките тези сметки и да взема резултатите наготово :(

    понеделник, януари 04, 2010

    UDP flood

    1. #touch > /tmp/flood.pl
    2. #chmod +x /tmp/flood.pl
    3. Copy the this code to /tmp/flood.pl:
    #!/usr/bin/perl

    ##############
    # udp flood.
    ##############

    use Socket;
    use strict;

    if ($#ARGV != 3) {
    print "flood.pl

    събота, януари 02, 2010

    Новогодошен

     

    След сериозният провал с миналогодишният ToDo list за тази година си пожелавам единственно да приключвам (успешно?) започнатите неща! Amen!

    неделя, декември 20, 2009

    Back to the future

    К***

    Я помню чудное мгновенье:
    Передо мной явилась ты,
    Как мимолетное виденье,
    Как гений чистой красоты.

    В томленьях грусти безнадежной,
    В тревогах шумной суеты,
    Звучал мне долго голос нежный
    И снились милые черты.

    Шли годы. Бурь порыв мятежный
    Рассеял прежние мечты,
    И я забыл твой голос нежный,
    Твои небесные черты.

    В глуши, во мраке заточенья
    Тянулись тихо дни мои
    Без божества, без вдохновенья,
    Без слез, без жизни, без любви.

    Душе настало пробужденье:
    И вот опять явилась ты,
    Как мимолетное виденье,
    Как гений чистой красоты.

    И сердце бьется в упоенье,
    И для него воскресли вновь
    И божество, и вдохновенье,
    И жизнь, и слезы, и любовь.

    вторник, декември 15, 2009

    No title

    В Африка всяка сутрин газелата се събужда с мисълта, че трябва да надбяга най-бързия лъв, за да остане жива.
    Всяка сутрин африканският лъв се събужда с мисълта, че трябва да надбяга най-бавната газела, за да не умре от глад.

    понеделник, декември 07, 2009

    TFTP

    Trivial File Transfer Protocol (TFTP), which is defined in RFC 1350 (obsoletes RFC 783). Its name says it all; it is trivial in comparison with its more robust relative, FTP. Its trivial nature can be seen in the following limitations:
    • Runs on top of UDP (port 69), unlike FTP
    • Provides no user authentication
    • Cannot list directories
    • Limited header
     TFTP uses a 2-byte op-code header that follows immediately after the IP and UDP headers. 

    Figure 4.

    Figure

    There are five types of operational codes:
    • RRQ Read Request
    • WRQ Write Request
    • DATA
    • ACK Acknowledgement
    • ERROR
    If an error occurs, there will also be an error number given. There are three bits reserved for error codes, giving values 0 - 7.
    0 - Not defined
    1 - File not found
    2 - Access violation
    3 - Disk full
    4 - Illegal operation
    5 - Unknown transfer id
    6 - File already exists
    7 - No such user

    събота, декември 05, 2009

    How people working

    To prepare for the restructuring process, the Active Directory deployment team must obtain the necessary design information from the Active Directory design team

    Това е от MS Best Practice... в конкретният случай за ADMT ама все пак... как работят хората само - AD deployment team, че AD design team ... не както до сега ми се е случвало AIO+бай Иван дето копа (доакто менажерите покрай него гледат давайки акъл)

    вторник, ноември 24, 2009

    Sony MDR-RF800

    Явно съм свикнал с удобството и комфорта от безжичното аудио... След като на предните слушалки им се счупи лявото "слушало" и опита за поправянето му беше не успешен се добих с тези.
    Това което ми харесва:
    1. По-леки са (спрямо предните)
    2. Обхвата е по-голям
    3. По-"гъвкави" и предполагам по-чупливоустойчиви
    4. Качеството на звука е по-добро (ниодимовите магнити явно оказват влияние)
    5. При липса на сигнал не се чува никакъв "бял" шум
    Това което не ми харесва (спрямо предните и по принцип):
    1. Не стоят толкова стегнати на главата колкото предните (може и да не е толкова голям минус колкото ми изглежда в момента)
    2. Нямат стойка на която да ги прибирам което означава, че ще се мандахерцат из бюрото насам-натам
    3. Зареждането на батериите става през семплият предавател с едно 20 см кабелче хардкоднато в малкият и лекият предавател
    4.Индикатора за заряд на батерията е ... червено светодиодче - сиреч пак нямам дори ориентировъчна индикация на това колко време слушане ми остава
    5. Няма индикатор кога работят (приемат сигнал) така, че не мога да разбера дали се изключват при липса на входящ сигнал

    петък, ноември 13, 2009

    Useful *nix commands - grep

    Get a Grip on the Grep! – 15 Practical Grep Command Examples

    by SathiyaMoorthy on March 26, 2009
    Grip on the Unix Grep Command
    Photo courtesy of Alexôme's

    This is part of the on-going 15 Examples series, where 15 detailed
    examples will be provided for a specific command or functionality.
    Earlier we discussed 15 practical examples for Linux find command, Linux
    command line history and mysqladmin command.


    In this article let us review 15 practical examples of Linux grep
    command that will be very useful to both newbies and experts.


    First create the following demo_file that will be used in the examples
    below to demonstrate grep command.

    $ cat demo_file
    THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
    this line is the 1st lower case line in this file.
    This Line Has All Its First Character Of The Word With Upper Case.

    Two lines above this line is empty.
    And this is the last line.

    1. Search for the given string in a single file

    The basic usage of grep command is to search for a specific string in
    the specified file as shown below.

    Syntax:
    grep "literal_string" filename

    $ grep "this" demo_file
    this line is the 1st lower case line in this file.
    Two lines above this line is empty.

    2. Checking for the given string in multiple files.

    Syntax:
    grep "string" FILE_PATTERN


    This is also a basic usage of grep command. For this example, let us
    copy the demo_file to demo_file1. The grep output will also include the
    file name in front of the line that matched the specific pattern as
    shown below. When the Linux shell sees the meta character, it does the
    expansion and gives all the files as input to grep.

    $ cp demo_file demo_file1

    $ grep "this" demo_*
    demo_file:this line is the 1st lower case line in this file.
    demo_file:Two lines above this line is empty.
    demo_file:And this is the last line.
    demo_file1:this line is the 1st lower case line in this file.
    demo_file1:Two lines above this line is empty.
    demo_file1:And this is the last line.

    3. Case insensitive search using grep -i

    Syntax:
    grep -i "string" FILE


    This is also a basic usage of the grep. This searches for the given
    string/pattern case insensitively. So it matches all the words such as
    "the", "THE" and "The" case insensitively as shown below.

    $ grep -i "the" demo_file
    THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
    this line is the 1st lower case line in this file.
    This Line Has All Its First Character Of The Word With Upper Case.
    And this is the last line.

    4. Match regular expression in files

    Syntax:
    grep "REGEX" filename


    This is a very powerful feature, if you can use use regular expression
    effectively. In the following example, it searches for all the pattern
    that starts with "lines" and ends with "empty" with anything in-between.
    i.e To search "lines[anything in-between]empty" in the demo_file.

    $ grep "lines.*empty" demo_file
    Two lines above this line is empty.

    From documentation of grep: A regular expression may be followed by one
    of several repetition operators:

    * ? The preceding item is optional and matched at most once.
    * * The preceding item will be matched zero or more times.
    * + The preceding item will be matched one or more times.
    * {n} The preceding item is matched exactly n times.
    * {n,} The preceding item is matched n or more times.
    * {,m} The preceding item is matched at most m times.
    * {n,m} The preceding item is matched at least n times, but not more
    than m times.

    5. Checking for full words, not for sub-strings using grep -w

    If you want to search for a word, and to avoid it to match the
    substrings use -w option. Just doing out a normal search will show out
    all the lines.

    The following example is the regular grep where it is searching for
    "is". When you search for "is", without any option it will show out
    "is", "his", "this" and everything which has the substring "is".

    $ grep -i "is" demo_file
    THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
    this line is the 1st lower case line in this file.
    This Line Has All Its First Character Of The Word With Upper Case.
    Two lines above this line is empty.
    And this is the last line.


    The following example is the WORD grep where it is searching only for
    the word "is". Please note that this output does not contain the line
    "This Line Has All Its First Character Of The Word With Upper Case",
    even though "is" is there in the "This", as the following is looking
    only for the word "is" and not for "this".

    $ grep -iw "is" demo_file
    THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
    this line is the 1st lower case line in this file.
    Two lines above this line is empty.
    And this is the last line.

    6. Displaying lines before/after/around the match using grep -A, -B and -C

    When doing a grep on a huge file, it may be useful to see some lines
    after the match. You might feel handy if grep can show you not only the
    matching lines but also the lines after/before/around the match.


    Please create the following demo_text file for this example.

    $ cat demo_text
    4. Vim Word Navigation

    You may want to do several navigation in relation to the words, such as:

    * e - go to the end of the current word.
    * E - go to the end of the current WORD.
    * b - go to the previous (before) word.
    * B - go to the previous (before) WORD.
    * w - go to the next word.
    * W - go to the next WORD.

    WORD - WORD consists of a sequence of non-blank characters, separated
    with white space.
    word - word consists of a sequence of letters, digits and underscores.

    Example to show the difference between WORD and word

    * 192.168.1.1 - single WORD
    * 192.168.1.1 - seven words.

    6.1 Display N lines after match

    -A is the option which prints the specified N lines after the match as
    shown below.

    Syntax:
    grep -A "string" FILENAME


    The following example prints the matched line, along with the 3 lines
    after it.

    $ grep -A 3 -i "example" demo_text
    Example to show the difference between WORD and word

    * 192.168.1.1 - single WORD
    * 192.168.1.1 - seven words.

    6.2 Display N lines before match

    -B is the option which prints the specified N lines before the match.

    Syntax:
    grep -B <N> "string" FILENAME


    When you had option to show the N lines after match, you have the -B
    option for the opposite.

    $ grep -B 2 "single WORD" demo_text
    Example to show the difference between WORD and word

    * 192.168.1.1 - single WORD

    6.3 Display N lines around match

    -C is the option which prints the specified N lines before the match. In
    some occasion you might want the match to be appeared with the lines
    from both the side. This options shows N lines in both the side(before &
    after) of match.

    $ grep -C 2 "Example" demo_text
    word - word consists of a sequence of letters, digits and underscores.

    Example to show the difference between WORD and word

    * 192.168.1.1 - single WORD

    7. Highlighting the search using GREP_OPTIONS

    As grep prints out lines from the file by the pattern / string you had
    given, if you wanted it to highlight which part matches the line, then
    you need to follow the following way.

    When you do the following export you will get the highlighting of the
    matched searches. In the following example, it will highlight all the
    this when you set the GREP_OPTIONS environment variable as shown below.

    $ export GREP_OPTIONS='--color=auto' GREP_COLOR='100;8'

    $ grep this demo_file
    this line is the 1st lower case line in this file.
    Two lines above this line is empty.
    And this is the last line.

    8. Searching in all files recursively using grep -r

    When you want to search in all the files under the current directory and
    its sub directory. -r option is the one which you need to use. The
    following example will look for the string "ramesh" in all the files in
    the current directory and all it's subdirectory.

    $ grep -r "ramesh" *

    9. Invert match using grep -v

    You had different options to show the lines matched, to show the lines
    before match, and to show the lines after match, and to highlight match.
    So definitely You'd also want the option -v to do invert match.

    When you want to display the lines which does not matches the given
    string/pattern, use the option -v as shown below. This example will
    display all the lines that did not match the word "go".

    $ grep -v "go" demo_text
    4. Vim Word Navigation

    You may want to do several navigation in relation to the words, such as:

    WORD - WORD consists of a sequence of non-blank characters, separated
    with white space.
    word - word consists of a sequence of letters, digits and underscores.

    Example to show the difference between WORD and word

    * 192.168.1.1 - single WORD
    * 192.168.1.1 - seven words.

    10. display the lines which does not matches all the given pattern.

    Syntax:
    grep -v -e "pattern" -e "pattern"

    $ cat test-file.txt
    a
    b
    c
    d

    $ grep -v -e "a" -e "b" -e "c" test-file.txt
    d

    11. Counting the number of matches using grep -c

    When you want to count that how many lines matches the given
    pattern/string, then use the option -c.

    Syntax:
    grep -c "pattern" filename

    $ grep -c "go" demo_text
    6


    When you want do find out how many lines matches the pattern

    $ grep -c this demo_file
    3


    When you want do find out how many lines that does not match the pattern

    $ grep -v -c this demo_file
    4

    12. Display only the file names which matches the given pattern using
    grep -l

    If you want the grep to show out only the file names which matched the
    given pattern, use the -l (lower-case L) option.

    When you give multiple files to the grep as input, it displays the names
    of file which contains the text that matches the pattern, will be very
    handy when you try to find some notes in your whole directory structure.

    $ grep -l this demo_*
    demo_file
    demo_file1

    13. Show only the matched string

    By default grep will show the line which matches the given
    pattern/string, but if you want the grep to show out only the matched
    string of the pattern then use the -o option.

    It might not be that much useful when you give the string straight
    forward. But it becomes very useful when you give a regex pattern and
    trying to see what it matches as

    $ grep -o "is.*line" demo_file
    is line is the 1st lower case line
    is line
    is is the last line

    14. Show the position of match in the line

    When you want grep to show the position where it matches the pattern in
    the file, use the following options as

    Syntax:
    grep -o -b "pattern" file

    $ cat temp-file.txt
    12345
    12345

    $ grep -o -b "3" temp-file.txt
    2:3
    8:3


    Note: The output of the grep command above is not the position in the
    line, it is byte offset of the whole file.
    15. Show line number while displaying the output using grep -n

    To show the line number of file with the line matched. It does 1-based
    line numbering for each file. Use -n option to utilize this feature.

    $ grep -n "go" demo_text
    5: * e - go to the end of the current word.
    6: * E - go to the end of the current WORD.
    7: * b - go to the previous (before) word.
    8: * B - go to the previous (before) WORD.
    9: * w - go to the next word.
    10: * W - go to the next WORD.