Regu

Konfiguracja serwerów, usług, itp.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2341
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Reguły iptables z bazy danych MySQL?

Post autor: LordRuthwen »

Witam.
Potrzebuję generować dynamicznie reguły iptables z bazy danych opartej o MySQL, ma to związek z eksportem tych danych z innego oprogramowania.

Czy ma ktoś jakieś gotowe rozwiązanie na to?

Szukając po sieci znalazłem to: http://sourceforge.net/projects/mysql-iptables/
Ale mi to wygląda tylko na monitoring tego co aktualnie jest.

Ewentualnie może ma ktoś jakiś pomysł jak można by takie coś rozwiązać?

Pisząc "dynamicznie" mam na myśli - "same" w zależności od zawartości bazy danych i odświeżane cronem, powiedzmy co 10 minut.
db
Beginner
Posty: 185
Rejestracja: 25 czerwca 2006, 15:23

Post autor: db »

Nie znam żadnego dedykowanego rozwiązania i nie sądzę aby istniało. Możnesz to rozwiązać w parę sposobów -- albo zrobić prosty demon, który sprawdza, czy są określone zmiany i reaguje zmieniając strukturę, albo trzymać dump z iptables-a (albo w formacie iptables-save, albo w xmlu -- w dokumentacji masz przykłady takich rozwiązań ) i w przypadku zmian odświeżać.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2341
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

No właśnie miałem w zamyśle zrobić coś, co będzie powiedzmy co 5-10 minut sprawdzało czy były zmiany, jeśli tak to generowało by i uruchamiało na nowo plik firewalla.
Tylko jak to napisać? W bashu, php, perl, c? Jak będzie najkorzystniej?

Zakładam, że to co sobie sprawię będzie prymitywne, ale do moich potrzeb wystarczające, tak, że jak ktoś będzie chciał to udostępnię.
life
Posty: 60
Rejestracja: 03 listopada 2008, 11:00

Post autor: life »

Jeśli ma to być lokalnie na serwerze to PHP bym odpuścił, bash albo perl.

Nie wiem za bardzo co chcesz wyciągać z bazy i wstawiać w iptables ale masz mysql-cilenta, tak wiec da się połączyć wynik ,,select'', zrzucić do pliku i potem go przetworzyć na regułki iptables

W perlu będzie jeszcze łatwiej bo jest tam sterownik do obsługi mysql więc mniej się napocisz.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2341
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

Co chcę wyciągać:
  • stan klienta (powinien działać czy nie),
  • jeśli nie powinien to dlaczego (generowanie dynamicznej stronki z informacją i przekierowanie ruchu dla hosta).
W zasadzie to tyle, bo blokowanie samego IP rozwiążę przez wstawienie ,,#'' w pliku konfiguracyjnym pppoe - sed.
Czyli tak naprawdę interesują mnie trzy wpisy: aktywny/nieaktywny, IP, jeśli nieaktywny to czemu.
mariaczi
Member
Posty: 1343
Rejestracja: 08 lutego 2008, 12:58
Lokalizacja: localhost@śląskie

Post autor: mariaczi »

Nie wygodniej będzie zrobić Ci przekierowanie na serwer www na dany port i tam "skonstruować" w php mechanizm, który będzie wyświetlał informację w zależności od tego jaki host do niego woła. Samą informację o włączeniu/wyłączeniu przekierowania pobierać z bazy przez skrypt w cronie.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2341
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

Tak właśnie mam zamiar zrobić, tylko chodzi o ten skrypt w cronie, napisany w czym będzie najwydajniejszy?
Na razie będę to testował na maszynie z 200 ludkami, ale możliwe, że kiedyś przerzucę na taki z 2000.
mariaczi
Member
Posty: 1343
Rejestracja: 08 lutego 2008, 12:58
Lokalizacja: localhost@śląskie

Post autor: mariaczi »

W perlu, jak już wcześniej było wspomniane. Masz w nim gotowy mechanizm do łączenia się z bazą. Np. można tak: skrypt wyciągnie z odpowiedniej tabeli IP do zablokowania/przekierowania i dla każdego IP wykona odpowiednią regułę ,,iptables''. Przy przemyślanej konstrukcji firewalla będziesz tylko dodawał/usuwał reguły odnośnie przekierowania bez potrzeby przeładowywania całego.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2341
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

I o taką odpowiedź mi chodziło, dziękuję serdecznie :)
ODPOWIEDZ