Następna strona Poprzednia strona Spis treści

14. Ustawienie węzła.

Oprogramowanie węzła zostało zrobione przez Tomi'ego Manninen tomi.manninen@hut.fi i opierało się głownie na programie PMS. Dostarcza ono dość elastycznych i kompletnych możliwości dla węzła, które łatwo ustawić. Użytkownicy, po ustaleniu łączności, mogą odpalić Telnet, wykonać dalsze łączności NetRom, Rose lub AX.25 jak również uzuskiwać rozmaite informacje tak jak Finger, lista Węzłow i stacji ostanio słyszanych, itp. Węzeł można ustawić dość prosto tak, że zaserwuje on jakąkolwiek usługę dostępną pod Linuxem.

Normalnie, 'node' wywoływany może być przez program 'ax25d', odpowie on też na wezwania wchodzące drogą TCP/IP dzięki 'inetd', który wpuści użytkownika i odpali go dla niego, lub można go uruchomić z wiersza poleceń.

14.1 Utworzenie pliku /etc/ax25/node.conf.

Plik node.conf decyduje o głównej konfiguracji węzła. Jest prostym plikiem tekstowym, a jego składnia jest taka:

  # /etc/ax25/node.conf
  # configuration file for the node(8) program.
  #
  # Linie rozpoczynające się od # są komentarzami i są ignorowane.

  # Hostname
  # deklaruje nazwę 'hostname'  dla węzła
  hostname        radio.gw.vk2ktj.ampr.org

  # Local Network
  # pozwala na określenie tego co 'local' w celach rewizji zezwoleń
  # przy użyciu node.perms
  localnet        44.136.8.96/29

  # Hide Ports
  # Jeśli wpisane, pozwala na ukrycie portów przed użytkownikami. Podane porty
  # nie będą wyświetlane poleceniem (P)orts.
  hiddenports     rose netrom

  # Callserver
  # jeśli wpisane, pozwoli użytkownikom na dostęp do callserver'a.
  callserver      zone.oh7rba.ampr.org

  # Node Identification.
  # to pojawi się w zachęcie systemowej węzła
  NodeId          LINUX:VK2KTJ-9

  # NetRom port
  # To jest nazwa portu NetRom, który używany będzie do wychodzących łączności
  # z węzła 'node'.
  NrPort          netrom

  # Node Idle Timeout
  # Określa w sekundach wartość "idle time" dla łączności z tym węzłem
  idletimout      1800

  # Connection Idle Timeout
  # określa licznik "idle" dla łączności uczynionych przez ten węzeł, w sekundach
  # seconds.
  conntimeout     1800

  # Reconnect
  # Określa czy łączność z użytkownikami powinna być ponowiona gdy ich łączność
  # z innymi stacjami została przerwana czy też mają być rozłączeni na dobre.
  # 
  reconnect       on

  # Pseudonimy dla poleceń
  # pozwala na uproszczenie uwikłanych poleceń węzła
  alias           CONV    "telnet vk1xwt.ampr.org 3600"
  alias           BBS     "connect radio vk2xsb"

  # Pseudonimy dla poleceń zewnętrzych
  # Pozwala na odpalanie programów z zewnątrz spod węzła 'node'.
  # extcmd <cmdname> <flag> <userid> <command>
  # Flag == 1 to jest jedyna dotychczas stosowana funkcja.
  # <command> jest pisane tak jak dla ax25d.conf
  extcmd          PMS     1       root    /usr/sbin/pms pms -u %U -o VK2KTJ

  # Logging
  # Ustawienie log-u do log-u systemowego. 3 - najbardziej gadatliwe, 
  # 0 - wyłączone.
  loglevel        3

14.2 Utworzenie pliku /etc/ax25/node.perms.

