Firewall et samba

Forum d'assistance et d'échange sur l'installation, la configuration, et l'utilisation des système Linux et BSD. Vous pouvez y poster vos questions concernant ces systèmes d'exploitation en faisant l'effort préalable de rechercher dans le forum, dans les manuels et les documentations que la réponse n'y figure pas.

Modérateur: modos Ixus

Firewall et samba

Messagepar Nobattosai » 16 Sep 2004 19:08

Bonjour à tous,
Z'ai un soucis dans un domaine que je ne connais quasiment pas: les firewalls....

Bon voila le problème:

- J'ai un poste linux sur lequel est installer un serveur web.
- Mon directeur informatique veux faire une faire une sauvegarde de ce serveur en utilisant Backupia ( solution de sauvegarde à distance).
- Problème: ce logiciel ne fonctionne que sous windows...
-Il me demande donc de mettre un poste windows en réseaux avec le serveur afin de faire les sauvegarde
- la mise en réseau et le partage de fichier ne pose pas de problème avec samba
- Probléme:mon predecesseur à installer et configurer firewall.sh sur le serveur en question, et sa config ne permet pas d'une part d'avoir accès au partage,
d'autre part le routage n'est pas activer donc pas de connexion internet possible pour le poste windows :? :roll:

Vous auriez une Idea???

:help: :help: :help: :help: :help: :help: :help: :help:

Si besoin est, je vous poste le script du firewall, merci à tous.
Quand j'ai tord, j'ai mes raisons... Mais je ne les donne pas, ce serais reconnaitre mes tords.
Avatar de l’utilisateur
Nobattosai
Major
Major
 
Messages: 98
Inscrit le: 23 Août 2003 00:00

Messagepar antolien » 16 Sep 2004 19:24

Si le serveur est un serveur web publique, il ne vaut mieux pas installer samba; ni même changer le script firewall qui n'a pas dû être mis au hazard.

mieux vaut autoriser le scp (transfert de fichiers via ssh), et transférer les datas sur un poste windows qui sera sauvegardé.

mais il nous faut plus d'infos pour bien répondre.
Avatar de l’utilisateur
antolien
Amiral
Amiral
 
Messages: 3134
Inscrit le: 31 Août 2002 00:00

Messagepar Nobattosai » 17 Sep 2004 11:00

antolien a écrit:Si le serveur est un serveur web publique, il ne vaut mieux pas installer samba; ni même changer le script firewall qui n'a pas dû être mis au hazard.

Le serveur en question, est une bibliotheque php en ligne qui permet le stockage d'informations, il n'est accessible que si l'on dispose d'un compte.

mieux vaut autoriser le scp (transfert de fichiers via ssh), et transférer les datas sur un poste windows qui sera sauvegardé.

Est-il possible d'automatiser se genre de chose à l'aide cron ou faut-il le faire à la main?

mais il nous faut plus d'infos pour bien répondre.


Quel genre d'infos vous faut-il?
Quand j'ai tord, j'ai mes raisons... Mais je ne les donne pas, ce serais reconnaitre mes tords.
Avatar de l’utilisateur
Nobattosai
Major
Major
 
Messages: 98
Inscrit le: 23 Août 2003 00:00

Messagepar jdh » 17 Sep 2004 13:06

Traditionnellement une machine linux est sauvegardé par un simple "tar".

Or "tar" sait parfaitement fabriquer l'archive sur une autre machine via ssh.

Un script de sauvegarde (automatisable par cron) pourrait avoir la forme :

cd /
tar cvzf (machine cible):/sauvegarde.tgz ./bin ./boot ./ ......
date +"%d/%m/%y %T" >>sauvegarde.log

Bien sur, il faut que
- firewall.sh ouvre ssh (en sortie),
- la machine cible dispose de ssh,
- la machine cible soit accessible par ssh ... sans mot de passe (!) (voir la doc d'Alexis de Lattre sur Debian dans le site via-ecp.fr)

Ne jamais oublier :
- de créer un fichier log
- de tester la procédure de restauration (un fichier à restaurer ou le système à réinstaller)

La 2me chose est essentielle.

Ce que je décris correspond à la sauvegarde vers une autre machine linux.
Sous réserves d'espace disque, tu peux créer un .tgz sur le disque lui-même et le transférer par ftp sur une autre machine (IIS sur machine windows offre la fonction).
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar stoker » 17 Sep 2004 15:28

salut

Autre solution un peu inverse....
tu crees une sauvegarde sur ton poste linux avec cron,tu l'enregistres dans le dossier partagé du domaine.
Tu crees un fichier bat sous windows qui copie la sauvegarde sur son disque et tu f un del.
C'est une solution...et y'en plein d'autres.
Avatar de l’utilisateur
stoker
Lieutenant de vaisseau
Lieutenant de vaisseau
 
Messages: 181
Inscrit le: 06 Oct 2003 00:00

Messagepar Nobattosai » 17 Sep 2004 18:00

Salutations

Merci à tous les 2 pour vos infos. J'ai étudié vos solutions et tenté de voir, par rapport à mes modestes connaissances en la matière, ce que je pourrai faire.

:oops: Il y a un détail que j'ai omis, mon responsable veut prendre 2 licences de sauvegarde, une pour chaque ligne... ça lui revient moins chere... économie oblige!

Voici ce à quoi j'ai pensé:

1. L'utilisation de SSH ne pose pas de problème a fortiori. Le hic c'est comment atteindre le poste cible, qui se trouve dans un workgroup... En effet, comme je l'ai dis plus haut, le serveur web ne fait absolument pas partie du réseaux de la boîte. il faudra donc soit à l'aide d'une seconde carte réseaux le brancher sur le workgroup, soit le faire via le net, alternative à laquelle je ne vois pas de solution. En plus a contrainte précitée exclut cette option.

2. L'utilisation de FTP, serait interessante, je créerai sur le serveur web un serveur FTP, auquel j'accederai via le web. Après création du fichier compressé, je le rapatrierai dans un des repertoires à sauvegarder.
J'ai aussi pensé qu'il faudra ensuite supprimer fichier .gz
Le problème c'est que le serveur dispose d'une IP dynamique, en indiquant son nom de domaine , je me retrouverai sur le site (enfin je crois dites moi si je me trompe) ce qui n'est pas le but visé.

3. Enfin le solution de Stoker, est séduisante, mais tant que le firewall est en marche, samba ne fonctionne pas sur le serveur.
Ce qui serait possible (je viens d'y penser, merci jdh :wink: ) ce serait d'utiliser un tunnel ssh pour transférer le fichier sur un ordi ordi Win, mis en réseaux directe avec le serveur, puis en modifiant le script du firewall, permettre le routage des packets de l'interieur vers l'extèrieur, le serveur ferait alors aussi office de passerelle.

#-o ... c'est possible d'après vous? Et en terme de sécurité?

Merci
Quand j'ai tord, j'ai mes raisons... Mais je ne les donne pas, ce serais reconnaitre mes tords.
Avatar de l’utilisateur
Nobattosai
Major
Major
 
Messages: 98
Inscrit le: 23 Août 2003 00:00

Messagepar Roswell1947 » 18 Sep 2004 08:55

Ca devrais être une bonne solution

Traditionnellement une machine linux est sauvegardé par un simple "tar".

Or "tar" sait parfaitement fabriquer l'archive sur une autre machine via ssh.

Un script de sauvegarde (automatisable par cron) pourrait avoir la forme :

cd /
tar cvzf (machine cible):/sauvegarde.tgz ./bin ./boot ./ ......
date +"%d/%m/%y %T" >>sauvegarde.log

Bien sur, il faut que
- firewall.sh ouvre ssh (en sortie),
- la machine cible dispose de ssh,
- la machine cible soit accessible par ssh ... sans mot de passe (!) (voir la doc d'Alexis de Lattre sur Debian dans le site via-ecp.fr)


Pour mettre SSH sur ton windows tu pourais faire un tour du coté de cygwin. Avec ca tu pouras administrer t'a machine windows comme une machine linux (gestion de service, des process, enfin tout plein de chose). Fait une petite recherche la-dessus, il y a plein de doc.

- la machine cible soit accessible par ssh ... sans mot de passe (!) (voir la doc d'Alexis de Lattre sur Debian dans le site via-ecp.fr)


Il existe un système de passphrase pour palier à ce problème. Pour ca je n'ai pas les ressource nécessaire pour t'aider, mais ca peut te mettre sur la voie.
Il vaut mieux mobiliser son intelligence sur des $%#&!,
que mobiliser sa $%#&! sur des choses intelligentes.
Avatar de l’utilisateur
Roswell1947
Major
Major
 
Messages: 76
Inscrit le: 10 Avr 2004 17:51
Localisation: Metz-Luxembourg

Messagepar Nobattosai » 20 Sep 2004 12:56

Je sais (pour l'avoir tester) que Putty permet d'accéder à un poste unix via SSH... maintenant est ce que le fait d'avoir ce logiciel sur un poste windows permet de l'atteindre via SSH? :?:
Quand j'ai tord, j'ai mes raisons... Mais je ne les donne pas, ce serais reconnaitre mes tords.
Avatar de l’utilisateur
Nobattosai
Major
Major
 
Messages: 98
Inscrit le: 23 Août 2003 00:00

Messagepar Nobattosai » 20 Sep 2004 18:40

Apres avoir installer cygwin, j'ai tenté d'atteindre le serveur en question via ssh avec un poste en réseaux , ce qui n'était pas possible tant que le firewall en marche.
Par contre firewall ou non quand on veut l'atteindre de l'exterieur en ssh il n'y a aucun souci! :-k
J'ai tenté, en analysant le fichier firewall.sh, de repérer l'endroit ou se situait les règles concernant le trafic ssh, et même en commentant ces règles (d'après les commentaires de mon honorable prédécésseur) j'obtient toujours la même chose...
Voici le fichier en question, c'est tout nouveaux pour moi voyez si vous comprenez svp:


#!/bin/bash
#
R="\033[1;31m"
V="\033[1;32m"
B="\033[1;34m"
BC="\033[1;36m"
N="\033[0m"
FW=/sbin/iptables
#################################################################################
# Script /etc/firewall.sh, adapté de l'excellent script de A.B
#
# Ce script est la version finale du firewall.sh
################################################################################
# Ce script est la version final du firewall CLC
. /etc/init.d/functions
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_TOS
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
#/sbin/modprobe ip_conntrack_irc
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_TCPMSS
/sbin/modprobe ipt_TOS
#
#
#
cd /etc/sysconfig/network-scripts

. network-functions
#Activation de la configuration du noyau
clear;echo -e "\n\n$V Activation des paramètres du noyau pour le routage des paquets IP$N"

# if [ -d /proc/sys/net/ipv4 ]; then
# if [ -f /proc/sys/net/ipv4/ip_forward ]; then
# if [ `cat /proc/sys/net/ipv4/ip_forward` = 0 ]; then
action "Activation du routage des paquets: " sysctl -w net.ipv4.ip_forward=1
# fi
# fi
#if [ -f /proc/sys/net/ipv4/ip_always_defrag ]; then
# if [ `cat /proc/sys/net/ipv4/ip_always_defrag` != 0 ]; then
# action "Desactivation de la defragmentation IP: " sysctl -w net.ipv4.ip_always_defrag=0
# fi
# fi
# fi
# if [ -f /proc/sys/net/ipv4/tcp_syncookies ];then
# if [ `cat /proc/sys/net/ipv4/tcp_syncookies` = 0 ]; then
action "Activation de la protection contre le SYN Flood: " sysctl -w net.ipv4.tcp_syncookies=1
# fi
# fi
#if [ -f /proc/sys/net/ipv4/conf/all/rp_filter ];then
# if [ `cat /proc/sys/net/ipv4/conf/all/rp_filter` = 0 ];then
action "Protection contre le Spoofing: " sysctl -w net.ipv4.conf.all.rp_filter=1
# fi
#fi
# if [ -f /proc/sys/net/ipv4/icmp_echo_ignore_all ];then
# if [ `cat /proc/sys/net/ipv4/icmp_echo_ignore_all` = 0 ];then
action "Pas de réception pour les PING: " sysctl -w net.ipv4.icmp_echo_ignore_all=1
# fi
#fi
#if [ -f /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts ];then
# if [ `cat /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts` = 0 ];then
action "Pas de Broadcasts ICMP: " sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
# fi
#fi
# if [ -f /proc/sys/net/ipv4/conf/all/accept_source_route ];then
# if [ `cat /proc/sys/net/ipv4/conf/all/accept_source_route` = 1 ];then
action "Aucun routage source accepté: " sysctl -w net.ipv4.conf.all.accept_source_route=0
# fi
#fi
# if [ -f /proc/sys/net/ipv4/conf/all/accept_redirects ];then
# if [ `cat /proc/sys/net/ipv4/conf/all/accept_redirects` = 1 ];then
action "Aucune redirection non source LAN: " sysctl -w net.ipv4.conf.all.accept_redirects=0
# fi
#fi
# if [ -f /proc/sys/net/ipv4/conf/all/log_martians ];then
# if [ `cat /proc/sys/net/ipv4/conf/all/log_martians` = 0 ];then
action "Log de tous les paquets orphelins: " sysctl -w net.ipv4.conf.all.log_martians=1
# fi
#fi
#if [ -f /proc/sys/net/ipv4/tcp_timestamps ];then
# if [ `cat /proc/sys/net/ipv4/tcp_timestamps` = 1 ];then
action "Réduction du délai de traitement de la pile TCP/IP: " sysctl -w net.ipv4.tcp_timestamps=0
# fi
#fi
# if [ -f /proc/sys/net/ipv4/tcp_ecn ];then
# if [ `cat /proc/sys/net/ipv4/tcp_ecn` = 1 ];then
action "Désactive l'ExplicitCongestionNotification: " sysctl -w net.ipv4.tcp_ecn=0
# fi
#fi
#if [ -f /proc/sys/net/ipv4/ip_conntrack_max ];then
# if [ `cat /proc/sys/net/ipv4/ip_conntrack_max` = 3072 ];
#then
action "Fixe le nombre de connection maximum à 4096: " sysctl -w net.ipv4.ip_conntrack_max=4096
# fi
#fi
#if [ -f /proc/sys/net/ipv4/tcp_fin_timeout ];then
# if [ `cat /proc/sys/net/ipv4/tcp_fin_timeout` = 60 ];
#then
action "Réduction des temps de réponses (DOS attack): " sysctl -w net.ipv4.tcp_fin_timeout=10
# fi
#fi
#if [ -f /proc/sys/net/ipv4/tcp_keepalive_time ];then
# if [ `cat /proc/sys/net/ipv4/tcp_keepalive_time` = 7200 ];then
action "Réduction des temps de latence (DOS attack): " sysctl -w net.ipv4.tcp_keepalive_time=1800
# fi
#fi
#if [ -f /proc/sys/net/ipv4/tcp_window_scaling ];then
# if [ `cat /proc/sys/net/ipv4/tcp_window_scaling` = 1 ];then
sysctl -w net.ipv4.tcp_window_scaling=0
# fi
#fi
# if [ -f /proc/sys/net/ipv4/tcp_sack ];then
# if [ `cat /proc/sys/net/ipv4/tcp_sack` = 1 ];then
sysctl -w net.ipv4.tcp_sack=0
# fi
#fi
#if [ -f /proc/sys/net/ipv4/ip_default_ttl ];then
# if [ `cat /proc/sys/net/ipv4/ip_default_ttl` = 0 ];then
action "Définit la durée de vie des paquets IP: " sysctl -w net.ipv4.ip_default_ttl=64
# fi
#fi
#if [ $$ -ne 0 ];then
echo -e "\n$B Les paramètres ont été initialisés avec succès !!$N"
#else
echo -e "\n$R Les paramètres n'ont pas été validés !, veuillez contactez l'administrateur...Arrêt de tout les programmes$N"
exit 0
#fi
#
$FW -F
$FW -F FORWARD
$FW -F INPUT
$FW -F OUTPUT
$FW -t nat -F
$FW -t mangle -F
$FW -X
$FW -Z
$FW -Z INPUT
$FW -Z OUTPUT
$FW -Z FORWARD
$FW -t nat -Z
$FW -t mangle -Z
#
#
$FW -P INPUT DROP
$FW -P OUTPUT DROP
$FW -P FORWARD DROP
#
#
$FW -N LOG_DROP
$FW -A LOG_DROP -j LOG --log-prefix "[IPTABLES DROP]:"
$FW -A LOG_DROP -j DROP
#
#
$FW -N LOG_ACCEPT
$FW -A LOG_ACCEPT -j LOG --log-prefix "[IPTABLES ACCEPT]:"
$FW -A LOG_ACCEPT -j ACCEPT
#
#
$FW -N LOG_SPOOFING
$FW -A LOG_SPOOFING -j LOG --log-prefix "[SPOOFING ACTIONS]:"
$FW -A LOG_SPOOFING -j DROP
#
#
#
$FW -N INVALID
$FW -A INVALID -j LOG --log-prefix "[INVALID Connection]:"
$FW -A INVALID -j DROP
#
#
#
$FW -N TCP_SCAN
$FW -A TCP_SCAN -m limit --limit 3/s -j LOG --log-prefix "[SCAN FURTIF EXTERIEUR]:"
$FW -A TCP_SCAN -j DROP
$FW -A INPUT -p tcp -m state --state NEW ! --syn -j TCP_SCAN
#
#
$FW -N TCPF_SCAN
$FW -A TCPF_SCAN -m limit --limit 3/s -j LOG --log-prefix "[SCAN FURTIF INTERIEUR]:"
$FW -A TCPF_SCAN -j DROP
$FW -A FORWARD -p tcp -m state --state NEW ! --syn -j TCPF_SCAN
#
#
$FW -A INPUT -i ppp0 -p udp -j LOG --log-prefix "[UDP-DROP EXT]:"
#
#
$FW -A OUTPUT -o ppp0 -p icmp -j LOG --log-prefix "[IPTABLES ICMP-EXT]:"
$FW -A OUTPUT -o ppp0 -p icmp -j DROP
#
# Règle d'arrêt des attaque à base de spoofing
#
$FW -A FORWARD -i ppp0 -s 224.0.0.0/4 -j LOG_SPOOFING
$FW -A FORWARD -i ppp0 -s 248.0.0.0/5 -j LOG_SPOOFING
$FW -A FORWARD -i ppp0 -s 240.0.0.0/5 -j LOG_SPOOFING
$FW -A FORWARD -i ppp0 -s 192.168.0.0/16 -j LOG_SPOOFING
$FW -A FORWARD -i ppp0 -s 172.16.0.0/12 -j LOG_SPOOFING
$FW -A FORWARD -i ppp0 -s 10.0.0.0/8 -j LOG_SPOOFING
$FW -A FORWARD -i ppp0 -s 127.0.0.0/8 -j LOG_SPOOFING
#
# Attention, règle expérimentales !!!
#
# règle de réglage du débit extérieur et intérieur optimum
$FW -A OUTPUT -o ppp0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
$FW -t nat -A POSTROUTING -o ppp0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
#
# log des paquets fragmentés
$FW -A INPUT -i ppp0 -f -s 0/0 -m limit --limit 2/m -j LOG --log-prefix "[DROP Fragmented packets]:"
$FW -A INPUT -i ppp0 -f -s 0/0 -j DROP
#
#On logue les paquets avec des très mauvais flags
$FW -A INPUT -i ppp0 -p tcp --tcp-option 64 -m limit --limit 2/m -j LOG --log-prefix "[DROP BAD TCP FLAGS(64)]:"
$FW -A INPUT -i ppp0 -p tcp --tcp-option 128 -m limit --limit 2/m -j LOG --log-prefix "[DROP BAD TCP FLAGS(128)]:"
$FW -A INPUT -i ppp0 -p tcp --tcp-option 64 -j DROP
$FW -A INPUT -i ppp0 -p tcp --tcp-option 128 -j DROP
#
#
# LOG des paquets IGMP
$FW -A INPUT -i ppp0 -p igmp -j LOG --log-prefix "[DROP IGMP Packets]:"

$FW -A INPUT -i ppp0 -p igmp -j DROP
#
# Log des attaques sur les ports
$FW -A INPUT -i ppp0 -p tcp --tcp-flags ALL FIN,URG,PSH -m limit --limit 3/m -j LOG --limit-burst 5 --log-prefix "[DROP Nmap XMAS Scan]:"
$FW -A INPUT -i ppp0 -p tcp --tcp-flags SYN,RST SYN,RST -m limit --limit 3/m -j LOG --limit-burst 5 --log-prefix "[DROP SYN RST Scan]:"
$FW -A INPUT -i ppp0 -p tcp --tcp-flags SYN,FIN SYN,FIN -m limit --limit 3/m -j LOG --limit-burst 5 --log-prefix "[DROP SYN FIN Scan]:"
$FW -A INPUT -i ppp0 -p tcp --tcp-flags ALL FIN -m limit --limit 3/m -j LOG --limit-burst 5 --log-prefix "[DROP Nmap Stealth FYN Scan]:"
$FW -A INPUT -i ppp0 -p tcp --tcp-flags ALL ALL -m limit --limit 3/m --limit-burst 5 -j LOG --log-prefix "[DROP ALL/ALL Scan]:"
$FW -A INPUT -i ppp0 -p tcp --tcp-flags ALL NONE -m limit --limit 3/m --limit-burst 5 -j LOG --log-prefix "[DROP Nmap Stealth Null]:"
$FW -A INPUT -i ppp0 -p tcp --tcp-flags RST RST,ACK -m limit --limit 3/m --limit-burst 5 -j LOG --log-prefix "[DROP Nmap RST/ACK]:"
$FW -A INPUT -i ppp0 -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 3/m --limit-burst 5 -j LOG --log-prefix "[DROP SCAN SYN/FIN]:"
$FW -A INPUT -i ppp0 -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
$FW -A INPUT -i ppp0 -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
$FW -A INPUT -i ppp0 -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
$FW -A INPUT -i ppp0 -p tcp --tcp-flags RST RST,ACK -j DROP
$FW -A INPUT -i ppp0 -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -j DROP
$FW -A INPUT -i ppp0 -p tcp --tcp-flags ALL FIN -j DROP
$FW -A INPUT -i ppp0 -p tcp --tcp-flags ALL ALL -j DROP
$FW -A INPUT -i ppp0 -p tcp --tcp-flags ALL NONE -j DROP

#
#
# Log des tentatives d'accès
$FW -A INPUT -i ppp0 -p ! icmp -m limit --limit 10/m -j LOG --log-prefix "[Tentative d'accès non Auth]:"
# On va maintenant incrémenté les paquets sortant du firewall
$FW -t mangle -A OUTPUT -p tcp -o ppp0 --dport 25 -j TOS --set-tos 16
$FW -t mangle -A OUTPUT -p tcp -o ppp0 --dport 53 -j TOS --set-tos 16
$FW -t mangle -A OUTPUT -p tcp -o ppp0 --dport 80 -j TOS --set-tos 16
$FW -t mangle -A OUTPUT -p tcp -o ppp0 --dport 21 -j TOS --set-tos 8
#
#
# Et ceux routé vers le réseau local
$FW -t mangle -A PREROUTING -p tcp -i ppp0 --dport 25 -j TOS --set-tos 16
$FW -t mangle -A PREROUTING -p tcp -i ppp0 --dport 53 -j TOS --set-tos 16
$FW -t mangle -A PREROUTING -p tcp -i ppp0 --dport 80 -j TOS --set-tos 16
$FW -t mangle -A PREROUTING -p tcp -i ppp0 --dport 21 -j TOS --set-tos 8
#################################################################################################################################################################
#
# On n'accepte aucun paquet invalide au routage
$FW -A FORWARD -m state --state INVALID -j INVALID
$FW -A FORWARD -m state --state NEW ! -i ppp+ -j LOG_ACCEPT
# Deux précautions valent mieux qu'une, les paquets de scans furtifs sont interdits
$FW -A FORWARD -p tcp --tcp-flags ALL ALL -j LOG_DROP
$FW -A FORWARD -p tcp --tcp-flags ALL NONE -j LOG_DROP
$FW -A FORWARD -m state --state RELATED,ESTABLISHED -j LOG_ACCEPT
# Règles concernant le FTP actif (en essai)
$FW -A INPUT -i ppp0 -p tcp --sport 21 -m state --state ESTABLISHED -j LOG_ACCEPT
$FW -A OUTPUT -o ppp0 -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j LOG_ACCEPT
$FW -A INPUT -i ppp0 -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j LOG_ACCEPT
$FW -A OUTPUT -o ppp0 -p tcp --dport 20 -m state --state ESTABLISHED -j LOG_ACCEPT
# On accepte toutes les connexions en local pour le sockets unix
#
$FW -A INPUT -i lo -j ACCEPT
$FW -A OUTPUT -o lo -j ACCEPT
#
#
#
$FW -N INT_LOCAL
$FW -N LOCAL_INT
$FW -N ICMP_LAN
#
#
#
$FW -A FORWARD -i ppp0 -o eth1 -j INT_LOCAL
$FW -A FORWARD -i eth1 -o ppp0 -j LOCAL_INT
#
# Règle permettant le trafic des ping à destination de l'extérieur
#
$FW -A ICMP_LAN -p icmp -m state --state NEW -j ACCEPT
$FW -A ICMP_LAN -p icmp --icmp-type destination-unreachable -j ACCEPT
$FW -A ICMP_LAN -p icmp --icmp-type source-quench -j ACCEPT
$FW -A ICMP_LAN -p icmp --icmp-type time-exceeded -j ACCEPT
$FW -A ICMP_LAN -p icmp --icmp-type echo-request -j ACCEPT
$FW -A ICMP_LAN -p icmp --icmp-type echo-reply -j ACCEPT
$FW -A ICMP_LAN -j LOG --log-prefix "[IPTABLES ICMP-LAN]:"
$FW -A ICMP_LAN -j DROP
#
# Règle ordonnant l'accès port DNS non pas en UDP, mais en TCP
$FW -A INPUT -i ppp0 -p udp -j REJECT
#
# Règle de filtrage de l'accès extérieur
#
$FW -A INPUT -i ppp0 -m state --state INVALID -j LOG_DROP
#$FW -A OUTPUT -o ppp0 -p udp --destination-port 53 -j LOG_ACCEPT
$FW -A OUTPUT -o ppp0 -p tcp --destination-port 53 -j LOG_ACCEPT
$FW -A INPUT -i ppp0 -p tcp --source-port www -m state --state ESTABLISHED -j LOG_ACCEPT
$FW -A OUTPUT -o ppp0 -p tcp --destination-port www -m state --state NEW,ESTABLISHED -j LOG_ACCEPT
$FW -A OUTPUT -o ppp0 -p tcp --destination-port 25 -m state --state NEW,ESTABLISHED -j LOG_ACCEPT
$FW -A OUTPUT -o ppp0 -p tcp --destination-port 110 -m state --state NEW,ESTABLISHED -j LOG_ACCEPT
$FW -A OUTPUT -o ppp0 -p tcp --destination-port https -m state --state NEW,ESTABLISHED -j LOG_ACCEPT
$FW -A OUTPUT -o ppp0 -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j LOG_ACCEPT
$FW -A INPUT -i ppp0 -p tcp -j REJECT --reject-with tcp-reset
$FW -A OUTPUT -o ppp0 -p tcp -j REJECT --reject-with tcp-reset
# Ligne rajoutées à la suite du bug icmp error
$FW -A OUTPUT -o ppp0 -p icmp -m state --state INVALID -j DROP
# On interdit tout trafic udp sur la carte du LAN
$FW -A INPUT -i eth1 -p udp -j DROP
# Règles pour l'accès en SSH
$FW -A INPUT -i eth1 -s 192.168.0.0/16 -m state --state NEW,ESTABLISHED -p tcp --dport 22 -j LOG_ACCEPT
$FW -A OUTPUT -o eth1 -d 192.168.0.0/16 -m state --state ESTABLISHED -p tcp --sport 22 -j LOG_ACCEPT
#
############################################################################################################################
#
# Règles de routage/filtre entre l'extérieur et l'intérieue
#
$FW -A INT_LOCAL -p tcp --dport 25 -j ACCEPT
$FW -A INT_LOCAL -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
$FW -A INT_LOCAL -p tcp --dport www -j ACCEPT
$FW -A INT_LOCAL -p tcp --dport https -j ACCEPT
$FW -A INT_LOCAL -p icmp -f -j REJECT
$FW -A INT_LOCAL -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT
$FW -A INT_LOCAL -p tcp -j REJECT --reject-with tcp-reset
$FW -A INT_LOCAL -p tcp -j LOG_DROP
#
# Idem mais dans l'autre sens
#
$FW -A LOCAL_INT -p tcp --dport 25 -j ACCEPT
$FW -A LOCAL_INT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
$FW -A LOCAL_INT -p tcp --dport 53 -j ACCEPT
#$FW -A LOCAL_INT -p udp --dport 53 -j ACCEPT
$FW -A LOCAL_INT -p tcp --dport www -j ACCEPT
$FW -A LOCAL_INT -p tcp --dport https -j ACCEPT
$FW -A LOCAL_INT -p tcp --dport 110 -j ACCEPT
#$FW -A LOCAL_INT -p icmp -j ICMP_LAN
$FW -A LOCAL_INT -p tcp -j REJECT --reject-with tcp-reset
$FW -A LOCAL_INT -p tcp -j LOG_DROP
#
# Bloquage par prévention des ports netbios
#
$FW -A INPUT -i eth1 -p udp -s 192.168.0.0/16 -m multiport --dport 137,138,139 -j REJECT
$FW -A OUTPUT -o eth1 -p udp -d 192.168.0.0/16 -m multiport --sport 137,138,139 -j REJECT
#
# Règle d'accès pour l'application web interne
#$FW -A INPUT -i eth1 -p tcp -s 192.168.0.0/16 --dport ? -j ACCEPT
#$FW -A OUTPUT -o eth1 -p tcp -d 192.168.0.0/16 --sport ? -j ACCEPT
#-
# Règle concernant le trafic entre la carte réseau et le modem
#
$FW -A INPUT -i eth0 -p udp -s 192.168.0.1 -j ACCEPT
$FW -A OUTPUT -o eth0 -p udp -d 192.168.0.1 -j ACCEPT
# Règles de NAT
#
$FW -t nat -A POSTROUTING -o eth1 -j MASQUERADE
$FW -t nat -A POSTROUTING -s 192.168.0.0/16 -j MASQUERADE
#
#
#
$FW -A FORWARD -j LOG_DROP
$FW -A INPUT -j LOG_DROP
$FW -A OUTPUT -j LOG_DROP
#
#
#
echo -e "$BC Le firewall s'est initialisé correctement...$N"
echo "[Terminé]"

#Regle pour msn
#$FW -N MSN
#$FW -A MSN -j LOG --log-prefix "[MSN]:"
#$FW -A MSN -j ACCEPT
#$FW -A OUTPUT -o ppp0 -p tcp --dport 1863 -m state --state
#NEW,ESTABLISHED
#-j MSN
#$FW -A INPUT -i ppp0 -p tcp --sport 1863 -m state --state
#ESTALISHED,RELATED -j MSN

# Note : Rajout de règles concerant le FTP actif ou passif et le scan SYN/FIN
# Aussi, switcher apache sur un autre port pour l'application local


Merci d'avance.
Quand j'ai tord, j'ai mes raisons... Mais je ne les donne pas, ce serais reconnaitre mes tords.
Avatar de l’utilisateur
Nobattosai
Major
Major
 
Messages: 98
Inscrit le: 23 Août 2003 00:00

Messagepar jdh » 21 Sep 2004 09:37

D'après le script, le FW accepte sur le réseau local l'accès ssh (ce qui permet d'utiliser putty sans se déplacer au clavier)

# Règles pour l'accès en SSH
$FW -A INPUT -i eth1 -s 192.168.0.0/16 -m state --state NEW,ESTABLISHED -p tcp --dport 22 -j LOG_ACCEPT
$FW -A OUTPUT -o eth1 -d 192.168.0.0/16 -m state --state ESTABLISHED -p tcp --sport 22 -j LOG_ACCEPT

Il faudrait ajouter pour le firewall accède par ssh à une machine du réseau local :

$FW -A OUTPUT -o eth1 -d 192.168.0.0/16 -m state --state NEW,ESTABLISHED -p tcp --dport 22 -j LOG_ACCEPT
$FW -A INPUT -i eth1 -s 192.168.0.0/16 -m state --state ESTABLISHED -p tcp --sport 22 -j LOG_ACCEPT

Ainsi le firewall peut faire un scp vers une machine du réseau local.

La procédure que je décris est simple entre 2 machine linux. Mais je ne connais pas de serveur ssh équivalent pour machine Windows. (Notamment pour éviter l'utilisation de mot de passe pour pouvoir faire un script).

Dans mon cas perso, dans une association, j'ai installé 2 PC sous Linux (Debian Sarge et Woody). Par ce type de script, je sauvegarde l'un sur l'autre et réciproquement. Et ça marche tout seul !
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar Nobattosai » 21 Sep 2004 16:38

Merci pour toute ses infos, le ssh fonctionne dorénavant en réseau local.
Mais le moins évident reste à venir... l'authentification.
Quand j'ai tord, j'ai mes raisons... Mais je ne les donne pas, ce serais reconnaitre mes tords.
Avatar de l’utilisateur
Nobattosai
Major
Major
 
Messages: 98
Inscrit le: 23 Août 2003 00:00

Messagepar Nobattosai » 22 Sep 2004 17:40

Dites moi ou je me trompe svp:
Je me connecte en ssh au serveur
Je peux naviguer dans mes différents dossiers sans soucis
Maintenant quand je désir faire un scp, il me dit "Permission denied (publikey, password,keybord-interactive)"
J'ai passé la journée à écumer le net à ce sujet, j'ai compris le fonctionnement de ssh... mais la je ne comprend pas.
Est-ce que une fois authentifier, je ne devrai pas avoir la possibiliter de faire un transfere de fichier?

May you help me please...
Quand j'ai tord, j'ai mes raisons... Mais je ne les donne pas, ce serais reconnaitre mes tords.
Avatar de l’utilisateur
Nobattosai
Major
Major
 
Messages: 98
Inscrit le: 23 Août 2003 00:00

Messagepar Nobattosai » 23 Sep 2004 18:28

:roll: Bon personne n'a d'idée...?
Voici les dernières avancées que j'ai fait:
- J'ai tout d'abord fait une connexion ssh entre le serveur (comprenant le firewall) et un poste linux. La connexion se fait sans problème.

- Maintenant je tente de faire un 'scp' du serveur vers le poste linux, il me redemande le mot de passe de l'utilisateur, je le fournis, la copie se fait.

- Maintenant je veux réitérer la même chose côté serveur, je lance le 'scp', il me demande le mot de passe utilisateur, je le fournis, et là... c'est le drame. En fait il me sort "permission denied (publickey,password,keyboard-interactive)"

J'ai comparé le fichier ssh_config et sshd_config du serveur et du poste linux, ils sont identiques, à cela près que les versions de ssh_config et sshd_config du serveur sont respectivement 1.15 et 1.56 et ceux du poste linux sont 1.16 et 1.59.

L'autre experience à été de faire de même entre le serveur et un poste windows (avec cygwin). Dans ce cas j'obtiens:

- Du côté serveur:" ssh: connect to address 192.168.01 port 22: Connection refused"
- Du côté cygwin: je me connect bien en tant qu'utilisateur, mais par contre lorsque je tente un 'scp'..., j'ai ça:
"ssh: connect to address 192.168.0.1 port 22: connection refused lost connection"

Ce que j'en comprend c'est que primo il y a une configuration à faire du coté du serveur pour qu'il puisse faire des scp (mais laquelle? :-k.
Et secondo que qu'il y a quelque chose qui empêche bloc le port 22 sous windows ](*,) .

Je ne sais plus quoi faire là....
Quand j'ai tord, j'ai mes raisons... Mais je ne les donne pas, ce serais reconnaitre mes tords.
Avatar de l’utilisateur
Nobattosai
Major
Major
 
Messages: 98
Inscrit le: 23 Août 2003 00:00


Retour vers Linux et BSD (forum généraliste)

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Google [Bot] et 1 invité

cron