Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/11/2005, à 18:44

arvin

[iptables] script ubuntu-firewall

Salut,

Sur le site http://rob.pectol.com/content/view/14/29/ j'ai téléchargé un script iptables.
Avant ça j'en avais entendu parlé sur http://www.ubuntuforums.org/showthread. … t+iptables

Pour l'installer:

sudo chmod 755 ubuntu-firewall-installer.sh
sudo ./ubuntu-firewall-installer.sh

Configuration de /etc/default/ubuntu-firewall-cfg:

When the installer script finishes,
Ubuntu-firewall will be installed!  All you have left to do is open up the
config file (/etc/default/ubuntu-firewall-cfg) in your favorite text editor,
modify it to suit your system, and then save it.  Once this is done, you can
manually start Ubuntu-firewall by issuing the following command:
"sudo /etc/init.d/ubuntu-firewall.sh start"  Ubuntu-firewall will be started
automatically on subsequent boot ups.  That's it!  Your system is now being
protected by Ubuntu-firewall!  You may now remove this directory and all
files contained within (http://rob.pectol.com/ubuntu-firewall-README).

sudo gedit /etc/default/ubuntu-firewall-cfg

Il sagit du fichier sur http://rob.pectol.com/ubuntu-firewall-cfg.txt

Ci dessous mon fichier:

###
#  Miscellaneous options - NOTE: "1" = enable, "0" = disable.
###

#  Disable the firewall (useful for temporarily de-activating Ubuntu-firewall
#  without having to remove it from your startup configuration, etc.)  This
#  setting affects Ubuntu-firewall's ability to load and IS PERSISTANT through
#  re-boots!
DISABLED="0"

#  Firewall logging (useful for debug, curiousity, etc.  Logs to syslog)
LOG_ALL="0"

#  Verbose mode (feedback during script execution - useful for debug, etc.)
VERBOSE="1"

#  Respond to ICMP (echo-request) pings
ALLOW_PINGS="1"



###
#  Complex Servers
###

#  FTP server - Firewall requirements for an FTP Server are a little more
#  involved.  Thus, I've coded support for it directly into the Ubuntu-firewall
#  script.  It can be enabled/disabled here.
ALLOW_FTP="0"

#  Micro$oft Networking - Firewall requirements for Micro$oft Networking are
#  a little more involved.  Thus, I've coded support for it directly into the
#  Ubuntu-firewall script.  It can be enabled/disabled here.
ALLOW_MSNETWORKING="0"



###
#  Other services
###

#  List the TCP ports you want un-blocked by the firewall.
#  The ports need to be inside the quotes with a space between each one.
#  (ex: OPEN_TCP_PORTS="22 80 110")
#  This would un-block TCP ports 22 (ssh), 80 (http), and 110 (POP-3).
OPEN_TCP_PORTS="22"

#  List the UDP ports you want un-blocked by the firewall.
#  The ports need to be inside the quotes with a space between each one.
#  (ex: OPEN_UDP_PORTS="53")
#  This would un-block UDP port 53 (DNS Server services).
OPEN_UDP_PORTS=""



###
#  Advanced Options
###

#  Network Address Translation/Routing
#
#  This enables NAT Routing capabilities.  To use this feature, you must
#  specify the interface for NAT_IF, for which you want NAT services applied.
#  This MAY be the same as your internal interface (INTIF) as specified above.
#  ex:  NAT_IF="eth1"  (this will allow you to connect another PC to this PC's
#  eth1 interface for Internet Access on that PC)  To disable NAT, don't
#  specify an interface inside the quotes.  Just leave it blank as in NAT_IF="".
#
#  Bear in mind that the PC connected to this one will need to be set up on
#  the same network segment that this one's NAT_IF is on.  You will also need
#  to use the IP address assigned to the NAT_IF device, as that PC's default
#  gateway to the Internet.
NAT_IF=""

#  Forwarding of Ports
#
#  This allows you to forward ports to an internal host.  To use this feature,
#  simply specify an internal host to which you want to forward incoming
#  connections using the FORWARD_HOST directive.  Leaving it blank as in,
#  FORWARD_HOST="" will disable port forwarding.  Once you've specified a
#  host to which you want ports forwarded, you need to specify the ports.
#  This is done using the following two directives: FORWARD_TCP_PORTS
#  FORWARD_UDP_PORTS.  You may list multiple ports by separating them with
#  spaces.  For instance, if you wanted to forward incoming to TCP ports 22,
#  80, and 110, to an internal host with an IP address of 192.168.1.10, you
#  would use the following configuration:
#  FORWARD_HOST="192.168.1.10"
#  FORWARD_TCP_PORTS="22 80 110"
#  FORWARD_UDP_PORTS=""
FORWARD_HOST=""
FORWARD_TCP_PORTS=""
FORWARD_UDP_PORTS=""

#  Custom Rules
#
#  This allows the user to define non-standard or custom rules to be added
#  to the firewall policy.  It is STRONGLY RECOMMENDED that you only make
#  use of this if you understand iptables hirarchy and firewall design in
#  general!  Carelessly inserting rules into Ubuntu-firewall can easily
#  render it ineffective.  You have been warned!  Now, with all that out
#  of the way, here's how to do it.  First, you need to create a file that
#  contains the appropriate iptables commands, making certain that you have
#  the syntax correct.  This file should have NO variables defined in it
#  since it won't be executed (only read).  The correct way to define custom
#  rules in that file would be to use full paths, observe proper iptables
#  syntax, and avoid any variables.  Each rule will begin with something
#  similar to, "/sbin/iptables..."  Each rule will also need to be on it's
#  own line.  When making your custom rules, you should probably test each
#  one-at-a-time at the command prompt to verify that they work as expected.
#  You may define as many custom rules as you like but remember, usually
#  the simpler the firewall policy, the more robust it tends to be.  Take
#  special care to make sure that any rules you define, don't sabotage other
#  rules or policies listed below it.  Once you have your file populated
#  with your custom rules, save it and set the CUSTOM_RULES directive to
#  point to your file. Ex: CUSTOM_RULES="/etc/default/custom_firewall_rules"
#  If you don't have any reason to use custom rules, then simply leave
#  CUSTOM_RULES blank as in, CUSTOM_RULES="".
CUSTOM_RULES=""

Petite correction du script version 0.4.4 (merci Kael pour avoir trouvé l'erreur en moins d'1 minute):
J'ai contacté Robert C. Pectol qui a corrigé le problème dans la version 0.4.5. A tester wink

$ sudo gedit /etc/init.d/ubuntu-firewall.sh
Remplacer addr par adr

Pour relancer le script:

sudo /etc/init.d/ubuntu-firewall.sh reload
Reloading Ubuntu-firewall...
IP configuration looks good!  Loading ruleset...
System will respond to ICMP pings on external interface.
Loading ruleset for system servers...
TCP port 22 is now accessible.
Ubuntu-firewall reloaded!

Le script ubuntu-firewall est maintenant fonctionnel cool

Dernière modification par arvin (Le 17/11/2005, à 18:30)


Mon blog pour Linux: http://jujuseb.com

Hors ligne

#2 Le 17/11/2005, à 16:19

Gillaume

Re : [iptables] script ubuntu-firewall

ça a l'air tres bien, dis donc !! big_smile


Guili Guili

Hors ligne

#3 Le 17/11/2005, à 17:01

Julian

Re : [iptables] script ubuntu-firewall

Salut,

Ca à l'air très bien merci beaucoup, mais j'ai un problème.
Quand je fais de la machine 192.168.2.4:

sudo /etc/init.d/ubuntu-firewall.sh reload

Pour tout recharger, j'ai ce message écrit en rouge:

"Couldn't determine external IP adress!  Exiting..."

La procédure ne se fait donc pas.

Je précise que je suis derrière un routeur qui à l'adresse 192.168.2.1.

J'ai oublié quelque chose?

Merci.


julian@jabber.fr

Hors ligne

#4 Le 17/11/2005, à 18:26

arvin

Re : [iptables] script ubuntu-firewall

Réponce rapide de Robert C. Pectol par rapport au message "Couldn't determine external IP adress!  Exiting...":

I guess you misunderstood me!  What I was interested in is the changes you
made to the script itself (ubuntu-firewall.sh) to get it to work for you.
You mentioned that you changed addr to add and it worked for you.  I
assume this is because of a language difference in how ifconfig gives
results in your language, as compared to English.  I've seen some issues
with the German version too.  Anyway, based on what I could gather, and
some testing I did yesterday, I made a few changes to Ubuntu-firewall that
hopefully makes it more compatible across multiple locales.  Version 0.4.5
is now the latest and your welcome to download and try it out.  Please
feel free to e-mail me with any questions or comments regarding the new
version.  It can be downloaded here:
http://rob.pectol.com/content/view/14/29/

Sinon avec la version 0.4.4,

$ sudo gedit /etc/init.d/ubuntu-firewall.sh

et remplacer tout les addr par adr pour que ça fonctionne.


Mon blog pour Linux: http://jujuseb.com

Hors ligne

#5 Le 17/11/2005, à 23:05

Julian

Re : [iptables] script ubuntu-firewall

Salut Arvin,

Merci de m'avoir répondu rapidement.
Alors, je t'avoue franchement que je n'ai pas tout cerné au message précédent en anglais, même si j'ai l'habitude mais là...

J'ai retéléchargé le script et recommencé la procédure et ça fonctionne, plus de message d'erreur tout est dans le vert.

Seulement, il y a un problème. On va dire que je ne suis jamais content mais j'ai l'impression que ça n'a pas fonctionné, pire, que les différents scan de ports sont plus mauvais qu'avant.

Par exemple, je fais des tests de sécu sur ces différents sites:
http://www.pcflank.com/
http://www.zebulon.fr/outils/scanports/
http://www.dslreports.com/scan

Les résultats sont vraiment pas bons, j'ai les ports 80 22 25 ouverts + pleins d'autres fermés mais visibles donc tout échoue.

Pour l'histoire des ports 80 et 25, j'ai arrêté apache fetchmail.... et pourtant d'après les test c'est toujours ouverts.

Donc je ne sais plus trop, j'ai un firewall sur mon routeur, désactivé ou activé (conflit peut être?) les résultats sont identiques.

Qu'est ce que ça donne chez vous ce genre de test?

Merci.


julian@jabber.fr

Hors ligne

#6 Le 18/11/2005, à 00:52

arvin

Re : [iptables] script ubuntu-firewall

Salut Julian,

les résultats des tests sont bon pour moi.
- Sans le firewall de mon routeur tout mes ports sont  stealthed sauf le 113 qui est closed (préconisé pour l'IRC) et le 22 ouvert.
- Avec mon routeur tout mes port sont  stealthed sauf le 22 qui est ouvert.

Pour désactiver le script ubuntu-firewall
sudo /etc/init.d/ubuntu-firewall.sh stop

Maintenant fais un nouveau test avec ton firewall matériel pour voir.
Sinon, est ce que tu as la même configuration du fichier ubuntu-firewall-cfg à part pour le serveur ssh si tu n'en a pas?

Dernière modification par arvin (Le 18/11/2005, à 01:18)


Mon blog pour Linux: http://jujuseb.com

Hors ligne

#7 Le 18/11/2005, à 05:21

Julian

Re : [iptables] script ubuntu-firewall

Salut,

Bon j'ai rebooté la machine recalcitrante, et c'est bon big_smile

Sur toutes mes bécanes, j'étais stealth sauf le port 113 (fermé).

Puisque je souhaitais passer les tests à 100%, j'ai donc cherché des infos sur ce port 113.

Sur Ubuntu, pour fermer ce port, il faut stopper "hostname" par la commande:

sudo /etc/init.d/hostname stop

J'ai mis un petit script au démarrage pour effectuer cette commande (même si je ne redémarre quasiment jamais), comme ça nickel chrome, tout passe impeccable, du vert partout, et testé sur 4 sites différents cool
Il n'y a que pc flanck qui est chiant avec le browser et les cookies, mais bon il l'a toujours fait.

Un petit truc, tu dis malgré tout que ton port 22  reste visible (fermé).
Chez moi, j'ai configuré aussi ce firewall pour que le port 22 fonctionne (et ssh fonctionne très bien) seulement lors des tests, il est bien stealth et non fermé. C'est juste pour te prévenir.

Un autre point, est ce que chez toi, ce site:
http://www.auditmypc.com/

Découvre avec une facilité déconcertante l'adresse ip locale de ta bécane.
Moi il me sort en gros "votre ordinateur à l'adresse ip 192.168.2.6 sur votre réseau local" yikes
Est-ce que ça te le fait aussi?
Tu sais comment remédier à ça?

Encore merci pour tout

@ Bientôt
Julian.


julian@jabber.fr

Hors ligne

#8 Le 18/11/2005, à 08:30

Rob

Re : [iptables] script ubuntu-firewall

Désolé!  Je ne parle pas beaucoup français mais j'essayerai...

l'Ubuntu-firewall à l'épreuve du feu vérifie pour voir si vous avez configuré le port 113 à tenir compte d'un serveur de l'auth (identification).  Si l'Ubuntu-firewall à l'épreuve du feu ne le trouve pas configuré pour être laissé, alors il produit d'une tcp-reset (ferme le raccordement) quand quelqu'un essaye de se relier au port 113.  La raison de ceci est de sorte que le raccordement soit immédiatement remis à zéro au lieu de devoir chronométrer hors de ce qui peut prendre plusieurs dizaines de secondes!  Un exemple serait par ceux qui emploient l'IRC.  Quand vous vous reliez à un serveur d'IRC, habituellement le serveur essayera et établira un raccordement de l'auth (identification) à votre port 113.  S'il obtient une tcp-reset, il habituellement juste avortera le processus et continuera à vous permettre de vous relier au serveur d'IRC.  Cependant, si vous ne courez pas un serveur d'auth, et votre mur à l'épreuve du feu laisse tomber la demande de raccordement entrante d'auth au lieu de produire d'une tcp-reset, puis le raccordement doit arrêt (prenant 10, 20, ou même 30 secondes ou plus) avant de donner vers le haut et continuer!  Quoique l'Ubuntu-firewall à l'épreuve du feu cause votre port 113 à révèlent en tant que fermé au lieu de filtré, vous êtes encore protégés et votre PC est sûr!

Rob Pectol

#9 Le 18/11/2005, à 16:15

Julian

Re : [iptables] script ubuntu-firewall

Hello Rob,

Thanks for this answer et for the "ubuntu-firewall script"

Very good work smile

In french, firewall = pare-feu wink

Julian.


julian@jabber.fr

Hors ligne

#10 Le 18/11/2005, à 16:25

dawar

Re : [iptables] script ubuntu-firewall

Perso j'utilise le script bastille (sur une Sarge mais je pense que c'est identique sur Ubuntu), présent dans Universe, y'a un pas a pas (en anglais) qui génère un fichier de conf, c'est très très bien fait.

sudo apt-get install bastille
Puis
sudo InteractiveBastille pour le configurer

Puis après édition de /etc/Bastille/bastille-firewall.cfg pour modifier les options dans ce fichier de conf très bien commenté.

Voila, je parle souvent de ce script, car pour ceux qui veulent aller plus loin que firestarter sans non plus ecrire leurs regles a la main, c'est tout simplement parfait.

En plus ce script ne se contente pas de régler le firewall, mais aussi d'autre détail de sécu comme la conf d'apache, les droits sur certains executables systeme, le NAT, et plein d'autres choses.

Dernière modification par dawar (Le 18/11/2005, à 16:26)


S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadoks)