Węzeł 'node' pozwala na ustawienie pewnych zezwoleń dla użytkowników. Zezwolenia te pozwalają ci decydować, którzy użytkownicy mogą używać opcji takich jak (T)elnet, i (C)onnect, na przykład, a którzy nie mogą. Plik node.perms zawiera właśnie te informacje i składa się z pięciu kluczowych pól. Jeśli pole zawiera znaczek '*' to zastępuje cokolwiek. Przydaje się to do definicji reguł domyślnych.

     user
        zawiera znak lub użytkownik do którego kolejne zezwolenia się tyczą.
        Numerki SSID są ignorowane, zatem umieścić tutaj należy goły znak.

     method
     każdy protokól i metoda dostępu może otrzymać swoje zezwolenia. Na przyklad
     możesz zezwolić użytkownikom dołączonym protokołem AX.25 i NetRom używać
     opcji (C)onnect, ale zabronić tego innym, którzy weszli telnetem 
     z nie-lokalnego węzła. Drugie pole zatem pozwala określenie reguł
     dla łączności, które weszły różnymi metodami. Oto te metody:

          method  description
          ------  -----------------------------------------------------------
          ampr    Użytkownik wszedł telnetem z adresu amprnet (44.0.0.0)
          ax25    Użytkownik wszedł drogą AX.25
          host    Użytkownik wszedł odpalając 'node' z wiersza poleceń
          inet    Użytkownik wszedł telnetem z adresu 'non-local'i z poza amprnet
          local   Użytkownik wszedł telnetem z komputera typu 'local'
          netrom  Użytkownik wszedł drogą NetRom
          rose    Użytkownik wszedł drogą Rose
          *       Użytkownik wszedł jakkolwiek.
    

     port
        Dla użytkowników wchodzących przez AX.25 można udzielać zezwoleń osobno
        każdy port Ax.25. Pozwala to decydować co użytkownicy AX.25 mogą robić
        zależnie od tego do jakiego portu się podłączyli. Trzecie pole zawiera
        nazwę owych portów, jeśli używasz tej funkcji. Działa to tylko dla
        łączności przez AX.25.

     password
        nieobowiązkowo, można ustawić węzeł tak, że przedstawi on użytkownikom
        zachętę systemową, aby wprowadzili hasło zanim się dołączą. Przydaje się
        to do ochrony tych użytkowników, którzy ustawiony mają wysoki stopień
        zezwoleń. Jeśli czwarte pole ma być wypełnione to jego wartość jest 
        hasłem, które będzie przyjęte.

     permissions
        to pole stoi jako ostanie dla każdego wpisu w pliku. Jest ono kodowane
        bitowo tak, że każda usługa posiada swoją wartość bitową, której wpisanie
        powoduje, że zezwolenie na usługę jest udzielone lub zabronione. Oto 
        lista usług i im korespondujących warości bitowych:

     value   description
     -----   -------------------------------------------------
      1      Zezwolenie na Login
      2      Zezwolenie na (C)onnect drogą AX.25
      4      Zezwolenie na (C)onnect drogą NetRom
      8      Zezwolenie na (T)elnet do 'lokalnych' węzłów
      16     Zezwolenie na (T)elnet do węzłów z sieci amprnet (44.0.0.0)
      32     Zezwolenie na (T)elnet do 'nie-lokalnych', węzłów z poza amprnet
      64     Zezwolenie na (C)onnect drogą AX.25 przez ukryte porty
      128    Zezwolenie na (C)onnect drogą Rose
Aby zakodować wartość zezwoleń dla danej reguły poprostu wybierz te zezwolenia, które chcesz, aby użytkownik miał i dodaj ich wartości bitowe. Otrzymaną w ten sposób cyfrę należy umieścić w polu nr. 5.

Oto jak można ustawić plik node.perms:

       # /etc/ax25/node.perms
       #
       # Operatorem węzła jest VK2KTJ, posiada hasło 'secret' i wolno mu szystko
       # jakąkolwiek metodą wszedł
       vk2ktj  *       *       secret  255

       # Ci użytkownicy są nie wejdą w ogóle
       NOCALL  *       *       *       0
       PK232   *       *       *       0
       PMS     *       *       *       0

       # Użytkownicy INET też nie wejdą w ogóle  
       *       inet    *       *       0

       # Ci, którzy weszli drogą AX.25,NetRom, Local, Host i AMPR mają zezwolenie
       # na (C)onnect i (T)elnet do węzłów 'lokalnych' i amprnet, ale nie innych
       # adresów IP.
       *       ax25    *       *       159
       *       netrom  *       *       159
       *       local   *       *       159
       *       host    *       *       159
       *       ampr    *       *       159

14.3 Ustawienie węzła, aby był uruchamiany z ax25d.

Program 'node' powinien normalnie być uruchamiany przez program 'ax25d'. Dokonujemy tego wpisując odpowiednie reguły w pliku /etc/ax25/ax25d.conf. Na mojej maszynie chcialem, aby użytkownicy mieli wybór łączności do węzła lub innych programów usługowych. 'ax25d' pozwala właśnie na to jeśli sprytnie powpisujesz pseudonimy portów. Dla przykładu, stosując powyższą konfigurację ax25d chcę ustawić 'node' tak, aby użytkownicy łączący się do VK2KTJ-1 dostali się do węzła 'node'. Wpisałem zatem takie wiersze do pliku /etc/ax25/ax25d.conf:

       [vk2ktj-1 via radio]
       default    *     *    *   *   *   0    root /usr/sbin/node node
To oznacza, że oprogramowanie jądra Linuxa odpowie na prośbę o łączność dla znaku 'VK2KTJ-1' na porcie AX.25 nazwanego 'radio', i odpali potem program node.

14.4 Ustawienie węzła, aby był uruchamiany z 'inetd'.

Jeśli chcesz, aby użytkownicy mogli wejść telnetem do twojej maszyny i uzyskać dostęp do węzła 'node' to nie ma nic prostszego. Najpierw zdecyduj na jaki port użytkownicy powinni się łaczyć. W tym wypadku wybrałem arbitralny numer 4000, choć Tomi podaje w swojej dokumentacji szczegóły na temat jak podmienić zwyczajnego demona telnetu na demona węzła 'node'.

Potrzebujesz zmodyfikować dwa pliki.

Do pliku /etc/services powinieneś dodać:

      node    4000/tcp        #OH2BNS's node software
a do pliku /etc/inetd.conf dodaj:
       node    stream  tcp     nowait  root    /usr/sbin/node node
Po wykonaniu tego i po restarcie programu 'inetd' użytkownicy, którzy wchodzą telnetem na port 4000 w twojej maszynie dostaną zachętę systemową, aby się zalogować, i jeśli zostało to dla nich skonfigurowane to hasło, po podaniu którego podłączeni zostaną do węzła 'node'.


Następna strona Poprzednia strona Spis treści