Линукс
Gentoo iptables + l7filter + connlimit със 2.6.22-gentoo-r9
by Илия Няголов on ное..14, 2007, under Линукс
Идеята ми е да огранича броя едновременни сесии на клиентите чрез „connlimit“, поради простата причина че заради шепа клиенти бълващи безобразно много заявки навън, останалите клиенти са ощетени. Чрез „l7filter“ и „MRTG“ смятам по-късно през web да наблюдавам трафика на различните видове протоколи, но това друг път 🙂 .
1. Инсталирате сорса на ядрото:
еmerge gentoo-sources
2. Инсталирате l7-protocols и l7-filter
#Понеже и двата пакета при мен са маркирани като нестабилни, се прави следното:
echo „net-misc/l7-filter ~x86“ >> /etc/portage/package.keywords
echo „net-misc/l7-protocols“ >> /etc/portage/package.keywords
emerge l7-protocols
emerge l7-filter
3. Изтегляте последната версия на patch-o-matic-ng и е разархивирам:
cd /tmp
wget ftp://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/
patch-o-matic-ng-20071109.tar.bz2
tar -xjf patch-o-matic-ng-20071109.tar.bz2
Re-broadcast Icecast2
by Илия Няголов on ное..13, 2007, under Линукс
Накратко да обясня, преди време един от клиентите ни искаше интернет радио. В смисъл той да си направи плей-листа и посредством нея shoutcast да излъчва тези песни от localftp:8000. Точно как става това сега няма да обяснявам защото не засяга темата, просто реших да му изпълня това желание и толкоз. Но още първата седмица ми се стори много тъпо така понеже както винаги бях много зает го зарязах така да си дрънка там. Въпреки че ми заемаше 10% от процесорното време което не ме радваше хич (бе от самото начало не ми хареса тоя shoutcast, затворен код какво да кажа повече … 🙁 ), така си работи няколко месеца.
Та миналата седмица си викам на акъла, няма ли да е по хубаво да захапя няколко истински интернет радия и да ги препредавам от localftp:8000. По този начин клиентите ми на по нисък тарифен план, ще могат да спестят малко от личния си интернет трафик, които е неограничен по трафик и време но лимитиран по скорост по обясними причини :).
Инсталирах си Icecast2.
#първо реших да проверя имам ли го тоя пакет и с какви опции ще се компилира
emerge -pv icecast
[ebuild R ] net-misc/icecast-2.3.1-r1 USE=“-theora* -yp*“
#Както винаги ми хареса всичко 🙂 и го инсталирах
emerge icecast
# след 1мин всичко бе6ше инсталирано
След като инсталирах Icecast си направих копие на конфигурационните файлове
cp -R /etc/icecast2 /etc/icecast2_org
След 5 минутки и малко повече 🙂 , намерих в нета че опцията която прави тези хубави неща е „Icecast 2 Relaying“.
(continue reading…)
Squid 2.6.16
by Илия Няголов on ное..12, 2007, under Линукс
Понеже бях както винаги много уморен 🙂 реших направо да ползвам конфигурационния файл от стария сървър
CentOS – и така не можа да ми хареса тая операционна система 🙁
squid-2.4-нещо си
/etc/squid/squid.conf
на новия 🙂 Gentoo (Intel Core 2 – 1.8GHz RAM-4GB).
Инсталирах си стандартно squid-а,
emerge squid
копирах стария squid.conf във /etc/squid след което реших да си го пусна и какво да вида 🙁 .
/etc/init.d/squid start
2007/11/12 16:10:37| parseConfigFile: line 2201 unrecognized: ‘httpd_accel_host virtual’
2007/11/12 16:10:37| parseConfigFile: line 2220 unrecognized: ‘httpd_accel_port 80’
2007/11/12 16:10:37| parseConfigFile: line 2250 unrecognized: ‘httpd_accel_with_proxy on’
2007/11/12 16:10:37| parseConfigFile: line 2271 unrecognized: ‘httpd_accel_uses_host_header on’
FATAL: No port defined
Squid Cache (Version 2.6.STABLE16): Terminated abnormally.
CPU Usage: 0.000 seconds = 0.000 user + 0.000 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 0
Повярвайте ми погледа ми се искри, викам си „писна ми на …“.
От лога се вижда че проблемите са два, не си намира порта (3128) и опциите за прозрачно прокси са невалидни 🙁 .
Аз обаче съм упорит и реших че ще си ползвам стария файл въпреки явните промени в синтаксиса на новия конфигурационен файл.
Какво направих за да тръгне всичко :).
#коментирах тея скапани четри реда
#httpd_accel_host virtual
#httpd_accel_port 80
#httpd_accel_with_proxy on
#httpd_accel_uses_host_header on# и добавих тея двареда
http_port 3128 transparent
always_direct allow all
За последните два реда си трябваше малко ровене из нета и четене 🙁 .
След което 🙂 всичко си зароботи по старо му.
terminal-1 run # /etc/init.d/squid start
* Starting squid … [ ok ]
terminal-1 run #
Щях да забравя, за да заработи всичко трябва да се добавят и тея редове 🙂
iptables -t nat -A PREROUTING -s 21.221.15.0/255.255.255.0 -d ! 212.21.158.0/255.255.255.0 -p tcp -m tcp –dport 80 -j REDIRECT –to-ports 3128
iptables -t nat -A PREROUTING -s 21.221.15.0/255.255.255.0 -p tcp -m tcp –dport 3128 -j DROP