Freesco, NND, CDN, EOS http://forum.freesco.pl/ |
|
Moduł ipt_account http://forum.freesco.pl/viewtopic.php?f=24&t=8321 |
Strona 1 z 1 |
Autor: | Alfred [ wtorek, 26 lipca 2005, 23:27 ] |
Tytuł: | Moduł ipt_account |
Proponuję developerom dokompilowanie do jądra i iptables modułu ipt_account. Adres strony z opisem: http://www.barbara.eu.org/~quaker/ipt_a ... ex.html.po Moduł ten znakomicie ułatwia zrobienie bardzo rozbudowanych statystyk serwera. Odpowiednie najnowsze łaty ipt_account znajdują się (jak twierdzi autor) na oficjalnym CVS netfilter.org. Dodam jeszcze, że jest stosowany w jądrze proponowanym na stronie inet.one.pl (teraz już w jądrze serii 2.6.xx, ale autor modułu twierdzi, że działa też z 2.4.xx). P.S. Próbowałem sam zrobić taką testową kompilację, ale .... poległem. Ubolewam, ale jestem jeszcze za cienki w te klocki. EDIT 29.07.2005 No i udało się. Skompilowałem jądro z modułem account. Działa i zdaje się, że dokładnie tak, jak to opisuje autor. Na razie testuję. Jeśli chodzi o wkompilowanie modułu do jądra, to okazało się to zdecydowanie prostsze niż myślałem. Moje początkowe niepowodzenia spowodowane były tym, że próbowałem za bardzo "na około". |
Autor: | jamp [ poniedziałek, 8 sierpnia 2005, 21:16 ] |
Tytuł: | |
Witam po długiej przerwie w nadawaniu ![]() Po rocznej przerwie wróciłem do NND i jak widzę rozwija się zgodnie z moimi wcześniejszymi propozycjami ![]() Alfred pisze: Proponuję developerom dokompilowanie do jądra i iptables modułu ipt_account. To również moja wielka prośba (jestem w trakcie budowy oprogramowania do limitowania ruchu w sieci i ten moduł pomógł by mi bardzo w stworzeniu statystyk dla mojego dzieła) ![]() Alfred pisze: Skompilowałem jądro z modułem account. Działa i zdaje się, że dokładnie tak, jak to opisuje autor.
Na razie testuję. Mam prośbę do Alfreda, żeby się pochwalił jak to zrobił, bo i ja sobie słabo daję radę z kompilacją jajka w NND. Oryginalna paczka ze źródłami kernel'a z NND szuka jakichś plików w prywatnych katalogach Mis'a i nie mogę namierzyć paczki ze źródłami do iptables stosowanymi w NND. Przydał by się jakiś opis na grupie jak zgodnie z zasadami NND skompilować kernel i iptables, oraz jakie są wymagane patch'e. W sprzęcie który obsługuję mam dużo dziwnych ![]() |
Autor: | Alfred [ poniedziałek, 8 sierpnia 2005, 21:40 ] |
Tytuł: | |
Trudno opisać w kilku zdaniach jak skompilować jądro pod NND. Najpierw oczywiście install_devel, to podstawa. Potem, to już trochę trudniej. Opierałem się na opisach, które są tu: http://nnd.freesco.pl/index.php?&pageNum=3 |
Autor: | jamp [ środa, 10 sierpnia 2005, 18:42 ] |
Tytuł: | |
Kernel zbudował się bez większych stresów natomiast mam kłopoty z iptables (czyniłem test kompilacji na wersjach 1.3.1 i 1.3.3 i libipt_account.c w liniach 174,207,236,253 wywala błąd "structure has no number named 'shortlisting'"). Jak byśł mógł pokazać pliki PKGBUILD od kernela i iptables lub miał na to jakiś pomysł to będę zobowiązany. |
Autor: | Alfred [ środa, 10 sierpnia 2005, 21:03 ] |
Tytuł: | |
Iptables nie kompilowałem ![]() Po prostu, po kompilacji kernela z opcją account, wpisałem do katalogu /usr/lib/iptables/ brakujący plik, który nazywa się libipt_account.so i wszystko chodzi. Plik ten ściągnąłem ze strony inet.one.pl (podaj adres to wyślę). |
Autor: | jamp [ czwartek, 11 sierpnia 2005, 10:19 ] |
Tytuł: | |
Moje pliki PKGBUILD dla: KERNEL # Wersja dla NND: Pinky <pinky(at)freesco.pl> # Poprawki: Mac!eKs <macieks(at)freesco.pl> # Poprawki: JamP <jamp(at)toya.net.pl> # patch-o-matic-ng + account # ptables-1.3.3 + account # patch ipt_account_iptables.diff pkgname=kernel24-ide pkgver=2.4.31 pkgrel=2nnd pkgdesc="The Linux Kernel and modules (IDE support)" url="http://www.kernel.org" backup=('boot/kconfig') replaces=() conflicts=('kernel24-scsi') install=kernel24.install source=(http://www.kernel.org/pub/linux/kernel/ ... ver.tar.gz \ http://www.openwall.com/linux/linux-$pkgver-ow1.tar.gz \ http://www.linuximq.net/patchs/linux-2.4.28-imq2.diff\ http://www.linuximq.net/patchs/imq-nat.diff \ http://www.iptables.org/files/iptables-1.3.3.tar.bz2 \ http://www.barbara.eu.org/~quaker/ipt_a ... ables.diff \ http://ftp.netfilter.org/pub/patch-o-ma ... -matic-ng-`date --date '1 day ago' +%Y%m%d`.tar.bz2 \ http://www.linuximq.net/patchs/iptables-1.3.0-imq1.diff \ http://www.ssi.bg/~alex/esfq/esfq-0.2-2.4.18.tar.gz \ http://www.polbox.com/h/hs001/linux-2.4 ... 3.patch.gz \ config-nnd.ide config-nnd.scsi kernel24-source.install) provides=('kernel24') pre_packing=yes md5sums=('ea3f99fc82617886059d58d0644dab26' 'f37f5b4763a9bf179bb7f5393d413d50'\ 'e28ccd106d8a93aed0b71598aaeea202' '1cfdf600dac55afb5907e6b6abd40d2f'\ '86d88455520cfdc56fd7ae27897a80a4' 'af5a748acc6d5ed36040b8c61ec51945'\ 'e01bf8b8b1cc312a8ff71c716ce40d3d' '9adae8be9562775a176fc1b275b3cb29'\ 'cae338e285896d4c2d94c90303c53e5f' '146757efc4dc3d66332415b8d29e6c39'\ '2f72e9cae7d83fdb15bdc4b82406d99b' '63df07631bb5e6bfa857794ecab1c54b'\ '7798a54c97b4d94ba6d46ec9f4912987') build() { cp $startdir/src/config-nnd.ide $startdir/src/config cp $startdir/src/linux-$pkgver-ow1/linux-$pkgver-ow1.diff $startdir/src/linux-$pkgver cp $startdir/src/linux-2.4.28-imq2.diff /$startdir/src/linux-$pkgver cp $startdir/src/imq-nat.diff /$startdir/src/linux-$pkgver/drivers/net cp $startdir/src/esfq-0.2/linux-2.4.18-esfq.diff /$startdir/src/linux-$pkgver/ cp $startdir/src/linux-2.4.31-mppe-mppc-1.3.patch /$startdir/src/linux-$pkgver/ mv $startdir/src/iptables-1.3.3 $startdir/src/iptables cp $startdir/src/iptables-1.3.0-imq1.diff $startdir/src/iptables sleep 20 ln -s $startdir/src/linux-$pkgver $startdir/src/linux cd $startdir/src/linux patch -p1 < $startdir/src/linux-$pkgver/linux-$pkgver-ow1.diff patch -p1 < $startdir/src/linux-$pkgver/linux-2.4.28-imq2.diff patch -p1 < $startdir/src/linux-$pkgver/linux-2.4.18-esfq.diff patch -p1 < $startdir/src/linux-$pkgver/linux-2.4.31-mppe-mppc-1.3.patch cd $startdir/src/linux-$pkgver/drivers/net patch < imq-nat.diff sleep 20 patch -p1 < $startdir/src/iptables/ipt_account_iptables.diff chmod +x $startdir/src/iptables/extensions/.account-test patch -p1 < $startdir/src/iptables/iptables-1.3.0-imq1.diff cd $startdir/src/patch-o-matic-ng-`date --date '1 day ago' +%Y%m%d` IPTABLES_DIR=$startdir/src/iptables KERNEL_DIR=$startdir/src/linux-$pkgver ./runme --batch string CONNMARK TTL connlimit iprange mport TARPIT psd REJECT mport nth random time ipp2p account sleep 20 cd $startdir/src [ -f /var/cache/pacman/src/iptables-1.3.3-imq.tar.gz ] && rm -f /var/cache/pacman/src/iptables-1.3.3-imq.tar.gz tar -czf /var/cache/pacman/src/iptables-1.3.3-imq.tar.gz iptables [ -f /var/cache/pacman/src/iptables-1.3.3-imq.tar.gz ] && rm -rf $startdir/src/iptables || (echo "Co¶ poszło nie tak! Nie został stworzony plik ze Ľródłami iptables"; sleep 3; exit 1) cd $startdir/src/linux-$pkgver # get rid of the 'i' in i686 carch=`echo $CARCH | sed 's|i||'` cat ../config | sed "s|#CARCH#|$carch|g" >./.config sed -i "s/-ow1/-$pkgrel/" Makefile make menuconfig make dep clean bzImage modules || return 1 mkdir -p $startdir/pkg/{lib/modules,boot} make INSTALL_MOD_PATH=$startdir/pkg modules_install || return 1 cp System.map $startdir/pkg/boot/System.map-ide-$pkgver cp arch/i386/boot/bzImage $startdir/pkg/boot/vmlinuz-ide-$pkgver mkdir -p $startdir/pkg/usr/src/linux/include for i in asm-generic asm-i386 config linux math-emu net pcmcia scsi video; do cp -a include/$i $startdir/pkg/usr/src/linux/include/ done cd $startdir/pkg/usr/src/linux/include && ln -s asm-i386 asm chown -R root.root $startdir/pkg/usr/src/linux cd $startdir/pkg/lib/modules/$pkgver-$pkgrel && \ (rm -f build; ln -sf /usr/src/linux build) # cd $startdir && ./mkinitrd -k "$pkgver" -o image cd $startdir/src/linux-$pkgver install -D -m644 .config $startdir/pkg/boot/kconfig-ide-$pkgver cd $startdir/pkg/boot ln -s System.map-ide-$pkgver System.map ln -s vmlinuz-ide-$pkgver vmlinuz } pre_pack() { cd $startdir sed -i '/^provides=/s/kernel24/kernel24-devel/' ../kernel24-ide-devel/PKGBUILD sed -i '/^pre_pack() {/,/^}$/d' ../kernel24-ide-devel/PKGBUILD sed -i '/^conflicts/s/scsi/scsi-devel/' ../kernel24-ide-devel/PKGBUILD [ -d ../kernel24-source ] && rm -fr ../kernel24-source mkdir -p $startdir/src_pkg/usr/src mkdir ../kernel24-source cp $startdir/PKGBUILD ../kernel24-source mv $startdir/src/linux-$pkgver $startdir/src_pkg/usr/src cd $startdir/src_pkg/usr/src ln -s linux-$pkgver linux cd $startdir #Zmiany w PKGBUILD dla kernel24-source sed -i '/^build\(\)/,/^\}$/d' ../kernel24-source/PKGBUILD sed -i '/^pre_pack\(\)/,/^\}$/d' ../kernel24-source/PKGBUILD sed -i '/^pre_packing=yes/d' ../kernel24-source/PKGBUILD sed -i "/^install=/s/kernel24.install/kernel24-source.install/" ../kernel24-source/PKGBUILD sed -i "/^pkgname=/s/$pkgname/kernel24-source/" ../kernel24-source/PKGBUILD sed -i "s/^depends=.*/depends=()/" ../kernel24-source/PKGBUILD sed -i "s/^provides=.*/provides=('kernel24-devel')/" ../kernel24-source/PKGBUILD sed -i "s/^backup=.*/backup=()/" ../kernel24-source/PKGBUILD sed -i "s/^conflicts=.*/conflicts=('kernel24-devel')/" ../kernel24-source/PKGBUILD sed -i "s/^pkgdesc=.*/pkgdesc=\"Linux Kernel - source\"/" ../kernel24-source/PKGBUILD sed -i "s/^provides=.*/provides=('kernel24-devel')/" ../kernel24-source/PKGBUILD sed -i '/^provides=/a\nosplit=yes' ../kernel24-source/PKGBUILD cat >> ../kernel24-source/PKGBUILD <<-!EOF build() { echo "Aby zbudowac ten pakiet uruchom make_nnd_pkg " echo "w katalogu $pkgname . " sleep 3 [ -d \$startdir/src ] && rm -fr \$startdir/src [ -d \$startdir/pkg ] && rm -fr \$startdir/pkg exit 0 } !EOF #Budowanie kernel24-source msg "Budowanie kernel24-source:" msg "Generuję plik .PKGINFO dla kernel24-source" size=`du -cb $startdir/src_pkg | tail -1 | awk '{print $1}'` source ../kernel24-source/PKGBUILD cd $startdir/src_pkg echo "# Plik wygenerowany przez make_nnd_pkg $myver" > $startdir/src_pkg/.PKGINFO echo -n "# " >> $startdir/src_pkg/.PKGINFO date >> $startdir/src_pkg/.PKGINFO echo "pkgname = $pkgname" >> $startdir/src_pkg/.PKGINFO echo "pkgver = $pkgver-$pkgrel" >> $startdir/src_pkg/.PKGINFO echo "pkgdesc = $pkgdesc" >> $startdir/src_pkg/.PKGINFO echo "url = $url" >> $startdir/src_pkg/.PKGINFO echo "license = $license" >> $startdir/src_pkg/.PKGINFO echo "builddate = `date`" >> $startdir/src_pkg/.PKGINFO echo "packager = NND Linux (http://nnd.freesco.pl)" >> $startdir/src_pkg/.PKGINFO echo "size = $size" >>$startdir/src_pkg/.PKGINFO for it in "${replaces[@]}"; do echo "replaces = $it" >> $startdir/src_pkg/.PKGINFO done for it in "${groups[@]}"; do echo "group = $it" >> $startdir/src_pkg/.PKGINFO done for it in "${conflicts[@]}"; do echo "conflict = $it" >> $startdir/src_pkg/.PKGINFO done for it in "${provides[@]}"; do echo "provides = $it" >> $startdir/src_pkg/.PKGINFO done for it in "${backup[@]}"; do echo "backup = $it" >> $startdir/src_pkg/.PKGINFO done for it in "${depends[@]}"; do echo "depend = $it" >> $startdir/src_pkg/.PKGINFO done cp $startdir/kernel24-source.install $startdir/src_pkg/.INSTALL cp $startdir/config-nnd.ide $startdir/src_pkg/usr/src/linux-$pkgver cp $startdir/config-nnd.scsi $startdir/src_pkg/usr/src/linux-$pkgver msg "Generuję plik .FILELIST dla kernel24-source" tar cvf /dev/null usr | sort > $startdir/src_pkg/.FILELIST #tar cvf /dev/null .PKGINFO .INSTALL usr | sort > $startdir/src_pkg/.FILELIST cmd="tar czvf $PKGDEST/kernel24-source-$pkgver-$pkgrel.pkg.tar.gz .PKGINFO .FILELIST .INSTALL usr" $cmd | sort >../filelist-source if [ $CLEANUP = 1 ]; then rm -fr $startdir/src_pkg rm -f $startdir/filelist-source fi msg "Sprz±tanie po sobie... " cd $startdir source PKGBUILD nosplit=no msg "Zakończono budowę pakietu kernel24-source." msg "Kończę budować pakiety kernel24-ide i kernel24-ide-devel..." } IPTABLES # Maintainer: judd <jvinet@zeroflux.org> # Wersja dla NND: Pinky <pinky(at)freesco.pl> # Poprawki: JamP <jamp(at)toya.net.pl> # patch-o-matic-ng + account # ptables-1.3.3 + account # patch ipt_account_iptables.diff pkgname=iptables pkgver=1.3.3 pkgrel=4nnd pkgdesc="A Linux kernel packet control tool" conflicts=('kernel24=2.4.31-1nnd' 'iptables-1.3.1-3nnd') depends=('kernel24=2.4.31-2nnd' 'glibc') makedepends=('kernel24-devel') source=(http://ww1.devel-nnd.brb.pl/nnd/source/ ... imq.tar.gz \ iptables.rc empty.rules firewall iptables.conf.d) md5sums=('6d1d22ecc2258a514f1d0f98cf8e7b7d' '2609d4b9a6d07b233e3940e8d0045853'\ '14186bbafe21bb0638c0cb8e0903c829' 'e57f34eb9e7278f22f466b4f17721318'\ 'd8a7109b495e15a41838fd3f6fcf1978') build() { cd $startdir/src/$pkgname sed -i "s:/usr/local:/usr:" Makefile make || return 1 make PREFIX=$startdir/pkg/usr install [ -d $startdir/pkg/usr/include/iptables ] || mkdir -p $startdir/pkg/usr/include/iptables cp -a $startdir/src/iptables/include/* $startdir/pkg/usr/include/iptables install -D -m755 ../iptables.rc $startdir/pkg/etc/rc.d/iptables install -D -m644 ../empty.rules $startdir/pkg/etc/iptables/empty.rules install -D -m755 ../firewall $startdir/pkg/etc/iptables/firewall install -D -m644 ../iptables.conf.d $startdir/pkg/etc/conf.d/iptables } Zapraszam do testowania. |
Autor: | Alfred [ czwartek, 11 sierpnia 2005, 21:38 ] |
Tytuł: | |
Ja testuję już jakiś czas. Wydaje się, że działa O.K. Wyniki piszę do bazy rrdtool. Ciekawy jestem opinii innych użytkowników. |
Autor: | MAC!EK [ czwartek, 11 sierpnia 2005, 23:52 ] |
Tytuł: | |
a w czym to to jest lepsze niż "zwykłe" liczenie "zwykłymi" iptablesami? |
Autor: | Albercik [ czwartek, 11 sierpnia 2005, 23:55 ] |
Tytuł: | |
MAC!EK pisze: a w czym to to jest lepsze niż "zwykłe" liczenie "zwykłymi" iptablesami?
wygląda na to ,że odciąża zasoby serwera |
Autor: | MAC!EK [ piątek, 12 sierpnia 2005, 00:08 ] |
Tytuł: | |
Albercik pisze: MAC!EK pisze: a w czym to to jest lepsze niż "zwykłe" liczenie "zwykłymi" iptablesami? wygląda na to ,że odciąża zasoby serwera jest to jakoś udowodnione? ![]() |
Autor: | Alfred [ piątek, 12 sierpnia 2005, 08:15 ] |
Tytuł: | |
Cytuj: a w czym to to jest lepsze niż "zwykłe" liczenie "zwykłymi" iptablesami?
Samo liczenie pewnie specjalnie nie odciąża procesora, bo robi to samo, a dodatkowo pisze na bieżąco stany liczników do pliku (jeśli są zmiany, to są one uwzględniane co sekundę). Wniosek - można zobrazować w prosty sposób, chwilowe zmiany przepływu. Zysk jest taki, że zaszyte jest to już w jądro (co pewnie ma jakiś wpływ na szzybkość ?), a liczniki zliczają ruch każdego użytkownika z rozbiciem na bajty wychodzące i przychodzące, oraz dodatkowo na TCP, UDP, ICMP + wszystko razem i reszta. Wszystko bez dodatkowej ręcznej rozbudowy iptables, czy firewalla. Testuję to od ponad tygodnia i nie zauważyłem dodatkowego obciążenia procesora. Co do porównania mrtg do rrdtool, to różnica jest ogromna. Tego się nie da porównać (maluch i mercedes). Najgorsze w mrtg jest właśnie duże, cykliczne (co 5 minut) obciążenie procesora podczas rysowania obrazków. W rrdtool to odpada. Rysowanie obrazków jest na żądanie (wtedy też mniej obciąża procek i jest zdecydowanie szybsze), nie wspominając, że na jednym obrazku można przedstawić dowolną ilość danych (w mrtg - max dwie). Dodam jeszcze, że jestem wielkim zwolennikiem rrdtool zamiast mrtg. Mrtg wywaliłem z mojego serwera już jakieś pół roku temu. |
Strona 1 z 1 | Strefa czasowa UTC+2godz. |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |