Grzegorz Pietrusiów pisze:
Mam wielką prośbę trochę jestem laikiem z baz i w ogóle mógłbyś mi to opisać krok po kroku?
exec("/usr/local/sbin/iptables -t nat -F INFO") 1. usuwamy wszystko co w łańcuchu INFO siedzi...
UPDATE nodes nd RIGHT JOIN nodegroupassignments na ON nd.id = na.nodeid AND na.nodegroupid=1 AND nd.warning = 1 SET warning = 0
2. jeśli jakiś komputer należy do grupy o ID grupy wynoszącym 1 i ma włączone ostrzeżenie, to wyłączamy mu to ostrzeżenie... u mnie ta grupa nazywa się BEZ_INFORMACJI i komputery w tej grupie to urządzenia, gdzie nikt nie odbierze tej informacji ... np. VoIP.
Dzięki temu jeśli wszystkim włączę powiadomienia, to automatycznie powiadomienia wyłączą się tym, którzy należą do tej grupy.
/* komputery = SELECT inet_ntoa(ipaddr) AS ip FROM nodes WHERE access = 0 OR warning = 1 */ 3a. Ta linia jest skomentowana, różni się od tej poniżej, że komunikat dostają również ludzie z wyłączonym dostępem do sieci. Moja stronka z komunikatem, napisana w PHP, grzebie sobie w MySQLu i jeśli ktoś ma dostęp wyłączony to dostaje inny komunikat (który jest już standardowy dla wszystkich) i oczywiście nie może go wyłączyć.
komputery = SELECT inet_ntoa(ipaddr) AS ip FROM nodes WHERE warning = 1; 3b. Ta linia, to uproszczenie... zajmujemy się tu tylko ostrzeżeniami. Wyciągamy z bazy danych wszystkie komputery z włączonym ostrzeżeniem.
if (number(komputery)) for (i=0; i<number(komputery); i++) exec("/usr/local/sbin/iptables -t nat -A INFO -p tcp --dport 80 -s " + komputery[i].ip + " -d! x.y.z.v -j DNAT --to x.y.z.v:100") /for /if 4. To jest proste... lecimy po wszystkich komputerach i dodajemy im reguły iptables, które kierują wszystkie nowe połączenia wychodzące na port 80, na naszego Apache'a. Port na którym słucha Apache u mnie to 100. Nie modyfikujemy połączeń adresowanych do komputera na którym słucha Apache. Dzięki temu jest np. dostęp do WWW naszej sieci.
exec("/usr/local/sbin/iptables -t nat -A INFO -j RETURN") 5. Na koniec wrzucamy regułę do łańcucha, aby wszystkie pakiety wracały do łańcuchów z których przyszły (czyli jedyna możliwość to PREROUTING i OUTPUT).
!DSPAM:4808771c85255962586004!