IpTables, mon 1er script, j'ai des questions - réseaux et sécurité - Linux et OS Alternatifs
Marsh Posté le 18-07-2003 à 14:26:00
# on autorise ce qui se passe sur le reseau local
iptables -A INPUT -s 172.17.64.0/24 -j ACCEPT
iptables -A OUTPUT -d 172.17.64.0/24 -j ACCEPT
iptables -A FORWARD -s 172.17.64.0/24 -j ACCEPT
ca explique pkoi tu peux faire du ssh en local
apres béh heu ... je te colel mon script a toi de l'adapter s il te plait
routeur:~# cat /etc/init.d/firewall |
Marsh Posté le 18-07-2003 à 14:32:54
c'est pour ca que je peux aussi me connecter sur le bureau a distance avec windows (une machine sur le reseau) sur une machine qui est sur le net alors que je n'ai pas autoriser ce port?
mais y'a moyen d'autoriser pour les machines du reseau les meme ports que ceux autorisés pour la passerelle?
Marsh Posté le 18-07-2003 à 14:35:15
Astro a écrit : |
bah oui il faut virer ta regle par defaut accept pour tt ce qui vient du rezo local, et specifier ce que tu veux laisser entrer comme tu as fait pour ton autre interface
Marsh Posté le 18-07-2003 à 14:35:23
Astro a écrit : c'est pour ca que je peux aussi me connecter sur le bureau a distance avec windows (une machine sur le reseau) sur une machine qui est sur le net alors que je n'ai pas autoriser ce port? |
tu peux detailler exactement la connection d'ou vers ou tu veux autoriser ?
Marsh Posté le 18-07-2003 à 14:44:11
voila ce que j'aimerais faire:
sur mon serveur ou y'a le modem, j'autorise par exemple le ftp, le www, ssh et je voudrais que les machine du reseau soit restreintes aux memes regles voila.
plus certains autres port pour les machines windows comme msn, bureau a distance pour me connecter sur un serveur sur le net.
j'espere que j'ai été a peu pres clair
Marsh Posté le 18-07-2003 à 14:46:07
bah il suffit de tout mettre en drop par defaut pr le reseau local
et de faire les memes regles avec ethX qu'avec ppp0
Marsh Posté le 18-07-2003 à 14:46:49
si tu n'autorise pas aussi le dns tu vas avoir du mal a surfer ...
Marsh Posté le 18-07-2003 à 14:57:50
kayasax a écrit : si tu n'autorise pas aussi le dns tu vas avoir du mal a surfer ... |
je l'ai autorisé :
# on autorise le dns |
mais c'est sur les machines en local faut que je mette ladresse du serveur dns
Marsh Posté le 18-07-2003 à 15:35:55
je veux essayer de laisser au reseau local juste le port 80 mais je n'y arrive pas, j'ai essayé ca:
|
je dosi faire comment?
Marsh Posté le 18-07-2003 à 16:03:54
Astro a écrit : je veux essayer de laisser au reseau local juste le port 80 mais je n'y arrive pas, j'ai essayé ca:
|
tes regles de dns ne sont pas bonnes. Avec les tiennes tu autorise le forward d'un truc venant d'internet vers le port 53 de ton pc. Remplaces les -dport par -sport et vice versa
idem pour l'acces internet
ensuite pour le dns, il faut que tu declares les dns de ton fai sur les machines du reseau local
Marsh Posté le 18-07-2003 à 14:07:14
Voila mon 1er script realisé a l'aide de lea-linux :
#!/bin/sh
##################################################
# #
# FIREWALL ET PARTAGE DE CONNECTION INTERNET #
# #
##################################################
# activation du forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
# Je veux pas de spoofing
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]
then
for filtre in /proc/sys/net/ipv4/conf/*/rp_filter
do
echo 1 > $filtre
done
fi
# pas de icmp (ping)
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# chargement des modules necessaires
modprobe ip_tables
modprobe iptable_filter
modprobe ip_conntrack_ftp
modprobe iptable_nat
modprobe ip_nat_ftp
# vidage des regles courantes
iptables -F
iptables -X
# on logue et on refuse le paquet
iptables -N LOG_DROP
iptables -A LOG_DROP -j LOG --log-prefix '[IPTABLES DROP] : '
iptables -A LOG_DROP -j DROP
# on logue et on accepte le paquet
iptables -N LOG_ACCEPT
iptables -A LOG_ACCEPT -j LOG --log-prefix '[IPTABLES ACCEPT] : '
iptables -A LOG_ACCEPT -j ACCEPT
# on refuse tout par defaut
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# on autorise l'utilisation de l'interface lo
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# on autorise ce qui se passe sur le reseau local
iptables -A INPUT -s 172.17.64.0/24 -j ACCEPT
iptables -A OUTPUT -d 172.17.64.0/24 -j ACCEPT
iptables -A FORWARD -s 172.17.64.0/24 -j ACCEPT
# on autorise le dns
iptables -A INPUT -i tun0 --protocol udp --source-port 53 -j ACCEPT
iptables -A OUTPUT -o tun0 --protocol udp --destination-port 53 -j ACCEPT
iptables -A INPUT -i tun0 --protocol tcp --source-port 53 -j ACCEPT
iptables -A OUTPUT -o tun0 --protocol tcp --destination-port 53 -j ACCEPT
# on autorise la navigation sur le net
iptables -A INPUT -i tun0 --protocol tcp --source-port 80 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o tun0 --protocol tcp --destination-port 80 -m state --state NEW,ESTABLISHED -j ACCEPT
# on autorise les connections ssh vers internet
iptables -A INPUT -i tun0 --protocol tcp --source-port 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o tun0 --protocol tcp --destination-port 22 -m state --state NEW,ESTABLISHED -j ACCEPT
# on autorise les connections ssh depuis le reseau local
#iptables -A INPUT -i eth0 --protocol tcp --source-port 22 -m state --state NEW,ESTABLISHED -j LOG_ACCEPT
#iptables -A OUTPUT -o eth0 --protocol tcp --destination-port 22 -m state --state ESTABLISHED -j LOG_ACCEPT
# on autorise les connections ftp
iptables -A INPUT -i tun0 -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o tun0 -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
## connections en mode actif
iptables -A INPUT -i tun0 -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o tun0 -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
## connection en mode passif
iptables -A INPUT -i tun0 -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o tun0 -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# PARTAGE DE LA CONNECTION INTERNET
#
# autorisation du forwarding
#iptables -F FORWARD
#iptables -A FORWARD -j ACCEPT
# masquage des machines du reseau local
#iptables -A POSTROUTING -t nat -o tun0 -j MASQUERADE
# acces complet a internet pour les machines du reseau local
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -o eth0 -i tun0 -j ACCEPT
# masquage des machines du reseau local
iptables -t nat -A POSTROUTING -s 172.17.64.0/24 -j MASQUERADE
# tout le reste est refuse et logue
iptables -A FORWARD -j LOG_DROP
iptables -A INPUT -j LOG_DROP
ptables -A OUTPUT -j LOG_DROP
echo " [Termine]"
voici mes questions :
pour les connections ssh du reseau que je mette ca ou non j'ai toujours le droit de faire du ssh depuis mon reseau sur cette machine je comprend pas pourquoi :
# on autorise les connections ssh depuis le reseau local
iptables -A INPUT -i eth0 --protocol tcp --source-port 22 -m state --state NEW,ESTABLISHED -j LOG_ACCEPT
iptables -A OUTPUT -o eth0 --protocol tcp --destination-port 22 -m state --state ESTABLISHED -j LOG_ACCEPT
pour le partage de connection je sais pas quoi mettre :
ca :
iptables -F FORWARD
iptables -A FORWARD -j ACCEPT
# masquage des machines du reseau local
iptables -A POSTROUTING -t nat -o tun0 -j MASQUERADE
ou bien ca:
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -o eth0 -i tun0 -j ACCEPT
# masquage des machines du reseau local
iptables -t nat -A POSTROUTING -s 172.17.64.0/24 -j MASQUERADE
et j'ai un probleme, la resolution des noms ne se fait pas sur les machines du reseau, pour naviguer je dois taper les adresses ip
faut faire quoi?
-un serveur de dns?
-ajouter quelque chose dans mon script?
merci d'avance