W3SA Server: localhost:658

Novy protocol (w3sa-8.2 a novsi):
Dotaz sa posiela vo formate JSON, tak isto odpoved pride ako JSON objekt:
Dotaz:
{'login': 'ondrejj', 'dbtunnel': 'xxxxx', 'version': ''}
Odpoved pride ako 1 riadok JSON:
{
  "results": {
    "localhost": {
      "login":    { "status": "OK", "text": "ondrejj",       "ok": true },
      "dbtunnel": { "status": "OK", "text": "",              "ok": true },
      "version":  { "status": "OK", "text": "w3sad-8.2.1-1", "ok": true }
    }
  },
  "errors": 0
}

Stary protocol (w3sa-8.2 a starsi):
Posles najskor meno niektoreho modulu. Mozes naraz viac modulov
oddelenych znakom noveho riadku. Na konci jeden prazdny novy riadok.
Na to server odpovie asi takto:
accounts: OK
chroots: error ....
end: OK

Poradie vykonania modulov urcuje server, nezalezi na tom,
ako si ich poslal. V pripade, ze sa len uzavrie spojenie, tak zrejme
server padol. W3SA musi odpovedat OK alebo chybou.

Popis modulov:
  accounts - pouzivatelia v systeme
  passwords - aktualizacia hesiel (iba ak ma nastavene action='PASSWD')
  ldaps - aktualizacia v ldap DB
  chroots - [ZASTARALE] chroot pristupy cez ssh
  userdb - [ZASTARALE] vytvorenie DB4 userdb (login:heslo) - zastarale
  dns - domeny a subdomeny v DNS
  postfix - emailovy server, postove aliasy a konta
  apache - subdomeny v http servri
  nagios - nastavenie monitoringu Nagios
  firewall, iptables, ipset - vytvorenie firewallu
  quota - quoty (iba ak ma nastavene action='QUOTA')
  repquota - vypis vsetkych aktualnych kvot pouzivatelov
  usrquota user - vypis aktualnej kvoty pre pouzivatela (user je parameter)
  grpquota group - vypis aktualnej kvoty pre skupinu (skupina je parameter)
  timers - zobrazi dlzku trvania jednotlivych prikazov
  end - vrati stale len OK, vykonava sa stale ako posledny
  dbtunnel - vytvori sifrovany tunnel na nahodnom TCP porte
  dbtest - test databazoveno spojenia
  updatechroots - aktializacia chroot prostredia (nepouzivat, interny prikaz)
  imports - import systemovych aliasov (nepouzivat, interny prikaz)

Tabulky:
  Kazda domena musi mat aspon jedneho admina (flag "A").
Login domeny admin by mal byt "www". Ak nie, tak alias pre scp folder
bude generovany takto (login admina test, login subdomeny pokus,
target subdomeny "/testfolder"):
  http://test.domena.sk/testfolder/...
Dana stranka bude pristupna aj ako:
  http://pokus.domena.sk/...

Account flags:
  E - vytvorit email pre pouzivatela
  S - povolit SFTP pristup pre pouzivatel
  V - virtual alias (alias reservation, targets are in aliases table)
  D - generuj DNS zaznamy pre domenu pouzivatela
  A - admin, spravca domeny (pouziju sa skupinove kvoty tohto usera)

HTACCESS/apache flags:
  P - password pre pristup na stranky (zatial neimplementovane)
  I - alias - mailovy alias, target je index v tabulke aliases (zastarale)
  L - link web accounts (link domain to another defined in subdomain)

Obsolete or not implemented flags:
  L - link, specialny domovsky priecinok (still required for DNS)
  X - do not generate MX record for this domain
  N - IN A dns zaznam, target je cielove IP
  T - heslovane statistiky - heslo je v htaccess
  F - ftp pristup (zatial neimplementovane)
  B - deactivate account (lock temporarily)

Actions:
  PASSWD - aktualizacia hesla (modul passwords) (zastarale a teraz uz default)
  TEMPORARY - heslo je iba docasne, nebude aktualizovane cez "passwords"
  QUOTA - aktualizacia kvoty (modul quota)
  MODIFY - aktualizacia pouzivatela (presun do inej skupiny, kvoty).
           Zmena loginu nieje mozna! (modul accounts)
           Planovane: zmena loginu ako aj vsetkych ostatnych udajov
  UPDATE - aktualizacia chroot prostredia

Znaky pouzivane v jednotlivych poliach:
  domena: len znaky a-z0-9.- [zakazana je akakolkvek kombinacia s ".."]
  login:  a-z0-9.-           [zakazana opat ".."]
  folder: a-z0-9./-          [zakazana opat ".."]

Pripojenie na w3sa server:
  cez skript www/w3sa.php. Tento skript bude v buducnosti upravovany,
  natiahnutie do programu sa doporucuje cez include "w3sa.php"; .

Creating nss database:
  cat nss_mysql.db nss_mysql.perms | mysql -u root -p nss_mysql

Restart shaper crom crontab:
  */10 * * * * root /usr/sbin/w3sad shaper >> /var/log/w3sad.log
