Jak kontrolować pakiety przechodzące przez dany port?
: 02 lutego 2015, 12:13
Witajcie,
Tworzę własną aplikację w C. Ma ona za zadanie:
- śledzić pakiety wchodzące na dany port
- wysyłać własne pakiety z tego portu
- śledzić pakiety wychodzące
- blokować część pakietów wychodzących
Udało mi się zrobić dwie pierwsze rzeczy (za pomocą raw_socket'ów). Niestety z resztą mam już problem.
Myślałem o czymś takim: pakiety wychodzące zamiast wychodzić z maszyny będą zwracane z powrotem na maszynę, na inny "roboczy" port bez zmiany nagłówków. Moja aplikacja będzie zczytywać, za pomocą raw_socketa, dane z tego roboczego portu. Jeżeli zdecyduję żeby pakiet był odrzucony - nic dalej nie będę z nim robić. A kiedy pakiet będzie w porządku - po prostu ponownie go wyślę.
No tylko że nie wiem jak to zrobić... Domyślam się że pewnie potrzebna mi będzie odpowiednia reguła IPTABLES, ale jaka? A może w ogóle lepiej to zrobić innym sposobem?
Fajnie by było jakby moja aplikacja działała także na VPS z OpenVZ.
Możecie mi coś doradzić?
Tworzę własną aplikację w C. Ma ona za zadanie:
- śledzić pakiety wchodzące na dany port
- wysyłać własne pakiety z tego portu
- śledzić pakiety wychodzące
- blokować część pakietów wychodzących
Udało mi się zrobić dwie pierwsze rzeczy (za pomocą raw_socket'ów). Niestety z resztą mam już problem.
Myślałem o czymś takim: pakiety wychodzące zamiast wychodzić z maszyny będą zwracane z powrotem na maszynę, na inny "roboczy" port bez zmiany nagłówków. Moja aplikacja będzie zczytywać, za pomocą raw_socketa, dane z tego roboczego portu. Jeżeli zdecyduję żeby pakiet był odrzucony - nic dalej nie będę z nim robić. A kiedy pakiet będzie w porządku - po prostu ponownie go wyślę.
No tylko że nie wiem jak to zrobić... Domyślam się że pewnie potrzebna mi będzie odpowiednia reguła IPTABLES, ale jaka? A może w ogóle lepiej to zrobić innym sposobem?
Fajnie by było jakby moja aplikacja działała także na VPS z OpenVZ.
Możecie mi coś doradzić?