Filtrage SSH

résultat de la commande :

[code]Chain BADTCP (2 references)
pkts bytes target prot opt in out source destination
0 0 PSCAN tcp – any any anywhere anywhere tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN,PSH,URG
0 0 PSCAN tcp – any any anywhere anywhere tcp flags:FIN,SYN,RST,PSH,ACK,URG/NONE
0 0 PSCAN tcp – any any anywhere anywhere tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN
0 0 PSCAN tcp – any any anywhere anywhere tcp flags:SYN,RST/SYN,RST
0 0 PSCAN tcp – any any anywhere anywhere tcp flags:FIN,SYN/FIN,SYN
3826 188K NEWNOTSYN tcp – any any anywhere anywhere tcp flags:!FIN,SYN,RST,ACK/SYN state NEW

Chain CUSTOMFORWARD (1 references)
pkts bytes target prot opt in out source destination
746K 497M OVPNFORWARD all – any any anywhere anywhere

Chain CUSTOMINPUT (1 references)
pkts bytes target prot opt in out source destination
1614K 1146M OVPNINPUT all – any any anywhere anywhere

Chain CUSTOMOUTPUT (1 references)
pkts bytes target prot opt in out source destination

Chain DHCPBLUEINPUT (1 references)
pkts bytes target prot opt in out source destination

Chain DMZHOLES (0 references)
pkts bytes target prot opt in out source destination

Chain GUIINPUT (1 references)
pkts bytes target prot opt in out source destination
4 240 ACCEPT icmp – !eth1 any anywhere anywhere icmp echo-request

Chain INPUT (policy DROP 108 packets, 10552 bytes)
pkts bytes target prot opt in out source destination
1617K 1146M ipac~o all – any any anywhere anywhere
1617K 1146M BADTCP all – any any anywhere anywhere
1614K 1146M CUSTOMINPUT all – any any anywhere anywhere
1614K 1146M GUIINPUT all – any any anywhere anywhere
1504K 1138M ACCEPT all – any any anywhere anywhere state RELATED,ESTABLISHED
110K 7931K IPSECVIRTUAL all – any any anywhere anywhere
110K 7931K OPENSSLVIRTUAL all – any any anywhere anywhere
3538 158K ACCEPT all – lo any anywhere anywhere state NEW
0 0 DROP all – any any 127.0.0.0/8 anywhere state NEW
0 0 DROP all – any any anywhere 127.0.0.0/8 state NEW
106K 7762K ACCEPT !icmp – eth0 any anywhere anywhere state NEW
108 10552 DHCPBLUEINPUT all – any any anywhere anywhere
108 10552 IPSECPHYSICAL all – any any anywhere anywhere
108 10552 OPENSSLPHYSICAL all – any any anywhere anywhere
108 10552 WIRELESSINPUT all – any any anywhere anywhere state NEW
108 10552 REDINPUT all – any any anywhere anywhere
108 10552 XTACCESS all – any any anywhere anywhere state NEW
108 10552 LOG all – any any anywhere anywhere limit: avg 10/min burst 5 LOG level warning prefix `INPUT ’

Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
746K 497M ipac~fi all – any any anywhere anywhere
746K 497M ipac~fo all – any any anywhere anywhere
746K 497M BADTCP all – any any anywhere anywhere
8178 407K TCPMSS tcp – any any anywhere anywhere tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU
746K 497M CUSTOMFORWARD all – any any anywhere anywhere
739K 497M ACCEPT all – any any anywhere anywhere state RELATED,ESTABLISHED
6405 421K IPSECVIRTUAL all – any any anywhere anywhere
6405 421K OPENSSLVIRTUAL all – any any anywhere anywhere
0 0 ACCEPT all – lo any anywhere anywhere state NEW
0 0 DROP all – any any 127.0.0.0/8 anywhere state NEW
0 0 DROP all – any any anywhere 127.0.0.0/8 state NEW
5780 391K ACCEPT all – eth0 any anywhere anywhere state NEW
625 30012 WIRELESSFORWARD all – any any anywhere anywhere state NEW
625 30012 REDFORWARD all – any any anywhere anywhere
625 30012 PORTFWACCESS all – any any anywhere anywhere state NEW
0 0 LOG all – any any anywhere anywhere limit: avg 10/min burst 5 LOG level warning prefix `OUTPUT ’

