Скрипт обновления списка сетей UA-IX с последующим добавлением этого списка в таблицу IPFW

  • user warning: Duplicate entry '30188485' for key 'PRIMARY' query: INSERT INTO accesslog (title, path, url, hostname, uid, sid, timer, timestamp) values('restore, rrestore -- восстановление файлов или файловых систем из бэкапов сделаных с помощью утилиты dump', 'node/438', 'http://muff.kiev.ua/content/restore-rrestore-vosstanovlenie-failov-ili-failovykh-sistem-iz-bekapov-sdelanykh-s-pomoshchy', '216.73.216.61', 0, '342el7ftci74qkklc12ik7i7c0', 169, 1767726633) in /usr/local/www/muff.kiev.ua/modules/statistics/statistics.module on line 63.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:ff0044ffb9b033dbe07cc2c0dd3bf5df' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtejustify\">Итак, задача - динамически обновлять на роутере списки сетей UA-IX и загонять их в таблицу 100 файрвола <strong>ipfw</strong>...</p>\n<p class=\"rtejustify\">Для начала перейдем в каталог <strong>/usr/local/etc</strong>, куда планируем разместить наш скрипт.</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td class=\"rtejustify\"># cd /usr/local/etc</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Следующий шаг - загрузка скрипта:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<div class=\"rtejustify\"># wget <a href=\"http://muff.kiev.ua/files/ua-list.sh\">http://muff.kiev.ua/files/ua-list.sh</a></div>\n</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Запускаем скрипт на исполнение и ожидаем завершения:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td class=\"rtejustify\"><strong># sh ua-list.sh</strong><br />\n UA-IX list update</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Следующей командой проверяем наличие списка сетей в&nbsp;таблице&nbsp;№100&nbsp;файрвола:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td class=\"rtejustify\"># ipfw table 100 list</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">В ответ на консоль должен вывалиться список сетей (более трех тысяч). Если это так - значит все работает. Теперь последний штрих - динамическое обновление. Для этого воспользуемся возможностями планировщика cron:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p># echo \'# UA-IX update\' &gt;&gt; /etc/crontab</p>\n<p># echo \'59&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root&nbsp;&nbsp;&nbsp; /bin/sh /usr/local/etc/ua-list.sh\' &gt;&gt; /etc/crontab</p>\n<p># echo \'@reboot&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root&nbsp;&nbsp;&nbsp; /bin/sh /usr/local/etc/ua-list.sh\' &gt;&gt; /etc/crontab</p>\n</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Даем команду <strong>cron</strong>-у перечитать список заданий:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># killall -HUP cron</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Итак,&nbsp;теперь список сетей будет обновляться каждый час,&nbsp;а также после перезагрузки сервера.</p>\n', created = 1767726642, expire = 1767813042, headers = '', serialized = 0 WHERE cid = '2:ff0044ffb9b033dbe07cc2c0dd3bf5df' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:de439ef2a35a744aa7cb718b30e7f46b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p>Все работает как надо статья очень грамотная спасибо автору.</p>\n<p>Еще хочу добавить следующее, далее к примеру режем пользователю все кроме UA-IX:</p>\n<blockquote><p>#ipfw add 48 pipe 51 ip from not table\\(100\\) to 192.168.0.150 out</p>\n<p>#ipfw add 49 pipe 52 ip from 192.168.0.150 to not table\\(100\\) in</p>\n<p>#ipfw pipe 51 config bw 1Mbit/s delay 80ms</p>\n<p>#ipfw pipe 52 config bw 1Mbit/s delay 80ms</p>\n</blockquote>\n<p>и чтобы правило срабатывало после перезагрузки вписываем аналогично в rc.firewall</p>\n', created = 1767726642, expire = 1767813042, headers = '', serialized = 0 WHERE cid = '2:de439ef2a35a744aa7cb718b30e7f46b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:07243fc0252056071eaa62af8c18d662' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><a class=\"thickbox\" href=\"/files/imagepicker/1/wake_up_ua.png\"><img alt=\"Вставай, Україно!\" class=\"imgp_img\" src=\"/files/imagepicker/1/thumbs/wake_up_ua.png\" style=\"height:200px; width:150px\" /></a></p>\n', created = 1767726642, expire = 1767813042, headers = '', serialized = 0 WHERE cid = '2:07243fc0252056071eaa62af8c18d662' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:cc913d232116f0426090404133377d88' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:d9a86123bfcbc57878743027b584400b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><a href=\"http://muff.kiev.ua/rss.xml\"><img alt=\"RSS\" width=\"160\" height=\"60\" src=\"http://muff.kiev.ua/files/muf-rss.png\" /></a></p>\n', created = 1767726642, expire = 1767813042, headers = '', serialized = 0 WHERE cid = '2:d9a86123bfcbc57878743027b584400b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:39649256b636e3d5ded656bc52bd8c01' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
Версия для печатиОтправить другуPDF version

Итак, задача - динамически обновлять на роутере списки сетей UA-IX и загонять их в таблицу 100 файрвола ipfw...

Для начала перейдем в каталог /usr/local/etc, куда планируем разместить наш скрипт.

# cd /usr/local/etc

Следующий шаг - загрузка скрипта:

Запускаем скрипт на исполнение и ожидаем завершения:

# sh ua-list.sh
UA-IX list update

Следующей командой проверяем наличие списка сетей в таблице №100 файрвола:

# ipfw table 100 list

В ответ на консоль должен вывалиться список сетей (более трех тысяч). Если это так - значит все работает. Теперь последний штрих - динамическое обновление. Для этого воспользуемся возможностями планировщика cron:

# echo '# UA-IX update' >> /etc/crontab

# echo '59       *       *       *       *       root    /bin/sh /usr/local/etc/ua-list.sh' >> /etc/crontab

# echo '@reboot                                 root    /bin/sh /usr/local/etc/ua-list.sh' >> /etc/crontab

Даем команду cron-у перечитать список заданий:

# killall -HUP cron

Итак, теперь список сетей будет обновляться каждый час, а также после перезагрузки сервера.

Ваша оценка: Нет Средняя: 5 (5 голосов)

Все работает как надо статья

Все работает как надо статья очень грамотная спасибо автору.

Еще хочу добавить следующее, далее к примеру режем пользователю все кроме UA-IX:

#ipfw add 48 pipe 51 ip from not table\(100\) to 192.168.0.150 out

#ipfw add 49 pipe 52 ip from 192.168.0.150 to not table\(100\) in

#ipfw pipe 51 config bw 1Mbit/s delay 80ms

#ipfw pipe 52 config bw 1Mbit/s delay 80ms

и чтобы правило срабатывало после перезагрузки вписываем аналогично в rc.firewall

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Вставай, Україно!

Литература

Резистор на 2 килобайта.