Ugrás a fő tartalomhoz

Linux átjárók konfigurálása termelési hálózatokban

Ez az útmutató azokat az alapvető hálózati konfigurációs paramétereket ismerteti, amelyek miatt egy Linux rendszer az elszigetelt infrastruktúra következtében nem működik termelési környezetben. Vegye figyelembe, hogy a Linux-disztribúciók az alábbi témákhoz eltérő szolgáltatásokat használhatnak. Ezért előfordulhat, hogy az alább felsorolt parancsok egy részét nem tudja futtatni. Ez a fejezet példaként egy Raspberry Pi eszközt használ natív Debian 12 (bookworm) operációs rendszerrel.

információ

A SEW csapatával folytatott támogatási hívás előtt gondoskodjon arról, hogy a számítógépéről SSH-hozzáféréssel rendelkezzen a Linux eszközhöz, hogy a munkamenet során képernyőmegosztás legyen lehetséges.

Az alábbiakban a kapcsolódást leggyakrabban megakadályozó területek listája található.

DNS-kiszolgálók​

A Domain Name System (DNS) kiszolgáló a domainneveket IP-címekre oldja fel, hogy lehetővé tegye az interneten keresztüli kommunikációt. A helyes DNS-konfiguráció kritikus fontosságú egy hálózati környezetben működő Linux rendszer számára. A DNS-problémák elhárítása során a DNS-kiszolgáló elérhetőségét olyan parancsokkal kell ellenőrizni, mint a ping vagy az nslookup. Győződjön meg arról, hogy a kiszolgáló válaszol, és helyesen oldja fel a domainneveket IP-címekre. A hibás konfiguráció a domainfeloldás meghiúsulásához vezethet, ami hatással van a hálózati kommunikációra és az internet-hozzáférésre.

Tesztelés​

Ellenőrizze a hoszton konfigurált DNS-kiszolgálók IP-címeit a következő paranccsal:

cat /etc/resolv.conf

Minden DNS-kiszolgáló egyenként tesztelhető az nslookup vagy a dig segítségével. Például, ha a kiszolgáló a 8.8.8.8:

nslookup api.eu1.sdaconsole.io 8.8.8.8
dig @8.8.8.8 api.eu1.sdaconsole.io +short

Ha ezek a parancsok nincsenek jelen, akkor Debian alatt a dnsutils vagy a bind9-dnsutils csomagokkal telepíthetők, illetve a jelenlegi DNS-konfiguráció teszteléséhez natív parancs, például a ping vagy a getent is használható:

ping api.eu1.sdaconsole.io
getent hosts api.eu1.sdaconsole.io

Konfigurálás​

A DNS-kiszolgálókat a Linux-telepítéstől függően különböző szolgáltatások kezelhetik. Raspberry Pi esetén ezt jellemzően a NetworkManager szolgáltatás kezeli. A DNS-feloldást kezelő szolgáltatás valószínűleg megjegyzést hagy az /etc/resolv.conf fájlban, amely jelzi, hogy a fájlt ő generálta, például:

cat /etc/resolv.conf
> # Generated by NetworkManager
> nameserver 192.168.15.1
> nameserver fe80::dec6:37ff:fe36:5ee8%wlan0

cat /etc/resolv.conf
> # Generated by dhcpcd from eth0.dhcp
> # /etc/resolv.conf.head can replace this line
> nameserver 192.168.15.1

A globális DNS-kiszolgálók beállításához hozza létre a fájlt:

sudo nano /etc/NetworkManager/conf.d/dns.conf

És adja hozzá:

[global-dns-domain-*]
servers=8.8.8.8,4.4.4.4

Indítsa újra a NetworkManager szolgáltatást, és ellenőrizze az új értékeket az /etc/resolv.conf fájlban.

sudo systemctl restart NetworkManager
# Verify /etc/resolv.conf was updated
cat /etc/resolv.conf

NTP-kiszolgálók​

A Network Time Protocol (NTP) kiszolgálót a Linux rendszerekben a rendszeróra időforráshoz – például atomórához vagy központi kiszolgálóhoz – történő szinkronizálására használják. A pontos időmérés kulcsfontosságú a naplózás, a biztonsági protokollok és a hálózaton átnyúló műveletek koordinálása szempontjából. Az NTP-kiszolgáló hibás beállítása miatt a HTTPS-hívások meghiúsulnak az SSL-tanúsítvány érvénytelenné válása következtében.

Tesztelés​

Tekintse át az NTP-szinkronizáció állapotát, valamint azt, hogy az aktuális dátum és idő helyes-e.

# Check NTP sync status
timedatectl status

# Check configured NTP servers
timedatectl timesync-status
timedatectl show-timesync --all

# Check logs from the timesync service
journalctl -u systemd-timesyncd -n 20
# Check if service is active
systemctl is-active systemd-timesyncd

Egy adott kiszolgálóhoz való kapcsolat tesztelése:

# Using ntpdate, if installed
ntpdate -q 0.debian.pool.ntp.org

# Using Netcat
timeout 2 nc -u -z -v 0.debian.pool.ntp.org 123

Konfigurálás​

Az NTP-kiszolgáló konfigurálható domainnévvel, például 0.debian.pool.ntp.org vagy ntp.myorg.com, illetve közvetlenül IP-címmel.

# Configure systemd-timesyncd
sudo nano /etc/systemd/timesyncd.conf

Adja meg az egyéni NTP-kiszolgálót a [Time] blokkban, és győződjön meg arról, hogy a sor nincs megjegyzésbe helyezve. Távolítsa el a FallbackNTP alatti minden olyan kiszolgálót, amely nem érhető el.

[Time]
NTP=ntp.myorg.com ntp.myorg.local
FallbackNTP=

Indítsa újra, és mindenképpen engedélyezze a timesync szolgáltatást.

# Restart and enable
sudo systemctl restart systemd-timesyncd
sudo systemctl enable systemd-timesyncd

# Force synchronization
sudo timedatectl set-ntp true

# Verify sync
timedatectl timesync-status

Proxykiszolgálók​

A proxykiszolgáló közvetítőként működik a kliens és a célkiszolgálók között, továbbítva a kéréseket és a válaszokat. Vállalati környezetekben a proxykiszolgálókat gyakran használják biztonsági ellenőrzésre, tartalomszűrésre, sávszélesség-kezelésre és a kimenő forgalom naplózására. Az ilyen hálózatokban működő Linux rendszereket úgy kell konfigurálni, hogy HTTP/HTTPS-kéréseiket a vállalati proxyn keresztül irányítsák a külső erőforrások – köztük a csomagtárolók és webszolgáltatások – eléréséhez.

Tesztelés​

Ellenőrizze, hogy jelenleg van-e beállított proxy a környezeti változók és a rendszerszintű proxybeállítások vizsgálatával:

# Check shell environment proxy variables
env | grep -i proxy

# Check system-wide proxy configuration
cat /etc/environment | grep -i proxy

# Check if proxy is set for current user
echo $http_proxy
echo $https_proxy
echo $no_proxy

Annak ellenőrzéséhez, hogy szükség van-e proxykiszolgálóra, próbáljon meg közvetlenül csatlakozni egy külső kiszolgálóhoz:

# Try direct connection to a public server
timeout 5 curl -I https://repository.eu1.sdaconsole.io/glue/v2/linux/arm64/release.json 2>&1

# If it fails with connection errors, proxy might be required
# Common error: "Failed to connect" or "Connection timed out"

Ha kapcsolódási hibákkal hiúsul meg, akkor valószínűleg proxyra van szükség. Gyakori hibák például a Failed to connect vagy a Connection timed out.

Egy kérés tesztelése adott proxykiszolgálóval:

# Test with curl
curl -I --proxy http://proxy.company.local:8080 https://repository.eu1.sdaconsole.io/glue/v2/linux/arm64/release.json
# Proxy with user authentication
curl -I --proxy http://user@pwd@proxy.company.local:8080 https://repository.eu1.sdaconsole.io/glue/v2/linux/arm64/release.json
# Test without proxy (direct connection)
curl -I --noproxy "*" https://repository.eu1.sdaconsole.io/glue/v2/linux/arm64/release.json

Konfigurálás​

információ

A proxy címe az alábbi formátumok egyikét követi:

<protocol>://<proxy-address>:<port-number>
<protocol>://<username>:<password>@<proxy-address>:<port-number>

Proxy konfigurálása minden felhasználó és alkalmazás számára:

# Edit system-wide environment
sudo nano /etc/environment

Adja hozzá vagy módosítsa a következő sorokat:

http_proxy="http://proxy.company.local:8080"
https_proxy="http://proxy.company.local:8080"
no_proxy="localhost,127.0.0.1,*.company.local,10.0.0.0/8,192.168.0.0/16"

# Uppercase variants (some applications check these)
HTTP_PROXY="http://proxy.company.local:8080"
HTTPS_PROXY="http://proxy.company.local:8080"
NO_PROXY="localhost,127.0.0.1,*.company.local,10.0.0.0/8,192.168.0.0/16"

Alkalmazza a változtatásokat:

# Reload environment (or log out and back in)
source /etc/environment
# Verify variables are set
env | grep -i proxy

Annak ellenőrzéséhez, hogy a forgalom valóban a proxyn keresztül megy-e:

# Verbose curl request showing proxy connection
curl -v -I https://repository.eu1.sdaconsole.io/glue/v2/linux/arm64/release.json 2>&1 | grep -i proxy

# Should show something like:
# * Uses proxy env variable http_proxy == 'http://proxy.company.local:3128'
# * Trying proxy.company.local:3128...
vigyázat

Egyes proxyk SSL-ellenőrzést végeznek. Ilyenkor szükség lehet a vállalati CA-tanúsítványok telepítésére:

# Copy corporate CA certificate
sudo cp company-ca.crt /usr/local/share/ca-certificates/
# Update CA trust store
sudo update-ca-certificates
# Verify
curl -I https://repository.eu1.sdaconsole.io/glue/v2/linux/arm64/release.json

Debian-csomagtárolók​

A Debian-csomagtárolók olyan kiszolgálók, amelyek a Debian-alapú rendszerek szoftvercsomagjait és frissítéseit tárolják. Elszigetelt vállalati környezetekben a nyilvános Debian-tükrök (például a deb.debian.org vagy az archive.ubuntu.com) elérése biztonsági okokból blokkolt lehet. A vállalatok gyakran saját belső tükröket üzemeltetnek, hogy szabályozzák, mely csomagok érhetők el, és hogy csökkentsék a külső sávszélesség-használatot.

Tesztelés​

Ellenőrizze a jelenleg konfigurált csomagtárolókat:

# View configured repositories
cat /etc/apt/sources.list

