30 July 2007 - 15:00Elegantní počítaní přenesených dat (traffic)

U všech serverů se hodí vědět kolik celkem proteklo dat přes kterou síťovou kartu.
K počítání přenesených dat používám vnstat.

V debianu snadno nainstalujete příkazem

apt-get install vnstat

A vytvoříte databázi pro síťovou kartu.

vnstat -u -i eth0

Stačí počkat 5 minut a máte k dipozici první údaje.
Příklad měsíčních přenosů na tomto serveru.

bluedot:~# vnstat -m
eth0

month rx | tx | total
————————+—————+—————
Aug ‘06 33,459 MB | 159,718 MB | 193,177 MB
Sep ‘06 30,545 MB | 128,827 MB | 159,373 MB
Oct ‘06 34,168 MB | 197,330 MB | 231,499 MB
Nov ‘06 31,311 MB | 271,926 MB | 303,237 MB
Dec ‘06 31,921 MB | 291,091 MB | 323,013 MB
Jan ‘07 26,313 MB | 198,691 MB | 225,005 MB
Feb ‘07 56,194 MB | 276,093 MB | 332,287 MB
Mar ‘07 32,034 MB | 217,255 MB | 249,289 MB
Apr ‘07 38,956 MB | 243,583 MB | 282,539 MB
May ‘07 39,967 MB | 231,630 MB | 271,598 MB
Jun ‘07 34,139 MB | 189,878 MB | 224,018 MB
Jul ‘07 32,835 MB | 219,557 MB | 252,392 MB
————————+—————+—————
estimated 34,407 MB | 230,071 MB | 264,478 MB

No Comments | Tags: How to

27 July 2007 - 10:45Happy sysadmin day :)

A sysadmin unpacked the server for this website from its box, installed an operating system, patched it for security, made sure the power and air conditioning was working in the server room, monitored it for stability, set up the software, and kept backups in case anything went wrong. All to serve this webpage.

A sysadmin installed the routers, laid the cables, configured the networks, set up the firewalls, and watched and guided the traffic for each hop of the network that runs over copper, fiber optic glass, and even the air itself to bring the Internet to your computer. All to make sure the webpage found its way from the server to your computer.

A sysadmin makes sure your network connection is safe, secure, open, and working.

A sysadmin makes sure your computer is working in a healthy way on a healthy network.

A sysadmin takes backups to guard against disaster both human and otherwise, holds the gates against security threats and crackers, and keeps the printers going no matter how many copies of the tax code someone from Accounting prints out.

A sysadmin worries about spam, viruses, spyware, but also power outages, fires and floods.

When the email server goes down at 2 AM on a Sunday, your sysadmin is paged, wakes up, and goes to work.

more on  : http://www.sysadminday.com/

No Comments | Tags: Linux

26 July 2007 - 9:01Iptables – zablokování IP adresy

Pro jednoduché a rychlé zabanovaní jedné IPadresy stačí tento příkaz.

iptables -A INPUT -s 11.22.33.44 -j DROP

No Comments | Tags: How to

19 July 2007 - 20:33Inkrementální zálohování

 Jednoduché zálohování které jsem popisoval v minulém článku se hodi jen pro
maximálně 70gb dat(záleží na zatížení serveu v nočních hodinách).

Když potřebujete zálohovat desítky či dokonce stovky gigabytů, tak není možné
všechny data zabalit do jednoho velkého taru a rozsekávání na nějaké kousky je
neefektivní. V těchto situacích je nejlepší inkrementální zálohování (kopírují se
jenom změněné soubory)

Já používám projekt rdiff-backup kde je zálohování i obnova opravdu hračkou.
Na debianu nainstalujete snadno příkazem

apt-get install rdiff-backup

Záloha celého filesystému přes ssh.

rdiff-backup / host.net::/target-dir

Lepší je vynechat některé adresáře jako /proc /dev /sys /tmp ….
V téhle konfigurace se bude zálohovat na disk připojený do /mnt/backup

rdiff-backup –exclude /tmp –exclude /proc –exclude /mnt –exclude /proc –exclude /sys / /mnt/backup

Stejně tak můžete zálohovat přes ssh.

rdiff-backup –exclude /tmp –exclude /proc –exclude /mnt –exclude /proc –exclude /sys / backup@host.net::/mnt/backup

Před každou zálohou mažeme soubory starší dvou týdnů

rdiff-backup –remove-older-than 2W backup@host.net::/mnt/backup

