INN 2.3.5

Ein „walkthrough“ zur Installation und Konfiguration eines INN 2.3.5
mit Cycbuff-Spool und traditional overview sowie cleanfeed. Cycbuff-Spool
deshalb da man sich hinterher nicht mehr über vollaufende Festplatten
kümmern muss. – INN 2.3.x ist derzeit besser/stabiler als INN 2.4.x

 

INN Homepage: http://www.isc.org/sw/inn/

Ich baue hier einen Newsserver der nur de.* und japan.* sowie eine lokale hierachie
(futzelnet.*) ohne binaries zwei Monate vorhält.

Platzbedarf: Derzeit ca. 850MB pro Monat für die Artikel (im Cycbuff) alleine.
Mit Overview und History (nicht im Cycbuff) dazu sind es ca. 1120MB pro Monat.
Was sich dank Cycbuff auch nicht mehr signifikant verändert. Daraus mache ich 2
mal 1GB Cycbuff-Spool-Files um 1. etwas Luft nach oben zu haben und 2. gut zwei
Monate vorhalten zu können. Man kann hinterher ja immernoch Cycbuffer
hinzufügen oder statt zwei Cycbuffer von vornherein einen draus machen.
Zur Authentifikation gegenüber dem INN benutze ich hier das mitgelieferte „ckpasswd“.
Weils das einfachste und schnellste ist.

 

Vor dem installieren.
Account für User news einrichten:
In /etc/passwd: news:x:119:119:News system:/usr/local/news:/bin/bash
In /etc/shadow: news:*:12433:0:99999:7:::
In /etc/groups: news:x:119:
# mkdir /usr/local/news
# chown news:news /usr/local/news

Syslog konfigurieren und neu starten:
# vi /etc/syslog.conf

news.crit /usr/local/news/log/news.crit
news.err /usr/local/news/log/news.err
news.notice /usr/local/news/log/news.notice

# kill -HUP `cat /var/run/syslogd.pid`

 

INN Installieren:
/usr/local/src # wget ftp://ftp.isc.org/isc/inn/inn-2.3.5.tar.gz
/usr/local/src # tar xzf inn-2.3.5.tar.gz
/usr/local/src # cd inn-2.3.5/
/usr/local/src/inn-2.3.5 # ./configure -with-perl –with-largefiles
/usr/local/src/inn-2.3.5 # make && make install

Tip: Für Root-Server von z.B. 1&1 gibt man beim configure noch züsätzlich:
„–with-spool-dir=/home/news/spool –with-db-dir=/home/news/db –with-log-dir=/home/news/log“
an. Denn in /home/ ist mehr Platz. Die Binarys usw. habe ich aber gerne in /usr/local.
Anschließend kann man in /usr/local/news ja noch symlinks zu den Sachen unter
/home/news erzeugen.

 

INN Konfigurieren:
Ich liste hier größtenteils nur das auf was ich, gegenüber der mitgelieferten Konfig,
verändere/hinzufüge. Hostnamen, Peers, Mailadressen usw. sind jeweils anzupassen.
Konfiguriert wird nur als User „news“! Also alles folgende ist als User news gemacht.

/usr/local/news/etc $ vi cycbuff.conf

cycbuff:A01:/usr/local/news/spool/A01:1024000
cycbuff:A02:/usr/local/news/spool/A02:1024000
metacycbuff:ALL:A01,A02

/usr/local/news/etc $ vi expire.ctl

/remember/:10
# Spool von 2*1GB cycbuff (fuer de.* und japan.*) => 60 Tage max. Haltezeit
*:A:30:60:never

/usr/local/news/etc $ vi incoming.conf

peer ME {
hostname: „localhost, 127.0.0.1“
}

peer uucp.gnuu.de {
hostname: uucp.gnuu.de
}

/usr/local/news/etc $ vi inn.conf

organization: Futzelnet News
pathhost: news.futzelnet.de
domain: futzelnet.de
server: news.futzelnet.de
complaints: abuse@futzelnet.de
fromhost: news.futzelnet.de
moderatormailer: moderators@futzelnet.de

/usr/local/news/etc $ vi innfeed.conf

peer uucp.gnuu.de {
ip-name: uucp.gnuu.de
}

/usr/local/news/etc $ vi newsfeeds

ME:!*/!local,!collabra-internal::

innfeed!\
:!*\
:Tc,Wnm*:/usr/local/news/bin/startinnfeed

controlchan!\
:!*,control,control.*,!control.cancel\
:Tc,Wnsm:/usr/local/news/bin/controlchan

# Darf nur laufen wenn enableoverview UND useoverchan „true“ sind!
overview!:*:Tc,WnteO:/usr/local/news/bin/overchan

uucp.gnuu.de\
:de.*,japan.*,!junk,!control.*,!local,!futzelnet.*\
:Tm:innfeed!

