Philippe_PMA wrote:Ton schéma n'est pas exact, pas assez précis et améne pleins de devinettes ...
Sur quoi est branché ton NAS ? Sur ton switch ? Sur ta live box ? Sur ton serveur ?
Ton serveur même question ? Sur ton switch, sur ta live box ?
Le serveur, le nas, la box sont raccordé au switch
IP_FORWARD activé :
[root@Tony-Desktop Script]# cat /proc/sys/net/ipv4/ip_forward
1
FORWARD pas configurer :
[root@Tony-Desktop Script]# iptables -v -L FORWARD
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 REJECT all -- any any anywhere anywhere reject-with icmp-host-prohibited
Script iptables :
[root@Tony-Desktop Script]# cat /bin/iptables-config
#!/bin/sh
#########################################################################
# Rgles d'origine :
#########################################################################
orig() {
iptables -t filter -F
iptables -t filter -X
iptables -t filter -P INPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j LOG --log-prefix "Connexion client ssh"
iptables -t filter -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
iptables -t filter -A INPUT -m state --state NEW -m udp -p udp --dport 1194 -j LOG --log-prefix "Connexion client vpn"
iptables -t filter -A INPUT -m state --state NEW -m udp -p udp --dport 1194 -j ACCEPT
iptables -t filter -A INPUT -j REJECT --reject-with icmp-host-prohibited
iptables -t filter -A FORWARD -j REJECT --reject-with icmp-host-prohibited
}
#########################################################################
# Ouverture du trafic :
#########################################################################
start() {
#---------------------------------------------#
# Vrification des indicateurs des trames tcp #
#---------------------------------------------#
iptables -N CHECK_BAD_TCP
iptables -A CHECK_BAD_TCP -p tcp -m state --state NEW,RELATED ! --tcp-flags ALL SYN -j DROP
iptables -A CHECK_BAD_TCP -p tcp --tcp-flags ALL NONE -j DROP
iptables -A CHECK_BAD_TCP -p tcp --tcp-flags ALL ALL -j DROP
iptables -A CHECK_BAD_TCP -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A CHECK_BAD_TCP -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
iptables -A CHECK_BAD_TCP -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A CHECK_BAD_TCP -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A CHECK_BAD_TCP -j RETURN
#-------------------------------------#
# Traitement des trames tcp en entre #
#-------------------------------------#
iptables -N INPUT_TCP
iptables -A INPUT_TCP -j CHECK_BAD_TCP
iptables -A INPUT_TCP -p tcp ! --syn -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT_TCP -p tcp --sport ftp-data -m state --state RELATED -j ACCEPT
#############################################
# A COMPLETER AVEC VOS REGLES TCP en entre #
#############################################
#iptables -t filter -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j LOG --log-prefix "Connexion client ssh"
#iptables -t filter -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
iptables -A INPUT_TCP -p tcp --syn --dport 443 -m state --state NEW -j LOG --log-prefix "Connexion client ssh"
iptables -A INPUT_TCP -p tcp --syn --dport 443 -m state --state NEW -j ACCEPT
#-------------------------------------#
# Traitement des trames udp en entre #
#-------------------------------------#
iptables -N INPUT_UDP
iptables -A INPUT_UDP -p udp -m multiport --sport domain,ntp -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT_UDP -p udp --sport bootps --dport bootpc -m state --state ESTABLISHED -j ACCEPT
#pour imprimante HP#
iptables -A INPUT_UDP -p udp -m mac --mac-source 00:23:7d:f9:27:ca -s 192.172.2.2 --sport 161 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT_UDP -p udp -m mac --mac-source 00:23:7d:f9:27:ca -s 192.172.2.2 --sport 5353 --dport 5353 -j ACCEPT
#############################################
# A COMPLETER AVEC VOS REGLES UDP en entre #
#############################################
#pour VPN
#iptables -t filter -A INPUT -m state --state NEW -m udp -p udp --dport 1194 -j LOG --log-prefix "Connexion client vpn"
#iptables -t filter -A INPUT -m state --state NEW -m udp -p udp --dport 1194 -j ACCEPT
iptables A INPUT_TCP -p udp --syn --dport 1194 -m state --state NEW -j LOG --log-prefix "Connexion client vpn"
iptables A INPUT_TCP -p udp --syn --dport 1194 -m state --state NEW -j ACCEPT
#--------------------------------------#
# Traitement des trames icmp en entre #
#--------------------------------------#
iptables -N INPUT_ICMP
iptables -A INPUT_ICMP -p icmp --icmp-type echo-reply -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT_ICMP -p icmp --icmp-type destination-unreachable -m state --state RELATED -j ACCEPT
iptables -A INPUT_ICMP -p icmp --icmp-type time-exceeded -m state --state RELATED -j ACCEPT
#-----------------------------------------------------------------#
# Filtrage des appels entrants avec appel des rgles utilisateurs #
#-----------------------------------------------------------------#
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -p tcp -j INPUT_TCP
iptables -A INPUT -p udp -j INPUT_UDP
iptables -A INPUT -p icmp -j INPUT_ICMP
#-------------------------------------#
# Traitement des trames tcp en sortie #
#-------------------------------------#
iptables -N OUTPUT_TCP
iptables -A OUTPUT_TCP -p tcp -m state --state NEW,RELATED ! --tcp-flags ALL SYN -j DROP
iptables -A OUTPUT_TCP -p tcp -m state --state RELATED -j ACCEPT
iptables -A OUTPUT_TCP -p tcp ! --syn -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT_TCP -p tcp --sport 1024:65535 -m multiport --dports ftp,smtp,http,pop3,imap,https,5900 -m state --state NEW -j ACCEPT
#############################################
# A COMPLETER AVEC VOS REGLES TCP en sortie #
#############################################
#pour imprimante HP
iptables -A OUTPUT_TCP -d 192.172.2.2 -p tcp --syn --sport 1024:65535 --dport 9100 -m state --state NEW -j ACCEPT
#-------------------------------------#
# Traitement des trames udp en sortie #
#-------------------------------------#
iptables -N OUTPUT_UDP
iptables -A OUTPUT_UDP -p udp -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT_UDP -p udp --sport bootpc --dport bootps -j ACCEPT
iptables -A OUTPUT_UDP -p udp --dport ntp -j ACCEPT
iptables -A OUTPUT_UDP -p udp --dport domain -j ACCEPT
#pour imprimante HP
iptables -A OUTPUT_UDP -d 192.172.2.2 -p udp --sport 1024:65535 --dport 161 -j ACCEPT
iptables -A OUTPUT_UDP -p udp --sport 5353 --dport 5353 -j ACCEPT
#############################################
# A COMPLETER AVEC VOS REGLES UDP en sortie #
#############################################
#--------------------------------------#
# Traitement des trames icmp en sortie #
#--------------------------------------#
iptables -N OUTPUT_ICMP
iptables -A OUTPUT_ICMP -p icmp --icmp-type echo-request -m state --state NEW -j ACCEPT
#------------------------------#
# Filtrage des appels sortants #
#------------------------------#
iptables -A OUTPUT -p tcp -j OUTPUT_TCP
iptables -A OUTPUT -p udp -j OUTPUT_UDP
iptables -A OUTPUT -p icmp -j OUTPUT_ICMP
}
#########################################################################
# Arrt de tout trafic :
#########################################################################
stop() {
#-----------------#
# Initialisations #
#-----------------#
# Vidage et suppression des rgles existantes :
for TABLE in filter nat mangle
do
iptables -t $TABLE -F
iptables -t $TABLE -X
done
# Modifications des politiques par dfaut :
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
}
#########################################################################
# Status des rgles :
#########################################################################
status() {
iptables -v -L
}
###############################################################################
# Fonction principale : analyse des arguments et appel fonction correspondant :
###############################################################################
case "$1" in
orig|start|stop)
$1
# Sauvegarde des rgles :
service iptables save
;;
status)
$1
;;
*)
echo "Usage : $0 {orig|start|stop|status}"
;;
esac
Log de la connexion VPN (connexion ssh sur le serveur à travers le vpn):
[root@Tony-Desktop log]# tail -n 2 messages
Dec 5 16:24:34 Tony-Desktop kernel: [17219.013999] Connexion client vpnIN=eth0 OUT= MAC=xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx SRC=XX.XX.XX.XX5 DST=192.172.2.4 LEN=42 TOS=0x00 PREC=0x00 TTL=116 ID=24520 PROTO=UDP SPT=1215 DPT=1194 LEN=22
Dec 5 16:25:24 Tony-Desktop kernel: [17269.219546] Connexion client sshIN=tun0 OUT= MAC= SRC=192.172.1.6 DST=192.172.2.4 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=25130 DF PROTO=TCP SPT=1223 DPT=443 WINDOW=16384 RES=0x00 SYN URGP=0
Ping sur le NAS depuis le client 192.172.1.6 :
Envoi d'une requte 'ping' sur 192.172.2.3 avec 32 octets de donnes:
Rponse de 192.172.1.1: Impossible de joindre l'hte de destination.
Rponse de 192.172.1.1: Impossible de joindre l'hte de destination.
Rponse de 192.172.1.1: Impossible de joindre l'hte de destination.
Rponse de 192.172.1.1: Impossible de joindre l'hte de destination.
Statistiques Ping pour 192.172.2.3:
Paquets: envoys = 4, reus = 4, perdus = 0 (perte 0%),
Dure approximative des boucles en millisecondes :
Minimum = 0ms, Maximum = 0ms, Moyenne = 0ms
Ping du client 192.172.1.6 vers le serveur 192.172.2.4 :
Envoi d'une requte 'ping' sur 192.172.2.4 avec 32 octets de donnes:
Rponse de 192.172.2.4: octets=32 temps=84 ms TTL=64
Rponse de 192.172.2.4: octets=32 temps=82 ms TTL=64
Rponse de 192.172.2.4: octets=32 temps=81 ms TTL=64
Rponse de 192.172.2.4: octets=32 temps=81 ms TTL=64
Statistiques Ping pour 192.172.2.4:
Paquets: envoys = 4, reus = 4, perdus = 0 (perte 0%),
Dure approximative des boucles en millisecondes :
Minimum = 81ms, Maximum = 84ms, Moyenne = 82ms
Ping du serveur 192.172.2.4 vers le Nas 192.172.2.3 :
[root@Tony-Desktop log]# ping 192.172.2.3
PING 192.172.2.3 (192.172.2.3) 56(84) bytes of data.
64 bytes from 192.172.2.3: icmp_req=1 ttl=64 time=0.872 ms
64 bytes from 192.172.2.3: icmp_req=2 ttl=64 time=0.109 ms
64 bytes from 192.172.2.3: icmp_req=3 ttl=64 time=0.119 ms
64 bytes from 192.172.2.3: icmp_req=4 ttl=64 time=0.113 ms
^C
--- 192.172.2.3 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 0.109/0.303/0.872/0.328 ms