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!
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.