# Check additional repository files
ls -la /etc/apt/sources.list.d/
cat /etc/apt/sources.list.d/*.list 2>/dev/null

Az alábbi átfogó bash-szkript segítségével teljes körűen tesztelhető a konfigurált csomagtárolók elérhetősége:

# Test if repository servers are reachable
grep -h "^deb http" /etc/apt/sources.list /etc/apt/sources.list.d/*.list 2>/dev/null | \
awk '{print $2, $3}' | sort -u | while read repo suite; do
echo "Testing: $repo (suite: $suite)"
# Test the Release file that APT actually fetches
# This is what APT checks first when doing 'apt update'
release_url="${repo}/dists/${suite}"
# Test with curl (follows redirects, checks certificates)
if curl -fsSL --connect-timeout 5 --max-time 10 -I "$release_url/InRelease" >/dev/null 2>&1; then
echo " > Repository is reachable"
else
if curl -fsSL --connect-timeout 5 --max-time 10 -I "$release_url/Release" >/dev/null 2>&1; then
echo " > Repository is reachable"
else
# If failed, show the specific error
error=$(curl -fsSL --connect-timeout 5 --max-time 10 -I "$repo" 2>&1 | head -1)
echo " X Unreachable: $error"
fi
fi
echo
done

Egy másik módszer a csomaglisták frissítésének megkísérlése a csomagtárolóval kapcsolatos problémák azonosítására:

# Try to update package lists
sudo apt update

# Check for errors in apt logs
tail -20 /var/log/apt/term.log

Blokkolt csomagtárolókra utaló gyakori hibaüzenetek:

  • Failed to fetch http://deb.debian.org/...
  • Could not resolve 'deb.debian.org'
  • Connection timed out
  • Unable to connect to...

Egy adott csomagtároló-kiszolgáló manuális tesztelése:

# Test HTTP connectivity to a repository
curl -sSL -I --connect-timeout 5 http://deb.debian.org/debian/

# Or using wget
wget --spider --timeout=5 http://deb.debian.org/debian/

# Test DNS resolution
getent hosts deb.debian.org

Konfigurálás​

Szerkessze a fő sources fájlt:

sudo nano /etc/apt/sources.list

Cserélje ki a tartalmat a belső tükörre. Debian 12 (bookworm) esetén:

# Internal Debian Repository Mirror
deb http://mirror.company.local/debian bookworm main contrib non-free non-free-firmware
deb http://mirror.company.local/debian bookworm-updates main contrib non-free non-free-firmware
deb http://mirror.company.local/debian-security bookworm-security main contrib non-free non-free-firmware

# Optionally, backports for newer packages
deb http://mirror.company.local/debian bookworm-backports main contrib non-free non-free-firmware

Ha a belső tükör HTTPS-t használ:

deb https://mirror.company.local/debian bookworm main contrib non-free non-free-firmware

Megjegyzés: HTTPS-csomagtárolók esetén győződjön meg arról, hogy az apt-transport-https és a ca-certificates csomagok telepítve vannak.

Csomagtárolók prioritásának konfigurálása (opcionális)

Ha belső és külső csomagtárolókat is használnia kell, de a belsőt kell előnyben részesíteni:

sudo nano /etc/apt/preferences.d/internal-mirror

Adja hozzá:

Package: *
Pin: origin mirror.company.local
Pin-Priority: 900

Package: *
Pin: origin deb.debian.org
Pin-Priority: 500

Ezzel a belső tükrök magasabb prioritást kapnak.

Proxy konfigurálása csomagtárolókhoz (opcionális)

Ha a hálózat proxyt igényel a csomagtárolók eléréséhez:

# Configure APT proxy
echo 'Acquire::http::Proxy "http://proxy.company.local:3128";' | \
sudo tee /etc/apt/apt.conf.d/proxy.conf

# For HTTPS repositories
echo 'Acquire::https::Proxy "http://proxy.company.local:3128";' | \
sudo tee -a /etc/apt/apt.conf.d/proxy.conf

# Test
sudo apt update

Frissítés és ellenőrzés

A csomagtárolók konfigurálása után:

# Update package lists
sudo apt update

# Check for errors
echo $? # Should return 0 if successful

# Verify packages can be found
apt-cache policy apt

# Test installing a small package
sudo apt install --dry-run nano

Gyakori problémák

Probléma: az apt update végtelenül várakozik

# Check if repository server is actually responding
timeout 10 curl -v http://mirror.company.local/debian/

# Check for proxy interference
unset http_proxy https_proxy
sudo apt update

Probléma: a tükör konfigurálása után nem találhatók a csomagok

# Verify the mirror has the correct Debian version
curl http://mirror.company.local/debian/dists/ | grep bookworm

# Check if the mirror is properly synced
curl -sI http://mirror.company.local/debian/dists/bookworm/Release | grep Date

Probléma: a vegyes csomagtároló-források ütközéseket okoznak

# Check all active sources
grep -rh "^deb" /etc/apt/sources.list /etc/apt/sources.list.d/ | sort -u

# Disable conflicting sources
sudo mv /etc/apt/sources.list.d/problematic.list /etc/apt/sources.list.d/problematic.list.disabled

sudo apt update