Hors ligne

#11 Le 18/11/2005, à 17:47

Express

Re : [iptables] script ubuntu-firewall

Par curiosité, j'ai tèsté les ports (mais je n'ai pas installé Firestrater et iptables n'est pas configuré...mon routeur n'est pas en fonction...) et ben moi je suis invisible hmm ,sans rien avoir configurer big_smile ? il sont fiables ces test ?

Hors ligne

#12 Le 18/11/2005, à 20:44

arvin

Re : [iptables] script ubuntu-firewall

Merci dawar pour l'info smile
Je rajoute un lien: http://docs.mandragor.org/files/Misc/GL … stille.htm


Mon blog pour Linux: http://jujuseb.com

Hors ligne

#13 Le 19/12/2005, à 19:39

arvin

Re : [iptables] script ubuntu-firewall

POUR PROTÉGER UN SERVEUR SSH OU SFTP DES ATTAQUES BRUTE FORCE:
----------------------------------------------------------------------------------------------------

Mes sources:
http://blog.andrew.net.au/2005/02/17#ip … sh_attacks
http://mysecureshell.sourceforge.net/fr … #question1

Installer ulogd pour les logs:

sudo apt-get install ulogd

Créer un fichier texte:

sudo gedit /etc/default/custom_firewall_rules

