Ping nicht möglich.

digitalfreak

New member
Ich habe hier einen gerooteten PRST1 und versuche gerade SSHDroid zum laufen zu bekommen.
Ein Test mit meinem Android Handy habe ich vorher gemacht, alles problemlos möglich.
Beim PRST1 bekomme ich keine Verbindung. Es wird nicht einmal ein Ping beantwortet. WLAN ist übrigens nicht im Standby.
Kann mir jemand das Ping problem bestätigen?
Ich vermute mal das iptables dazwischen funkt leider kenne ich mich damit zu wenig aus und hab keine Ahnung wie ich das deaktivieren soll.
Kann mir da jemand helfen?


Grüße,
Thomas
 
Zuletzt bearbeitet von einem Moderator:

tpfan

New member
aja iptabels. Wenn du pingen möchtest muss du ja das Interface ansprechen. Eventuel ist es nicht kompatibel. Standartmäßig ist bei Android eigentlich keine FW dabei.


Ich vermute das das app nichts mit dem w-lan interface anfangen kann.
 

Chalid

Administrator
Teammitglied
Ich glaube da ist irgendeine Android-Einstellung nicht kompatibel bzw. eventuell in der hosts-Datei irgendetwas eingestellt. Man kann nämlich auch keinen Adblocker installieren.
 

digitalfreak

New member
OK ich hab's gefunden.
Eigentlich ist bei Android, wie eigentlich bei jedem Linux, iptables und das zughörige Kernel-Modul mit dabei und das ist im Prinzip eine Firewall. Üblicherweise wird es aber wohl nicht bei allen Adnroid Geräten genutzt.
Bei dem PRS-T1 allerdings schon.
Ich hab mal bischen in den Startscripten rumgesucht. In /init.rc auf Zeile 415 wird ein gewisser oneshot service "firewall" gestartet. Das führt zum Start von /etc/firewall.sh


#!/system/bin/sh



flush()
{
# flush all rules('filter' table)
iptables -F
iptables -X
iptables -Z
# reset default chain policy('filter' table)
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

# # flush all rules('mangle' table)
# iptables -t mangle -F
# iptables -t mangle -X
# iptables -t mangle -Z
# # reset default chain policy('mangle' table)
# iptables -t mangle -P PREROUTING ACCEPT
# iptables -t mangle -P INPUT ACCEPT
# iptables -t mangle -P FORWARD ACCEPT
# iptables -t mangle -P OUTPUT ACCEPT
# iptables -t mangle -P POSTROUTING ACCEPT
}



build()
{
# default policy
flush
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

# logging table
iptables -N log
iptables -A log -j LOG

# loopback table
iptables -N loopback
iptables -A loopback -s localhost -d localhost -j ACCEPT
iptables -A INPUT -i lo -j loopback
iptables -A OUTPUT -o lo -j loopback

# stateful inspection
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -j log

# accept application protocol
iptables -A OUTPUT -j ACCEPT
iptables -A OUTPUT -j log


# # disable TCP ECN for Wi-Fi
# iptables -t mangle -A OUTPUT -o wlan+ -p tcp -j ECN --ecn-tcp-remove
}



disable_log()
{
iptables -F log
}



enable_log()
{
disable_log
iptables -A log -j LOG
}




case "$1" in
-f)
flush
;;

-l)
disable_log
;;

-L)
enable_log
;;

*)
build 2>/dev/null
;;
esac


Das script wird in diesem Fall ohne Parameter gestartet was dazu führt das der Abschnitt build().
In diesem wird nun iptables benutzt um die sogenannten "Ketten" INPUT FORWARD und OUTPUT vom Standardverhalten "alles zulassen" auf "alles ablehnen" umgestellt.
Später wird der Ausgehende Verkehr wieder zugelassen aber INPUT bleibt dahingehend beschränkt das Pakete hereingelassen werden die zu einer vom PRST1 selbst aufgebauten Verbindung gehören.
Somit hat man nach jedem Neustart des Gerätes erst mal keinen Zugriff auf das Gerät.
Über das Terminalprogramm das beim rooten mit installiert wurde kann man das zwar im Betrieb ändern aber es ist mir noch nicht gelungen die Startscripte so zu ändern das die "firewall" garnicht erst aktiviert wird aus irgend einem Grund kann man init.rc zwar ändern aber es wird bei jedem Neustart wieder überschrieben und /etc/ ist nur read only gemountet. Mal schaun ob ich da ansetzen kann.


Grüße,
Thomas
 

digitalfreak

New member
Ich habe es jetzt hinbekommen die iptables Einstellungen dauerhaft zu deaktivieren.
Jetzt bin ich wieder etwas schlauer was android angeht. Unter root (also /) wird eine ramdisk initialisiert. Daher kann man init.rc zwar ändern es wird aber nicht permanent gespeichert und ist daher beim Herunterfahren weg.
Ich habe daher das firewall.sh file so abgeändert das das default Verhalten ohne Übergabeparameter anders ist und somit die Firewall nicht mehr aktiv wird.
Besteht hier im Forum bedarf an einer ausführlichen Anleitung ich denke man könnte das auch irgendwie in das root-update integrieren, dazu muss ich mir das aber nochmal näher anschaun.


Grüße,
Thomas
 

Chalid

Administrator
Teammitglied
Hi Thomas,


Eine Anleitung wäre natürlich super 😆 - wenn du die Zeit dazu findest!


Das könnte nämlich auch bei anderen Modifikationen hilfreich sein


Gruß,
Chalid
 
Oben