"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Tollkühne Entwickler auf ihren fliegenden Kisten

bsox 14.10.2015 - 21:08 3994 29
Posts

bsox

Schwarze Socke
Avatar
Registered: Jun 2009
Location: Dschibuti
Posts: 1039
Seit ihr auch schon mal über "merkwürdig" konfigurierte Systeme gestolpert?

Ich bin in der Firma Aushilfsadminzweitengrades (für einen Kollegen der bis auf weiteres in einem Kundenprojekt vergraben ist) und betreue eine Entwicklungscloud für die Dev Jungs und Mädls. Heute hat mich ein Kollege angerufen und meinte, dass er in der Integrationsumgebung per Webbrowser nicht auf seine Applikation kommt. In der Entwicklungsumgebung funktioniert es aber.

Und so machte ich mich auf die Suche was es denn da haben könnte...
(Vorab, ich kannte weder die Server noch die Applikation.)

root user hatte ich, also zuerst mal nachsehen was denn da so rennt.

netstat -anp |grep 80
Aha, ein apache. Ins log gesehen und tatsächlich, dort stehen die 404 Meldungen.
Im Filesystem nachgesehen und auch dort konnte ich die angeforderten Files nicht finden.

Kollege zeigt mir per Lync wo er die Files am Server per scp raufgeladen hat: Ins Verzeichnis /data/userxy/jboss-as-xxx/usw.
Hm, das ist aber ein ungewöhnliches Verzeichnis für einen apache Prozess. Hatte ich in der apache Konfig das root Dir übersehen?
Nein, apache root Dir war /var/www/http/ und dort waren seine Files nicht, daher die 404 Meldungen im Log.

"Aber auf der Entwicklungsmachine geht es genauso!"
Also schaue ich dort nach und tatsächlich, dort kommt die erwartete Antwort im Browser. Und die Files liegen wie er gesagt hat, unter /data/userxy/jbossxy/. Und es antwortet auch tatsächlich ein jboss Server auf die Requests vom Browser. Apache rennt dort keiner.
Wieder ein netstat -anp |grep 80 ausgeführt, diesmal auf dem Entwicklungsserver.
=> kein Treffer. Kein Prozess lauscht auf tcp80. Nur der jboss auf tcp8080.
=> ??? Wer antwortet mir dann auf die requests vom Browser?
Also habe ich DNS und Namensauflösung überprüft ob ich wirklich auf der richtigen Maschine bin. Ja, das passte. Auch ein telnet 127.0.0.1 80 ging auf dem Server, obwohl kein Prozess auf tcp80 lauschte. Nunja, ich war kurz ratlos. There's something rotten in the state of denmark...

iptables -L -vt nat
=> uiii, da gibt's tatsächlich eine Regel die alle tcp80 Packete auf tcp8080 umleitet!
WTF, warum ist dann der jboss nicht gleich auf tcp80 konfiguriert??

Zurück am Integrationsserver:
Dort rennt mal kein jboss Prozess. Init File gibt es auch nicht. Na supa.
Ein Blick ins history erklärt mir, dass jboss mittels screen gestartet wird. Sehr leiwand. in der rc.local findet sich dafür auch kein Eintrag. Ergo, jboss wird manuell gestartet. Ebenso die iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 Anweisung. Das wird super wenn der Server mal wieder restartet werden sollte...

TLDNR;
Auf dem Server rennt Apache statt jboss. Jboss wir manell gestartet und ist auf Port 8080 gebunden. Eine lokale Firewall Rule schupft alles von Port 80 auf 8080. Automatisiert ist nichts. Es stellte sich heraus, dass die Entwicklungsumgebung und Integrationsumgebung von einem externen Lieferanten aufgesetzt wurde.

Habt ihr auch schon mal solche Kisten in die Finger bekommen?

COLOSSUS

Administrator
Frickler
Avatar
Registered: Dec 2000
Location: ~
Posts: 11899
Ach, selber erlebt hab ich viel durchaus aehnlich schlimmes Zeug! :D

Die DNAT-zu-Port-80-Masche hab ich auch schon das eine oder andere Mal gesehen - das liegt vermutlich daran, dass der Server-Prozess, der auf den Port != 80 binden soll, kein CAP_NET_BIND_SERVICE bzw. EUID 0 hat. Besonders "schoen" und klar zu debuggen, weil die Regel in der INPUT-Chain Verbindungen via lo total kalt laesst. Fuer mittellose Java-Appserver-Admins, die sich keinen Reverse Proxy leisten koennen, ist das leider oft ein Mittel der Wahl.

In dieser Branche arbeiten leider viel zu viele Stuemper, die beim Loesen ihrer Probleme geradezu problematisch kreativ werden koennen.

wergor

connoisseur de mimi
Avatar
Registered: Jul 2005
Location: graz
Posts: 4023
subscribed for epic thread title :D

nexus_VI

Overnumerousness!
Avatar
Registered: Aug 2006
Location: südstadt
Posts: 3660
Nette Story, etwas ähnliches ist wohl jedem Sysadmin schonmal passiert.

Ich hab vor einiger Zeit angefangen, die wachsenden Divergenzen zwischen Dev- und Produktivsystem mit Automation zu bekämpfen. Mittlerweile haben wir ein recht umfangreiches Chef-Setup, die Entwickler ziehen sich bei Bedarf einfach eine VM via Vagrant hoch.

Natürlich braucht die Entwickler-VM mit 1GB RAM andere Parameter als unser SaaS Host mit 32GB, das manage ich easy mit Chef Attributen und Templates.

Das von dir beschriebene kann mir de facto nicht mehr passieren *aufholzklopf* ;)

GrandAdmiralThrawn

XP Nazi
Avatar
Registered: Aug 2000
Location: BRUCK!
Posts: 3682
An sich nichts was mich übermäßig verschreckt und ich würde lügen müssen, wenn ich behauptete ähnlich gruseliges nicht schon selbst gemacht zu haben. Mit eventuell einem kleinen Unterschied. Ich dokumentier das.

Dokumentation hattest keine?

bsox

Schwarze Socke
Avatar
Registered: Jun 2009
Location: Dschibuti
Posts: 1039
Nein, Dokumentation hatte ich keine. Die Lösung wurde von einem Lieferanten aufgebaut der sich -nicht sehr ruhmreich- vertschüsst hat und von unseren Entwicklern in der Not übernommen. Die sind zwar top was das Codieren angeht, aber da dies nur ein kleiner Prototyp ist, ist kein Solution Architect (oder dedizierter Sysadmin) auf dem Projekt der die Umgebung und Frameworks hätte definieren sollen.
Und wie gesagt, Fehler in der Lieferantenauswahl + Termindruck + Retten was zu retten ist = Die Entwickler nehmen was da ist und machen das Beste draus. Das Projektmanagement hat sich da auch nicht gerade mit Ruhm bekleckert. ;-)

Im Grunde hab' ich eh Spaß an solchen Herausforderungen. Es erinnert mich immer an die Zeit in der ich noch Adventures wie Monkey Island oder Indiana Jones gespielt habe und dabei auch über das eine oder andere Rätsel getüftelt habe. :-)

"Challenge Accepted"

daisho

SHODAN
Avatar
Registered: Nov 2002
Location: 4C4
Posts: 19584
Ich finde es gruselig wie oft und wie viele Systeme nicht ordentlich dokumentiert werden, dann werden blind Updates gemacht und plötzlich geht irgendwas (wegen customization) nicht mehr wie vorher :eek: ugly

11Fire01

Here to stay
Registered: Dec 2002
Location: austria
Posts: 2417
was ist an einem reverse proxy so teuer? kann man den nicht einfach mit node,js realisieren oder vllt sogar php? :P

-=Willi=-

The Emperor protects
Avatar
Registered: Aug 2003
Location: ~
Posts: 1624
Bei mir hat nginx zu Gunicorn, php5-fpm oder Java auch noch immer gereicht :D.

Obermotz

Fünfzylindernazi
Avatar
Registered: Nov 2002
Location: OÖ/RI
Posts: 5262
Als ich noch in meiner Ex-Firma gearbeitet hab, hatten wir mal einen Spezialfall dieser Kategorie. Eines Tages wurden wir angerufen von einem Wintergarten-Produzenten.
"Bei uns geht goa nix mehr."
War nicht weit weg, sind halt mal hingefahren.
Status quo:
- 30 Mitarbeiter im Buero mit PC
- Ein Server aus 2002 mit Windows 2000 Server drauf
- Keine USV
- Kein Backup
- Kein RAID, keine Redundanz
- Kein IT-Dienstleister ("hat mal einer gemacht, aber der war uns auf Dauer zu teuer")

Der Server war nicht rebootsicher und ist nach einem Stromausfall einfach nicht mehr hochgekommen.
Gut, Windows Server gefixt und gleich mal der erste Schreck: Autologin!
Der Desktop hat entsprechend ausgeschaut.

Keine Doku.
Ein selbst-programmiertes ERP-System ohne Sourcen, das von irgendeinem anderen Ex-Dienstleister programmiert wurde, der mit der Bude auch nix mehr zu tun haben wollte. Keine Doku.

Wir haben uns damals beraten und entschieden, einen RAID-Controller einzubauen und die Platte zu spiegeln, was zum Glueck funktioniert hat.
Weiters haben wir ein NAS eingerichtet, auf welches die Daten regelmaessig gesichert wurden.

Dann haben wir eine grobe Doku erstellt, uns verabschiedet und nach ein paar weiteren Zwischenfaellen ("nix geht mehr, kemans sofort!" - Exchange Server war down, keine Mails also) beschlossen, Anrufe zu ignorieren.

// Wir haben natuerlich dazu gesagt, dass der ganze Server dringend erneuert werden muss. Antwort: Wieso, geht jo eh wieder.. :D
Bearbeitet von Obermotz am 17.10.2015, 12:29

daisho

SHODAN
Avatar
Registered: Nov 2002
Location: 4C4
Posts: 19584
Kleine Firmen bei denen keiner eine Ahnung von Computer hat, viel tragischer sind da teilweise ja eher rechtliche Probleme statt technischer an die gar nicht gedacht wird.

Ein eigener Exchange Server in einer kleinen Firma und keiner dort kennt sich aus? Klingt nach einem guten Plan :p

11Fire01

Here to stay
Registered: Dec 2002
Location: austria
Posts: 2417
wie kann ein server nicht rebootsicher sein :O

Lukas

oc.at addicted
Avatar
Registered: Feb 2004
Location: Kunsan AB
Posts: 1883
Zitat von 11Fire01
wie kann ein server nicht rebootsicher sein :O

Wie kann ein Server Autologin haben? Wieso betreibt man einen Server mit Windows? Du siehst man kann das beliebig weiterführen. :p

UnleashThebeast

Mr. Midlife-Crisis
Avatar
Registered: Dec 2005
Location: 127.0.0.1
Posts: 3457
Zitat von Lukas
Wieso betreibt man einen Server mit Windows?
Wieso nicht?
Wieviele "gute" Exchange/AD Umgebungen gibts, die unter Linux laufen? ;)

Unterschiedliche Anwendungsszenarien <> unterschiedliche Software

userohnenamen

leider kein name
Avatar
Registered: Feb 2004
Location: -
Posts: 15844
Auf so billige Sprüche braucht man doch ned eingehen ;)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz