March 27, 2013

No Comments

Z-Push Virtual User Support

I’m a fan of push mail. Not having to pull your mail manually or at a given interval is a huge advantage. That’s why I use Z-Push on my private mail server.

Lately I’ve been playing for the second time with the Autodiscovery protocol. Found a neaty little PHP script that does all the magic for me and it seems to work on both iOS 6 and Android 4.2.2. Great! But there was one little problem. Autodiscovery always put the whole email adress as the username. I don’t allow that in my mail configuration. So what now? I couldn’t find a way to persuade Autodiscovery to put the right username as username and I found that this would be too complicated as you can have aliases for mail, so the login part would be wrong anyway.

Fortunately I already use the virtuser_file plugin in RoundCube Mail. Porting it to Z-Push was a piece of cake. Here’s the patch if you’re interested:

--- backend/imap.php.orig	2013-03-27 14:28:03.231378003 +0100
+++ backend/imap.php	2013-03-27 15:01:04.395096310 +0100
@@ -65,6 +65,48 @@
      * default backend methods
      */
 
+    public function email2user($p)
+    {
+            $r = $this->findinvirtual('/^' . preg_quote($p, '/') . '\s/');
+
+            for ($i=0; $i 0) {
+                        $res = trim($arr[count($arr)-1]);
+                        break;
+                }
+            }
+
+            return $res;
+    }
+
+    public function findinvirtual($pattern)
+    {
+	    $file = "/etc/mail/virtual";
+            $result = array();
+            $virtual = null;
+
+            if ($file)
+                $virtual = file($file);
+
+            if (empty($virtual))
+                    return $result;
+
+            // check each line for matches
+            foreach ($virtual as $line) {
+                $line = trim($line);
+                if (empty($line) || $line[0]=='#')
+                    continue;
+
+                if (preg_match($pattern, $line))
+                    $result[] = $line;
+            }
+
+            return $result;
+    }
+
+
     /**
      * Authenticates the user
      *
@@ -84,6 +126,10 @@
         if (!function_exists("imap_open"))
             throw new FatalException("BackendIMAP(): php-imap module is not installed", 0, null, LOGLEVEL_FATAL);
 
+	# if username is a full email, try to find out the real user
+	if (preg_match("/@/", $username))
+		$username = $this->email2user($username);
+
         /* BEGIN fmbiete's contribution r1527, ZP-319 */
         $this->excludedFolders = array();
         if (defined('IMAP_EXCLUDED_FOLDERS')) {
@@ -1804,4 +1850,4 @@
     /* END fmbiete's contribution r1528, ZP-320 */
 };
 
-?>
\ Brak znaku nowej linii na końcu pliku
+?>

This works with Z-Push 2.0.7. My virtual map file looks like this:

email@domain.tld real_username1
email2@anotherdomain.tld real_username1
test@domain.tld real_username2
etc...

If you like it, you can copy&paste the patch or download it from here

Cheers!

December 20, 2012

2 Comments

htaccess: migrate from apache 2.2 to 2.4

If you’ve been postponing your apache httpd upgrade to version 2.4, because changing hundreds of custom .htaccess files is giving you a headache, fear no more for there is a simple perl script that does it for you. I’ve been looking for a similar solution myself for some time now and didn’t find anything, so I’ve written it myself.

It’s nothing fancy, nothing really complicated and it probably doesn’t cover every possible scenario you might have, so if you find something that doesn’t work for you contact me, send me a pull request or whatever.

The usage is fairly simple and the code is published on github.

Usage: ./changeHtaccessStyle.pl htaccess_file

Get it from here.

Cheers!

October 30, 2012

No Comments

DIY: iTunes Sleep

