logo
06.01.2020 15:21
1
Dobry den,
Mam skutocne velky problem s apache nechce mi na webe zobrazit skutocnu IP klienta namiesto toho mi ukaze IP providera.
Priklad moja ip kde bezi server je 188.188.188.254
Na webe sa zobrazi ip 188.188.188.1(ip providera internetu) kazdemu klientovi co web navstivi tym padom o klientovi neviem nic a ked napise komentar neviem ho pripadne zabanovat ak by slo o spambota / hejtera / idiota :D

Webserver mam doma na raspberry pi zero na ktorom je nainstalovane Apache2, php7.3, mysql, phpmyadmin

Myslim si ze nastavenie apache alebo niecoho ineho treba este upravit ale nemam sajnu ze co presne kedze doteraz som vyuzival komercne hostingy.

Vedel by mi s tym niekto pomoct? bol by som velmi vdacny za kazdu radu.

Viem ze tento problem sa da ciastocne mozno odstranit php kodom. Ale upravovat kody wordpressu by bolo asi dost zlozite.

Co se právě děje na Webtrhu?

06.01.2020 15:25
2
Nemáš tam náhodou proxy? Docela to tak vypadá. V tom případě na Wordpressu pravděpodobně půjde nastavit proxy, tím pádem to bude brát forwardovanou adresu.
06.01.2020 15:30
3
nie proxy nepouzivam alebo aspon o tom neviem nic take som nenastavoval ani neinstaloval. Ono ja som mal problem aj pri inom redakcom systeme preto som sa rozhodol skusit wordpress (aj kvoli lepsim zaloham)

Este sa pohravam s myslienkou dat prava komentovat iba registrovanym (ale zabanujem zase iba ucet)

Ono mne to pripada ako keby chcelo chytit IP routra pretoze ten je na adrese 192.168.100.1
Ale vypise adresu v podobe verejnej ale nie presnej 188.188.188.1
06.01.2020 15:46
4
Webserver mam doma na raspberry pi zero
10€ ze ta malina nie je napojena na internet priamo ale cez router :)
06.01.2020 15:47
5
Původně odeslal node
10€ ze ta malina nie je napojena na internet priamo ale cez router :)
Nepochybně, ale v tom případně má chybně nastavený forwarding/NAT.
06.01.2020 15:59
6
Jasne ze je cez router ved ako inak kedze to zero je Wifi verzia. To som zabudol spomenut. V routri mam otvoreny port 80 web funguje cez domenu

06.01.2020 16:15
7
Client IP AND X-Forwarded-For IP
Loguješ opravdu správně?
06.01.2020 16:32
8
obycajny router nie je reverzna proxina. on smeruje komunikaciu len na zaklade ip(osi layer 3). samozrejme nemozes ocakavat ze ti vonku pusti internu ip adresu z lokalnej siete, to iste naopak. cize budes potrebovat bud router ktory dokaze fungovat ako reverse proxy(osi layer 4 a/alebo 7), alebo si z inej maliny sprav proxinu ktora ti bude sluzit ako router ale bude spravne forwardovat komunikaciu(l4/l7). neviem co na maline moze bezat ale najcastejsie sa pouziva haproxy, nginx, traefik alebo envoy.

snad som tie vrstvy uviedol spravne :D
06.01.2020 16:46
9
Původně odeslal vdusek
Client IP AND X-Forwarded-For IP
Loguješ opravdu správně?
Ak myslis toto https://www.digitalocean.com/communi...-load-balancer tak som spravil vsetko podla toho navodu a nefunguje to

EDIT: funguje aj nefunguje.... ak vytvorim subor ip.php a hodim donho script $_SERVER['REMOTE_ADDR'] ip sa sice zobrazi spravna. Ale pri pridani komentaru je zase IP providera mojho

Původně odeslal node
obycajny router nie je reverzna proxina. on smeruje komunikaciu len na zaklade ip(osi layer 3). samozrejme nemozes ocakavat ze ti vonku pusti internu ip adresu z lokalnej siete, to iste naopak. cize budes potrebovat bud router ktory dokaze fungovat ako reverse proxy(osi layer 4 a/alebo 7), alebo si z inej maliny sprav proxinu ktora ti bude sluzit ako router ale bude spravne forwardovat komunikaciu(l4/l7). neviem co na maline moze bezat ale najcastejsie sa pouziva haproxy, nginx, traefik alebo envoy.

snad som tie vrstvy uviedol spravne :D
No s routrom je to kus problem kedze ma opticku pripojku, pri instalacie netu som sa hned pytal ci mozem router zmenit provider mi to neodporucal vraj to nemusi fungovat korektne pretoze tieto routre co davaju si niekde dali vyrobit na zakazku, router je huawei.

Mam este jedno rpi4 tam mam nginx kvoli webu na rutorrent
06.01.2020 23:16
10
OT: Diskusne forum na rpb a domacej IP? To znie zaujimavo. Mozes postnut link?
07.01.2020 07:09
11
Původně odeslal Piwiki
EDIT: funguje aj nefunguje.... ak vytvorim subor ip.php a hodim donho script $_SERVER['REMOTE_ADDR'] ip sa sice zobrazi spravna. Ale pri pridani komentaru je zase IP providera mojho
Tak pokud si přes PHP vytáhne REMOTE_ADDR tak proč pak zapíšeš špatnou IP? Použij tuhle hlavičku a je to ne?

Alternativně se podívej na mod_rpaf - https://www.x4b.net/kb/RealIP-Apache . To je správný řešení, tak aby ti v hlavičce někdo nepodstrčoval "bordel" :-)
07.01.2020 07:33
12
Původně odeslal clant
Tak pokud si přes PHP vytáhne REMOTE_ADDR tak proč pak zapíšeš špatnou IP? Použij tuhle hlavičku a je to ne?

Alternativně se podívej na mod_rpaf - https://www.x4b.net/kb/RealIP-Apache . To je správný řešení, tak aby ti v hlavičce někdo nepodstrčoval "bordel" :-)
Ono figel je v tom ze ju spravne iba zobrazi ale ten isty prikaz ju zle ulozi, ak som skusil prikaz zmenit na iny ukazovalo mi ze moj komentar bol vyhodnoteny ako spam a ip neulozilo vobec

Skusal som wordpress,drupal a mnews cms
07.01.2020 08:14
13
hoď sem celý výpis proměnné $_SERVER (var_dump($_SERVER);), z ní půjde poznat ledacos. U IP adres stačí, když začerníš první segmet, rád bych, aby bylo vidět, z které sítě je která IP, pokud bys je nahradil celé, nepůjde to poznat.

Podle popisu to vypadá, že tvůj provider používá NAT pro agregaci více klientů, což se mi nezdá, jsi si jistý, že to je IP providera a nikoliv nějakého tvého routeru?

Provozovat web z domu není dobrý nápad, tvůj provider bude mít nejspíš více dalších ochran a bude ti to bránit běžnému provozu, očividně si neumíš zařídit ani základy, takže těch pastí tě čeká ještě několik. Lepší je si opravdu vzít nějaký virtuál za pár korun měsíčně.
07.01.2020 09:06
14
Původně odeslal TomášX
hoď sem celý výpis proměnné $_SERVER (var_dump($_SERVER);), z ní půjde poznat ledacos. U IP adres stačí, když začerníš první segmet, rád bych, aby bylo vidět, z které sítě je která IP, pokud bys je nahradil celé, nepůjde to poznat.

Podle popisu to vypadá, že tvůj provider používá NAT pro agregaci více klientů, což se mi nezdá, jsi si jistý, že to je IP providera a nikoliv nějakého tvého routeru?

Provozovat web z domu není dobrý nápad, tvůj provider bude mít nejspíš více dalších ochran a bude ti to bránit běžnému provozu, očividně si neumíš zařídit ani základy, takže těch pastí tě čeká ještě několik. Lepší je si opravdu vzít nějaký virtuál za pár korun měsíčně.
Vypis dump na lokalnej sieti z PC

