Archív

Archív pro

Zabezpečení chodu systému

15.05.2009 Bez komentářů

Může nastat stav, kdy z neznámého důvodu nenastartují některé služby. Pokud považujeme za nejvíce kritickou službu webového serveru s PHP, můžete zjištění jejího stavu a případný restart zabezpečit následovným způsobem:

Vytvořte soubor /opt/share/www/lighttpd/testweb.php s jednoduchým kódem:

<?php
$info = gd_info();
echo $info[„GD Version“];
?>

Dále budete potřebovat konzolový prohlížeč webových stránek lynx

ipkg install lynx

vytvořte soubor /opt/usr/local/testweb/testweb.sh s kódem, který kontroluje funkčnost php skriptu testweb.php a v případě chyby 500 – Internal server Error router restartuje. Výsledky zapisuje do vlastního logu.

#!/bin/sh
if lynx -dump 192.168.1.1/testweb.php | grep "500 - Internal Server Error" > /opt/usr/local/testweb/nullx
then
date >> /opt/usr/local/testweb/web_err.log
echo "Test PHP serveru - nedostupny.....REBOOT" >> /opt/usr/local/testweb/web_err.log
/sbin/reboot
fi;
date >> /opt/usr/local/testweb/web.log && echo "Test PHP serveru - OK" >> /opt/usr/local/testweb/web.log

Použitím jednoho znaménka > v posledním řádku zajistíte přepisování logu úspěšných kontrol.

Nastavte souboru testweb.sh spustitelný příznak:
chmod +x /opt/usr/local/testweb/testweb.sh

zajistěte zápisem do CRONu – /opt/etc/crontab spouštění kontroly například každou hodinu 30 minut po celé: 30 * * * * admin /opt/usr/local/testweb/testweb.sh

Přesunutí www serveru na jiný port

14.05.2009 Bez komentářů

Administrační webové rozhraní routeru běží standardně na portu 80, pokud jej potřebujete pro vlastní www server je třeba port administrace změnit. To se provádí nastavením nvram routeru.

Do souboru /opt/init.usb přidejte iptables -I INPUT -j ACCEPT -p tcp –dport 80, tímto zpřístupníme port 80 z internetu. Druhá možnost je vypnout firewall ve webové administraci, ale toto řešení je nebezpečné. Změňte port pro administraci z 80 na 8111 případně jakýkoliv jiný nepoužívaný port) nvram set http_lanport=8111 Proveďte změnu nastavení www serveru, který chceme mít na portu 80. Editujeme soubor /opt/etc/lighttpd/lighttpd.conf hodnotu server.port na 80 [11]

Zapíšeme do paměti a restartujeme router: flashfs save && flashfs commit && flashfs enable && reboot

Categories: software Tags:

Monitorování provozu a statistiky

Dalším krokem je zajištění monitorování provozu na routeru pomocí statistik. Použijeme nástroj IP Accounting, jedná se o BASH[1] skript, který využívá data z IPTABLES[2], které jsou základní součástí routeru. [13]

Nainstalujte obslužné nástroje rrdtool (API pro generování grafů),bc (balíček pro přesné výpočty) a bash (shell): ipkg install rrdtool && ipkg install bc && ipkg install bash

Stáhněte archiv ipaccounting-1.2.0.tar, obsah archivu nakopírujte do složek /opt (user) a /opt/share/www/lighttpd (statistika).

Souborům ipaccounting.sh, backup.sh a add_iptables.sh nastavte příznak spustitelný: chmod +x /opt/usr/local/ipaccounting.sh && chmod +x /opt/usr/local/backup.sh && chmod +x /opt/usr/local/add_iptables.sh && chmod +x /opt/usr/bin/rrdtool.sh

V adresáři /opt/share/www/lighttpd/statistika se nachází soubor ipaddress.txt, který slouží pro zadání IP adres, které chcete sledovat.

V souboru /opt/etc/crontab definujte pravidelné spouštění skriptu ipaccounting.sh

*/5 * * * * admin /opt/usr/local/ipaccounting.sh
*/30 * * * * admin /opt/usr/bin/rrdtool.sh

Po restartu se každých 5 minut vytvoří záznam o IP adresách, stavu načtených dat a rozhraní routeru. Každou půlhodinu se vytvoří graf. Výstup statistik najdete na adrese http://my.router/statistika


[1] Bash (Bourne again shell) je unixový příkazový shell interpreter. [1]

[2] Iptables je mocný nástroj, který umožňuje linuxovému nebo unixovému systému plně pracovat se síťovou komunikací. Pomocí něj je možné snadno řídit síťový provoz na serveru. [23]

Categories: Asus WL-500gP Tags:

Příklady nastavení CRONu

13.05.2009 Bez komentářů

Formát zápisu v souboru crontab: mm hh M D den v týdnu uživatel aplikace/skript

30 06 * * 1,2,3,4,5 /cesta/skript

Tento zápis zařídí, že se od pondělí do pátku každé ráno v 06:30 pro uživatele User1 spustí odkazovaný příkaz.

Využití cronu je široké, můžeme jej použít třeba k preventivnímu automatickému restartu routeru, například každou noc ve 3 ráno: 00 03 * * * reboot

nebo skript každých 10 minut: */10 * * * * admin php /cesta/skript.php

Categories: Asus WL-500gP Tags:

CRON a statistiky

13.05.2009 1 komentář

Abyste dokázali načasovat spouštění různých, nebo opakujících se úloh potřebujete aplikaci cron, která zabezpečuje automatické spouštění úloh, jako jsou statistiky, zálohování a podobně.

ipkg install cron

Jedna z možností jak řídit CRON je pomocí konfiguračního souboru /opt/etc/crontab.

Poté můžete crontab prohlížet příkazem crontab -l , případně editovat crontab -e . Pokud stále používáte editor vi, opusťte jej bez uložení příkazem a :q a editujte pomocí editoru nano.

Pokud budete potřebovat spouštět příkazy i pod účty jiných uživatelů, je třeba jim v souboru/var/cron.allow povolit spouštění příkazů:
echo user1 > /etc/cron.allow
crontab -u user1 /opt/etc/crontab

Categories: Linux návody, software Tags:

Redakční systému s databází SQLITE

13.05.2009 Bez komentářů

Vzhledem k tomu, že router není nijak výkonné zařízení, jsou možnosti nasazení redakčního systému poněkud omezené. Velmi nenáročný a jednoduchý redakční systém, který lze na routeru bez problémů provozovat se nazývá K:CMS[1].

Stáhněte archiv redakčním systémem a obsah složky nakopírujte do složky /opt/share/www/lighttpd/kcms/.

Povolte zápis do potřebných adresářů příkazem: chmod 777 /opt/share/www/lighttpd/kcms/gallery && chmod 777 /opt/share/www/lighttpd/kcms/gallery/thumbs && chmod 777 /opt/share/www/lighttpd/kcms/files && chmod 777 /opt/share/www/lighttpd/kcms/backups && chmod 666 /opt/share/www/lighttpd/kcms/config.php

Otevřete webovou stránku http://my.router/kcms/install.php a projděte jednoduchým instalačním procesem.


[1] Redakční systém K:CMS http://kcms.matl-soft.cz/ doporučená verze pro použití s SQLITE je 1.53

Categories: Linux návody, software Tags:

Zabezpečení SQLiteManageru

12.05.2009 Bez komentářů

Samozřejmě je nežádoucí, aby byla konzole SQLite Manageru volně přístupná, proto zaveďte řízení přístupu. [12]

V souboru /opt/share/www/lighttpd/sqlite/include/user_defined.inc.php odkomentujte a editujte řádky: define(„WITH_AUTH“, true); define(„ALLOW_CHANGE_PASSWD“, true);

Výchozí uživatelé a jejich hesla jsou admin:admin, data:data, guest:guest.

Pokud nepotřebujete přistupovat do SQLiteManageru z internetu, zabezpečte složku /opt/share/www/lighttpd/sqlite/ souborem httpd.conf, který bude obsahovat:

<Directory /opt/share/www/lighttpd/sqlite/>
DirectoryIndex index.php
order deny,allow
deny from all
allow from 127.0.0.1 192.168.1.1/24
</Directory>

Categories: Asus WL-500gP Tags:

Instalace databáze SQLITE

12.05.2009 komentáře 3

Pro prezentaci dynamických www stránek s PHP je třeba i databáze. Vzhledem k omezenému výkonu se nedoporučuje instalace MySQL databáze, ale například mnohem méně náročné SQLITE.

ipkg install sqlite

upravte /opt/etc/php.ini do sekce [PHP] doplňte date.timezone = "Europe/Prague" a do sekce [Dynamic Extensions] doplňte extension=pdo_sqlite.so a případně okomentujeme řádky obsahující:

;extension=gd.so ;extension=pdo.so ;extension=sqlite.so

