Quelqu'un pourrait-il donner quelques étapes simples avec un exemple de configuration pour configurer un pare-feu simple sur Ubuntu (en utilisant la console uniquement)? Seuls les accès ssh, http et https doivent être autorisés.
Si j'appelais ces commandes en séquence via ssh, cela rompra-t-il ma connexion?
klew
Je ne le crois pas, mais vous devriez vous en assurer. Cela conserve également son statut entre les redémarrages, vous ne devez donc le faire qu'une seule fois.
Nerdfest
Je le vérifierai quand je serai près de cet ordinateur ...
klew
Vous pouvez le mettre dans un script et l'exécuter, puis même si vous êtes déconnecté, vous pourrez vous reconnecter par la suite. Voir ma réponse ci-dessous pour le script.
Hamish Downer le
2
Le commentaire précédent est correct. Fondamentalement, exécutez la première commande dans le script ci-dessus en dernier.
Nerdfest
14
Utilisez ce script.
Décidez simplement si vous souhaitez autoriser ICMP entrant (ping) ou non.
# Clear any existing firewall stuff before we start
iptables --flush
iptables -t nat --flush
iptables -t mangle --flush
# As the default policies, drop all incoming traffic but allow all
# outgoing traffic. This will allow us to make outgoing connections
# from any port, but will only allow incoming connections on the ports
# specified below.
iptables --policy INPUT DROP
iptables --policy OUTPUT ACCEPT
# Allow all incoming traffic if it is coming from the local loopback device
iptables -A INPUT -i lo -j ACCEPT
# Accept all incoming traffic associated with an established
# connection, or a "related" connection
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow incoming connections
# SSH
iptables -A INPUT -p tcp -i eth0 --dport 22 -m state --state NEW -j ACCEPT
# HTTP
iptables -A INPUT -p tcp -i eth0 --dport 80 -m state --state NEW -j ACCEPT
# HTTPS
iptables -A INPUT -p tcp -i eth0 --dport 443 -m state --state NEW -j ACCEPT
# Allow icmp input so that people can ping us
iptables -A INPUT -p icmp -j ACCEPT
# Reject all other incoming packets
iptables -A INPUT -j REJECT
Comme indiqué dans les commentaires d'une autre réponse, vous ne voulez pas perdre votre connexion avant d'autoriser le port ssh. Depuis la page de manuel:
"GESTION À DISTANCE
Lorsque vous exécutez ufw enable ou démarrez ufw via son script, ufw videra ses chaînes. Ceci est nécessaire pour que ufw puisse maintenir un état cohérent, mais il peut supprimer les connexions existantes (par exemple ssh). ufw prend en charge l'ajout de règles avant d'activer le pare-feu, les administrateurs peuvent donc:
ufw allow proto tcp from any to any port 22
avant d'exécuter «ufw enable». Les règles seront toujours vidées, mais le port ssh sera ouvert après l'activation du pare-feu. Veuillez noter qu'une fois que ufw est "activé", ufw ne videra pas les chaînes lors de l'ajout ou de la suppression de règles (mais le sera lors de la modification d'une règle ou de la modification de la stratégie par défaut). "
Voici donc une approche qui utilise un script pour le définir. Vous serez déconnecté lorsque vous exécuterez ce script, mais après l'avoir exécuté, vous pourrez vous reconnecter via ssh.
Mettez ce qui suit dans un script et appelez-le start-firewall.sh
Si vous vous familiarisez avec les scripts iptables, vous aurez un contrôle total sur toutes les capacités du pare-feu. Il est loin d'être aussi convivial que Firestarter, mais cela peut être fait sur la console avec nano/ vieditors. Découvrez ce tutoriel destiné à Ubuntu.
Quicktables m'a aidé à apprendre les règles iptables. Exécutez simplement le script et il générera un script iptables pour vous ... puis vous pourrez l'ouvrir et afficher les commandes associées générées par les questions qu'il vous a posées. C'est une excellente ressource d'apprentissage.
Pour créer des règles de configuration que vous aimez, vous devez modifier le fichier / etc / default / firehol et changer START_FIREHOL = YES
Et vous voudriez que votre /etc/firehol/firehol.conf ressemble à ceci.
version 5
interface any IfAll
client any AnyClient accept
server "ssh http https" accept
# Accept everything from trusted networks
server anystateless AllInside accept src "10.3.27.0/24"
L'une des grandes choses à propos de firehol est la commande «try». Vous pouvez ajuster votre fichier de configuration et faire un «essai de firehol», si vous étiez connecté via ssh, et quelque chose sur ce que vous avez changé a tué votre accès réseau, alors firehol annulera les changements. Pour que les modifications entrent en vigueur, vous devez dire commit.
Firehol est génial pour manipuler les règles iptables. '$ firehol try' "Active le pare-feu, mais attend que l'utilisateur tape le mot commit. Si ce mot n'est pas saisi dans les 30 secondes, le pare-feu précédent est restauré."
Gareth
Sooo vous pouvez ajouter / modifier / supprimer des règles, puis les tester. Si vous le faites à distance via SSH, cela ne vous bloquera pas sur votre propre serveur!
Gareth
1
Je préférerais Shorewall . Il est facile à configurer mais flexible en même temps.
Ahh, mon erreur. Alternativement. l'administrateur peut toujours ssh -X sur le serveur et exécuter le démarreur à distance.
spoulson le
1
J'aurais également besoin d'installer un serveur X pour démarrer ssh -X :).
klew
@klew, vous n'avez pas besoin d'installer un serveur X complet pour exécuter des applications X sur ssh. Vous avez besoin de plusieurs bibliothèques, mais vous n'avez pas besoin de tout. Pour le strict minimum, vous n'avez besoin que des packages xauth et xbase-clients.
Réponses:
sudo ufw par défaut deny
sudo ufw autorise http
sudo ufw autorise https
sudo ufw autorise ssh
sudo ufw enable
la source
Utilisez ce script.
Décidez simplement si vous souhaitez autoriser ICMP entrant (ping) ou non.
la source
Comme indiqué dans les commentaires d'une autre réponse, vous ne voulez pas perdre votre connexion avant d'autoriser le port ssh. Depuis la page de manuel:
"GESTION À DISTANCE
Lorsque vous exécutez ufw enable ou démarrez ufw via son script, ufw videra ses chaînes. Ceci est nécessaire pour que ufw puisse maintenir un état cohérent, mais il peut supprimer les connexions existantes (par exemple ssh). ufw prend en charge l'ajout de règles avant d'activer le pare-feu, les administrateurs peuvent donc:
avant d'exécuter «ufw enable». Les règles seront toujours vidées, mais le port ssh sera ouvert après l'activation du pare-feu. Veuillez noter qu'une fois que ufw est "activé", ufw ne videra pas les chaînes lors de l'ajout ou de la suppression de règles (mais le sera lors de la modification d'une règle ou de la modification de la stratégie par défaut). "
Voici donc une approche qui utilise un script pour le définir. Vous serez déconnecté lorsque vous exécuterez ce script, mais après l'avoir exécuté, vous pourrez vous reconnecter via ssh.
Mettez ce qui suit dans un script et appelez-le start-firewall.sh
Et puis le rendre exécutable et l'exécuter en faisant
Pour en savoir plus, lisez la page de manuel .
la source
Si vous vous familiarisez avec les scripts
iptables
, vous aurez un contrôle total sur toutes les capacités du pare-feu. Il est loin d'être aussi convivial que Firestarter, mais cela peut être fait sur la console avecnano
/vi
editors. Découvrez ce tutoriel destiné à Ubuntu.la source
Quicktables m'a aidé à apprendre les règles iptables. Exécutez simplement le script et il générera un script iptables pour vous ... puis vous pourrez l'ouvrir et afficher les commandes associées générées par les questions qu'il vous a posées. C'est une excellente ressource d'apprentissage.
Malheureusement, il n'est plus maintenu.
http://qtables.radom.org/
la source
J'aime vraiment utiliser firehol ( package ).
Pour créer des règles de configuration que vous aimez, vous devez modifier le fichier / etc / default / firehol et changer START_FIREHOL = YES
Et vous voudriez que votre /etc/firehol/firehol.conf ressemble à ceci.
L'une des grandes choses à propos de firehol est la commande «try». Vous pouvez ajuster votre fichier de configuration et faire un «essai de firehol», si vous étiez connecté via ssh, et quelque chose sur ce que vous avez changé a tué votre accès réseau, alors firehol annulera les changements. Pour que les modifications entrent en vigueur, vous devez dire commit.
la source
Je préférerais Shorewall . Il est facile à configurer mais flexible en même temps.
la source
Vous devriez peut-être jeter un œil à http://iptables-tutorial.frozentux.net/iptables-tutorial.html . Vous pouvez également trouver plus d'informations sur lartc.org
la source
sudo apt-get install firestarter
Ensuite, regardez dans le menu Système-> Administration.
la source