Jako, że z braku laku dobry kit, to zamiast płacić jakieś bajońskie sumy za programy w App Storze, które robią podobną rzecz tylko w ładnym opakowaniu, wolałem sobie napisać sam timer do iTunesa. Nawet nie dla mnie, ale jak by to powiedzieć “na zlecenie”. Dodam tylko, że Apple Script jest mi mniej lub bardziej obcy – dawno robiłem w nim jakieś automatyczne klikanie po różnych programach. Nic szczególnego, dlatego można się tym podzielić za free.

Przetestowane na OS X 10.8.2 i 10.6.8.

property sleepTime : 30

global pauseTime

on getTime()
	repeat
		set res to display dialog "Podaj czas" default answer sleepTime
		try
			set sleepTime to text returned of res as number
			exit repeat
		on error errStr number errNum
			display dialog "Błąd! Podaj czas w minutach"
		end try
	end repeat
	set pauseTime to (current date) + (sleepTime * 60)
end getTime

on pauseMusic()
	tell application "Finder"
		if process "iTunes" exists then
			tell application "iTunes"
				if player state is playing then
					pause
				end if
			end tell
		end if
	end tell
end pauseMusic

on idle
	set curTime to current date
	if (curTime ≥ pauseTime) then
		my pauseMusic()
		quit me
	end if
end idle

on run
	try
		getTime()
	on error number -128
		quit me
	end try
end run

February 15, 2012

2 Comments

Push Mail, Z-Push: czyli ActiveSync dla biednych (PHP jako CGI)

Z-Push

Nastały ciekawe czasy. Co trzeci, sprzedany w 2011 roku, telefon to smartphone. Ludzie chcą sprawdzać maile na telefonie, surfować po internecie i w ogóle robić dziwne rzeczy, których wcześniej nie mogli robić będąc poza domem. Google Mail oraz inne duże portale mailowe wspierają ActiveSync, ale co jeśli w swoim prywatnym grajdole też chcemy mieć fancy push maila zamiast co jakiś czas sprawdzać czy dostaliśmy maila (czy to automatycznie czy ręcznie). Można kupić ActiveSync i postawić serwer na Windowsie. Można też skorzystać z Z-Push, darmowej implementacji ActiveSync w PHP.

Konfiguracja

Jeśli mamy PHP odpalone jako moduł Apache, to skonfigurowanie stabilnej wersji Z-Push 1.5.7 sprowadza się do edycji pliku config.php. Jeśli natomiast, tak jak ja, mamy PHP jako CGI, to rzeźby jest troszkę więcej.

Na początek trzeba w .htaccess przesłać do PHP zmienną HTTP_AUTHORIZATION:

RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

Następnie musimy nauczyć PHP funkcji apache_request_headers() (ta funkcja jest dostępna w PHP jako moduł), ja dopisałem do index.php:

if (!function_exists('apache_request_headers')) {
function apache_request_headers() {
$header = array();
$header['Ms-Asprotocolversion'] = $_SERVER['HTTP_MS_ASPROTOCOLVERSION'];
$header['X-Ms-Policykey'] = $_SERVER['HTTP_X_MS_POLICYKEY'];
$header['User-Agent'] = $_SERVER['HTTP_USER_AGENT'];

return $header;
}

list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':' , base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
}

Następnie edytujemy config.php i ustawiamy backend na BackendIMAP i odpowiedni port. Jeśli chcemy możemy tam ustawić jeszcze parę opcji.

Kolejna bardzo ważna rzecz, to ustawienie aliasów w konfiguracji Apache:

Alias /Microsoft-Server-ActiveSync /path/to/z-push/index.php

Aby sprawdzić czy wszystko działa wchodzimy na adres http://mojadomena/Microsoft-Server-ActiveSync. Powinno spytać nas o login i hasło. Podajemy nasze dane do poczty. Jeśli wszystko jest ok, powinno nas wpuścić i napisać gdzieś na grubo: GET not supported. Znaczy, że działa.

Teraz można już skonfigurować smartphone’a by korzystał z Microsoft Exchange i wpisać dane swojego serwera mailowego. Testowałem na iPhone 4s i Samsung Galaxy S – na obu urządzeniach nie było problemów.

