web-dev-qa-db-fra.com

Comment puis-je bloquer tous les ports sauf Ubuntu?

Comment bloquer tous les ports sauf 1962, 999, 12020?

Un port pour SSH et deux autres pour une sorte de script. Il est donc nécessaire d'autoriser les sorties sur ces ports, non?

Mes iptables:

# Generated by iptables-save v1.4.4 on Sat Feb 25 17:25:21 2012
*mangle
:PREROUTING ACCEPT [643521:136954367]
:INPUT ACCEPT [643521:136954367]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [645723:99904505]
:POSTROUTING ACCEPT [645723:99904505]
COMMIT
# Completed on Sat Feb 25 17:25:21 2012
# Generated by iptables-save v1.4.4 on Sat Feb 25 17:25:21 2012
*filter
:INPUT ACCEPT [643490:136950781]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [645723:99904505]
-A INPUT -p tcp -m tcp --dport 1962 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 999 -j ACCEPT 
COMMIT
# Completed on Sat Feb 25 17:25:21 2012
# Generated by iptables-save v1.4.4 on Sat Feb 25 17:25:21 2012
*nat
:PREROUTING ACCEPT [5673:734891]
:POSTROUTING ACCEPT [2816:179474]
:OUTPUT ACCEPT [2816:179474]
COMMIT
# Completed on Sat Feb 25 17:25:21 2012

Désolé, mais je suis un vrai débutant en ce qui concerne ce genre de choses et je veux juste rendre mon serveur plus sécurisé.

22
okapa

Au début, vous devez toujours rincer pour être sûr de ce qui est déjà défini ... rien

iptables -F

Définissez ensuite la stratégie par défaut de la chaîne INPUT sur DROP si la fin est atteinte et qu'aucune règle ne correspond:

iptables -P INPUT DROP

Pour vous assurer que le bouclage n'est pas affecté, vous devez ajouter

iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

pour autoriser tout le trafic sur le lo-if et tout trafic entrant pour les connexions que vous avez établies. Après cela, ajoutez toutes les règles dont vous avez besoin pour vos services (n'oubliez pas d'ouvrir ssh si vous en avez besoin! Sinon vous êtes absent):

iptables -A INPUT -p tcp -m tcp --dport 1962 -j ACCEPT 
iptables -A INPUT -p tcp -m tcp --dport 999 -j ACCEPT 
iptables -A INPUT -p tcp -m tcp --dport 12020 -j ACCEPT 

Un petit truc que je fais pour m'empêcher, ainsi que les autres, de percer accidentellement des trous dans la sécurité, j'ajoute enfin:

iptables -A INPUT -j DROP

Cette ligne correspond à tout pour la chaîne INPUT et la politique ne doit rien obtenir. l'avantage de ceci est même si vous ajoutez une règle ACCEPT quelque temps après l'initialisation de votre jeu de règles, elle ne sera jamais vérifiée car tout est supprimé auparavant. il garantit donc que vous devez tout garder au même endroit.

Pour votre question, le tout ressemble à ceci en résumé:

iptables -F
iptables -P INPUT DROP
iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 1962 -j ACCEPT 
iptables -A INPUT -p tcp -m tcp --dport 999 -j ACCEPT 
iptables -A INPUT -p tcp -m tcp --dport 12020 -j ACCEPT 
iptables -A INPUT -j DROP
25
Mose

Une réponse d'un débutant comme vous :-) J'avais également besoin de sécuriser mon serveur Ubuntu, apprendre iptables était une douleur que je ne pouvais pas traverser. UFW (Uncomplicated Firewall) est un programme pour rendre la configuration du pare-feu aussi simple que possible.

  • installez ufw:

    Sudo apt-get install ufw
    
  • désactivez-le immédiatement (j'ai dû sauver-boot parce que j'étais verrouillé de ma propre connexion SSH):

    Sudo ufw disable
    
  • définissez "refuser" comme règle par défaut (cela bloque tous les ports):

    Sudo ufw default deny
    
  • autorisez les ports dont vous avez besoin:

    Sudo ufw allow to 1962
    Sudo ufw allow to 999
    Sudo ufw allow to 12020
    
    Sudo ufw allow from 1962
    Sudo ufw allow from 999
    Sudo ufw allow from 12020
    
  • si vous êtes certain que les règles ci-dessus ne cassent pas votre connexion ssh, activez ufw:

    Sudo ufw enable
    

Les documents sont bien écrits et fournissent plus d'exemples: https://help.ubuntu.com/community/UFW

20
Vlad Gerasimov