Chain IPSECPHYSICAL (1 references)
pkts bytes target prot opt in out source destination

Chain IPSECVIRTUAL (2 references)
pkts bytes target prot opt in out source destination

Chain LOG_DROP (0 references)
pkts bytes target prot opt in out source destination
0 0 LOG all – any any anywhere anywhere limit: avg 10/min burst 5 LOG level warning
0 0 DROP all – any any anywhere anywhere

Chain LOG_REJECT (0 references)
pkts bytes target prot opt in out source destination
0 0 LOG all – any any anywhere anywhere limit: avg 10/min burst 5 LOG level warning
0 0 REJECT all – any any anywhere anywhere reject-with icmp-port-unreachable

Chain NEWNOTSYN (1 references)
pkts bytes target prot opt in out source destination
1098 73781 LOG all – any any anywhere anywhere limit: avg 10/min burst 5 LOG level warning prefix `NEW not SYN? '
3826 188K DROP all – any any anywhere anywhere

Chain OPENSSLPHYSICAL (1 references)
pkts bytes target prot opt in out source destination

Chain OPENSSLVIRTUAL (2 references)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 1752K packets, 1220M bytes)
pkts bytes target prot opt in out source destination
1752K 1220M ipac~i all – any any anywhere anywhere
1752K 1220M CUSTOMOUTPUT all – any any anywhere anywhere
0 0 DROP tcp – any eth1 anywhere anywhere tcp dpt:ssh
0 0 DROP tcp – any eth0 anywhere anywhere tcp dpt:ssh

Chain OVPNFORWARD (1 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all – tun+ any anywhere anywhere

Chain OVPNINPUT (1 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT udp – eth1 any anywhere anywhere udp dpt:openvpn
0 0 ACCEPT all – tun+ any anywhere anywhere

Chain PORTFWACCESS (1 references)
pkts bytes target prot opt in out source destination
2 104 ACCEPT tcp – eth1 any anywhere 192.168.0.2 tcp dpt:http
623 29908 ACCEPT tcp – eth1 any anywhere 192.168.0.254 tcp dpt:ms-wbt-server

Chain PSCAN (5 references)
pkts bytes target prot opt in out source destination
0 0 LOG tcp – any any anywhere anywhere limit: avg 10/min burst 5 LOG level warning prefix TCP Scan? ' 0 0 LOG udp -- any any anywhere anywhere limit: avg 10/min burst 5 LOG level warning prefixUDP Scan? '
0 0 LOG icmp – any any anywhere anywhere limit: avg 10/min burst 5 LOG level warning prefix ICMP Scan? ' 0 0 LOG all -f any any anywhere anywhere limit: avg 10/min burst 5 LOG level warning prefixFRAG Scan? '
0 0 DROP all – any any anywhere anywhere

Chain REDFORWARD (1 references)
pkts bytes target prot opt in out source destination

Chain REDINPUT (1 references)
pkts bytes target prot opt in out source destination

Chain WIRELESSFORWARD (1 references)
pkts bytes target prot opt in out source destination

Chain WIRELESSINPUT (1 references)
pkts bytes target prot opt in out source destination

Chain XTACCESS (1 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp – eth1 any anywhere 170-153.80-90.static-ip.oleane.fr tcp dpt:ident
0 0 ACCEPT udp – eth1 any anywhere 170-153.80-90.static-ip.oleane.fr udp dpt:openvpn
0 0 ACCEPT tcp – eth1 any anywhere 170-153.80-90.static-ip.oleane.fr tcp dpt:19887

Chain ipac~fi (1 references)
pkts bytes target prot opt in out source destination
614 405K all – eth0 any anywhere anywhere
537 153K all – eth1 any anywhere anywhere

Chain ipac~fo (1 references)
pkts bytes target prot opt in out source destination
537 153K all – any eth0 anywhere anywhere
614 405K all – any eth1 anywhere anywhere

Chain ipac~i (1 references)
pkts bytes target prot opt in out source destination
2334 2945K all – any eth0 anywhere anywhere
2104 118K all – any eth1 anywhere anywhere

Chain ipac~o (1 references)
pkts bytes target prot opt in out source destination
1531 115K all – eth0 any anywhere anywhere
2238 2958K all – eth1 any anywhere anywhere [/code]

Perssone à la solution ???

voila le debut de mon script iptable


### PURGE DES REGLES ###

IPTABLES -t filter -F INPUT
IPTABLES -t filter -F FORWARD
IPTABLES -t filter -F OUTPUT


IPTABLES -t nat -F PREROUTING
IPTABLES -t nat -F OUTPUT
IPTABLES -t nat -F POSTROUTING

### FIN PURGE DES REGLES ###


### DEFINITION STRATEGIES PAR DEFAUT ###

IPTABLES -t filter -P INPUT DROP
IPTABLES -t filter -P FORWARD DROP
IPTABLES -t filter -P OUTPUT DROP

IPTABLES -t nat -P PREROUTING ACCEPT
IPTABLES -t nat -P OUTPUT ACCEPT
IPTABLES -t nat -P POSTROUTING ACCEPT

### FIN DEFIFITION STRATEGIES PAR DEFAUT ###

### REGLES ###

# on autorise les reponses

IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# on autorise le traffic sur interface lo

IPTABLES -A INPUT -i $IFLO -j ACCEPT
IPTABLES -A OUTPUT -o $IFLO -j ACCEPT

# on autorise certaines connexions sur l'interface eth0
## PORT 2253 SSH
## PORT 80 xxx.xxx.fr
IPTABLES -A INPUT -i eth0 -p tcp -m multiport --dports 222,80 -j ACCEPT

## la ligne ci-dessous permet d'autoriser certains ports a se connecter sur l'interface eth1
##$IPTABLES -A INPUT -m state --state NEW -i eth1 -p tcp -m multiport --dports 53,80,139,2253 -j ACCEPT
IPTABLES -A OUTPUT -m state --state NEW -o eth1 -j ACCEPT

# On restreint l'acces au net
IPTABLES -A FORWARD -m state --state NEW -i eth1 -s monipdubureau/32 -o eth0 -j ACCEPT
IPTABLES -A FORWARD -m state --state NEW -i eth1 -o eth0 -p tcp -m multiport --dports 20,21,53,80,443 -j ACCEPT
IPTABLES -A FORWARD -m state --state NEW -i eth1 -o eth0 -p udp -m multiport --dports 20,21,53 -j ACCEPT


Dans mon cas eth0 est relié au net.

Strategie par defaut: je ferme tous les ports.

Ensuite par "# on autorise certaines connexions sur l’interface WAN"
J’ouvre peu à peu les ports indispensables suivant mon utilisation.

la ligne ci-dessous permet d’autoriser certains ports a se connecter sur l’interface eth1

La je controle les ports accessibles via mon reseau interne vers mon serveur (on retrouve le port 2253 du ssh)

On restreint l’acces au net

la je filtre les ports accessibles (tiens bizarre mais le port 22 et toutes les autres ne sont pas acceptés)
Bien sur de mon pc je n’ai pas de restriction.

voila ça fonctionne comme cela depuis plus de 1 an et pas de soucis de connection ssh vers l’exterieur.

@Minus : +1, tout est dit !

@Minus : +1, tout est dit ! :041

Pas tout à fait, dans le cas du script de Minus, un utilisateur peut toujours se connecter sur un serveur SSH qu’il aurait fait écouter sur le port 443 par exemple. Celà dit, avec iptables seul, tu ne peux effectivement pas mieux faire.

fabdunet1313 dit avoir installé un squid, donc c’est le seul qui doit être autorisé à sortir (pour que les autres soient forcés de l’utiliser comme proxy).
Par contre, fabdunet1313, je ne comprends rien à ton iptables, tu as vraiment besoin d’autant de chaines ? Tu n’aurais pas quelques explications (ou un script bien commenté) ?

le 443 est un port https donc ce n’est pas un port à utiliser pour du ssh.

Il y a quand même quelques ports a proscrire du ssh

http://fr.wikipedia.org/wiki/Liste_des_ports_logiciels

Les fameux troi petit point , j’en était sur :laughing:
c,étais un souci de double poste du message qui c’est écrit en double par erreur de ma part en appuillant sur la flèche de gauche sur le navigateurpour revenir sur ma page en arrière .
Impossible d’effacer le message et impossible de mètre zéro caractère .
Donc je me suis Santiago obliger de mètre ces fameux 3 petit point .

Je vais faire part de vos résultat a mon responsable qui devrais avancer dans ces recherche .
Je vous remercie de votre coopération en espérant trouver la solution .

Avez vous une idée d’une règle iptable pouvant anuler la ligne qui bloque avec les élément que je vous et fait part , ou il vous faut d’autre information sur le système ???

Iptable une horreur pour moi :013
merci

[quote=“kna”]Pas tout à fait, dans le cas du script de Minus, un utilisateur peut toujours se connecter sur un serveur SSH qu’il aurait fait écouter sur le port 443 par exemple. Celà dit, avec iptables seul, tu ne peux effectivement pas mieux faire.

fabdunet1313 dit avoir installé un squid, donc c’est le seul qui doit être autorisé à sortir (pour que les autres soient forcés de l’utiliser comme proxy).
Par contre, fabdunet1313, je ne comprends rien à ton iptables, tu as vraiment besoin d’autant de chaines ? Tu n’aurais pas quelques explications (ou un script bien commenté) ?[/quote]

En fait , j’ai montrè a mon chef une faille , qu’en faisant de l’encapsulation de trame par port le ssh , je pouvè récupérer le port 3128 de chez moi et passer au traver le proxy de l’etablicement .
plu de filtrage au niveau des page web par exemple .
Je Luis et dit que bloquer le port 22 empêcherais pas de faire passer le port du ssh dans le port 443 qui et ouvert la plus par du temps tout simplement en changent le port du ssh .

Il ma répondu , c’est vrais , mais ça bloque un peut .

Paris les élément que je vous est donner , arriveriez vous a trouver des règle iptable qui établirais cette règle ,
Même ci il faut recomencer de zéro , par rapport a mes règle iptable suis preneur .

[quote=“kna”]Pas tout à fait, dans le cas du script de Minus, un utilisateur peut toujours se connecter sur un serveur SSH qu’il aurait fait écouter sur le port 443 par exemple. Celà dit, avec iptables seul, tu ne peux effectivement pas mieux faire.

fabdunet1313 dit avoir installé un squid, donc c’est le seul qui doit être autorisé à sortir (pour que les autres soient forcés de l’utiliser comme proxy).
Par contre, fabdunet1313, je ne comprends rien à ton iptables, tu as vraiment besoin d’autant de chaines ? Tu n’aurais pas quelques explications (ou un script bien commenté) ?[/quote]

Oui , j’ai une explication .

La distribution c’est IPCOP et non debian comme je le croyais

[quote=“Minus”]le 443 est un port https donc ce n’est pas un port à utiliser pour du ssh.

Il y a quand même quelques ports a proscrire du ssh

http://fr.wikipedia.org/wiki/Liste_des_ports_logiciels[/quote]

Bien sur que si, tu peux même cacher un serveur ssh derrière un apache par exemple par le paquet sslh: Lorsque tu te connectes à un serveur Web, tu envois immédiatement une requete, lorsque que tu te connectes à un serveur ssh, tu attends une bannière SSH. Cela permet de faire la différence et de router le trafic vers le bon service. J’utilise ça sur tous mes serveurs.

[quote=“fran.b”][quote=“Minus”]le 443 est un port https donc ce n’est pas un port à utiliser pour du ssh.

Il y a quand même quelques ports a proscrire du ssh

http://fr.wikipedia.org/wiki/Liste_des_ports_logiciels[/quote]

Bien sur que si, tu peux même cacher un serveur ssh derrière un apache par exemple par le paquet sslh: Lorsque tu te connectes à un serveur Web, tu envois immédiatement une requete, lorsque que tu te connectes à un serveur ssh, tu attends une bannière SSH. Cela permet de faire la différence et de router le trafic vers le bon service. J’utilise ça sur tous mes serveurs.[/quote]

Merci pour l’info, je ne savais pas que ca se faisait

Tu n’as pas un panel d’administration avec IPCOP ? C’est plutôt là qu’il faudrait regarder pour établir tes règles, je pense.

Le sucil c’est que sur le panel ( interface web ) , je peut uniquement régler le trafic entrant du net vers ma passerelle et non l’inverse

Desinstalle IPCOP et installe une debian avec des regles iptables, tu aura plus de controle.

Comme ma dit mon responsable , il ne peut pas reformulez toute les règles iptable de IPCOP .

Bizare que les lignes iptable ne fonctionne pas .

Le but de faire cela , empêcher que quel qu’un ce connecte en ssh chez Luis et faire de l’encapsulation de trames ssh de chez lui au colege pour faire passer le port 3128 du proxy de son serveur sur ça machine , pour éviter que l’eleve contour les règle de filtrage squidgard .

Facebook
YouTube
Skyblog

Maintenant , il est sur , comme j"'ai precisè a mon responsable , pas tout le monde connais Linux .

Pas tout le monde sais que ce connecter sur un VPN , permet de passer au travers les règle de filtrage ( impossible pour l’eles car les poste client ne possède pas les droits administrateur , donc on ne peut pas installer des appli sur les poste)

Pas tout le monde sais que ce connecter en ssh et faire du tuneling , permet de passer au travers les règle de filtrage. Faut Connetre Linux , ssh et squid .

Quand je Luis et montrer que c’etait possible , il ma dit , tu as trouver une faille sur mon réseaux , faut trouver une solution .

Même ci on trouve la solution , et qui comble la faille , je Luis et dit , je passe part le port 443 ( https qui et ouvert )


Désole pour les fautes d’orthographe , je vous écrit depuis mon iPad qui dispose d’un faible correcteur d’orthographe
.

Si ton problème est que tu ne vaux pas que les machines de ton réseau se connectes sur un port SSH à l’extérieur, tu dois interdire le FORWARD et non le OUTPUT.

Ce serait dans ce cas

iptables -I FORWARD -p tcp --dport 22 -j DROP

Mais

  1. Donne tes règles correctement, i.e la sortie de iptables-save, tes règles sont illisibles et surtout il est absurde de demander une règle, le simple rajout de change rien, il faut regarder l’ensemble.

  2. Indique si tu veux que la machine elle même puisse faire du ssh.

Je vous ré contacte lundi , et je vous avec mon chef .
Je pence qu’il veux simplement interdire le ssh en sortie sur le net .

Mais la question que l’on ce pause tout les deux :

La règle iptable on l’applique sur qu’elle interface ??? Eth0 d’internet ou eth1 de notre réseaux locale ???

Cela reste confus pour nous deux

Attention, OUTPUT ne concerne que les paquets émis par la machine, pas ceux qui transitent par elle, ça c’est la table FORWARD. C’est cette table qui semble concernée ici. Inutile de préciser le sens ici sauf si ta passerelle relie deux réseaux locaux.