Eräs Java ohjelma tekee kutsuja serverille ja tarkoitus olisi aina välillä saada muutettua oma ip osoite jotta serveri ei aina tunnista samaksi henkilöksi.
onko tämä helppo vaiko vaikea toteuttaa? käsittääkseni web proxyjä ei tälläisessä voi käyttää?
Java käyttää src ip-osoitteena sitä, joka on käyttöjärjestelmän toimesta liikenteeseen käytettävään yhteyteen liitetty. Sen siis joudut muuttamaan kj käsin.
Kysymys kuuluukin, miksi tällaista pelleilyä pitää harrastaa?
Javalla ei ole mitään tekemistä tietokoneen IP-osoitteen kanssa. Jos liikenne kulkee Internetin yli, palvelimelle näkyvä IP-osoite on se, jonka palveluntarjoaja sattuu antamaan. Tätä ei voi muuttaa. Kotiverkossakin IP-osoitteen vaihtaminen onnistuu vain järjestelmänvalvojan oikeuksilla käyttöjärjestelmän asetuksista, ja tietyissä tapauksissa tämäkään ei ole mahdollista.
Niin, tuosta Metabolixin tekstistä vielä että jos kotiverkossa vaihtaa osoitetta, niin se ei yleensä vaikuta siihen osoitteeseen, joka näkyy kotiverkon ulkopuolella olevalle palvelimelle. Eli siis, vaikka sen vaihtaisikin pääkäyttäjänä, siitä ei todennäköisesti olisi kysyjän kaipaamaa vaikutusta.
Jos koneelle on osoitettu useampi julkinen IP, niin lienee jotenkin mahdollista. Ei mitään hajua miten. Kaippa joltakin operaattoreilta voi useamman staattisen IP:n vaikka tilata?
Toinen vaihtoehtohan voisi olla koodata oma (tai asentaa valmis?) proxy tähän tarkoitukseen, ja asentaa se jollekin koneelle, jolla on eri julkinen IP.
Nettiin pystyy lähettämään paketin mistä tahansa IP:stä. Vastaanottaminen ei onnistu. Aika samanlainen tilanne kuin sähköpostien kanssa. Parempi kuitenkin että Tumettaja etsii paremman ratkaisun ongelmaansa. Kiinnostuneet voivat lukea IP-osoitteen spooffailusta englanninkielisestä wikipedista, linkki. Pääasiassahan tätä käytetään apuna jossain hyökkäyksissä.
Ainakin unixeissa on hyvä tuki raw socketeille, jolloin pääsee rakentamaan paketin IP-headerista lähtien (IP-header sisältää tiedot paketin lähettäjästä ja vastaanottajasta). Windowsistakin tietääkseni vastaava löytyy, mutta Windows ei anna lähettää paketteja väärennetystä osoitteesta. Samalla pääsee tutustumaan kuinka TCP:n, UDP:n tai muun siirtoprotokollan headerit muodostuu. Jos taas on laiska, voi käyttää esimerkiksi perlin Net::RawIP-laajennosta, joka hoitaa suurimman osan työstä.
Mielenkiintoista minusta.
Deffi kirjoitti:
Nettiin pystyy lähettämään paketin mistä tahansa IP:stä.
Eikö tähän vaadita myös UNIXissa erityiset oikeudet (samoin kuin esim. porttien 1–1023 kuunteluun)? Kuvittelisin myös, että palveluntarjoajat blokkaisivat tällaisia paketteja, koska eihän tämä vaadi juurikaan ylimääräistä työtä normaalin reitityksen päälle.
Hyvä huomio kuitenkin ja mielenkiintoinen aihe sinänsä – joskin kysymyksen kannalta luultavasti täysin epäolennainen.
Metabolix kirjoitti:
Deffi kirjoitti:
Nettiin pystyy lähettämään paketin mistä tahansa IP:stä.
Eikö tähän vaadita myös UNIXissa erityiset oikeudet
Juu, lainaus: man 7 raw
"Only processes with an effective user ID of 0 or the CAP_NET_RAW capability are allowed to open raw sockets."
Aihe on jo aika vanha, joten et voi enää vastata siihen.