# Nur wenn man innreport nutzt – Wird hier nicht behandelt
# Wer es will hole es sich hier: ftp://ftp.fu-berlin.de/unix/news/innreport/
#path!:*,!junk,!control,!control.*,!to,!to.*\
# :Tc,WH:/usr/local/news/bin/pathgrep path.log

/usr/local/news/etc $ vi readers.conf

# Programm mit dem Authentifiziert wird
auth all {
auth: „ckpasswd -f /usr/local/news/db/users.db“
}

# Access definitionen
access full {
users: *
newsgroups: *
access: RP
}
access read {
users: read
newsgroups: *
access: R
}

auth „localhost“ {
hosts: „localhost, 127.0.0.1, news.futzelnet.de, stdin“
default: „“
}
access „localhost“ {
users: „“
newsgroups: „*“
access: RPA
}

/usr/local/news/etc $ vi storage.conf

method cnfs {
newsgroups: *
class: 1
options: ALL
}

Newsgroupsfile irgendwo besorgen und unsere lokalen Gruppen dem file hinzufügen:
/usr/local/news/etc $ cd ../db/
/usr/local/news/db $ wget ftp://ftp.arcor-online.net/pub/news/uucp.gnuu.de/newsgroups
/usr/local/news/db $ vi newsgroups

futzelnet.admin
futzelnet.help
futzelnet.talk
futzelnet.test
futzelnet.misc

Activefile irgendwo besorgen und wie beim Newsgroupsfile auch mit den lokalen Gruppen
füttern:
/usr/local/news/db $ wget ftp://ftp.arcor-online.net/pub/news/uucp.gnuu.de/active
/usr/local/news/db $ chmod 664 active
/usr/local/news/db $ vi active

futzelnet.admin 0000000000 0000000001 y
futzelnet.help 0000000000 0000000001 y
futzelnet.talk 0000000000 0000000001 y
futzelnet.test 0000000000 0000000001 y
futzelnet.misc 0000000000 0000000001 y

 

Newsspool bauen:
/usr/local/news/db # dd if=/dev/zero of=/usr/local/news/spool/A01 bs=1024 count=1024000
/usr/local/news/db # dd if=/dev/zero of=/usr/local/news/spool/A02 bs=1024 count=1024000

 

History bauen:
/usr/local/news/db $ touch history
/usr/local/news/db $ makedbz -i
/usr/local/news/db $ mv history.n.dir history.dir
/usr/local/news/db $ mv history.n.hash history.hash
/usr/local/news/db $ mv history.n.index history.index

 

Mit „htpasswd“ kann man dann Accounts einrichten („-c“ nur beim ersten mal!):
/usr/local/news/db/ $ htpasswd [-c] users.db username passwort
Dieses Programm gehört aber nicht zu INN dazu.
Die users.db ist inhaltlich nur genauso wie die .htpasswd. Daher kann man das
Programm hierfür „Mißbrauchen“.

 

Logfiles erzeugen:
/usr/local/news/db/ $ cd ../log/
/usr/local/news/log $ touch news.crit
/usr/local/news/log $ touch news.err
/usr/local/news/log $ touch news.notice

 

Checken ob INN alles schön finden könnte:
/usr/local/news/log $ cd ../bin/
/usr/local/news/bin $ ./inncheck -v -pedantic

Soweit die INN Konfiguration.
Nun muss noch Cleanfeed mit INN verlötet werden.

 

Cleanfeed Homepage: http://www.bofh.it/~md/cleanfeed/

/usr/local/news/bin/filter $ wget https://www.bofh.it/~md/cleanfeed/cleanfeed-20020501.tgz
/usr/local/news/bin/filter $ tar xzf cleanfeed-20020501.tgz
/usr/local/news/bin/filter $ ln -s cleanfeed-20020501 cleanfeed
/usr/local/news/bin/filter $ mv filter_innd.pl filter_innd.pl.ORIG
/usr/local/news/bin/filter $ ln -s cleanfeed/cleanfeed filter_innd.pl
/usr/local/news/bin/filter $ vi cleanfeed/cleanfeed

$config_dir = ‚/usr/local/news/bin/filter/cleanfeed-20020501‘;

 

Abschließend kann man den ersten Start des Newsservers wagen:
/usr/local/news/bin $ ./rc.news start

Dringend angeraten sei die Logfiles in /usr/local/news/log nach dem Start zu
begutachten! – Nur für den Fall der Fälle. Obwohl nix sein sollte.

Übrig beleibt nur die Funktion, mit einem Newsreader, zu testen.

Wenn alles zufriedenstellend läuft kann man noch den (mindest) Cronjob einrichten:

00 3 * * * /usr/local/news/bin/news.daily expireover lowmark

 

INN-FAQs für den Betrieb:
Tagesgeschäft: http://www.blank.org/innfaq/part6.html
Probleme wenns schonmal lief: http://www.blank.org/innfaq/part7.html