Kód:
array(31) {
  ["HTTP_HOST"]=>
  string(15) "***.188.190.254"
  ["HTTP_CONNECTION"]=>
  string(10) "keep-alive"
  ["HTTP_UPGRADE_INSECURE_REQUESTS"]=>
  string(1) "1"
  ["HTTP_USER_AGENT"]=>
  string(114) "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
  ["HTTP_ACCEPT"]=>
  string(124) "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
  ["HTTP_ACCEPT_ENCODING"]=>
  string(13) "gzip, deflate"
  ["HTTP_ACCEPT_LANGUAGE"]=>
  string(44) "sk-SK,sk;q=0.9,en-US;q=0.8,en;q=0.7,cs;q=0.6"
  ["HTTP_COOKIE"]=>
  string(102) "mn_lang=sk; mn_user_name=Webmaster; mn_logged=1; mn_user_hash=679233a5e95d7e72fdb3f0bfe2abfedabadd6233"
  ["PATH"]=>
  string(60) "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  ["SERVER_SIGNATURE"]=>
  string(78) "
Apache/2.4.38 (Raspbian) Server at ***.188.190.254 Port 80

"
  ["SERVER_SOFTWARE"]=>
  string(24) "Apache/2.4.38 (Raspbian)"
  ["SERVER_NAME"]=>
  string(15) "***.188.190.254"
  ["SERVER_ADDR"]=>
  string(14) "192.168.100.15"
  ["SERVER_PORT"]=>
  string(2) "80"
  ["REMOTE_ADDR"]=>
  string(15) "***.188.190.254"
  ["DOCUMENT_ROOT"]=>
  string(13) "/var/www/html"
  ["REQUEST_SCHEME"]=>
  string(4) "http"
  ["CONTEXT_PREFIX"]=>
  string(0) ""
  ["CONTEXT_DOCUMENT_ROOT"]=>
  string(13) "/var/www/html"
  ["SERVER_ADMIN"]=>
  string(19) "webmaster@localhost"
  ["SCRIPT_FILENAME"]=>
  string(22) "/var/www/html/dump.php"
  ["REMOTE_PORT"]=>
  string(5) "50070"
  ["GATEWAY_INTERFACE"]=>
  string(7) "CGI/1.1"
  ["SERVER_PROTOCOL"]=>
  string(8) "HTTP/1.1"
  ["REQUEST_METHOD"]=>
  string(3) "GET"
  ["QUERY_STRING"]=>
  string(0) ""
  ["REQUEST_URI"]=>
  string(9) "/dump.php"
  ["SCRIPT_NAME"]=>
  string(9) "/dump.php"
  ["PHP_SELF"]=>
  string(9) "/dump.php"
  ["REQUEST_TIME_FLOAT"]=>
  float(1578383186.193)
  ["REQUEST_TIME"]=>
  int(1578383186)
}
Array
(
    [_GET] => Array
        (
        )

    [_POST] => Array
        (
        )

    [_COOKIE] => Array
        (
            [mn_lang] => sk
            [mn_user_name] => Webmaster
            [mn_logged] => 1
            [mn_user_hash] => 679233a5e95d7e72fdb3f0bfe2abfedabadd6233
        )

    [_FILES] => Array
        (
        )

    [_SERVER] => Array
        (
            [HTTP_HOST] => ***.188.190.254
            [HTTP_CONNECTION] => keep-alive
            [HTTP_UPGRADE_INSECURE_REQUESTS] => 1
            [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36
            [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
            [HTTP_ACCEPT_ENCODING] => gzip, deflate
            [HTTP_ACCEPT_LANGUAGE] => sk-SK,sk;q=0.9,en-US;q=0.8,en;q=0.7,cs;q=0.6
            [HTTP_COOKIE] => mn_lang=sk; mn_user_name=Webmaster; mn_logged=1; mn_user_hash=679233a5e95d7e72fdb3f0bfe2abfedabadd6233
            [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
            [SERVER_SIGNATURE] => 
Apache/2.4.38 (Raspbian) Server at ***.188.190.254 Port 80


            [SERVER_SOFTWARE] => Apache/2.4.38 (Raspbian)
            [SERVER_NAME] => ***.188.190.254
            [SERVER_ADDR] => 192.168.100.15
            [SERVER_PORT] => 80
            [REMOTE_ADDR] => ***.188.190.254
            [DOCUMENT_ROOT] => /var/www/html
            [REQUEST_SCHEME] => http
            [CONTEXT_PREFIX] => 
            [CONTEXT_DOCUMENT_ROOT] => /var/www/html
            [SERVER_ADMIN] => webmaster@localhost
            [SCRIPT_FILENAME] => /var/www/html/dump.php
            [REMOTE_PORT] => 50070
            [GATEWAY_INTERFACE] => CGI/1.1
            [SERVER_PROTOCOL] => HTTP/1.1
            [REQUEST_METHOD] => GET
            [QUERY_STRING] => 
            [REQUEST_URI] => /dump.php
            [SCRIPT_NAME] => /dump.php
            [PHP_SELF] => /dump.php
            [REQUEST_TIME_FLOAT] => 1578383186.193
            [REQUEST_TIME] => 1578383186
        )

    [GLOBALS] => Array
 *RECURSION*
)


Vypis dump z vonku (mobil)

Kód:
array(33) {
  ["HTTP_HOST"]=>
  string(15) "***.188.190.254"
  ["HTTP_CONNECTION"]=>
  string(10) "keep-alive"
  ["HTTP_PRAGMA"]=>
  string(8) "no-cache"
  ["HTTP_CACHE_CONTROL"]=>
  string(8) "no-cache"
  ["HTTP_SAVE_DATA"]=>
  string(2) "on"
  ["HTTP_UPGRADE_INSECURE_REQUESTS"]=>
  string(1) "1"
  ["HTTP_USER_AGENT"]=>
  string(117) "Mozilla/5.0 (Linux; Android 9; Mi A1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.93 Mobile Safari/537.36"
  ["HTTP_ACCEPT"]=>
  string(124) "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
  ["HTTP_ACCEPT_ENCODING"]=>
  string(13) "gzip, deflate"
  ["HTTP_ACCEPT_LANGUAGE"]=>
  string(44) "sk-SK,sk;q=0.9,en-US;q=0.8,en;q=0.7,cs;q=0.6"
  ["PATH"]=>
  string(60) "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  ["SERVER_SIGNATURE"]=>
  string(78) "
Apache/2.4.38 (Raspbian) Server at ***.188.190.254 Port 80

"
  ["SERVER_SOFTWARE"]=>
  string(24) "Apache/2.4.38 (Raspbian)"
  ["SERVER_NAME"]=>
  string(15) "***.188.190.254"
  ["SERVER_ADDR"]=>
  string(14) "192.168.100.15"
  ["SERVER_PORT"]=>
  string(2) "80"
  ["REMOTE_ADDR"]=>
  string(13) "***.188.190.1"
  ["DOCUMENT_ROOT"]=>
  string(13) "/var/www/html"
  ["REQUEST_SCHEME"]=>
  string(4) "http"
  ["CONTEXT_PREFIX"]=>
  string(0) ""
  ["CONTEXT_DOCUMENT_ROOT"]=>
  string(13) "/var/www/html"
  ["SERVER_ADMIN"]=>
  string(19) "webmaster@localhost"
  ["SCRIPT_FILENAME"]=>
  string(27) "/var/www/html/info/dump.php"
  ["REMOTE_PORT"]=>
  string(4) "4905"
  ["GATEWAY_INTERFACE"]=>
  string(7) "CGI/1.1"
  ["SERVER_PROTOCOL"]=>
  string(8) "HTTP/1.1"
  ["REQUEST_METHOD"]=>
  string(3) "GET"
  ["QUERY_STRING"]=>
  string(0) ""
  ["REQUEST_URI"]=>
  string(14) "/info/dump.php"
  ["SCRIPT_NAME"]=>
  string(14) "/info/dump.php"
  ["PHP_SELF"]=>
  string(14) "/info/dump.php"
  ["REQUEST_TIME_FLOAT"]=>
  float(1578383586.482)
  ["REQUEST_TIME"]=>
  int(1578383586)
}
Array
(
    [_GET] => Array
        (
        )

    [_POST] => Array
        (
        )

    [_COOKIE] => Array
        (
        )

    [_FILES] => Array
        (
        )

    [_SERVER] => Array
        (
            [HTTP_HOST] => ***.188.190.254
            [HTTP_CONNECTION] => keep-alive
            [HTTP_PRAGMA] => no-cache
            [HTTP_CACHE_CONTROL] => no-cache
            [HTTP_SAVE_DATA] => on
            [HTTP_UPGRADE_INSECURE_REQUESTS] => 1
            [HTTP_USER_AGENT] => Mozilla/5.0 (Linux; Android 9; Mi A1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.93 Mobile Safari/537.36
            [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
            [HTTP_ACCEPT_ENCODING] => gzip, deflate
            [HTTP_ACCEPT_LANGUAGE] => sk-SK,sk;q=0.9,en-US;q=0.8,en;q=0.7,cs;q=0.6
            [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
            [SERVER_SIGNATURE] => 
Apache/2.4.38 (Raspbian) Server at ***.188.190.254 Port 80


            [SERVER_SOFTWARE] => Apache/2.4.38 (Raspbian)
            [SERVER_NAME] => ***.188.190.254
            [SERVER_ADDR] => 192.168.100.15
            [SERVER_PORT] => 80
            [REMOTE_ADDR] => ***.188.190.1
            [DOCUMENT_ROOT] => /var/www/html
            [REQUEST_SCHEME] => http
            [CONTEXT_PREFIX] => 
            [CONTEXT_DOCUMENT_ROOT] => /var/www/html
            [SERVER_ADMIN] => webmaster@localhost
            [SCRIPT_FILENAME] => /var/www/html/info/dump.php
            [REMOTE_PORT] => 4905
            [GATEWAY_INTERFACE] => CGI/1.1
            [SERVER_PROTOCOL] => HTTP/1.1
            [REQUEST_METHOD] => GET
            [QUERY_STRING] => 
            [REQUEST_URI] => /info/dump.php
            [SCRIPT_NAME] => /info/dump.php
            [PHP_SELF] => /info/dump.php
            [REQUEST_TIME_FLOAT] => 1578383586.482
            [REQUEST_TIME] => 1578383586
        )

    [GLOBALS] => Array
 *RECURSION*

Ja ten web chcem hlavne pre seba a par kamaratov. Preto som to skusil na raspberry inak web mi funguje v pohode php,mysql,phpmyadmin a momentalne je toto jediny problem s ktorym si neviem dat rady. Praca s webmi ma bavi a venujem sa tomu uz 13 rokov mam to ako konicek a nevidim dovod preco by sa neoplatilo mat server v tomto pripade doma. Ja sa chcem ucit a zdokonalovat len obcas potrebujem usmernit.
07.01.2020 12:12
15
díky za výpis hodnot. Pokud přistupuješ ze svého lokálního počítače, nejdeš přes NAT a jdeš přímo na server, proto rpi vidí správnou IP adresu, jakmile jdeš přes mobil, přistupuješ přes NAT a tvoje rpi vidí IP adresu NAT serveru a nikoliv klienta. Tohle je problém u tvého providera a nenapadá mě jiné řešení, než ho požádat, aby tvoji IP routovat přímo a nikoliv přes NAT, očividně již máš veřejnou IP a je nesmysl jí takhle routovat, bohužel v čechách se často sektávám i s nesmyslem typu NAT 1:1.

Pokud to máš pro pár lidí, další možnost je přejít na ipv6, sice jí musí mít všichni, ale tenhle problém nejspíš odpadne, kvůli tomu ipv6 vznikla.

Byla tady možnost, že ten NAT je pořád někde u tebe na routeru, pak bys mohl změnit konfiguraci, ale podle výpisu to vypadá, že je opravdu u provideru, tomu konfiguraci nezměníš :). NAT je stavový způsob překladu IP adres mezi dvěma body, přesně díky tomuhle fungují VPN a přesně takhle schovají tvoji skutečnou IP adresu.

Pokud nezvládneš udělat žádnou změnu na síti, nezbyde ti nic jiného než ty spam ochrany u komentářů nějak změnit nebo vypnout, aby tomuhle nebránily.