Elkészült az első önálló fejlesztésem PHP alapon.
Igen, lehet azt mondani, hogy nem önálló, mert egy korábbi alkalmazás (smbind) átirata, de ez azért nem teljesen így van. A régi kódból szinte semmi sem maradt, a dizájnból sem, és az adatbázis is teljesen át lett szabva. Ami emlékeztet valamelyest a régire, az csak a menü felépítése.
Tulajdonképpen a két rendszer már nem is kompatibilis. Adatbázis szinten sem, és működésében sem. De, hogy lássuk, mi is ez az alkalmazás...
Mi a cél?
A bind maga egy névkiszolgáló démon, aminek van elsődleges (master) és másodlagos (slave) funkciója. Ez azért kell(het), hogy ha az egyik szerver túlterhelt, vagy nem elérhető, akkor a feladatát átveszi a másik. A két szerver látszólag ugyanúgy működik, mert köztük folyamatos szinkron van, azaz; amit az elsődleges szerveren módosítunk, azt a másodlagos átveszi.
A névkiszolgáló (azaz DNS szerver) feladata, hogy az interneten használt gépneveket IP címmé, és az IP címeket pedig gépnévvé alakítsa. Azaz, ha hivatkozunk a www.akarmi.hu címre, azt egy DNS kiszolgáló fogja kezelni a háttérben.
A bind démon konfigurálása nem bonyolult, de időigényes, és nagy odafigyelést igényel. Vannak hasonló menedzsment felületek, de nekem az smbind a maga egyszerű kezelhetőségével mindig jobban tetszett. Sajnos, a fejlesztője már nem törődik vele, és lássuk be, a korábbi kód és adatbázisszerkezet is hagy némi kívánni valót maga után.
Először csak plusz funkciókat akartam beletenni, de ahogy egyre jobban megismertem a kódot, rájöttem, hogy sokkal jobb, ha nulláról írom újra.
Mi lett belőle?
A maga egyszerűsége és kezelhetősége megmaradt, bár belekerült néhány plusz funkció, amit igyekeztem ugyanabban a szellemben beleépíteni a rendszerbe. Néhány dolgon változtattam is, amit nem is értem, milyen megfontolásból hagyott úgy a fejlesztője, ahogy volt - mivel ellent mond a konfigurációs szintaktikának (pl. az NS, MX és SRV rekordok végén a pont kezelése).
Az alábbi funkciók kerültek javításra
- Új dizájn (css alapú, és témázható)
- Új, külön .js függvénygyűjtemény
- Teljesen különválasztott tartalom (egy .js, egy .css és egy .html rész, átfedés nélkül)
- Nincs a HTML kódban CSS és JS (kivéve a Google ReCaptcha - ha engedélyezve van)
- Gyorsbillentyűk használata
- CSS alapú beágyazott grafikus elemek
Biztonsági módosítások
- Google ReCaptcha hitelesítési lehetőség
- Jelszóházirend (JS alapú ellenőrzéssel)
- A jelszó nem közlekedik a hálózaton (JS alapú HASH képzés)
- Szigorú belépési és munkamenet ellenőrzés
Új funkciók
- Elsődleges és másodlagos zónák egyidejű kezelése
- Zónafájlok előnézeti képe
- Zónaellenőrzés még az érvényre juttatás előtt (nem közben)
- A felhasználók csak a saját zónáik változásait tudják érvényre juttatni
- Az adminisztrátorok mindenki zónájának változásait érvényre tudják juttatni (kivéve a zóna törlését)
- DNSSEC képesség - automatizáltan, a generált kulcsok biztonsági mentése mellett
- Roller démon kezelés (automatikus kulcsfrissítéshez)
- zónák előnézete DNSSEC titkosítással és anélkül is
- Zónafájlok importja elsődlegesként (fájlból, vágólapról, kiszolgálóról)
- Másodlagos zónák ellenőrzése zónatranszferrel
- IDN lehetőség - ékezetes, és különleges karaktereket tartalmazó domének/rekordok kezelése
Az alkalmazás GPL licencelésű, bárki szabadon felhasználhatja, módosíthatja.
Az első, 0.91b jelzésű verzió innen tölthető le - MyOnline GIT/SMBind-ng - az alkalmazás státusza még béta, ezért jelenleg csak tesztkörnyezetben való kipróbálásra javaslom.