Come si fa firewall Linux in modo che gli account non privilegi possano accedere solo al web?

Ho un server Debian che consente agli utenti di accedere. Non mi preoccupa di accedere al web o di scaricare i file, ma voglio restringere l'accesso a Internet da quella macchina. Come posso impostare i miei IPTABLES o altri firewall per rendere questo lavoro più semplice?

  • Plugin AD o utilità che genera un numero uidnumber / gidnumber unico per la creazione
  • Recuperare dal command di cattivo chown
  • Come identificare i volumi EBS rispetto ai volumi locali durante l'esecuzione di un'istanza EC2
  • come posso distriggersre la posta in output in postfix?
  • Monitorare il traffico di networking delle applicazioni
  • Che registro contiene crash del server?
  • (Linux) I processi multipli possono essere connessi alla stessa port TCP su base di utilizzo?
  • CentOS 5.7 - Imansible recuperare metadati del repository
  • 6 Solutions collect form web for “Come si fa firewall Linux in modo che gli account non privilegi possano accedere solo al web?”

    Questo è in realtà estremamente difficile da una prospettiva tecnica (lo strato di networking di solito non sa nulla di utenti, non c'è alcun field "user" in un pacchetto di networking).

    Ma, Linux, essendo totalmente impressionante, ha una soluzione per te. Avrai bisogno del module "owner" di iptables e regola le seguenti linee:

    iptables -A OUTPUT -o eth0 -p tcp --dport 80 -j ACCEPT iptables -A OUTPUT -o eth0 -m owner --uid-owner 500 -j DROP 

    Dove "500" è l'UID dell'utente che desideri impedire di colpire la networking. La prima regola consente solo tutto il traffico in output 80 in output.

    Probabilmente dovrai caricare il module proprietario prima che questo funziona:

    modprobe ipt_owner

    Quindi, aggiungilo al tuo file rc.local, o simile. Questo presuppone, ovviamente, che il sistema disponga di questo module installato. Non so quale pacchetto lo fornisca su Debian. Potrebbe essere nel pacchetto iptables standard.

    Un'altra opzione è configurare un server proxy (Squid) da qualche parte che consente l'accesso anonimo a Internet generale ma richiede un login per fare qualsiasi altra cosa. Quindi bloccate l'accesso dal tuo server al firewall, ma permettete il proxy.

    Se hai solo una macchina, vorrei eco il suggerimento di swelljoe. Oppure unire le due idee e rendere tutto più granulare se preferite 🙂

    Spero che tu blocchi semplicemente tutte le porte in entrata e in output per l'host tranne le porte 22 (ssh) e 80 (web). Se utilizzi questo computer per il tuo, oltre ad aiutare alcuni amici a imparare e richiedono cose come email, instant messeging, ecc, vorrei raccomandare di creare un gruppo speciale solo per coloro che possono accedere a un elenco specifico di applicazioni. Penso che potrebbe essere necessario specificare se questo è un server autonomo o una workstation per te + un server per loro.

    È ansible utilizzare una policy SELinux per questo, ma purtroppo è un po 'più complicato impostarla rispetto alla soluzione iptables.

    Ho fatto questo una volta utilizzando una combinazione di calamari e "nome" – un vecchio servizio linux / unix che fornisce il nome utente corrente. In generale, il nome è un'idea davvero veramente ctriggers (come il suo non codificato e puoi modificarlo abbastanza facile, è usato da irc btw) ma per un insieme noto di macchine, funziona abbastanza bene

    La tua ricerca di un proxy, insieme alle regole iptables. Usa iptables per limitare l'accesso alla port e redirect il traffico al proxy. Nel proxy si filtra il contenuto che si desidera / non si desidera get. (Il module proprietario funziona solo per i pacchetti creati sul firewall stesso e non sui pacchetti provenienti dalla networking.)

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.