Zálohování již beží :) a pokud si vy nebo nějaký uživatel smaže nějaký soubor, tak
mu ho můžete obnovit.A k dispozici máte změny souboru za posledních 14 dní.
Obnovit můžete jakýkoliv adresář nebo klidně celý filesystém.

rdiff-backup –restore-as-of 1D /mnt/backup/home/example.com /rozbalena_zaloha

Pokud zálohujete přes ssh k obnovení použijte tento příkaz.

rdiff-backup –restore-as-of 1D /mnt/backup/home/example.com host.net::/mnt/backup /rozbalena_zaloha

Pro začátek určitě mrkněte do dokumentace nebo rovnou na příklady

No Comments | Tags: How to

17 July 2007 - 14:54Foto z dovolené – Pohled na tatry ze slovenského ráje

tatry2_small.jpg

No Comments | Tags: Osobní

17 July 2007 - 13:47Email blacklist check

Pokud provozujete nějaký server, určite se Vám stalo že přes Vaše smtp někdo odeslal
větší množství spamu přes nějaký děravý php skript a došlo k zařazení Vaší IP adresy
na blacklist. I když se tomu snažím různě předcházet (omezování počtu přijemců,
maximalní počet odeslaných emailů za hodinu,logování kam se emaily posílají) občas se
nevyhnu tomu, že je nějaká IP adresa v blacklistu zařazena.

Ruční kontrola všech blacklistů nepřipadá v úvahu, proto doporučuji používání téhle utilitky.

http://www.mxtoolbox.com/blacklists.aspx 

No Comments | Tags: Hosting a housing

4 July 2007 - 18:50Jednoduché zálohování a obnova dat

Zálohování dat je asi nejdůležitější při správě serverů, někdo může namítnout že má data uložené na RAID poli. Ano RAID pole chrání data při výpadku některého z disků, ale pokud si smažete nějaký soubor máte smůlu.

Čili platí, zálohovat, zálohovat a zálohovat. Skutečnou cenu dat poznáte až ve chvíli kdy je ztratíte.

Tenhle jednoduchý script zabalí vybrané adresáře do TARu.

#!/bin/bash

#Kam se bude zalohovat
BACKUP_TO=”/0backup”

#Ktere adresare se maji zalohovat
BACKUP_DIRS=”/bin /boot /etc /root /sbin /tmp /var /opt /home”

#Smaze starou zalohu – udrzujeme 7 zaloh
delete_old()
{
backup_count=`ls $BACKUP_TO | wc -l`
if [ $backup_count -gt 7 ]; then
DIR2DEL=`ls -1 $BACKUP_TO | head -1`
rm -f $BACKUP_TO/$DIR2DEL
fi
}

#Zalohovani
backup()
{
FILENAME=$HOSTNAME-`date +%Y-%m-%d`.tar
nice tar -cvf $BACKUP_TO/$FILENAME $BACKUP_DIRS
}

#nejdrive smazeme nejstarsi zalohu a vytvorime novou
delete_old
backup

Tento script uložte do /etc/cron.daily a zálohování bude probíhat automaticky každý den.
Teď máte k dispozici zálohy za posledních 7 dní, což je většinou dostatečné.

Rozbalení celého TARu je jednoduché

tar-xvf foo.tar

Ale většinou potřebujete jen pár souborů, či adresář a kvůli tomu je zbytečné rozbalovat celou zálohu.
Rozbalení jednoho souborů docílíte příkazem

tar -xvf foo.tar var/www/example.com/index.html

Vylistování souborů z archivu.

tar -tvf foo.tar

2 Comments | Tags: How to, Linux

2 July 2007 - 19:09PHP a .htaccess

Pokud beží PHP v safe_modu jsou zákazány nebo omezeny některé funkce jako např set_time_limit.
V tomhle postu bude jenom seznam vlatností které je možné nastavit přes .htaccess při stadartní instalaci PHP se safe_mode ON.

set_time_limit ( int $seconds ), v safe_modu nelze ovlivnit, přes .htaccess ano.

php_value max_execution_time 60

Pokud jsou na serveru zapnuté register_globals lze je vypnout tímto

php_flag register_globals off

Vypnutí magic_quotes lze ovlivnit tímto zápisem do .htaccess i když myslím že to není dobrý nápad z důvodu bezpečnosti.

php_flag magic_quotes_gpc off

Jestliže nepotřebujete zobrazovat chybové hlášky php – vhodné na nasazení na produkční servery

