Автор Тема: IPTables четене на блокирани от mysql  (Прочетена 2558 пъти)

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: IPTables четене на блокирани от mysql
« Отговор #15 -: Mar 24, 2010, 23:50 »
Ми правила освен да се добавят, може и да се изтриват :) Имаш си база, остана само да си направиш някакъв custom chain, да си го парсваш (iptables -L) и да си го сравняваш с това в базата. Повече PHP код е, но е по-ефективно.
Активен

"Knowledge is power" - France is Bacon

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: IPTables четене на блокирани от mysql
« Отговор #16 -: Mar 24, 2010, 23:52 »
Цитат
А и да не забравяме най-голямата пробойна при текущата постановка - междувременно падане на MySQL сървъра - затрива правилата, MySQL сървър няма, и нищо не се попълва, докато не се вдигне. А бе не си е работа човек да оставя осъзнати пробойни, дори в случаи, когато не се сеща как точно биха могли да се използват, че не се знае откъде ще изскочи заек, който gat3way да хване :P [_]3

Ня, падането на SQL сървъра би било много трагично стечение на обстоятелствата :) Обаче лесно предотвратимо ако проверява какво му се връща от mysql_connect() :)
Активен

"Knowledge is power" - France is Bacon

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: IPTables четене на блокирани от mysql
« Отговор #17 -: Mar 25, 2010, 00:07 »
Обаче лесно предотвратимо ако проверява какво му се връща от mysql_connect() :)
Всъщност, използването на mysql_connect() може да се избегне, първото действие в скрипта да е попълването на масива, и, ако масивът не е празен, тогава да се изпълнява flush-ване и нататък действията в скрипта. Но пък съвсем спокойно MySQL сървърът може да си падне и по време на изпълнението на заявката и тогава... Всъщност, би ли се попълнило нещо в масива (то може да не е масив де, каквото там се използва, биха ли се получили някакви недовършени данни), ако MySQL сървърът падне по време на изпълнението на заявката, и така да се изпълни flush-ване, след което в iptables да се попълни половинчат списък? Все ми се струва, че ще се върне нещо достатъчно, за да сбъгяса историята, но не съм сигурен в момента. Това ми е последното предположение за пробойна. Няма да мисля за други, че голям песимист излязох в тази тема ;D
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

edmon

  • Гост
Re: IPTables четене на блокирани от mysql
« Отговор #18 -: Mar 25, 2010, 00:11 »
абе общо взети синтаксиса на командите и на iptables и на tc са с толкова объркана "лексика", че е много гадно да трябва да промениш едно вече зададено правило!
по лесно е да ги затриеш всичките и да ги пльосниш наново!
А съм сигурен, че можеха да измислят нещо по-структурирано!
PF изглежда доста по добре!
Активен

djpatzo

  • Напреднали
  • *****
  • Публикации: 46
    • Профил
Re: IPTables четене на блокирани от mysql
« Отговор #19 -: Mar 25, 2010, 00:26 »
Мисля, че темата стана доста интересна. Сега въпросът е да се работи по план и да видим какво ще се получи. Не вярвам сървъра да падне.
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: IPTables четене на блокирани от mysql
« Отговор #20 -: Mar 25, 2010, 00:30 »
Да си довърша bash скрипта и с премахване на ненужните правила:
Код
GeSHi (Bash):
  1. #!/bin/bash
  2.  
  3. db_user="database username"
  4. db_pass="database password"
  5. db_name="database name"
  6. db_table="database table"
  7. db_field="table field"
  8.  
  9. ### НЕ Е НУЖНО ПОВЕЧЕ РЕДАКТИРАНЕ ###
  10.  
  11. remove_ips=( `/sbin/iptables -L INPUT -n | grep "\." | cut -d'-' -f3 | cut -d' ' -f3` )
  12. for i in "${remove_ips[@]}"
  13. do
  14.    check=`/usr/bin/mysql -s -N -u $db_user --password=$db_pass -e "select $db_field from $db_name.$db_table where $db_field like \"$i\""`
  15.    check1=`/usr/bin/mysql -s -N -u $db_user --password=$db_pass -e "select $db_field from $db_name.$db_table"`
  16.    if [ !"$check" -a "$check1" ] ; then
  17.        /sbin/iptables -D INPUT -s $i -j DROP
  18.    fi
  19. done
  20.  
  21. blocked_ips=( `/usr/bin/mysql -s -N -u $db_user --password=$db_pass -e "select $db_field from $db_name.$db_table"` )
  22. for i in "${blocked_ips[@]}"
  23. do
  24.    /sbin/iptables -L INPUT -n | grep $i >/dev/null
  25.    if [ $? -ne 0 ] ; then
  26.        /sbin/iptables -A INPUT -s $i -j DROP
  27.    fi
  28. done

edit: Добавих някои украшения и поправих някои първоначални недомислия.
« Последна редакция: Mar 25, 2010, 02:04 от neter »
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: IPTables четене на блокирани от mysql
« Отговор #21 -: Mar 25, 2010, 00:37 »
Не вярвам сървъра да падне.
Има доста басни по този въпрос. Обикновено в тях вярващият се оказва изяден ;D
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
iptables
Настройка на програми
dumdum 2 7202 Последна публикация May 03, 2003, 17:00
от
Perl + CGI,DBI + Mysql ili PHP + Mysql
Общ форум
jica 3 8516 Последна публикация Sep 07, 2004, 17:02
от jica
Iptables+php+mysql
Настройка на програми
DHCP 1 673 Последна публикация Dec 20, 2006, 19:41
от empty
Mysql проблем със стартирането(mysql.sock missing)
Настройка на програми
coveka 6 10928 Последна публикация Mar 01, 2008, 22:02
от coveka
Mysql: can't connect to local mysql server
Настройка на програми
wonder 1 9468 Последна публикация Mar 16, 2008, 01:17
от neter