Freesco, NND, CDN, EOS
http://forum.freesco.pl/

Lokalny serwer newsów - Leafnode
http://forum.freesco.pl/viewtopic.php?f=24&t=9282
Strona 1 z 1

Autor:  Mis' [ niedziela, 2 października 2005, 22:37 ]
Tytuł:  Lokalny serwer newsów - Leafnode

Pomimo, że tu raczej większość preferuje forum niż newsy jako sposób wymiany informacji postanowiłem przygotować nowy pakiet - Leafnode.
Jest to serwer news, pozwalający na pobieranie grup i wysyłanie postów na wiele serwerów zewnętrznych, posiadający prosty mechanizm autoryzacji oraz obsługujący grupy lokalne (posty są dostępne wyłącznie na loklanym serwerze).

PKGBUILD
: [/] [] ()
# Wersja dla NND: Mis' <michal@doriath.homeip.net>

pkgname=leafnode
pkgver=2.0.0.alpha20050914a
pkgrel=2nnd
pkgdesc="Serwer news (NNTP)"
url="http://www.dt.e-technik.uni-dortmund.de/~ma/leafnode/beta/"
license=""
depends=('xinetd' 'glibc' 'pcre' 'dcron')
makedepends=('glibc-devel' 'pcre-devel')
conflicts=()
replaces=()
backup=('etc/leafnode/config' 'etc/leafnode/filters' 'etc/leafnode/uucp' 'etc/leafnode/local.groups')
install=leafnode.install
source=(http://home.pages.de/~mandree/leafnode/beta/$pkgname-$pkgver.tar.bz2 nntp news local.groups)
md5sums=('1a6f1596fe79992a8d6df23edd4a43a3' 'b1a49a7cfb70f8acebdaf0a947896243'\
         '3967056f3402b75367a5b55e9354650d' 'd41d8cd98f00b204e9800998ecf8427e')

build() {
  mkdir -p $startdir/pkg/etc/xinetd.d
  mkdir -p $startdir/pkg/var/spool/cron
  cd $startdir/src/$pkgname-$pkgver
  ./configure --prefix=/usr --sysconfdir=/etc/leafnode
  make || return 1
  make DESTDIR=$startdir/pkg install
  install -m 644 -o root -g root $startdir/src/nntp $startdir/pkg/etc/xinetd.d/nntp
  install -m 600 -o root -g root $startdir/src/news $startdir/pkg/var/spool/cron/news
  install -m 644 -o root -g root $startdir/src/local.groups $startdir/pkg/etc/leafnode/local.groups
}



nntp
: [/] [] ()
service nntp
{
        port            = 119
        socket_type     = stream
        protocol        = tcp
        wait            = no
        disable         = yes
        only_from       = 192.168.1.0/24 127.0.0.1
        user            = news
        server          = /usr/sbin/leafnode
}



news
: [/] [] ()
*/30 * * * * /usr/sbin/fetchnews
07 03 * * * /usr/sbin/texpire


leafnode.install
: [/] [] ()
              # arg 1:  the new package version
              pre_install() {
                #
                #  do pre-install stuff here
                #
                grep news /etc/group >/dev/null
                if [ $? != 0 ]; then
                    groupadd -g 13 news
                fi
                grep news /etc/passwd >/dev/null
                if [ $? != 0 ]; then
                    useradd -u 13 -g news -s /bin/false news
                fi
                /bin/true
              }
              # arg 1:  the new package version
              post_install() {
                #
                #  do post-install stuff here
                #
                echo ""
                echo "------------------------------------------------------------------------"
                echo ""
                echo "Pakiet leafnode został zainstalowany. "
                echo "Pamiętaj aby po zakończeniu instalacji zmienić nazwy plików w katalogu "
                echo "/etc/leafnode (config.example na config i filters.exsmple na filters). "
                echo "Następnie w pliku /etc/xinetd.d/nntp zmień linię 'disable = yes' na "
                echo "'disable = no'. Skonfigureuj serwer edytując pliki /etc/leafnode/config"
                echo "i /etc/leafnode/filters, a następnie zrestartuj serwer xinetd."
                echo ""
                echo "Domyślnie leafnode jest dostępny wyłącznie z sieci lokalnej. "
                echo "Jeśli chcesz aby serwer news był dostępny 'ze świata' musisz otworzyć "
                echo "dostęp do portu 119 (tcp). Pamiętaj, że w takiej sytuacji dostęp do "
                echo "serwera powinien być ograniczony tylko do użytkowników mających "
                echo "odpowiednie konta. "
                echo ""
                echo "Więcej informacji na temat konfiguracji i używania Leafnode znajdziesz "
                echo "w manualach, musisz jednak zainstalować pakiet leafnode-man."
                echo ""
                echo "------------------------------------------------------------------------"
                echo ""
                grep nntp /etc/hosts.allow 2>/dev/null
                if [ $? != 0 ]; then
                    sed -i '/^# End of file$/i\nntp: 192.168.1.0/24' /etc/hosts.allow
                fi
                /bin/true
              }
              # arg 1:  the new package version
              # arg 2:  the old package version
              pre_upgrade() {
                #
                #  do pre-upgrade stuff here
                #
                grep news /etc/group >/dev/null
                if [ $? != 0 ]; then
                    groupadd -g 13 news
                fi
                grep news /etc/passwd >/dev/null
                if [ $? != 0 ]; then
                    useradd -u 13 -g news -s /usr/bin/news news
                fi
                /bin/true
              }
              # arg 1:  the new package version
              # arg 2:  the old package version
              post_upgrade() {
                #
                #  do post-upgrade stuff here
                #
                grep nntp /etc/hosts.allow 2>/dev/null
                if [ $? != 0 ]; then
                    sed -i '/^# End of file$/i\nntp: 192.168.1.0/24' /etc/hosts.allow
                fi
                /bin/true
              }
              # arg 1:  the old package version
              pre_remove() {
                #
                #  do pre-remove stuff here
                #
                /bin/true
              }
              # arg 1:  the old package version
              post_remove() {
                #
                #  do post-remove stuff here
                #
                grep news /etc/group >/dev/null
                if [ $? = 0 ]; then
                    groupdel news
                fi
                grep news /etc/passwd >/dev/null
                if [ $? = 0 ]; then
                    userdel news
                fi
                grep nntp /etc/hosts.allow 2>/dev/null
                if [ $? = 0 ]; then
                    sed -i '/^nntp:/d' /etc/hosts.allow
                fi
                /bin/true
              }

              op=$1
              shift
              $op $*


do budowy pakietu potrzebny jest jeszcze pusty plik o nazwie local.groups.

bezpośrednie linki do pakietów:

http://www.hustons.homechoice.co.uk/nnd ... pkg.tar.gz
http://www.hustons.homechoice.co.uk/nnd ... pkg.tar.gz

zapraszam do testów.

Autor:  urug [ wtorek, 11 października 2005, 18:01 ]
Tytuł: 

Malo kto sie tym zaintereswal, mnie ciekawi taka sprawa czy jest mozliwosc zeby ten serwer sciagal sobie automatycznie grupy np z serwera news.gazeta.pl a ja juz pozniej bede sobie je czytal z mojego serwerka. Pozdrawiam, jak narazie jeszcze nie odpalalem tego pakietu

Autor:  Mis' [ wtorek, 11 października 2005, 19:16 ]
Tytuł: 

urug pisze:
Malo kto sie tym zaintereswal, mnie ciekawi taka sprawa czy jest mozliwosc zeby ten serwer sciagal sobie automatycznie grupy np z serwera news.gazeta.pl a ja juz pozniej bede sobie je czytal z mojego serwerka.


do tego właśnie służy.

Autor:  sp5rh [ środa, 12 października 2005, 21:24 ]
Tytuł: 

to prościej odpalić jabbera i w np PSI przychodzą rss na pulpit
pozdrawiam

Autor:  urug [ środa, 12 października 2005, 22:43 ]
Tytuł: 

A co ma rss do grup dyskusyjnych. Mis jak bys mogl podac jak to odpalic bo cos mi nie wychodzi. Niby sie odpala ale w thunderbirde pokazuje mi sie blad serwera (NNTP)

Autor:  Mis' [ środa, 12 października 2005, 23:37 ]
Tytuł: 

urug pisze:
jak to odpalic bo cos mi nie wychodzi. Niby sie odpala ale w thunderbirde pokazuje mi sie blad serwera (NNTP)


Zakładam że zrobiłeś to co miałeś wyświetlone podczas instalacji. Jeśli tak to:

1. zwróć uwagę na plik /etc/xinetd.d/nntp. Masz tam linię "only from = " musi tam być adres twojej sieci. Jeśli masz adres sieci inny niż 192.168.1.0/24 to nie połaczysz się.

2. fetchnews domyślnie jest ustawiony na ściąganie newsów co pół godziny. Podczas pierwszego połączenia jest również pobierana lista dostępnych grup. Na gazeta.pl jest w tej chwili dostępnych ok. 130 tysięcy grup. To też chwilę trwa.

ja to robię tak:

1. /etc/rc.d/crond stop
2. pacman -S leafnode
3. odpowiednie zmiany w konfiguracji
4. fetchnews
5. czekam na pobranie listy grup
6. z czytnika łączę się z serwerem i wybieram grupy, które chcę subskrybować
7. fetchnews
8. czekam na pobranie postów z zasubskrybowanych grup
9. /etc/rc.d/crond start

fetchnews jest wywoływany dwa razy: raz - pobiera listę grup., dwa - pobiera posty z zasubskrybowanych grup. To niestety też trwa, jak mu każesz pobierać po 100000 postów z 50 grup to może i całą nockę ściągać.
crona wyłączam na wszelki wypadek, żeby nie mieć dwóch lub więcej fetchnews działających w tym samym czasie. Na koniec całego procesu włączam crona i posty są pobierane i wysyłane automagicznie przez fetchnews uruchomione z crona.
Co do konfiguracji to przypominam że gazeta wymaga posiadania konta e-mail i w konfigu musisz podać username i hasło do tego konta.
Leafnode automagicznie przestanie pobierać posty z grup. których nikt nie czyta przez założony czas (do ustawienia w konfigu).
Jesli chcesz mieć grupy lokalne to wpisujesz ich nazwy wraz z falagą Y/N/M i krótkim opisem grupy w pliku /etc/leafnode/local.groups. Przykład:

moja.grupa.lokalna y Grupa dla mojej sieci osiedlowej.

poszczególne składniki są oddzielone pojedyńczym tabulatorem. Flagi Y/N/M oznaczają czy można wysyłać na taką grupę (y), czy nie (N) oraz czy grupa jest moderowana (M).

EDIT: Oczywiście powyższe jest prawdziwe jeśli nic nie blokuje wewnątrz sieci lokalnej portu 119.

Autor:  urug [ czwartek, 13 października 2005, 08:16 ]
Tytuł: 

Dzieki za dokladny opis, teraz do szkoly sie spiesze ale potestuje jak wroce :) Pozdrawiam

Cytuj:
jak probuje wydac polecenie /usr/sbin/fetchnews to dostaje opis ze mam poprawic nazwe w /etc/hosts/ mam tam wpisane sowinskiego.hopto.org

Strona 1 z 1 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/