Y injecter les lignes suivantes:

TRUSTED_HOST='127.0.01'
$IPT -N SSH_WHITELIST
$IPT -A SSH_WHITELIST -s $TRUSTED_HOST -m recent --remove --name SSH -j ACCEPT
$IPT -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
$IPT -A INPUT -p tcp --dport 22 -m state --state NEW -j SSH_WHITELIST
$IPT -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j ULOG --ulog-prefix SSH_brute_force
$IPT -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP

Modifier la partie Custom rules comme suit:

sudo gedit /etc/default/ubuntu-firewall-cfg
#  Custom Rules
#
#  This allows the user to define non-standard or custom rules to be added
#  to the firewall policy.  It is STRONGLY RECOMMENDED that you only make
#  use of this if you understand iptables hirarchy and firewall design in
#  general!  Carelessly inserting rules into Ubuntu-firewall can easily
#  render it ineffective.  You have been warned!  Now, with all that out
#  of the way, here's how to do it.  First, you need to create a file that
#  contains the appropriate iptables commands, making certain that you have
#  the syntax correct.  This file should have NO variables defined in it
#  since it won't be executed (only read).  The correct way to define custom
#  rules in that file would be to use full paths, observe proper iptables
#  syntax, and avoid any variables.  Each rule will begin with something
#  similar to, "/sbin/iptables..."  Each rule will also need to be on it's
#  own line.  When making your custom rules, you should probably test each
#  one-at-a-time at the command prompt to verify that they work as expected.
#  You may define as many custom rules as you like but remember, usually
#  the simpler the firewall policy, the more robust it tends to be.  Take
#  special care to make sure that any rules you define, don't sabotage other
#  rules or policies listed below it.  Once you have your file populated
#  with your custom rules, save it and set the CUSTOM_RULES directive to
#  point to your file. Ex: CUSTOM_RULES="/etc/default/custom_firewall_rules"
#  If you don't have any reason to use custom rules, then simply leave
#  CUSTOM_RULES blank as in, CUSTOM_RULES="".
CUSTOM_RULES="/etc/default/custom_firewall_rules"


Relancer le script:

sudo /etc/init.d/ubuntu-firewall.sh reload

Vous pouvez maintenant le tester !

Tapez ceci pour les voir les logs:

cat /var/log/ulog/syslogemu.log | grep SSH_brute_force

Si vous avez des hôtes qui appraissent "Blacklistés" et que vous voulez les faire appartenir à la "Whitelist", vous pouvez utiliser ceci:

iptables -A SSH_WHITELIST -s x.x.x.x -m recent --remove --name SSH -j ACCEPT

- x.x.x.x : mettre l'addresse IP à whitelister.

Vous pouvez également consulter cette liste en faisant ceci :

sudo iptables -L SSH_WHITELIST

Dernière modification par arvin (Le 26/01/2006, à 01:19)


Mon blog pour Linux: http://jujuseb.com

Hors ligne