php_flag display_errors off

Pokud při spouštění svých scriptů narazíte na chybu jako Fatal error: Allowed memory size of 12388608 bytes exhausted (Tried to allocate 32584 bytes)

php_value memory_limit “32M”

Povolení uploadu souboru většího než je velikost nastavená v php.ini, v tomto případě lze nahrát soubor až o velikosti 32MB

php_flag file_uploads On
php_value memory_limit 32M
php_value post_max_size 32M
php_value upload_max_filesize 32M

Tohle jsou nejčastěji nastavované položky přes .htaccess z oblasti PHP, ale samozřejmě lze nastavit i další věci.
Pro kompletní seznam se mkněte do manuálu php .
Můžete modifikovat všechny položky označené PHP_INI_PERDIR nebo PHP_INI_ALL

Obecná syntaxe je následující.
php_flag nazev_promene stav pro binární hodnoty (čili ON nebo OFF)
php_value nazev_promene hodnota pro ostatní hodnoty

No Comments | Tags: PHP

2 July 2007 - 9:33Proftpd SSL howto

Abyste mohli provozovat proftpd se SSL je potřeba nejdřív mít  v proftpd zakompilovaný modul mod_tls. To zjistíte snadno příkazem.

bluedot:~# proftpd -l
Compiled-in modules:
...
mod_tls.c
...

Jestliže modul podporu mod_tls nemáte je potřeba ji do proftpd přidat.
- stáhněte poslední verzi proftpd z oficiálních stránek či z mirroru
- rozbalte a zkopilujte s podporou mod_tls

bluedot:~# wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.0a.tar.bz2
bluedot:~# tar -jxf proftpd-1.3.0a.tar.bz2
bluedot:~# cd proftpd-1.3.0a
bluedot:~# ./configure --with-modules=mod_tls
bluedot:~# make
bluedot:~# make install

Nyní už je k dispozici i modul tls, do direktivy –with-modules si můžete přidat další z užitečných modulů např. mod_ban nebo mod_exec.

Vygenerujte SSL certifikáty.
bluedot:~# mkdir -p /etc/proftpd/ssl
bluedot:~# cd/etc/proftpd/ssl
bluedot:~# openssl genrsa 1024 > host.key
bluedot:~# openssl req -new -x509 -nodes -sha1 -days 1095 -key host.key > host.cer
t

Doplňte informace o certifikátu

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) [AU]:CZ
State or Province Name (full name) [Some-State]:Czech Republic
Locality Name (eg, city) []:Prague
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:bluedot.cz
Email Address []:info@bluedot.cz

A nakonfiugurujte proftpd.

# Podpora TLS
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/proftpd_tls.log
TLSProtocol SSLv23
TLSRequired off
TLSVerifyClient off
TLSRSACertificateFile /etc/proftpd/ssl/host.cert
TLSRSACertificateKeyFile /etc/proftpd/ssl/host.key
</IfModule>

Pak už jenom nastavte ve svém oblíbeném ftp klientovi(např filezille) používání
SSL spojení (SSL over FTP explicit encryption). Rozdíl mezi explicitním a implicitním
SSL šifrování si můžete přečíst tady. 
http://help.globalscape.com/help/secureserver2/Explicit_versus_implicit_SS.htm

Příklad SSL komunikace.
Status: Connecting to bluedot.cz …
Status: Connected with bluedot.cz, negotiating SSL connection…
Response: 220 ProFTPD 1.2.10 Server (bluedot.cz) [87.236.197.6]
Command: AUTH SSL
Response: 234 AUTH SSL successful
Status: SSL connection established. Waiting for welcome message…

No Comments | Tags: How to

1 July 2007 - 11:37LittleTimeTable, rozvrh hodin pro PDA

LittleTimeTable

V roce 2005, kdy jsem si pořídil PDA jsem hledal vhodný školní rozvrh, ale nic použitelné jsem nenašel.Psaní rozvrhu jako schůzek s pravidelným opakováním mi nevyhovovalo a veškeré ostatní programy nefungovali podle mých představ, takže jsem v C# naprogramoval LittleTimeTable.Teď proč to píšu, jelikož do školy už nechodím tak nemám potřebu tenhle program nijak dál vyvíjet nebo přepisovat i když by to bylo potřeba.Pokud má někdo program převzít a dál ho vyvíjet napište.

Více informaci :
na oficiální homepage
na serveru svetpda.cz

No Comments | Tags: Programování