Překontrolujte, zda v adresáři /opt/etc/php.d vznikly soubory gd.ini ,mbstring.ini , pdo.ini , sqlite.ini , pokud ne, založte je a vložte do nich následující: v gd.ini musí být: extension=gd.so v pdo.ini musí být: extension=pdo.so v sqlite.ini musí být: extension=sqlite.so v mbstring.ini musí být: extension=mbstring.so

Případně využijte výhody použití skriptu:

echo "extension=gd.so" >> /opt/etc/php.d/gd.ini && echo "extension=pdo.so" >> /opt/etc/php.d/pdo.ini && echo "extension=sqlite.so" >> /opt/etc/php.d/sqlite.ini && echo "extension=mbstring.so" >> /opt/etc/php.d/mbstring.ini

Pro lepší správu databáze nainstalujte SQLiteManager:
Vytvořte si v rootu web serveru (/opt/share/www/lighttpd/) složku např. sqlite a do ní nakopírujte obsah staženého archivu. Na závěr restartujte router: flashfs save && flashfs commit && flashfs enable && reboot .

Po restartu ověřte, zda běží všechny služby, které jste nainstalovali, příkazem: ps

Ověřte, zda funguje manažer databáze: http://my.router/sqlite/

SQLiteManager http://www.sqlitemanager.org/ ve verzi 1.2.0

Categories: Asus WL-500gP Tags:

Zprovoznění lepšího FTP serveru vsftpd

12.05.2009 Bez komentářů

Na serveru již běží jednoduchý FTP klient, ale mnohem lepším řešením s pokročilejším nastavením je vsftpd. Proveďte následující příkazy: ipkg install xinetd <enter> ipkg install vsftpd <enter> mkdir -p /opt/usr/share/empty <enter> rm /opt/etc/xinetd.d/telnetd <enter> rm /opt/etc/xinetd.d/ftp-sensor <enter>

editujte, případně vytvořte, konfigurační soubor opt/etc/xinetd.d/vsftp:

# description: The vsftpd FTP server serves FTP connections.
# it uses normal, unencrypted usernames and passwords for auth
service ftp
{
disable = no
socket_type = stream
user = admin
server = /opt/sbin/vsftpd
server_args = /opt/etc/vsftpd.conf
wait = no
nice = 10
only_from = 0.0.0.0/0
}

Spusťte killall stupid-ftpd <enter> /opt/etc/init.d/S10xinetd < enter >

Nakonfigurujte vsftpd server pomocí uvedených soborů: /opt/etc/vsftpd.conf, /opt/etc/vsftpd.chroot_list (seznam uživatelů) a /opt/etc/vsftpd.user_list.

Pro snadnější konfiguraci je v archivu k dispozici soubor vsftpd.zip, jehož obsah nakopírujte do /opt/etc.

Dále je nutné přidat do /etc/passwd souboru uživatele pro vsftpd server, např.:

ftp:$1$uOopDAdf$5csTDxcV.wwvRzHTcgSt30:0:0::/opt/share/www/:/bin/sh
user1:$1$.T.y.=user1=oIb8G1qJDp1gC9.:0:0:ftp:/opt/share/www/lighttpd/user1:/bin/sh

Zeditujte hesla uživatelů příkazem: passwd user1 <enter> nastavte heslo pro user1 a totéž udělejte pro případné další uživatele.

Aby po restartu zůstal soubor passwd tak, jak jste jej zeditovali, musíte do souboru /usr/local/.files zapsat cestu k souboru s uživateli. Tímto zajistíte ukládání uvedených souborů do flashfs. Například:

/etc/passwd
/etc/group
/usr/local/sbin/hosts

Následně je třeba vytvořit všem uživatelům odpovídající adresáře v /opt/share/www/lighttpd/

Vytvořte adresář /opt/etc/vsftpd_user_conf a v něm soubor user1 s kódem
local_root=/opt/share/www/lighttpd/user1

V tomto souboru uživatele definujete složky, ke kterým má uživatel práva přistupovat. Obdobně postupujte pro konfiguraci dalších uživatelů

Vše uložte na flash: flashfs save && flashfs enable && flashfs commit (tento postup je třeba zopakovat pokaždé, když se mění soubory mimo adresář /opt) následuje restart reboot <enter>

Categories: Linux návody, software Tags:

Instalace Lighttpd – www serveru + PHP

11.05.2009 1 komentář

Určitě hlavním důvodem k modifikaci routeru je poskytování informací. K tomuto poslouží především webový server s podporou PHP, FTP serveru a SQL databází, který bude sloužit jako hlavní informační kanál.

Přihlaste se telnetem k routeru a nainstalujte potřebné balíky:

ipkg update <enter> dále nainstalujte následující balíčky:

  • ipkg install openssl
  • ipkg install lighttpd
  • ipkg install php-fcgi
  • ipkg install unzip
  • ipkg install libsigc++
  • ipkg install libgd
  • ipkg install php-gd
  • ipkg install php-mbstring
  • ipkg install microperl
  • a v případě potřeby i databázi ipkg install sqlite

Pokud chcete všechny úkoly vložit v rámci jedné fronty, spojte je pomocí znaků &&.

Založte adresář cache a compress a nastavte práva zápisu:
mkdir /opt/share/www/lighttpd/cache <enter> mkdir /opt/share/www/lighttpd/cache/compress <enter> mkdir /opt/share/www/cgi-bin <enter> chmod 777 /opt/share/www/lighttpd/cache <enter> chmod 777 /opt/share/www/lighttpd/cache/compress <enter> chmod 777 /opt/share/www/lighttpd/* <enter> chmod +x /opt/etc/init.d/S80lighttpd <enter>

Nakonfigurujte lighttpd server, nejrychlejší a nejistější variantou je použití WinSCP.

Stačí nakonfigurovat lighttpd server pomocí /opt/etc/lighttpd/lighttpd.conf. Pokud nepotřebujete nic měnit, je výchozí nastavení funkční.

Výtah z konfigurace, kde jsou typy indexů a adresář, pod kterým nám běží web.

## a static document-root, for virtual-hosting take look at the
## server.virtual-* options
server.document-root = „/opt/share/www/lighttpd/“

## where to send error-messages to
server.errorlog = „/opt/var/log/lighttpd/error.log“

# files to check for if …/ is requested
index-file.names = ( „index.php“, „index.html“,
„index.htm“, „default.htm“ )

## bind to port (default: 80)

server.port = 8081

v případě že by server nešel nastartovat a hlásil chybu:

2010-09-02 00:11:04: (log.c.166) server started
2010-09-02 00:11:04: (fdevent_linux_sysepoll.c.134) epoll_create failed (Function not implemented), try to set server.event-handler = „poll“ or „select“
2010-09-02 00:11:04: (fdevent.c.41) event-handler linux-sysepoll failed, try to set server.event-handler = „poll“ or „select“
2010-09-02 00:11:04: (server.c.1112) fdevent_init failed

přepište ještě

## set the event-handler (read the performance section in the manual)

server.event-handler = „select“ # needed on OS X

Konfigurace php: Vytvořte soubor /opt/etc/init.d/S45php příkazem:

echo „#!/bin/sh“ >> /opt/etc/init.d/S45php a vložte do něj tento kód:

#!/bin/sh
export PHP_FCGI_CHILDREN=1

PORT=1260
BIN=/opt/bin/php-fcgi

case $1 in
start)
$BIN -b $PORT &
;;
stop)
kill `pidof php`
;;
*)
echo "usage: $0 (start|stop)"
exit 1
esac

Soubor nastavte jako spustitelný: chmod +x /opt/etc/init.d/S45php <enter> ,aby byl www server dostupný také z internetu, je třeba přidat do souboru /opt/init.usb následující řádek:

iptables -I INPUT -j ACCEPT -p tcp –dport 8081

vše uložte a router restartujte: flashfs save && flashfs commit && flashfs enable && reboot <enter>

O tom, že server lighttpd s php běží správně, se přesvědčíte jednoduše tak, že vytvoříte soubor info.php v umístění kde běží root www serveru /opt/share/www/lighttpd a do něj vložíte tento kód:

<?php
phpinfo();
?>

V prohlížeči zavolejte stránku http://192.168.1.1:8081/info.php nebo http://WAN_adresa/info.php a pokud se objeví info o php je vše funkční a v pořádku.

Pokud se vyskytne chyba 403 – je třeba upravit konfigurační soubor www serveru /opt/etc/lighttpd/lighttpd.conf. V sekci server.modules odkomentujte „mod_fastcgi“, následně sekci fastcgi.server přepište na následující:

fastcgi.server = ( ".php" =>
( "localhost" =>
(
# "socket" => "/tmp/php-fastcgi.socket",
# "bin-path" => "/usr/local/bin/php"
"host" => "127.0.0.1",
"port" => 1260,
)
)
)

Při změně konfigurace www serveru je třeba jej restartovat /opt/etc/init.d/S80lighttpd restart <enter> [10]

Categories: Asus WL-500gP, Linux návody, software Tags: