Hogyan állítsuk át LAMP vagy ISPConfigot futtató Apache alapú webszerverünket, ha megváltozik a szerver IP-címe

botond küldte be 2020. 08. 11., k – 22:35 időpontban

Tartalom

 

Bevezető

Néha megesik, hogy valamilyen oknál fogva új IP-címet kapunk, így webszerverünkön is módosítani kell a megfelelő konfigurációs fájlokat, és elvégezni a beállításokat, hogy tovább működjenek a szerveren futó szolgáltatások. Legyen szó akár otthoni tesztkörnyezetről, akár éles webszerverről, vagy akár a szerver más (hálózati) környezetbe történő áthelyezéséről, ezeket a beállításokat mindegyik esetben el kell végeznünk. Ebben a leírásban végighaladunk azokon a szerveren lévő vagy azon kívüli módosításokon, amiket végre kell hajtanunk ahhoz, hogy a gépen lévő szolgáltatások az új IP-címmel működjenek.

Az én esetemben annyi történt, hogy a régi DIGI 100-as netemet lecserélték az üvegszálas 1000-es csomagra. Ez azzal járt, hogy kaptam egy új routert is. Minden szép és jó is lett volna, csak hogy a régi TP-Link routerem nem bírta a gigabites tempót, hanem csak 100 Mbps alatti sebességeket tudott produkálni. Így át kellett raknom a számítógépeket az új routerre. Ezzel nem is lett volna gond hogyha az új router DHCP-je is ugyanabban a címtartományban osztogatta volna ki az IP-címeket, mint a régi (192.168.1.x). De sajnos nem így történt, hanem a régi routeren beállított – és sok éven át használt – 192.168.1.100-as cím helyett most a 192.168.100.x tartományból választhattam címet, így a 193.168.100.100-as címet kapta meg az itthoni szerverem. Az új routerben (ebben a típusban) sajnos nincs lehetőség átállítani a DHCP pool tartományt. Még az ügyfélszolgálaton is kérdeztem, sajnos ezt a címtartományt kell használnom. Így nem volt mit tenni, át kellett állítani a szerveren mindent, hogy tovább működjön.

Ebben a leírásban a saját példámból kiindulva ezekkel az IP-címekkel (192.168.1.100-ról 192.168.100.100-ra váltással) mutatom be a módosításokat az itthoni  ISPConfig-os szerverkörnyezetemben, de természetesen bármilyen más – akár publikus fix – IP-címekkel is el lehet végezni ezeket a beállításokat.

 

 

Router beállítása (opcionális)

Amennyiben egy otthoni teszt vagy fejlesztői szerverről van szó, és routerből kapjuk az internet elérést, ebben az esetben először itt kell beállítanunk a belső fix IP-címet. Ha viszont éles szerverről van szó, ami publikus fix IP-címet kap, és/vagy nem routeren keresztül jön a net, akkor ugorjuk át ezt a részt.

Nálam például a DIGI routerében hozzárendeltem a gép MAC címéhez a 192.168.100.100-as IP-címet, hogy biztosan mindig ezt kapja a számítógép:

Fix belső IP-cím beállítása a routerben

Ezt csak illusztrációnak szántam. Ahány router, annyiféle beállítás. Így tehát rögtönözzünk a saját eszközünk beállítását illetően.

 

Beállítások elvégzése a szerveren

Miután a szerver kívülről új IP-címet kapott, ennek használatához végezzük el az alábbiakat.

Fix IP-cím javítása

Ha szerverünket (is) fix IP-címre állítottuk be még a telepítés után közvetlenül, mint például a minimális szerverek esetén is, akkor javítsuk megfelelően a /etc/network/interfaces fájlt root-ként:

sudo nano /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#allow-hotplug enp0s3
#iface enp0s3 inet dhcp
auto enp0s3 
iface enp0s3 inet static
	address 192.168.100.130
	netmask 255.255.255.0
	network 192.168.100.0
	broadcast 192.168.100.255
	gateway 192.168.100.1

Ezt is csak illusztrációnak tettem ide. Itt módosítsuk saját IP-címünknek megfelelően ezt a fájlt. Ebben a példában az address, network, broadcast és gateway mezőkben nekem csak 1-ről 100-ra kellett módosítanom az IP-címek harmadik részeit amiket ki is emeltem, itt tehát ennek megfelelően állítsuk be a saját fájlunkban az új IP-címünket.

Ha ez a fájl nem így néz ki, és nem tartalmazza ezeket a fix IP-cím beállításokat, akkor nagy valószínűséggel DHCP-s cím kiosztással kapjuk az IP-címet, mondjuk a routerünktől, amiben korábban már beállítottuk a fix IP-címünket. Ebben az esetben átugorhatjuk ezt a részt, mivel a routerünk már alapból biztosítja a fix IP-címet a belső hálózatunkon.

 

 

DNS beállítás javítása (Opcionális)

Itt is két variáció van: Ha otthoni hálózatban telepítettük szerverünket, akkor a telepítő a DNS-t automatikusan beállította a routerünk átjárójának címére. Ha tehát hasonló a helyzet, mint nálam, és új routerünk van – ami miatt megváltozott az IP-címünk –, akkor módosítsuk az új eszközünk átjárójának IP-címére a DNS beállítást. Ehhez szerkesszük a /etc/resolv.conf fájlt:

sudo nano /etc/resolv.conf

Majd ebben állítsuk be a megfelelő átjáró címet. Nálam például:

nameserver 192.168.100.1

Ha viszont egy éles szerverről van szó, akkor pedig beállíthatjuk valamelyik ingyenes DNS szolgáltatás címet, például a Google DNS-ét:

nameserver 8.8.8.8
nameserver 8.8.4.4

Ezt akár otthoni hálózat esetén is használhatjuk.

Hosts fájl beállítások korrigálása (opcionális)

A hosts fájlban ugyan nem kötelező beállítani semmit, azonban az ilyen helyzetekben jön jól ennek használata, mert így csak itt kell módosítani az IP-címeket, míg a többi helyen, pl. böngészők lementett könyvjelzőiben vagy konfigurációs fájlokban, stb pedig csak a hosztneveket kell megadni, amiket a hosts fájlban beállítottunk. Én például az ISPConfig eléréséhez is beállítottam egy külön hosztnevet, amivel kényelmesebben el tudom érni azt. Vagy éppen az oldal számára elkészített virtuális gépek eléréseit is itt állítottam be, hogy könnyebben tudjam kezelni őket, így nekem ezeket is át kellett javítanom.

Ha tehát a hosts fájlban is állítottunk be korábban a régi IP-címhez kapcsolódó hosztneveket, akkor ne felejtsük el módosítani ezeket is az új címre:

sudo nano /etc/hosts

Ha nem állítottunk itt be semmit korábban, akkor nincs vele teendőnk.

Web szerver beállítása

Az alapbeállítások elvégzése után a weboldalaink még mindig nem működnek. Ha megpróbáljuk betölteni őket, akkor – SSL használata esetén – a "ERR_SSL_PROTOCOL_ERROR" hibát kapjuk:

ERR_SSL_PROTOCOL_ERROR hiba a helytelen IP-cím miatt

LAMP szerver beállítása

Mivel a szerver új IP-címet kapott, a rajta működtetett weboldalak nem indulnak el. Pláne, ha SSL-eket is használunk a weboldalakhoz, hogy azok HTTPS-en keresztül működhessenek. Ez azért van, mert a virtualhost fájlokban is még a régi IP-címek szerepelnek, így az SSL nem működik megfelelően, a böngésző pedig biztonsági okokból letiltja az oldal betöltését és hibát dob. Ezekre a régi címekre rá is kereshetünk teminálból az alábbi paranccsal:

grep -rnw "192.168.1.100" /etc/apache2

LAMP szerver esetén átírogathatjuk őket (vagy akár egy egyetlen sed-es paranccsal is kicserélhetjük őket) a virtualhost fájljainkban, végül egy Apache újraindítás után már mennek is az oldalak.

ISPConfig beállítása

ISPConfig használata esetén viszont semmiképpen ne nyúljunk bele ezekbe a fájlokba kézzel, mert a kezelőpanel a legközelebbi beállítások mentésénél visszaírja az adatbázisában lévő tartalmat, így elvesznének a kézi beállításaink. Helyette inkább az ISPConfig-ot kell rávennünk, hogy javítsa ki nekünk ezeket a fájlokat.

Ha az IP-cím változása miatt az ISPConfig felületét sem tudjuk elérni, és ugyanazt a hibát adja, mint a weboldalak elérése esetén, akkor a kezelőpanel Apache konfigurációját kell javítanunk először:

sudo nano /etc/apache2/sites-available/ispconfig.conf

És it keressünk rá a régi IP-címünkre, majd javítsuk át az újra:

Az ispconfig.conf fájl módosítása

A konfiguráció két utolsó sora tartalmazza a javítani való címeket.

Ezután indítsuk újra az Apache-ot:

sudo systemctl restart apache2

Ezután már elérhetjük az ISPConfigot.

Újabb ISPConfig változatokban már kikerültek ezek az IP-cím beállítások, ezért ha gond nélkül bejön a panel, akkor itt nincs semmi dolgunk.

 

 

Szerver IP-cím átállítása

Lépjünk be a "Renszer" főmenübe, majd itt válasszuk ki a "Szerver IP" almenüt:

ISPConfig - Szerver IP-cím

Itt láthatjuk a szerverünket tartalmazó tételt, és mellette a régi IP-címet. Szerkesszük a tételt a hosztnévre kattintással:

ISPConfig - Szerver IP-cím átállítása

És a képhez hasonlóan állítsuk be az új IP-címet, majd mentsük le.

ISPConfig - Szerver IP-cím átállítva

Ezután várjuk meg, hogy a képernyő tetején eltűnjön a piros karika, ekkor elvégzi a háttérben a szükséges műveletet.

Weboldalak beállítása

Mint már fentebb is írtam, az ISPConfig által menedzselt rendszerben nem szabad kézzel belenyúlni a virtualhost fájlokba. Ehelyett az ISPConfigban kell módosítani a weboldalakat, és majd a kezelőpanel lementi újra a megfelelő virtualhost beállításokkal az oldalt.

Ehhez lépjünk be a "Webhelyek" főmenübe. Majd itt nyitogassuk meg a menedzselt weboldalainkat, és szerkesszük tételenként az összeset. Belépve a szerkesztésbe a "Domain" fül alatti beállításoknál eltűnt az IP-cím (helyette "*" jelenik meg), mivel amivel tárolva volt a weboldal, azt fentebb már átjavítottuk:

ISPConfig - Webhelyek - weboldal módosítása

Itt gördítsük le az újonnan beállított IP-címet, majd mentsük le a weboldalt.

ISPConfig - Webhelyek - weboldal módosítása - IP-cím kiválasztása

Várjuk meg, amíg a fenti piros kör ismét eltűnik. Majd nyissuk meg a weboldalainkat, amik ezután már működnek.

A beállított, működő weboldal.

Weboldalaktól függően érdemes még szétnézni az forrásában is, illetve konfigurációs fájljaiban is, hogy szerepel-e valahol a régi IP-cím, mert előfordulhat, hogy valahol hivatkozik rá valamilyen fájl. Pl. régebbi weboldalak esetén előfordulhat. Ha végeztünk egy oldallal, akkor ismételjük meg a többivel is ugyanígy az IP-cím beállítását.

 

A hálózat többi gépeinek a beállítása (opcionális)

Ha otthoni hálózatban van a szerver, és a hálózatban vannak még más számítógépek, amik például hálózati meghajtóként használják a szerver megosztásait, vagy lementett SSH kapcsolatokon keresztül kezeljük a szervert, akkor célszerű a többi gépen is beállítani a hosts fájlokat, hogy újra működjenek a megosztások, egyéb elérések, stb.

 

 

Konklúzió

Ennyi lenne tehát az IP-cím módosítása egy ISPConfigos Apache szerveren. Nem bonyolult dolog, azonban elsőre az ember lehet hogy hirtelen nem tudja hova nyúljon, így kicsit keresgélni kell a megoldást. Így remélem ezzel a kis leírással megspórolhatom ezt a keresgélést azoknak, akik IP-címet váltanak a szerverükön.