Yum használata proxy szerverrel
Céges környezetben Fedora vagy CentOS rendszereket üzemeltető rendszergazdáknak már ismerős lehet a téma: yum használata proxy szerverrel. Azoknak, akiknek mégsem lenne ismerős, de belefutnak a "HTTP Error 407: Proxy Authentication Required" hibaüzenetbe, azok számára íme néhány trükk.
A yum a különböző repositorykat általában HTTP/1.1 protokollon keresztül éri el, ezért minden olyan web proxy szerverrel, amely támogatja ezt a szabványt, azzal képes együttműködni. Az egyik legismertebb web proxy szerver a Squid, amely természetesen ismeri a HTTP/1.1 protokollt.
A "HTTP Error 407: Proxy Authentication Required" hiba üzenet arra utal, hogy a yum egy proxy szerveren keresztül éri el a különböző yum repositorykat és a proxy szerver hibás proxy felhasználói nevet és/vagy jelszót kapott, vagy ezek a paraméterek nem voltak vagy hibásan lettek beállítva.
Vegyük sorra, hogyan tudjuk a yumot úgy konfigurálni, hogy képes legyen együttműködni egy proxy szerverrel. 3 javaslatot mutatok be, amelyek közül mindenki a számára megfelelőt választhatja, én természetesen a 3. megoldást javaslom különösen akkor, ha több adminisztrátora van az adott gépnek.
1. Proxy szerver hozzáférés beállítása
A yum konfigurációs állományában /etc/yum.conf, beállíthatjuk a proxy szerver használatához szükséges változókat:
proxy: a proxy szerver teljes URL-je, amely tartalmazza a szükséges TCP portot.
proxy_username: a proxy hozzáféréssel rendelkező felhasználó neve.
proxy_password: a proxy hozzáféréssel rendelkező felhasználó jelszava.
Az alábbi beállítás egy globális érvényű beállítás - minden olyan felhasználó, akinek rendszergazdai joga van a gépen ugyanazt a proxy hozzáférést fogja használni - ebben az esetben a yum a proxy.domain.hu szerver, 3128-as portján keresztül kommunikál a yum-felhasznalo felhasználói névvel és a titkos jelszóval.
proxy=http://proxy.domain.hu:3128 proxy_username=yum-felhasznalo proxy_password=titkos
Példa 1. Globális Proxy szerver hozzáférés beállítás
Amennyiben a proxy szervernek nincs szüksége felhasználói névre és jelszóra, akkor azokat nem kell megadni.
Itt jegyezném meg, hogy biztonsági szempontból erősen ajánlott, hogy a proxy szerver úgy legyen konfigurálva, hogy kérjen a felhasználóktől proxy felhasználói nevet és jelszót.
Ez a megoldás az egyszeri beállításon kívül nem igényel egyéb felhasználói tevékenységet.
2. Felhasználónkénti proxy szerver hozzáférés beállítása
Ez a megoldás már csak bizonyos felhasználóknak engedélyezi a yum használatát.
Feltételezzük, hogy a felhasználónk bash parancsértelmezőt használnak, azaz az alapértelmezett shelljük a bash.
A 2. megoldásnál a megfelelő paramétereket a http_proxy környezeti változóban adjuk meg.
A http_proxy környezeti változó beállítását az alapértelmezett shell profile-jában végezzük el, így esetünkben a ~/.bash_profile állományokat kell bővíteni az alábbi 2 sorral:
http_proxy="http://proxy.domain.hu:3128" export http_proxy
Példa 2. Profile beállítása proxy szerver használatához
Ha szükség van felhasználói névre és jelszóra, akkor ezeket is hozzá kell adni a teljes URL-hez.
http_proxy="http://yum-felhasznalo:titkos@proxy.domain.hu:3128" export http_proxy
Példa 3. Profile beállítása biztonságos proxy szerver hozzáféréssel
Ennél a megoldásnál a felhasználók a saját proxy hozzáférési beállításaikat használhatják. Az első megoldáshoz hasonlóan a yum használata előtt nem igényel egyéb felhasználói tevékenységet.
3. Biztonságos proxy szerver hozzáférés beállítása
Ez a megoldás a biztonságot, a könnyebb és átláthatóbb adminisztrációt tekinti szem előtt.
Alapvetően a második megoldás egy általánosabb és rugalmasabb változata.
A proxy szerver beállításához a következő függvényt kell a /etc/bashrc fájlba beírnunk.
function proxy() {
echo -n "felhasznaloi nev: "
read -e username
echo -n "jelszo: "
read -es password
echo -e "\nProxy adatok elmentve."
export http_proxy="http://$username:$password@proxy.domain.hu:3128"
}
Példa 4. Proxy szerver engedélyezése a megfelelő jogosultsággal és proxy hozzáféréssel.
Ezután juttassuk érvényre ezt a módosítást, így már a meglévő terminálunkon is tudjuk használni a fenti függvényt.
. /etc/bashrc
Példa 5. A /etc/bashrc-ben történt módosítások élesítése
3.1 Hogyan kell használni?
A proxy beállításaink addig maradnak érvényben, amíg az adott shellből nem lépünk ki.
Tehát minden bejelentkezésnél vagy olyan terminálnál, ahol szeretnénk használni a yumot, ott meg kell hívni ezt a függvényt, ezért gépeljük be:
proxy
Példa 6. A proxy függvény futtatása
A parancs hatására a következő kérdezz-felelek párbeszéd jelenik meg.
A függvény bekéri a felhasználói nevet, amit beírunk és ez gépelés közben meg is jelenik a terminál ablakban, ezután [Enter]-t ütünk, majd bekéri a jelszót, amit biztonsági szempontból gépelés közben nem látunk a képernyőn, majd újból [Enter]-t ütünk.
felhasznaloi nev :yum-felhasznalo jelszo: Proxy adatok elmentve
Példa 7. A proxy adatok beállítása
Nézzük meg, hogy milyen előnyökkel jár a 3. megoldás:
- Változás esetén (pl.: megváltozik a proxy szerver neve vagy a portja) egy helyen kell csak módosítást végezni.
- Csak a rendszergazdai- és proxy hozzáférési jogosultsággal rendelkező kollégák tudják használni a yumot.
- Proxy jelszó változtatása nem igényel adminisztrációs feladatot.
- A proxy beállítások csak addig vannak érvényben, amíg ki nem lépünk az adott shellből.
Összefoglalás
Ebben az írásban 3 megoldást mutattam arra, hogyan kell konfigurálni a yumot, hogy képes legyen együttműködni egy web proxy szerverrel.
Az első megoldás globális beállítási lehetőséget nyújt és csak egy közös proxy szerver hozzáféréssel használható. Ezért a használatához csak rendszegazdai joggal kell rendelkeznünk.
A második megoldás már egyénre szabott, de éppen ezért több adminisztrációt igényel. Ha több rendszergazdai joggal rendelkező felhasználó is van az adott gépen, akkor nem túl szerencsés, ha tudnak egymás proxy jelszaváról, mivel az kódolatlanul szerepel a ~/.bash_profile fájlban.
A harmadik, egyben az általam preferált megoldás, - bár ezt minden bejelentkezésnél vagy shellnél egyszer le kell futtatni - biztonságosabb használatot és kevesebb adminisztrációt eredményez, mert nem kell a jelszavunkat kódolatlanul tárolnunk, illetve nem kell módosítanunk, hogy ha megváltoztatjuk.
Bármelyik megoldást is választottuk, ezek után kiadjuk a már jól ismert:
su -c 'yum check-update'
Példa 8. Azon csomagok listáját kérdezzük le, amelyekből létezik frissebb verzió.
parancsot és már meg is kapjuk azoknak a csomagoknak a listáját, amelyekből létezik frissebb verzió.
Források:
- Fedora: Yum Proxy Guide
- CentOS: yum-proxy-server.html
- A hozzászóláshoz regisztráció és belépés szükséges
- 3290 olvasás

