<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[ALUG :: Форумы]]></title>
		<link>http://alug.org.ru/forum/index.php</link>
		<description><![CDATA[]]></description>
		<lastBuildDate>Fri, 30 Sep 2011 14:39:59 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[Линукс в Поморье]]></title>
			<link>http://alug.org.ru/forum/viewtopic.php?id=298</link>
			<description><![CDATA[<p>Участники форума <a href="http://www.area29.ru/categories/arh_nix.506/">Арх-Никс</a>&nbsp; приглашают всех, кто интересуется *nix и свободным ПО, к обмену опытом и рассмотрению ситуации с Линуксом в Поморье. Мы готовы обсуждать этот вопрос как на Арх-Никсе, так и в любом другом месте, в том числе на форуме ALUG.</p>]]></description>
			<author><![CDATA[dummy@example.com (IVK)]]></author>
			<pubDate>Fri, 30 Sep 2011 14:39:59 +0000</pubDate>
			<guid>http://alug.org.ru/forum/viewtopic.php?id=298</guid>
		</item>
		<item>
			<title><![CDATA[Слет сисадминов в Архангельске 2011]]></title>
			<link>http://alug.org.ru/forum/viewtopic.php?id=297</link>
			<description><![CDATA[<p>На сайте <a href="http://www.sysadmin29.ru">www.sysadmin29.ru</a> началась регистрация на слет сисадминов в Архангельске 2011. Принять участие могут все желающие. Дата проведения 30-го июля 2011 года. Суббота - чтоб все были готовы провести день на природе, а не в офисе.</p>]]></description>
			<author><![CDATA[dummy@example.com (Hanky)]]></author>
			<pubDate>Fri, 01 Jul 2011 06:50:40 +0000</pubDate>
			<guid>http://alug.org.ru/forum/viewtopic.php?id=297</guid>
		</item>
		<item>
			<title><![CDATA[Семинары по информационным технологиям. Матфак ПГУ.]]></title>
			<link>http://alug.org.ru/forum/viewtopic.php?id=296</link>
			<description><![CDATA[<div class="quotebox"><blockquote><div><p>Семинары &quot;Прикладные информационные технологии&quot; (руководитель - старший преподаватель кафедры ИТ ,к.т.н. Попов А.И.) и &quot;Технологии&nbsp; высокопроизводительных вычислений&quot; (руководитель - доцент каф. ИТ, к.ф-м.н. Березовский В.В.) проходят по средам, чередуясь. В течение&nbsp; всего учебного года.</p></div></blockquote></div><p>Последний семинар был 04.05.2011 темой был Embedded Linux.<br />Фотографии с семинара 20.04.2011:<br /><a href="http://fotki.yandex.ru/users/skobkin-ru/album/113731/"><span class="postimg"><img src="http://img-fotki.yandex.ru/get/4607/skobkin-ru.39/0_4bc50_e7603b0b_L.jpg" alt="http://img-fotki.yandex.ru/get/4607/skobkin-ru.39/0_4bc50_e7603b0b_L.jpg" /></span></a></p><p>Есть возможность подписаться на емейл-рассылку с новостями о семинарах.</p><p><a href="http://skobkin.ru/seminars/">Подписаться на рассылку</a></p><p>P.S. Семинары посвящены не только GNU/Linux. К примеру, семинар 04.05.2011 был посвящен разработке сетевых приложений на QT.</p>]]></description>
			<author><![CDATA[dummy@example.com (skobkin)]]></author>
			<pubDate>Thu, 21 Apr 2011 16:40:19 +0000</pubDate>
			<guid>http://alug.org.ru/forum/viewtopic.php?id=296</guid>
		</item>
		<item>
			<title><![CDATA[2 Qrilka]]></title>
			<link>http://alug.org.ru/forum/viewtopic.php?id=295</link>
			<description><![CDATA[<p>Находясь на Обводном 44, обнаружил wi-fi сеть с именем qrilka, твоя? :) На одну палку силу сигнала показывает.</p>]]></description>
			<author><![CDATA[dummy@example.com (unC0Rr)]]></author>
			<pubDate>Wed, 16 Feb 2011 13:51:34 +0000</pubDate>
			<guid>http://alug.org.ru/forum/viewtopic.php?id=295</guid>
		</item>
		<item>
			<title><![CDATA[Тех кого стоит смотреть и слушать]]></title>
			<link>http://alug.org.ru/forum/viewtopic.php?id=294</link>
			<description><![CDATA[<p>Это человек кто нам подарил нам STL <br /><a href="http://video.yandex.ru/users/ya-events/view/128/">http://video.yandex.ru/users/ya-events/view/128/</a><br />Так же просто программист с хорошим продуктом <br /><a href="http://smotri.com/video/view/?id=v9874073d33">http://smotri.com/video/view/?id=v9874073d33</a><br />Ну и кто должен быть в голове у всех <br /><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/JPpk-1btGZk&hl=ru&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/JPpk-1btGZk&hl=ru&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object><br />http://www.youtube.com/watch?v=JPpk-1btGZk</p>]]></description>
			<author><![CDATA[dummy@example.com (Goli)]]></author>
			<pubDate>Mon, 14 Feb 2011 14:33:17 +0000</pubDate>
			<guid>http://alug.org.ru/forum/viewtopic.php?id=294</guid>
		</item>
		<item>
			<title><![CDATA[Я бы попросил сюда еще включить такую софтинку, как Xara Xtreme]]></title>
			<link>http://alug.org.ru/forum/viewtopic.php?id=293</link>
			<description><![CDATA[<p>Неплохая вещь, периодически тискаю.</p>]]></description>
			<author><![CDATA[dummy@example.com (ananazzz)]]></author>
			<pubDate>Sun, 06 Feb 2011 23:43:07 +0000</pubDate>
			<guid>http://alug.org.ru/forum/viewtopic.php?id=293</guid>
		</item>
		<item>
			<title><![CDATA[Домен.]]></title>
			<link>http://alug.org.ru/forum/viewtopic.php?id=292</link>
			<description><![CDATA[<p>Вот хотел у алуговчан спросить - в связи с тем, что домены .org.ru и прочие подобные становятся платными - какие мысли насчет перехода на домен .ru?</p>]]></description>
			<author><![CDATA[dummy@example.com (skobkin)]]></author>
			<pubDate>Wed, 02 Feb 2011 19:53:10 +0000</pubDate>
			<guid>http://alug.org.ru/forum/viewtopic.php?id=292</guid>
		</item>
		<item>
			<title><![CDATA[help))]]></title>
			<link>http://alug.org.ru/forum/viewtopic.php?id=291</link>
			<description><![CDATA[<p>нетбук - toshiba nb100 (11R) (1.6ггц ,512озу),на нем изначально убунту 8 вроде стояла.<br />сейчас поставил netbook remix. все отлично установилась накачала с инета 300 метров дровов. проблема в том что системка дико тупит.</p>]]></description>
			<author><![CDATA[dummy@example.com (Rea)]]></author>
			<pubDate>Sun, 23 Jan 2011 21:09:47 +0000</pubDate>
			<guid>http://alug.org.ru/forum/viewtopic.php?id=291</guid>
		</item>
		<item>
			<title><![CDATA[Новый Linux - форум Архангельской области]]></title>
			<link>http://alug.org.ru/forum/viewtopic.php?id=290</link>
			<description><![CDATA[<p>www.linux.area29.ru - присоединяйтесь! :)</p>]]></description>
			<author><![CDATA[dummy@example.com (megavolt)]]></author>
			<pubDate>Wed, 12 Jan 2011 19:33:19 +0000</pubDate>
			<guid>http://alug.org.ru/forum/viewtopic.php?id=290</guid>
		</item>
		<item>
			<title><![CDATA[Радиолюбители и электронщики области  - объединяйтесь!]]></title>
			<link>http://alug.org.ru/forum/viewtopic.php?id=289</link>
			<description><![CDATA[<p>Что-то по данной тематике область подотстала...нехорошо.<br />Мы решили исправить это на нашем форуме и создали раздел <br /><a href="http://area29.ru/categories/Радиолюбительство-и-электроника.114/">http://area29.ru/categories/Радиолюбите &#133; оника.114/</a><br />В его работе принимает участие и региональное отделение Союза Радиолюбителей России по Архангельской области<br />Присоединяйтесь! Ждем Ваших предложений по разделу.</p>]]></description>
			<author><![CDATA[dummy@example.com (megavolt)]]></author>
			<pubDate>Sun, 09 Jan 2011 18:59:08 +0000</pubDate>
			<guid>http://alug.org.ru/forum/viewtopic.php?id=289</guid>
		</item>
		<item>
			<title><![CDATA[ВВП за Linux?]]></title>
			<link>http://alug.org.ru/forum/viewtopic.php?id=288</link>
			<description><![CDATA[<p>http://open.cnews.ru/news/top/index.shtml?2010/12/27/421556 - интересно, выйдет ли что внятное?<br />Особенно забавно читать после того, как вчера подымал виртуалбокс с вендой для того, чтоб заполнить заявление на загран...</p>]]></description>
			<author><![CDATA[dummy@example.com (Qrilka)]]></author>
			<pubDate>Tue, 28 Dec 2010 06:11:27 +0000</pubDate>
			<guid>http://alug.org.ru/forum/viewtopic.php?id=288</guid>
		</item>
		<item>
			<title><![CDATA[не включается wifi на ноутбуке]]></title>
			<link>http://alug.org.ru/forum/viewtopic.php?id=287</link>
			<description><![CDATA[<p>всем привет!<br />у меня такая проблема-никак не могу заставить работать вайфай на ноутбуке.с кнопки не включается, через нетворк менеджер тоже.дрова установлены, но включаться никак не хочет.<br />вот&nbsp; результат lshw, iwconfig:</p><p># lshw -C network<br />&nbsp; *-network DISABLED&nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp;description: Wireless interface<br />&nbsp; &nbsp; &nbsp; &nbsp;product: PRO/Wireless 3945ABG [Golan] Network Connection<br />&nbsp; &nbsp; &nbsp; &nbsp;vendor: Intel Corporation<br />&nbsp; &nbsp; &nbsp; &nbsp;physical id: 0<br />&nbsp; &nbsp; &nbsp; &nbsp;bus info: pci@0000:10:00.0<br />&nbsp; &nbsp; &nbsp; &nbsp;logical name: wlan0<br />&nbsp; &nbsp; &nbsp; &nbsp;version: 02<br />&nbsp; &nbsp; &nbsp; &nbsp;serial: 00:1f:3c:3d:4f:70<br />&nbsp; &nbsp; &nbsp; &nbsp;width: 32 bits<br />&nbsp; &nbsp; &nbsp; &nbsp;clock: 33MHz<br />&nbsp; &nbsp; &nbsp; &nbsp;capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless<br />&nbsp; &nbsp; &nbsp; &nbsp;configuration: broadcast=yes driver=iwl3945 driverversion=2.6.35-23-generic firmware=N/A latency=0 link=yes multicast=yes wireless=IEEE 802.11abg<br />&nbsp; &nbsp; &nbsp; &nbsp;resources: irq:43 memory:f0000000-f0000fff</p><p># iwconfig wlan0<br />wlan0&nbsp; &nbsp; &nbsp;IEEE 802.11abg&nbsp; ESSID:off/any&nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Mode:Managed&nbsp; Access Point: Not-Associated&nbsp; &nbsp;Tx-Power=off&nbsp; &nbsp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Retry&nbsp; long limit:7&nbsp; &nbsp;RTS thr:off&nbsp; &nbsp;Fragment thr:off<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Encryption key:off<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Power Management:off</p><p>кто знает в чем дело может быть помогите плиз)))<br />PS. HP 530, ubuntu 10.10</p>]]></description>
			<author><![CDATA[dummy@example.com (junglemaniac)]]></author>
			<pubDate>Fri, 17 Dec 2010 15:32:14 +0000</pubDate>
			<guid>http://alug.org.ru/forum/viewtopic.php?id=287</guid>
		</item>
		<item>
			<title><![CDATA[[оставлю это тут] Ответы на олимпиаде для unix админов]]></title>
			<link>http://alug.org.ru/forum/viewtopic.php?id=285</link>
			<description><![CDATA[<p>http://clubs.ya.ru/yandex-root/posts.xml?tag=25043721</p><p>оставлю это тут, чтобы не потерять ссылку в будущем, да и может кому интересно будет =)</p>]]></description>
			<author><![CDATA[dummy@example.com (kam)]]></author>
			<pubDate>Sat, 04 Dec 2010 20:59:20 +0000</pubDate>
			<guid>http://alug.org.ru/forum/viewtopic.php?id=285</guid>
		</item>
		<item>
			<title><![CDATA[[MacOS Головного мозга]Юзает кто?]]></title>
			<link>http://alug.org.ru/forum/viewtopic.php?id=284</link>
			<description><![CDATA[<p>Появился iMac с Тигром, заколебался с батарейками в мышку и клаву. Но не об этом сейчас. Интересует стоит ли обновляться до более новых версий макоси, эту юзать возможности нет, т.к. все пароли админские просраны из чего следует что шаг влево или вправо -- расстрел, даже систему не обновить.<br />Ну и если обновляться, то сколько это будет стоить?<br /><s>А вообще конечно удобно и красиво</s> Что я такое говорю! Чувствую уже начинаю заражаться...</p><p>прувы в юзерагенте</p>]]></description>
			<author><![CDATA[dummy@example.com (lord)]]></author>
			<pubDate>Tue, 09 Nov 2010 08:35:43 +0000</pubDate>
			<guid>http://alug.org.ru/forum/viewtopic.php?id=284</guid>
		</item>
		<item>
			<title><![CDATA[Тюнинг nginx для защиты от ддос]]></title>
			<link>http://alug.org.ru/forum/viewtopic.php?id=283</link>
			<description><![CDATA[<p>Собственно, пока работал фрилансером накопил довольно большой опыт софтовой защиты серверов от DDoS атак.</p><p>Сюда добавлю две вещи, это конфиг рабочего nginx`a выдерживающего довольно сильные. и скрипт для бана &quot;негодяев&quot;.<br />Тут наверно более интересный будет скрипт, чем конфиг.</p><p>в данном случае используется связка nginx + apache(mod_php)</p><p>/etc/nginx/nginx.conf</p><div class="codebox" style="overflow:hidden;"><table><tr><td style="-moz-user-select: none; user-select: none;border:none;margin:0;padding:0;"><pre><code>1. 
2. 
3. 
4. 
5. 
6. 
7. 
8. 
9. 
10. 
11. 
12. 
13. 
14. 
15. 
16. 
17. 
18. 
19. 
20. 
21. 
22. 
23. 
24. 
25. 
26. 
27. 
28. 
29. 
30. 
31. 
32. 
33. 
34. 
35. 
36. 
37. 
38. 
39. 
40. 
41. 
42. 
43. 
44. 
45. 
46. 
47. 
48. 
49. 
50. 
51. 
52. 
53. 
54. 
55. 
56. 
57. 
58. 
59. 
60. 
61. 
62. 
63. 
64. 
65. 
66. 
67. 
68. 
69. 
70. 
71. 
72. 
73. 
</code></pre></td><td style="border:none;margin:0;padding:0;"><pre><code>user nginx nginx;
worker_processes 4;
timer_resolution 100ms;
worker_rlimit_nofile 8192;
worker_priority -5;
error_log /var/log/nginx/error_log info;
events {
        worker_connections  4096;
        use epoll;
}



http {
        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        log_format main
                &#039;$remote_addr - $remote_user [$time_local] &#039;
                &#039;&quot;$request&quot; $status $bytes_sent &#039;
                &#039;&quot;$http_referer&quot; &quot;$http_user_agent&quot; &#039;
                &#039;&quot;$gzip_ratio&quot;&#039;;

################ Логи для скрипта анти-ддоса
log_format ddos &#039;$remote_addr $status &quot;$request&quot;&#039;;
access_log /home/web/antiddos/main.log ddos;  # лог файл, для скрипта
include /etc/nginx/drop.conf;  # конфиг, куда скрипт будет складывать IP для забанненых юзверей, нужен на VPSках, где кол-во записей в iptables ограниченно
################
        client_max_body_size 50m; # максимальный размер файла для загрузки на сервер
        server_names_hash_bucket_size 64; # Длинные имена доменов
        client_header_timeout 10m; # таймауты
        client_body_timeout 10m; 
        send_timeout 10m;
        connection_pool_size 256;
        client_header_buffer_size 1k;
        large_client_header_buffers 4 2k;
        request_pool_size 4k;

gzip on;
gzip_min_length 1100;
gzip_buffers 64 8k;
gzip_comp_level 3;
gzip_http_version 1.1;
gzip_proxied any;
gzip_types text/plain application/xml application/x-javascript text/css;

server_tokens off;

        output_buffers   32 512k;
        postpone_output 1460;
        sendfile on;
        sendfile_max_chunk  128k;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 60 20;
        ignore_invalid_headers on;

        server {
                listen *:80;
                server_name *.*;  # редирект для всех запрашиваемых доменов
                server_name_in_redirect  off;
                include /etc/nginx/proxy;
                location = /status {
                        stub_status on;
                        access_log  off;
                        allow 127.0.0.1;
                        deny all;
                }
        }

}<code></pre></td></tr></table></div><p>/etc/nginx/proxy<br /></p><div class="codebox" style="overflow:hidden;"><table><tr><td style="-moz-user-select: none; user-select: none;border:none;margin:0;padding:0;"><pre><code>1. 
2. 
3. 
4. 
5. 
6. 
7. 
8. 
9. 
10. 
11. 
12. 
13. 
14. 
15. 
16. 
17. 
18. 
19. 
</code></pre></td><td style="border:none;margin:0;padding:0;"><pre><code>location / {
                        proxy_pass http://127.0.0.1:80/;
                        proxy_redirect     off;
                        proxy_set_header Host $host;
                        proxy_set_header X-Real-IP $remote_addr;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        client_max_body_size       50m;
                        client_body_buffer_size    128k;
                        proxy_connect_timeout      30;
                        proxy_send_timeout         90;
                        proxy_read_timeout         90;
                        proxy_buffer_size          4k;
                        proxy_buffers              4 32k;
                        proxy_busy_buffers_size    64k;
                        proxy_temp_file_write_size 10m;
}<code></pre></td></tr></table></div><p>Ну а теперь собственно скрипт.<br />Как он работает:<br />Парсит лог файлы nginx`a, подсчитывает общее кол-во запросов к нему от разных IP, и если оно превысило определенное количество заносит в список бана, а дальше делает по инструкции.<br />может банить через iptables и/или конфиг nginx`a.<br />также умеет автоматически разбанивать ботов(вдруг не бот был? а просто юзер который много вкладок открывает) через определенный промежуток времени.</p><div class="codebox" style="overflow:hidden;"><table><tr><td style="-moz-user-select: none; user-select: none;border:none;margin:0;padding:0;"><pre><code>1. 
2. 
3. 
4. 
5. 
6. 
7. 
8. 
9. 
10. 
11. 
12. 
13. 
14. 
15. 
16. 
17. 
18. 
19. 
20. 
21. 
22. 
23. 
24. 
25. 
26. 
27. 
28. 
29. 
30. 
31. 
32. 
33. 
34. 
35. 
36. 
37. 
38. 
39. 
40. 
41. 
42. 
43. 
44. 
45. 
46. 
47. 
48. 
49. 
50. 
51. 
52. 
53. 
54. 
55. 
56. 
57. 
58. 
59. 
60. 
61. 
62. 
63. 
64. 
65. 
66. 
67. 
68. 
69. 
70. 
71. 
72. 
73. 
74. 
75. 
76. 
77. 
78. 
79. 
80. 
81. 
82. 
83. 
84. 
85. 
86. 
87. 
88. 
89. 
90. 
91. 
92. 
93. 
94. 
95. 
96. 
97. 
98. 
99. 
100. 
101. 
102. 
103. 
104. 
105. 
106. 
107. 
108. 
109. 
110. 
111. 
112. 
113. 
114. 
115. 
116. 
117. 
118. 
119. 
120. 
121. 
122. 
123. 
124. 
125. 
126. 
127. 
128. 
129. 
130. 
131. 
132. 
133. 
134. 
135. 
136. 
137. 
138. 
139. 
140. 
141. 
142. 
143. 
144. 
145. 
146. 
147. 
148. 
149. 
150. 
151. 
152. 
153. 
154. 
155. 
156. 
157. 
158. 
159. 
160. 
161. 
162. 
163. 
164. 
165. 
166. 
167. 
168. 
169. 
170. 
171. 
172. 
173. 
174. 
175. 
176. 
177. 
178. 
179. 
180. 
181. 
182. 
183. 
184. 
185. 
186. 
187. 
188. 
189. 
190. 
191. 
192. 
193. 
194. 
195. 
196. 
197. 
198. 
199. 
200. 
201. 
202. 
203. 
204. 
205. 
206. 
207. 
208. 
209. 
210. 
211. 
212. 
213. 
214. 
215. 
216. 
217. 
218. 
219. 
220. 
221. 
222. 
223. 
224. 
</code></pre></td><td style="border:none;margin:0;padding:0;"><pre><code>#!/usr/bin/php
&lt;?php

### config
$time=time();

#### Директория, относительно которой будут лежать все файлы скрипта(включая логи nginx`a)
$dir=&quot;/home/web/ddos&quot;;
chdir($dir);

###############
#log_format ddos &#039;$remote_addr $status &quot;$request&quot;&#039;;
#access_log /home/web/antiddos/main.log ddos;
############### Лог файл Nginx`a
$mainLog=&quot;main.log&quot;;

# Лог забаненных(создается и изменяеться самим скриптом)
$bannedLog=&quot;banned.txt&quot;;

# временный файл, нужный для парсинга
$tmpLog=&quot;tmp.log&quot;;

# статистика после парсинга
$statLog=&quot;stat.txt&quot;;

# Файл файрвола, нужный для записи в него правил, и последующего запуска(нужен chmod 7xx)
$FW_exec=&quot;fw.sh&quot;; // NEED chmod +x

###### Подсеть для бана
### 32 = Банить только провенившийся IP (255.255.255.255)
### 24 = 255 hosts(255.255.255.0)
### google://ipcalc
$networkBan=&quot;/32&quot;;

#### строка парсинга логов, лучше не менять
// cmd to parse mainLog file
$ParseCMD=&quot;mv &quot;.$dir.&quot;/&quot;.$mainLog.&quot; &quot;.$dir.&quot;/&quot;.$tmpLog.&quot;; \
 cat &quot;.$dir.&quot;/&quot;.$tmpLog.&quot; |grep -v 404| cut -d &#039; &#039; -f 1,2,3 | sort -n | uniq -c | sort -n &gt; &quot;.$dir.&quot;/&quot;.$statLog.&quot; &quot;;

# Конфиг nginx`a в который складывать правила на DROP
# его нужно проинклудить в основной конфиг nginx.conf
$NginxDropCfg=&quot;/etc/nginx/drop.conf&quot;;
# строка перезапуска(повторного чтения конфигов, и пересоздания лог файла)
$NginxReloadCMD=&quot;nginx -s reload; nginx -s reopen&quot;;
# банить ли через nginx
$AllowNginxBan=1;


// Банить через IPTABLES ?
$AllowIptablesBan=0;
# Название цепочки, в которую добовлять правила(создаеться автоматичиски)
$IpTablesChain=&quot;AntiDDOS&quot;;
# команда для бана, |IP| автоматичиски заменяеться на IP злоумышленника
$BanIptablesCMD=&quot;/sbin/iptables -A $IpTablesChain -p tcp --dport 80 -s |IP|&quot;.$networkBan.&quot; -j DROP&quot;;

// &lt;not work&gt;
# недоделка для IPFW под freebsd, руки дойдут - сделаю
#For IPFW
$AllowIpfwBan=0;
$BanIpfwCMD=&quot;ipfw&quot;;
$UnBanIpfwCMD=&quot;ipfw&quot;;
// &lt;/not work&gt;

//Time in MINUTES / настройки таймеров, в минутах
$TimeInCron=5; // как часто в скрипт находиться в кроне(для расчетов кол-ва запросов в секунду)
$TimeToBan=60; // Ban Time in minutes (время бана, в минутах)
$MaxConnectInMinuteToBAN=50; //  кол-во запросов в минуту для бана
$MaxConnectToBan=round($TimeInCron * $MaxConnectInMinuteToBAN / 1.1 ); // лучше не трогать
$TimeStampUnBan=round($time - round($TimeToBan * 60)); // лучше не трогать

### NONBANNED IPS
# массив IP адресов, которых не банить не в коем случае
#$IpNONban=array(&quot;127.0.0.1&quot;,
#                &quot;62.192.241.151&quot;);
$IpNONban=file(&#039;nonBan.txt&#039;);

################# End Config


##############################
###########GoGoGo#############
##############################

# создаем массивы и функции
$ToBans=array();
$UnToBans=array();
function ReturnBans($item, $key){
        global $ToBans;
        $ToBans[]=$key.&quot; &quot;.$item;
}
function ReturnUnBans($item, $key){
        global $ToUnBans;
        $ToUnBans[]=$key.&quot; &quot;.$item;
}


# проверка на наличие лога
if(!is_file($dir.&quot;/&quot;.$mainLog)) { die(&quot;Error Open MainLogFile\r\n&quot;); }

# Runnin parsing log files, запуск парсинга
system($ParseCMD);

# Проверка на наличие файлов после парсинга
if(!is_file($dir.&quot;/&quot;.$statLog)) { die(&quot;Error Open StatLogFile\r\n&quot;); }
if(!is_file($dir.&quot;/&quot;.$bannedLog)) { touch($dir.&quot;/&quot;.$bannedLog); }

# чтения уже забаненных
$banFile=file($dir.&quot;/&quot;.$bannedLog);

$banned=array();
$UnBan=array();

$NonBanCounts=count($IpNONban);

# кого банить а кого разбанить, сортировка
foreach($banFile as $temp){
$nonBan=0;
$i=0;
        $temp=explode(&quot; &quot;,trim($temp));

        while($NonBanCounts &gt; $i){
                if(preg_match(&quot;/&quot;.trim($IpNONban[$i]).&quot;/i&quot;,trim($temp[0]))){
                        $nonBan=1;
                        $i=$NonBanCounts;
                        $temp[0]=&quot;NON_BAN&quot;;
                }
                $i++;
        }

        if( $NonBan == 0
        and preg_match(&quot;/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/&quot;,$temp[0])
        and is_numeric($temp[1])){
                if($temp[1] &lt; $TimeStampUnBan){
                        $UnBan[$temp[0]]=$temp[1];
                }else{
                        $banned[$temp[0]]=$temp[1];
                }
        }
}

# Чтение статус-лога, для добовление новых банов
$OpenStatLog=file($dir.&quot;/&quot;.$statLog);
foreach($OpenStatLog as $temp){
        $nonBan=0;
        $i=0;
        $temp=explode(&quot; &quot;,trim($temp));
        if($temp[0] &gt; $MaxConnectToBan ){
                while($NonBanCounts &gt; $i){
                        if(preg_match(&quot;/&quot;.trim($IpNONban[$i]).&quot;/i&quot;,trim($temp[0]))){
                                $nonBan=1;
                                $i=$NonBanCounts;
                                $temp[0]=&quot;NON_BAN&quot;;
                        }
                        $i++;
                }
                if($temp[0] != &quot;NON_BAN&quot; and !in_array($temp[1],$IpNONban) and !isset($banned[trim($temp[1])])){
                        $banned[trim($temp[1])]=$time;
                }
        }
}

### маразм, но без него не работает
# вытягивание из массива $banned[{IP}]={timestamp}
array_walk ($banned, &#039;ReturnBans&#039;); // define array $ToUnBans

# array_walk ($UnBan, &#039;ReturnUnBans&#039;); // define array $ToBans   // not worked (не нужно ибо пока не работает)

# для дебага
#var_dump($ToBans);
#var_dump($ToUnBans);

######### Generate Banned.log
######### Создаем лог всех забаненных
$BanLog=&quot;&quot;;
foreach($ToBans as $temp){
        $temp=explode(&quot; &quot;,trim($temp));
        $BanLog.=$temp[0].&quot; &quot;.time().&quot; # UnBan date: &quot;.date(&quot;F j, Y, H:m:s&quot;,round($time + round($TimeToBan * 60))).&quot;\n&quot;;
        $fpBan=fopen($bannedLog,&quot;w&quot;);
        fwrite($fpBan,$BanLog);
        fclose($fpBan);
}

######### Generate Nginx ban list
######### Создаем файл банов через nginx
if($AllowNginxBan){
        $DropCFG=&quot;&quot;;
        foreach($ToBans as $temp){
                $temp=explode(&quot; &quot;,trim($temp));
                $DropCFG.=&quot;deny &quot;.$temp[0].&quot;$networkBan; # UnBan date: &quot;.date(&quot;F j, Y, H:m:s&quot;,round($time + round($TimeToBan * 60))).&quot;\n&quot;;
        }
        $fpNginx=fopen($NginxDropCfg,&quot;w&quot;);
        fwrite($fpNginx,$DropCFG);
        fclose($fpNginx);
        # перезагружаем nginx
        system($NginxReloadCMD);
}

###### iptables or ipfw BAN
#generate EXEC file
# Создаем запускаемый файл для файрвола
if($AllowIptablesBan){

$FW_CFG=&quot;#!/bin/sh

iptables -F $IpTablesChain
iptables -X $IpTablesChain
iptables -N $IpTablesChain
&quot;;
        foreach($ToBans as $temp){
                $temp=explode(&quot; &quot;,trim($temp));
                $FW_CFG.=str_replace(&quot;|IP|&quot;,$temp[0],$BanIptablesCMD).&quot;\n&quot;;
        }
        $fpFW=fopen($FW_exec,&quot;w&quot;);
        fwrite($fpFW,$FW_CFG);
        fclose($fpFW);
        system(&quot;./&quot;.$FW_exec);
}

# удаляем не нужное
unlink($dir.&quot;/&quot;.$tmpLog);

?&gt;<code></pre></td></tr></table></div><p>выставляем на него chmod +x <br />добовляем его в /etc/crontab<br />раз в 5 минут(или как вам удобнее)<br />*/5 * * * * root /home/web/antiddos/cron.php</p><br /><p>чтобы заработала банилка по iptables, нужно перенаправить трафик в цепочку AntiDDOS<br />iptables -A INPUT -p tcp --dport 80 -j AntiDDOS</p><br /><br /><p>Дописываем, потом ссылку на хабр, и очучаем хабр эфект )))</p>]]></description>
			<author><![CDATA[dummy@example.com (kam)]]></author>
			<pubDate>Thu, 04 Nov 2010 19:13:44 +0000</pubDate>
			<guid>http://alug.org.ru/forum/viewtopic.php?id=283</guid>
		</item>
	</channel>
</rss>

