Polska Planeta Debiana

Ubuntu ma swoją Planetę, czemu zatem Debian nie ma mieć polskiego odpowiednika Planet Debian?
Zatem - otwiera... tzn. startujemy! ;-) Hadret przeprowadził na swoim blogu ankietę, w której większość jego czytelników opowiedziała się za potrzebą powstania Planet Debian w naszym ojczystym języku. Troszkę pracy i oto jest:
Polska Planeta Debiana
Jesteś bloggerem? Piszesz o Debianie? Chcesz zwiększyć poczytność bloga (a któż nie chce ;-))? Napisz... Więcej szczegółów do znalezienia na stronie Polskiej Planety Debiana.
Ponadto, jeśli chcesz pomóc w tworzeniu serwisu, masz ciekawe pomysły do realizacji, piszesz artykuły bądź newsy ze świata Debiana, możesz dołączyć do naszej skromnej dwójki :-)
Pozostaje pytanie - czemu nikt się nie zajął portalem traktującym o systemie Debian GNU/Linux wcześniej?
Mała sieć domowa w oparciu o system Linux
Dzisiaj zajmiemy się tworzeniem małej, dość dobrze zabezpieczonej sieci domowej. Udostępnianie internetu zrealizujemy poprzez komputer-host z zainstalowanym systemem Linux (dowolnym, może być Ubuntu, Debian, Mandriva i inne). Pamiętajcie jednak, że Wasze środowisko może różnić się od środowiska zaprezentowanego w artykule – analizujcie treść a nie tylko przeklejajcie komendy do konsoli! Lecimy!
Załóżmy środowisko:

Dla ułatwienia ustalmy hostname dla komputerów:
- komp1) orion nasz router
- komp2) scorpio podłączony przez interfejs eth1
- komp3) omega podłączony przez interfejs eth2
- komp4) syrius podłączony przez interfejs eth3
Oczywiście w sieci może być więcej komputerów – wystarczy do routera wsadzić większą ilość kart sieciowych. W przykładzie wykorzystałem 3 komputery z zainstalowanym systemem Debian GNU/Linux, nic jednak nie stoi na przeszkodzie aby był to jakikolwiek inny system operacyjny.
Dokładny opis naszej przykładowej sieci domowej:
Komputer1 (orion) ma 4 karty sieciowe na złączu PCI:
[22:00:05] night@orion:~$ lspci | grep -i ether 02:05.0 Ethernet controller: 3Com Corporation 3c940 10/100/1000Base-T [Marvell] (rev 12) 02:0b.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) 02:0c.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8029(AS) 02:0d.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
W kolejności są to interfejsy od eth0 do eth3, przy czym interfejs eth0 (gigabitowa karta 3com) jest wpięta do sieci internet dostając adres z klasy prywatnej 192.168.0.10.
<22:02:26> root@orion:/home/night# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0E:2E:90:A7:37
inet addr:192.168.0.10 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20e:2eff:fe90:a737/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2274170 errors:0 dropped:0 overruns:0 frame:0
TX packets:2224882 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2140325129 (1.9 GiB) TX bytes:1161463487 (1.0 GiB)
Interrupt:21 Base address:0xd400
Konfiguracja kart sieciowych
Zaczynamy od konfiguracji pozostałych kart sieciowych. W tym celu wyedytujemy plik /etc/network/interfaces w poniższy sposób:
(...) auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet static address 10.0.0.1 netmask 255.255.255.0 auto eth2 iface eth2 inet static address 10.0.1.1 netmask 255.255.255.0 auto eth3 iface eth3 inet static address 10.0.2.1 netmask 255.255.255.0 (...)
I restart sieci:
# /etc/init.d/networking restart
To tyle w kwestii kart sieciowych. Teraz DHCP!
Konfiguracja serwera DHCP
Na początek szybka instalacja:
# apt-get install dhcp3-server
... i konfiguracja:
# rm /etc/dhcp3/dhcpd.conf; nano -w /etc/dhcp3/dhcpd.conf
W pliczku (który będzie pusty) wpisujemy dla każdej podsieci:
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.3 10.0.0.254;
default-lease-time 6100;
option domain-name „nasza.domena”;
option domain-name-servers pierwszy.dns, drugi.dns;
option routers 10.0.0.1;
option subnet-mask 255.255.255.0;
option broadcast-address 10.0.0.255;
host scorpio { # komputer nr 1
hardware ethernet adres.mac;
fixed-address 10.0.0.2;
}
}
Oczywiście zmieniamy domenę, dns’y na własne a adres.mac wypełniamy adresem MAC komputera nr 1 (scorpio). Pozwoli nam to przypisywać jeden i zawsze ten sam adres IP dla tej maszyny. Dla reszty podsieci deklarujemy podobnie:
subnet 10.0.1.0 netmask 255.255.255.0 {
range 10.0.1.3 10.0.1.254;
default-lease-time 6100;
option domain-name „nasza.domena”;
option domain-name-servers dns,pierwszy, dns.drugi;
option routers 10.0.1.1;
option subnet-mask 255.255.255.0;
option broadcast-address 10.0.1.255;
host scorpio {
hardware ethernet adres.mac;
fixed-address 10.0.1.2;
}
}
Analogicznie dla podsieci trzeciej zmiejając odpowiednio ustawienia IP w konfiguracji. Drobna zmiana w skrypcie startowym:
# nano -w /etc/default/dhcp3-server
gdzie definiujemy interfejsy na których działać ma serwer DHCP
INTERFACES="eth1 eth2 eth3"
... i restart demona
/etc/init.d/dhcp3-server restart
W tym momencie możemy sprawdzić, czy nasze stacje robocze otrzymały adres sieciowy (należy odświeżyć ustawienia IP na każdym z nich). Jeśli wszystko zrobiliśmy dobrze powinniśmy móc pingować każdy z naszych komputerów. Pozostało nam udostępnienie dla nich internetu.
Udostępnianie sieci
W tym celu stworzymy dodatkowy skrypt startowy:
# nano -w /etc/init.d/firewall
Do którego to wpiszemy następujące regułki iptables:
#linijka potrzebna do włączenia udostępniania internetu echo 1 > /proc/sys/net/ipv4/ip_forward #wyczyszczenie starych reguł z pamięci iptables iptables -F iptables -X iptables -t nat -X iptables -t nat -F # ustawienie domyślnej polityki (o tym później) iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A FORWARD -o lo -j ACCEPT # Najważniejsze - udostępnienie sieci dla wybranych podsieci iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -j MASQUERADE iptables -t nat -A POSTROUTING -s 10.0.2.0/24 -j MASQUERADE
Plik zapisujemy, nadajemy mu prawa wykonywalności:
# chmod +x /etc/init.d/firewall
dopisujemy do standardowych runleveli:
# update-rc.d firewall defaults 90
i odpalamy:
# /etc/init.d/firewall
W tym momencie mamy działający internet na wszystkich 3 komputerach. Voila! Trzy ostatnie linijki w skrypcie powinny stworzyć nam odpowiednią tablicę routingu:
# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 10.0.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2 10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth3 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
Dzięki tym wpisom komputery w sieci domowej będą „widzieć się wzajemnie”. Możemy to sprawdzić pingując hosta scorpio z hosta omega, lub na odwrót. No i najważniejsze – możemy korzystać z internetu na wszystkich końcówkach podpiętych do sieci domowej :-).
Powiedzmy jednak, że to nas nie satysfakcjonuje. Chcemy mieć możliwość logowania się poprzez ssh do każdego z komputerów w sieci domowej. Musimy zatem zająć się forwardowaniem portów.
Przekierowanie portów
Aby przekierować wybrany port z hosta A na nasz router musimy na końcu naszego skryptu firewall dopisać:
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 800 -j DNAT --to 10.0.0.2:22
Co to robi? Forwarduje każde zapytanie przychodzące na port 800 karty sieciowej eth0 na adres 10.0.0.2, port 22 w sieci lokalnej. Zatem, jeśli odpytamy nasz router z sieci zewnętrznej w ten sposób:
$ ssh <user>@<host> -p 800
Dostaniemy de facto połączenie z komputerem z adresem 10.0.0.2 w sieci lokalnej. W naszym przykładzie będzie to scorpio. Dodajmy resztę hostów:
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 800 -j DNAT --to 10.0.0.2:22 iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 801 -j DNAT --to 10.0.1.2:22 iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 802 -j DNAT --to 10.0.1.2:22
I w ten sposób mamy możliwość zalogowania się na każdy z naszych komputerów w sieci domowej z zewnątrz.
Jutro opiszę sposób zabezpieczenia naszego routera przed najpopularniejszymi atakami z zewnątrz w przypadku gdy posiadamy publiczny adres IP. Enjoy!
W artykule mogły pojawić się błędy i nieścisłości. Będzie on zaktualizowany w przypadku wykryciu takowych.
Conky 1.4.7 dla Debiana (paczka deb)
Dwa tygodnie temu wydana została najnowsza wersja monitora systemowego Conky. Jak zwykle już – zbudowałem paczkę dla systemu Debian Sid. Paczka powinna zadziałać także w Debianie z gałęzi Testing. W tej wersji programiści dodali:
- moduł kolorowania składni pliku .conkyrc dla nano (w końcu działa!)
- zmienną $hwmon – wykorzystywaną do lm_sensors
- bezpośrednią implementację RSS (chociaż niektórzy nadal pewnie wolą swoje skrypty :-))
- monitorowanie stanu sieci bezprzewodowej
- kilka pomniejszych zmian w treści licencji i samym kodzie
Aby ściągnąć paczkę kliknij TUTAJ
Jeśli czegoś zabraknie w powyższej paczce proszę o powiadomienie, zbuduje się nową z „dodatkowymi funkcjonalnościami”.
ENJOY!
Ubuntu 7.04 Professional wydane! (net-install)
Przeglądając polskie forum Ubuntu zauważyłem, że bardzo dużo osób chciałoby zainstalować Ubuntu 7.04 pobierając minimalnie mały obraz iso z serwerów, a resztę instalacji przeprowadzić przez sieć. Poprzednio wydane, polskie 6.12 posiadało taką możliwość, tym razem płyty takowej nie ma. A w zasadzie - nie było do teraz :-).
Od dziś możecie pobierać Ubuntu 7.04 Professional!
Ubuntu 7.04 Professional - torrent - ŚCIĄGNIJ
Ubuntu 7.04 Professional - limitowane ftp - ŚCIĄGNIJ
Ubuntu 7.04 Professional - limitowane http - ŚCIĄGNIJ (zip)
Ubuntu 7.04 Professional - http dzięki uprzejmości Villemanna - SCIĄGNIJ
Moje serwery nie utrzymają tego długo... Dlatego polecam torrent :-).
Plik ma 8,65 MB. Jeśli uważacie, że nie opłaca się wypalanie takiego *.iso, zawsze możecie zgrać je na pendrive lub wypalić poprzez CD-RW.
Krótka instrukcja obsługi:
Naciśnięcie 'enter' w menu bootowania zainstaluje nam Ubuntu 7.04 Desktop pobierając wszystkie pakiety z sieci.
Wpisanie 'server' i naciśnięcie enter zainstaluje nam bazowy system, pobierając wszystkie pakiety z sieci.
W odróżnieniu od poprzedniego obrazu 6.12 Professional, 7.04 potrafi instalować tak środowisko graficzne jak i typowo konsolowe. Wszystkie pakiety pobiera z sieci, więc potrzebne jest działające Out Of The Box wsparcie dla sieci. Pod neostradą i innymi podobnymi tworami - instalacja się nie powiedzie!
Dodatkowo, dla użytkowników którzy z powodu posiadanego łącza nie mogą użyć płyty Professional, stworzyłem skrypt debootstrap instalujący całe podstawowe i minimalne środowisko konsolowe Ubuntu 7.04. Plik wrzucamy do /usr/lib/debootstrap/scripts/, parametrem do debootstrap jest standardowo nazwa dystrybucji (feisty).
ŚCIĄGNIJ skrypt do debootstrap
Dla zainteresowanych:
Pomysł na tak małą płytę net-install udało mi się wymyśleć w czasie instalacji poprzez pxeboot. Wysyłany jest wtedy tylko obraz jądra - resztę ciągnie z sieci. Wystarczyło wziąć AlternateCD i odpowiednio ją okroić. Instalator nie znajdując pakietów na CD odsyła w sieć. Ot, cała filozofia. A płytka netinstall jest mniejsza nawet od businesscard Debiana.
ps. torrent dostępny także na: linuxtracker
Dodatkowo kopią mnie na diggu i zapewne nie tylko tam... :-)
Logo Ubuntu, Ubuntu i Canonical to zarejestrowane znaki towarowe Canonical Ltd.
Płyta została stworzona zgodnie z zasadami markowania Canonical Ltd.
Exim4 + Mailman as Mailing List Manager on Debian
So, let's say you are a Debian server administrator and you want to set up a mailing list for your users. You have already configured Exim4 as MTA and installed Mailman from offical repositories. With smile on face you are sending a message on {list}@{server} and...
pipe to |/var/lib/mailman/mail/mailman post ...
generated by .......
local delivery failed
The following text was generated during the delivery attempt:
------ pipe to |/var/lib/mailman/mail/mailman post ...
generated by ....------
Group mismatch error. Mailman expected the mail
wrapper script to be executed as group "daemon", but
the system's mail server executed the mail script as
group "Debian-exim". Try tweaking the mail server to run the
script as group "daemon", or re-run configure,
providing the command line option `--with-mail-gid=Debian-exim'.
This is a well known problem with group permissions. Forums all over the world explain the problem but none of those have right clues to deal with it.
In short words - it is a bug in Debian package. Maintainer of mailman-2.1.9 somehow forgot to change default group of mailman from "deamon" to "Debian-exim" (which is required by Exim4 to recognize Mailman and deal with pipe of messages encoded in /etc/aliases). Also - I really do not know why packager set default path to /var/lib! The way to solve it is recompiling Mailman with option:
--with-mail-gid=Debian-exim
..but, wait a minute. The default path of Debian's mailman is not compatible with default path of source package. Changing the path with configure options is really bad idea.
Few minutes ago I finally got over it. Path of mailman source local installation is /usr/local/mailman, so we must manually override some starting scripts of mailman. Here's a solution. Right when we configure, make and make install our new Mailing List Manager we must create a init.d script for running it with correct permissions.
#!/bin/bash echo "Starting mailman..." su mailman -c 'python mailmanctl -s -q start' & sleep 1 su mailman -c 'python /usr/local/mailman/bin/qrunner --runner=ArchRunner:0:1 -s' & su mailman -c 'python /usr/local/mailman/bin/qrunner --runner=BounceRunner:0:1 -s' & su mailman -c 'python /usr/local/mailman/bin/qrunner --runner=CommandRunner:0:1 -s' & su mailman -c 'python /usr/local/mailman/bin/qrunner --runner=IncomingRunner:0:1 -s' & su mailman -c 'python /usr/local/mailman/bin/qrunner --runner=NewsRunner:0:1 -s' & su mailman -c 'python /usr/local/mailman/bin/qrunner --runner=OutgoingRunner:0:1 -s' & su mailman -c 'python /usr/local/mailman/bin/qrunner --runner=VirginRunner:0:1 -s' & su mailman -c 'python /usr/local/mailman/bin/qrunner --runner=RetryRunner:0:1 -s' &
Remember! Run "newlist" directly from /usr/local/mailman/bin to create lists (not command "newlist" from default path /usr/bin!) and don't forget to run "newaliases" after modifying /etc/aliases. Also, you have to configure your httpd.conf for cgi-bin scripts which is provider with mailman source package.
ScriptAlias /mailman/ /usr/local/mailman/cgi-bin/
<Directory /usr/local/mailman/cgi-bin/>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
Alias /pipermail/ /usr/local/mailman/archives/public/
<Directory /usr/local/mailman/archives/public>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Alias /mmimages/ /usr/share/doc/mailman/images/
<Directory /usr/share/doc/mailman/images>
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
After that, restart apache and mailman (with your changed script!). Now your Web Control Panel is fully configured and set up. Add subscribers and enjoy it! :)
Other way to solve the problem is contact maintainer of package mailman or build our own package mailman-exim4-2.1.9. I will try to do both.
At last - please contact me if you encountered the same problem. I realize that this mini-solution is not a full HowTo. A bunch of links that helped me or point me at good way to look:
http://www.exim.org/howto/mailman.html"
http://tectonic.co.za/view.php?id=538
http://mail.python.org/pipermail/mailman-users/2004-January/033817.html
http://archives.free.net.ph/message/20070306.165258.c83599e1.en.html