Możliwe jest włączenie autodetekcji ustawień serwera. Nie różni się to w przypadku PHP jako CGI niczym jak w przypadku modułu, dlatego nie będę o tym pisał. Zaciekawionych zachęcam do poszperania w Google. Ułatwia to mniej obeznanym użytkownikom konfigurację, ponieważ wypełnia pole serwera automatycznie.

Bijcie!

January 28, 2012

12 Comments

106 147 156 162 163 40 150 155 40 163 147 144 40 166 150 161 144 162

110 47 165 144 40 161 144 142 144 155 163 153 170 40 161 144 142 144 150 165 144 143 40 172 40 143 150 146 150 163 172 153 40 142 156 157 170 40 156 145 40 112 144 165 150 155 40 114 150 163 155 150 142 152 47 162 40 153 172 163 144 162 40 141 156 156 152 40 172 141 156 164 163 40 147 150 162 40 153 150 145 144 40 172 162 40 172 40 145 164 146 150 163 150 165 144 40 172 155 143 40 172 141 156 164 163 40 147 150 162 40 164 155 141 144 153 150 144 165 172 141 153 144 40 147 172 142 152 162 40 147 144 47 162 40 157 144 161 145 156 161 154 144 143 56

42 106 147 156 162 163 40 150 155 40 163 147 144 40 166 150 161 144 162 42 40 143 144 162 142 161 150 141 144 162 40 112 144 165 150 155 47 162 40 153 150 145 144 40 145 161 156 154 40 147 150 162 40 144 172 161 153 170 40 142 147 150 153 143 147 156 156 143 40 163 156 40 147 150 162 40 163 150 154 144 40 156 155 40 163 147 144 40 161 164 155 40 50 147 144 47 162 40 141 144 144 155 40 162 164 142 144 162 162 145 164 153 153 170 40 161 164 155 155 150 155 146 40 145 161 156 154 40 163 147 144 40 105 101 110 40 145 156 161 40 172 141 156 164 163 40 62 40 170 144 172 161 162 51 56 40 110 163 47 162 40 141 144 144 155 40 172 40 146 161 144 172 163 40 161 144 172 143 40 162 156 40 145 172 161 40 50 110 40 162 163 150 153 153 40 172 154 40 161 144 172 143 150 155 146 40 150 163 51 40 172 155 143 40 110 40 142 172 155 40 161 144 142 156 154 154 144 155 143 40 150 163 40 163 156 40 144 165 144 161 170 156 155 144 40 166 147 156 40 155 156 163 40 156 155 153 170 40 153 150 152 144 162 40 147 172 142 152 144 161 40 162 163 156 161 150 144 162 40 141 164 163 40 172 153 162 156 40 172 40 146 161 144 172 163 40 142 161 150 154 150 155 172 153 40 141 156 156 152 56

105 156 161 40 163 147 156 162 144 40 156 145 40 170 156 164 40 166 147 156 40 172 161 144 40 155 156 163 40 145 172 154 150 153 150 172 161 40 166 150 163 147 40 112 144 165 150 155 40 114 150 163 155 150 142 152 54 40 147 144 47 162 40 156 155 153 170 40 141 144 144 155 40 163 147 144 40 166 156 161 153 143 47 162 40 154 156 162 163 40 166 172 155 163 144 143 40 147 172 142 152 144 161 40 172 155 143 40 147 172 162 40 141 144 144 155 40 172 141 153 144 40 163 156 40 147 172 142 152 40 150 155 163 156 40 172 40 142 156 164 157 153 144 40 156 145 40 105 156 161 141 144 162 40 65 60 60 40 102 156 154 157 172 155 150 144 162 40 151 164 162 163 40 166 147 150 153 144 40 147 144 40 166 172 162 40 156 155 40 163 147 144 40 161 164 155 56

132 163 40 163 147 144 40 141 144 146 150 155 150 155 146 40 156 145 40 144 172 142 147 40 142 147 172 157 163 144 161 40 112 144 165 150 155 40 142 150 157 147 144 161 162 40 172 40 162 144 142 161 144 163 40 154 144 162 162 172 146 144 40 163 156 40 163 147 144 40 161 144 172 143 144 161 40 172 155 143 40 110 47 165 144 40 143 144 142 150 143 144 143 40 163 156 40 143 156 40 163 147 144 40 162 172 154 144 40 147 144 161 144 40 145 156 161 40 154 170 40 145 150 161 162 163 40 172 155 143 40 157 161 156 141 172 141 153 170 40 153 172 162 163 40 144 155 146 153 150 162 147 40 157 156 162 163 56 40 110 47 165 144 40 164 162 144 143 40 161 156 163 62 65 40 53 40 172 40 156 142 163 172 153 40 132 122 102 110 110 40 161 144 157 161 144 162 144 155 163 172 163 150 156 155 40 156 145 40 144 172 142 147 40 142 147 172 161 172 142 163 144 161 56

107 172 165 144 40 145 164 155 40 161 144 172 143 150 155 146 40 163 147 144 40 141 156 156 152 41

;-)

July 27, 2011

No Comments

OrbBlast Free – już w App Store

OrbBlast Free Icon

OrbBlast Free – strategiczna gra puzzlowa, za darmo

OrbBlast Free jest darmową wersją gry OrbBlast. OrbBlast jest strategiczną grą puzzlowa dla iPhone’a, iPada oraz iPoda Touch. Gra polega na usunięciu z planszy wszystkich kulek. Kulki są różnych rozmiarów oraz kolorów. Niebieska (najmniejsza) po dotknięciu (lub postrzale) zmienia się w zieloną (troszkę większą), która zamienia się w żółtą (jeszcze większą), a ta zmienia się w czerwoną (największą), która po dotyku (lub postrzale) wybucha i zmienia sąsiadujące kulki. Możliwe są skomplikowane reakcje, które likwidują wszystkie kulki za pierwszym razem. Swoje ruchy należy planować z rozwagą, gdyż do dyspozycji mamy tylko określoną liczbę dotknięć. W razie utknięcia na którymś levelu dostępne są podpowiedzi (3 dziennie, tylko w wersji płatnej), które w wizualny sposób ukazują, które kulki należy dotknąć, by jednak nie było zbyt łatwo, nie jest podana kolejność w której trzeba owe kulki dotknąć.

Gra jest idealna dla ludzi, którzy lubią trochę pogłówkować i rozwiązywać różnego typu łamigłówki. Gra jest całkowicie darmowa, w czasie gry wyświetlane są jednak reklamy.

Jako jeden z autorów, serdecznie polecam!

Główne atuty gry

  • 240 leveli (wersja 1.02, więcej leveli w wersji płatnej)
  • grafika HD (stworzona dla Retina Display)
  • macierz 8×6 kulek
  • integracja OpenFeint, dla rywalizacji multiplayer’owej
  • gra jest za darmo

Dodatkowe funkcje wersji płatnej

  • więcej leveli
  • wizualne podpowiedzi (nie trzeba liczyć kolumn i wierszy)
  • brak reklam

July 17, 2011

5 Comments

OrbBlast – już w App Store

OrbBlast Icon

OrbBlast – strategiczna gra puzzlowa

OrbBlast jest strategiczną grą puzzlowa dla iPhone’a, iPada oraz iPoda Touch. Napisaliśmy ją razem z Danielem w wolnym czasie i jesteśmy dumni, że bez problemu dostała się do App Store. Gra polega na usunięciu z planszy wszystkich kulek. Kulki są różnych rozmiarów oraz kolorów. Niebieska (najmniejsza) po dotknięciu (lub postrzale) zmienia się w zieloną (troszkę większą), która zamienia się w żółtą (jeszcze większą), a ta zmienia się w czerwoną (największą), która po dotyku (lub postrzale) wybucha i zmienia sąsiadujące kulki. Możliwe są skomplikowane reakcje, które likwidują wszystkie kulki za pierwszym razem. Swoje ruchy należy planować z rozwagą, gdyż do dyspozycji mamy tylko określoną liczbę dotknięć. W razie utknięcia na którymś levelu dostępne są podpowiedzi (3 dziennie), które w wizualny sposób ukazują, które kulki należy dotknąć, by jednak nie było zbyt łatwo, nie jest podana kolejność w której trzeba owe kulki dotknąć.

Gra jest idealna dla ludzi, którzy lubią trochę pogłówkować i rozwiązywać różnego typu łamigłówki. Niska cena zachęca do zakupu.

Jako jeden z autorów, serdecznie polecam!

Główne atuty gry

  • 480 leveli (wersja 1.0-1.01, w kolejnych wersjach dochodzić będą kolejne, po 240)
  • grafika HD (stworzona dla Retina Display)
  • wizualne podpowiedzi (nie trzeba liczyć kolumn i wierszy)
  • macierz 8×6 kulek
  • integracja OpenFeint, dla rywalizacji multiplayer’owej
  • niska cena: tylko 1,59€ ($1,99)
  • żadne dodatkowe opłaty za kolejne levele

Zrzuty





May 27, 2011

5 Comments

OS X 10.6 64 vs. 32 bit kernel

Ojj, troszkę się zdziwiłem, jak po przeinstalowaniu systemu na nowy dysk odkryłem, że mimo iż aplikacje są 64 bitowe, to kernel jednak działał tylko w 32 bitach. Szczególnie, że na poprzednim dysku kernel był odpalony w 64 bitach. Jakieś machlojki, ale z drugiej strony, normalka, ponieważ OS X 10.6 dopiero od wersji 10.6.4 włącza per default 64 bit kernel na sprzęcie, który to obsługuje, a ja przecież instalowałem 10.6.0 i upgradowałem.

Czy mój Mac umie 64bity?

Dość łatwo to sprawdzić. To czy nasz kernel jest już odpalony w 64bitach widać wykonując polecenie uname -m. Jeśli wynikiem będzie i386 to mamy odpalony 32 bitowy kernel, a jeśli natomiast x86_64 to 64 bitowy kernel (PPC pomijam).

Ale jak w ogóle sprawdzić czy Mac potrafi odpalić 64 bitowy kernel? Też nie jest to trudne. Interesuje nas bowiem wersja firmware’u EFI. Sprawdzimy ją poleceniem:

ioreg -l -p IODeviceTree | grep firmware-abi

U mnie sprawa wygląda następująco:

$ ioreg -l -p IODeviceTree | grep firmware-abi
    | |   "firmware-abi" = <"EFI64">

Czyli wszystko w porządku. Możemy odpalać 64bitowy kernel.

Metoda jednorazowa

Dla czystego testu czy system w ogóle się uruchomi, należy po uruchomieniu Mac’a wcisnąć i trzymać jednocześnie klawisz ‘6’ i ‘4’, zanim pojawi się szare jabłko. Proste i intuitywne intuicyjne, prawda?

Po udanym boocie systemu, polecenie uname -m powinno pokazać już x86_64.

Teraz wypadałoby nauczyć system by już zawsze uruchamiał system z 64 bitowym kernelem, ponieważ teraz po reboocie system wróci w tryb 32 bitowego kernela.

Metody na stałe

W sumie istnieją trzy metody by na stałe nauczyć system bootować w konkretnej konfiguracji, czy to 64 czy 32 bit kernel.

Metoda sugerowana przez Apple

Ta metoda sprowadza się do uruchomienia polecenia:

sudo systemsetup -setkernelbootarchitecture x86_64

w Terminalu.

Metoda nadpisania PRAMu

Ponoć nie wiadomo co może się stać jeśli użyje się tej metody, a hardware nie wspiera 64bitów. Można jednak system odratować. Polecenie do nadpisania PRAMu wygląda tak:

sudo nvram boot-args="arch=x86_64"

Jeśli system nie wstanie po tej komendzie, można zresetować PRAM do ustawień fabrycznych trzymając przy uruchomieniu komputera jednocześnie klawisze ALT CMD P R.

Metoda edycji pliku konfiguracyjnego

Nie polecam. Dlatego też tylko krótko wspomnę który plik i co do niego wpisać.

Edytujemy plik /Library/Preferences/SystemConfiguration/com.apple.Boot.plist

a w nim dopisujemy arch=x86_64 w sekcji Kernel Flags.

Opłaca się przejść na 64bitowy kernel?

Nie zawsze. Należy sprawdzić czy cokolwiek się poprawiło i czy wszystkie sterowniki i moduły kernela poprawnie działają – niektóre third party moduły są bowiem tylko 32 bitowe, mimo że Snow Leopard wymaga od Developerów by dostarczali 64 bitowe binarki. Kernel 32 bitowy w OS X bez problemu obsługuje aż do 32GB RAM, także jeśli masz więcej, to powinieneś włączyć 64 bitowy kernel. Tyle.

Bijcie!

May 12, 2011

2 Comments

OS X 10.6.7 i Intel SSD 320

Intel, a nie OCZ

Napaliłem się na OCZ Vertex 2 EX, jak rak płuc na Marlboro Country. Długo zwlekałem czekając na tzw. “lepsze czasy”, bo dyski SSD jednak drogie są. Nie żałuję, że czekałem. OCZ okazał się jakiś felerny, przynajmniej Arkadiusz Miśkiewicz z PLDówka opowiadał o swoich nieprzyjemnych doświadczeniach. Ale również na forum OCZ można było przeczytać zniechęcające informacje. Coś o gubieniu danych itd. Mniej więcej w tym samym czasie Intel ogłosił jakąś totalną rewolucję w SSD. Wielkiej rewolucji nie było, za to ceny troszkę spadły i tak właśnie stałem się posiadaczem Intel SSD 320 160GB. Czy będę szczęśliwy to się jeszcze okaże (wszystko na to jednak wskazuje).

OS X tips and tricks

Po zainstalowaniu nowego dysku konieczna była reinstalacja systemu. Początkujący nie powinni panikować jeśli dysk nie będzie widoczny w instalatorze – należy go bowiem najpierw sformatować, dopiero wtedy instalator wskaże go jako jedną z możliwych opcji instalacji. Po instalacji “golasa” z pewnością przyda się też Time Machine Backup. Całość trwała u mnie ~2h (zgrywałem ~60GB z TM). Następnie (tak było u mnie) zostaje update systemu (posiadam płytkę instalacyjną 10.6.0).

Wyłączenie zapisu Access Time

Znana i lubiana wśród linuksowców (ale nie tylko) opcja noatime przyda się też w Mac OS X – szczególnie w przypadku SSD. Aby wyłaczyć atime należy stworzyć mały plik XML o nazwie com.my.noatime.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Label</key>
	<string>com.my.noatime</string>
	<key>ProgramArguments</key>
	<array>
		<string>mount</string>
		<string>-vuwo</string>
		<string>noatime</string>
		<string>/</string>
	</array>
	<key>RunAtLoad</key>
	<true/>
</dict>
</plist>

i skopiować go do /Library/LaunchDaemons/. W razie potrzeby poprawić właściciela na root:wheel. Reboot.

Wyłączyć SMS (i tak jest zbędne przy SSD)

SMS, czyli Sudden Motion Sensor, przydaję się tylko w przypadku zwykłych dysków z głowicami. W przypadku SSD jest zbędny i można go wyłączyć z roota:


pmset -a sms 0

Dodatkowo opcja -g pokaże czy faktycznie się wyłączyło.

TRIMować, czy nie TRIMować, oto jest pytanie

Nie! Przynajmniej nie w przypadku Intela. OS X 10.6.7 nie ma wbudowanej opcji TRIM dla Third Party SSD, uruchamia to jedynie w niektórych modelach, które rozprowadza Apple.

Z ciekawości jednak włączyłem u siebie TRIM (służy do tego TRIMEnabler, pogooglajcie) i performance spadł mi parokrotnie.

TRIM Disabled – boot time: 11,5s
TRIM Enabled – boot time: 28s

Dla mnie to duża różnica.

Konkluzja

Wiem, że Intel nie jest najszybszym dyskiem dostępnym na rynku. Jest jednak jednym z najsolidniejszych – a na tym mi głównie zależy. Różnica między dyskiem 5400RPM czy 7200RPM jest tak ogromna i zauważalna, że nie ma co płakać o to, że przy zapisie mamy “tylko” 165MB (odczyt 270MB).

Zdecydowanie zatem, polecam Intel SSD 320.

Bijcie!

May 10, 2011

6 Comments

Natywne IPv6 w TLD-Linux

Flaki z olejem na początek

Notka głównie do mnie, bo jak wiadomo, skleroza nie boli. Przy okazji, dzięki Andrzej za podpowiedzi.

Po co mi w ogóle IPv6? A tak jakoś mnie wzięło po przeczytaniu artykułu o World IPv6 Day, który odbędzie się 8 czerwca i wszystkie wielkie firmy internetowe tego dnia ustawią sobie rekord AAAA, to dlaczego ja nie? Was też zachęcam, jeśli macie możliwość.

Na zabawę w 6to4 nie miałem najmniejszej ochoty, bo dobrze pamiętam te cyrki za czasów kiedy mnie to jeszcze interesowało (rok 2001), więc ważnym aspektem, że mi się chciało było to że mój provider udostępnia IPv6 natywnie. Fajnie.

Konfiguracja TLD-Linux

Konfiguracja tego ustrojstwa w TLD (czyli stare PLD Titanium) sprowadza się do wyedytowania paru plików.

Do /etc/sysconfig/interfaces/ifcfg-eth0 dodajemy adresy z naszego przedziału. Np. IPADDR8="2a01:4f8:120:8244::2/59". Prefix /59 mimo, że pulę mam /64 z tego względu, że Gateway mam w innej podsieci.

Następnie do /etc/sysconfig/static-routes dodajemy wpis o routingu, czyli dla mnie jest to eth0 2000::/3 via 2a01:4f8:120:8240::1. Andrzej podpowiedział, że w przypadku IPv6, nie daje się nazwy “default” dla domyślnego routingu tylko właśnie “2000::/3”, co jest jakimś Global Unicastem.

Następnie wywołujemy service network restart i wszystko powinno działać.

Uczenie usług słuchania po IPv6

W apache trzeba taki adres podać w kwadratowych nawiasach + port np. [2a01:4f8:120:8244::2]:80.

W pureFTPd, dla odmiany, trzeba podać hosta, który jest IPv6 ready. Próba zbindowania go zarówno na IPv4 jak i IPv6 kończyła się u mnie bindem tylko na ostatnio podanym adresie. W kolejności od góry do dołu.

Dla amatorów IRCa, ważny będzie Oidentd. Tam ustawią się to w /etc/sysconfig/oidentd (pod warunkiem, że ma się oidentd-standalone). Do zmiennej OIDENT_OPTIONS dodajemy argumenty -a ::. To zbinduje nas na wszystkich adresach.

SSH jest mało ciekawe, bo tam nie trzeba wiele robić, dopisuje się IP i po prostu działa. Innych usług jeszcze nie przestawiałem i jak na razie nie będę tego robił.

That’s all folks. Bijcie!