Obiettivo
Il nostro obiettivo è configurare l'accesso ai repository yum interni e remoti mentre alcuni di essi si trovano dietro server proxy.
Sistema operativo e versioni software
- Sistema operativo:Red Hat Enterprise Linux 7.5
Requisiti
Accesso privilegiato al sistema
Difficoltà
FACILE
Convenzioni
- # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando
sudo
comando - $ – dati comandi linux da eseguire come un normale utente non privilegiato
Introduzione
In un ambiente aziendale è comune limitare l'accesso a Internet, sia per sicurezza che per responsabilità. Ciò viene spesso ottenuto utilizzando server proxy che consentono l'accesso a Internet dopo una sorta di autenticazione, mentre ispezionano e registrano tutto il traffico che li attraversa. In questo modo l'azienda può, ad esempio, trovare il dipendente che ha scaricato il virus che ha devastato il sistema aziendale (o almeno il dipendente a cui sono state rubate le credenziali per farlo) o filtrare il traffico, impedendo l'accesso a noti siti dannosi per proteggere le attrezzature dei dipendenti.
Potrebbero tuttavia essere necessari altri tipi di accesso a Internet:come amministratore di sistema, hai bisogno di aggiornamenti software per i server per mantenerli aggiornati. Questo traffico può passare anche attraverso il proxy, se imposti yum
utilizzare il proxy. Ma che dire dei repository interni che non sono raggiungibili con questa configurazione, poiché si trovano all'interno della LAN? Dove posizionare questa impostazione se la macchina in questione è un desktop, utilizzato anche per la navigazione? Scopriamo come impostare alcuni possibili casi d'uso con Red Hat Linux.
Impostazione tutorial
In questo tutorial assumiamo che il proxy nel nostro ambiente sia proxy.foobar.com
, in servizio sulla porta 8000
e richiede una semplice autenticazione nome utente/password per consentire l'accesso al resto del mondo. Le credenziali valide sono foouser
come nome utente e secretpass
come password. Tieni presente che il tuo proxy potrebbe essere completamente diverso, potrebbe non richiedere una password o persino un nome utente, dipende dalla sua configurazione.
Connessione ad hoc tramite proxy
Se devi connetterti tramite il proxy una volta, ad esempio scaricare un pacchetto dalla riga di comando o testare la connettività prima di finalizzare la configurazione, puoi esportare le variabili relative al proxy nella sessione corrente della riga di comando:
$ export http_proxy=http://foouser:[email protected]:8000
Puoi impostare il https_proxy
variabile allo stesso modo.
Fino a quando non termini la sessione o unset
la variabile esportata, il http
(o https
) il traffico proverà a connettersi al proxy, incluso il traffico generato da yum
. Tieni presente che ciò fa sì che un nome utente e una password proxy validi siano presenti nella cronologia dell'utente! Potrebbe trattarsi di informazioni riservate non destinate a essere leggibili da altri che possono accedere al file della cronologia.
Tutto il traffico utilizza un proxy
Se il sistema nel suo insieme ha bisogno di utilizzare il proxy per raggiungere, puoi impostare il proxy in /etc/profile
oppure trascina le variabili in un file separato in /etc/profile.d
directory, quindi queste impostazioni devono essere modificate solo in un posto. Potrebbero esserci casi d'uso per questo, ma tieni anche presente che in questo caso tutto il traffico viene provato tramite il proxy, quindi un browser proverà a raggiungere anche le pagine interne tramite proxy.
Nota che abbiamo impostato la stessa variabile ambientale che abbiamo fatto con la connessione proxy una tantum, impostandola solo all'avvio, quindi tutte le sessioni utente "ereditano" queste variabili.
Se è necessario impostare il sistema proxy a livello di sistema, aggiungere quanto segue a /etc/profile
o un file separato sotto /etc/profile.d
directory, utilizzando il tuo editor di testo preferito:
export http_proxy=http://foouser:[email protected]:8000
export https_proxy=http://foouser:[email protected]:8000
Puoi anche impostarli a livello per utente (ad esempio in .bash_profile
), nel qual caso si applicano solo a quel particolare utente. Allo stesso modo qualsiasi utente può ignorare queste impostazioni a livello di sistema aggiungendo un nuovo valore a queste variabili.
Nel promemoria di questo tutorial ci concentreremo su yum
ed è repository configurato, quindi supponiamo di non avere o aver bisogno di impostazioni proxy a livello di sistema. Questo può avere senso anche se gli utenti che navigano sulla macchina devono utilizzare il proxy per raggiungere Internet.
Ad esempio, gli utenti di un desktop dovranno utilizzare le proprie credenziali e più utenti potrebbero avere accesso al desktop specificato. ma quando l'amministratore esegue una distribuzione su tutti i desktop client (magari utilizzando un sistema di gestione centrale), l'installazione viene eseguita da yum
potrebbero essere necessarie credenziali dedicate al traffico a livello di sistema. Se la password dell'utente utilizzata per la connessione proxy cambia, la configurazione deve essere aggiornata per funzionare correttamente.
Tutti i repository sono esterni
Il nostro sistema raggiunge i repository Red Hat predefiniti tramite il proxy e non abbiamo repository interni. D'altra parte, tutti gli altri programmi che utilizzano la rete non necessitano né devono utilizzare proxy. In questo caso possiamo configurare yum
per accedere a tutti i repository usando il proxy aggiungendo le seguenti righe a /etc/yum.conf
file, che viene utilizzato per memorizzare i parametri yum globali per la data macchina:
proxy=http://proxy.foobar.com:8000
proxy_username=foouser
proxy_password=secretpass
In questo caso, tieni presente che questa configurazione si interromperà anche in caso di modifica della password. Eventuali nuovi repository aggiunti verranno raggiunti tramite il proxy, se non è presente un override a livello di repository.
Alcuni repository sono esterni
La configurazione potrebbe essere un po' più complicata se ci sono repository esterni e interni contemporaneamente, ad esempio, i tuoi server sono in grado di raggiungere i repository del fornitore tramite Internet aperto, utilizzando il proxy aziendale e lo stesso tempo hanno bisogno di accedere all'interno repository contenenti software sviluppato e confezionato all'interno dell'azienda, che sono strettamente per uso interno.
In questo caso è necessario modificare l'impostazione in base al repository. Per prima cosa imposta il proxy a livello globale per yum come tutti i repository esterni, spiegato nella sezione precedente. Per i repository interni, apri ogni file contenente repository esterni in /etc/yum.repos.d
directory e aggiungi il proxy=_none_
parametro alla configurazione del repository interno. Ad esempio:
Conclusione
I proxy forniscono sicurezza e responsabilità, ma a volte possono complicarci la vita. Con una certa pianificazione e conoscenza degli strumenti disponibili, possiamo integrare i nostri sistemi con il proxy in modo che possano raggiungere tutti i dati a cui sono destinati, in un modo conforme alle nostre impostazioni proxy.
Se si dispone di molti sistemi è necessario raggiungere gli stessi repository al di fuori del firewall aziendale, considerare sempre di eseguire il mirroring di questi repository in locale, risparmiando molta larghezza di banda e rendendo l'installazione o l'aggiornamento dei client indipendente dal mondo esterno alla rete locale, quindi rendendolo più soggetto a errori. Puoi impostare le impostazioni proxy sul mirroring delle macchine e lasciare tutte le altre macchine fuori dalla rete Internet pubblica almeno da yum
prospettiva. Esistono soluzioni di gestione centralizzate che forniscono questa funzionalità, sia open source che a pagamento.