Do It Right I'm Free

Aller au contenu | Aller au menu | Aller à la recherche

Configuration

Fil des billets

vendredi 10 avril 2009

Un script iptables

#!/bin/sh
# ports bas
dw_ports="0:1023"
# ports hauts
up_ports="1024:65535"

#adresse ip fourni par fai
ipv4_fai="xxx.yyy.zzz.ttt"
ipv4_tele="212.27.38.253"
#adresse ip machine perso
v4ip001="192.168.0.1"
#adresse ip esclave perso
v4ip002="192.168.0.11"
#adresse ip serveur gandi perso
v4ipext001="aaa.bbb.ccc.ddd"

case "$1" in
  start)
        $0 startipv4
        $0 startipv4ftp
        $0 ipv4ssh
        $0 ipv4jelogue
        
  ;;
  stop)
        $0 stopipv4
  ;;
  info|status)
        $0 infoipv4
  ;;
  restart|force-reload)
        $0 stop
        $0 start
  ;;
  infoipv4)
        iptables -L -n -v
  ;;
  stopipv4)
        iptables -F
        iptables -X
        # Politique par défaut : on accepte tout
        iptables -t filter -P INPUT   ACCEPT
        iptables -t filter -P OUTPUT  ACCEPT
        iptables -t filter -P FORWARD ACCEPT
        iptables -t mangle -P PREROUTING  ACCEPT
        iptables -t mangle -P INPUT       ACCEPT
        iptables -t mangle -P OUTPUT      ACCEPT
        iptables -t mangle -P FORWARD     ACCEPT
        iptables -t mangle -P POSTROUTING ACCEPT
        iptables -t nat -P PREROUTING  ACCEPT
        iptables -t nat -P POSTROUTING ACCEPT
        iptables -t nat -P OUTPUT      ACCEPT
  ;;

  startipv4)
        # Vider les tables actuelles
        iptables -t filter -F
        # Vider les règles personnelles
        iptables -t filter -X
        # Politique par défaut : on rejette tout
        iptables -t filter -P INPUT   DROP
        iptables -t filter -P OUTPUT  DROP
        iptables -t filter -P FORWARD DROP
        # Initialisation de la table NAT (existe pas en ipv6)
        iptables -t nat -F
        iptables -t nat -X 
        iptables -t nat -P PREROUTING  ACCEPT
        iptables -t nat -P POSTROUTING ACCEPT
        iptables -t nat -P OUTPUT      ACCEPT
        # Initialisation de la table MANGLE
        iptables -t mangle -F
        iptables -t mangle -X 
        iptables -t mangle -P PREROUTING  ACCEPT
        iptables -t mangle -P INPUT       ACCEPT
        iptables -t mangle -P OUTPUT      ACCEPT
        iptables -t mangle -P FORWARD     ACCEPT
        iptables -t mangle -P POSTROUTING ACCEPT
        # Ne pas casser les connexions etablies
        #iptables -t filter -A INPUT -i eth0 -p tcp --dport $up_ports -m state --state ESTABLISHED,RELATED -j ACCEPT
        #iptables -t filter -A INPUT -i eth0 -p udp --dport $up_ports -m state --state ESTABLISHED,RELATED -j ACCEPT
        #iptables -t filter -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

        # autoriser les requetes dhcp
        iptables -A INPUT -i eth0 -p udp --dport 67:68 --sport 67:68 -j ACCEPT -m comment --comment "requete dhcp"
        iptables -A OUTPUT -o eth0 -p udp -d 192.168.20.254 --dport 67:68 --sport 67:68 -j ACCEPT -m comment --comment "requete dhcp"

        # Autoriser loopback
        iptables -A INPUT -i lo -j ACCEPT
        iptables -A OUTPUT -o lo -j ACCEPT
        # DNS In/Out (Pour accepter les résolutions de nom)
        iptables -t filter -A OUTPUT -o eth0 -p tcp --dport 53 -j ACCEPT -m comment --comment "tcp4 dns"
        iptables -t filter -A INPUT  -i eth0 -p tcp --sport 53 --dport $up_ports -m state --state ESTABLISHED,RELATED -j ACCEPT

        iptables -t filter -A OUTPUT -o eth0 -p udp --dport 53 -j ACCEPT -m comment --comment "udp4 dns"
        iptables -t filter -A INPUT  -i eth0 -p udp --sport 53 --dport $up_ports -m state --state ESTABLISHED,RELATED -j ACCEPT

        # client didiwiki 
        #iptables -t filter -A OUTPUT -o eth0 -s $v4ip001 -d $v4ip002 -p tcp --dport 8000 -j ACCEPT -m comment --comment "client didiwiki"
        #iptables -t filter -A INPUT  -i eth0 -s $v4ip002 -p tcp --sport 8000 --dport $up_ports -m state --state ESTABLISHED,RELATED -j ACCEPT

        # client pop3 courier 
        iptables -t filter -A OUTPUT -o eth0 -s $v4ip001 -p tcp --dport 110 -j ACCEPT -m comment --comment "client pop"
        iptables -t filter -A INPUT  -i eth0 -p tcp --sport 110 --dport $up_ports -m state --state ESTABLISHED,RELATED -j ACCEPT

        # client http
        iptables -t filter -A OUTPUT -o eth0 -s $v4ip001 -p tcp --dport 80 -j ACCEPT -m comment --comment "client http"
        iptables -t filter -A INPUT  -i eth0 -p tcp --sport 80 --dport $up_ports -m state --state ESTABLISHED,RELATED -j ACCEPT
        #iptables -t filter -A OUTPUT -o eth0  -s $v4ip001 -p tcp --dport 8080 -j ACCEPT
        #iptables -t filter -A INPUT  -i eth0 -p tcp --sport 8080 --dport $up_ports -m state --state ESTABLISHED,RELATED -j ACCEPT

        # client https 
        iptables -t filter -A OUTPUT -o eth0 -s $v4ip001 -p tcp --dport 443 -j ACCEPT -m comment --comment "client https"
        iptables -t filter -A INPUT  -i eth0 -p tcp --sport 443 --dport $up_ports -m state --state ESTABLISHED,RELATED -j ACCEPT

        # client NTP 
        #iptables -t filter -A OUTPUT -o eth0 -p udp --dport 123 -j ACCEPT
;;
   ipv4jelogue)
        #On logue le reste
        iptables -A INPUT  -j LOG -m limit --limit 500/hour --log-level 6 --log-prefix "[in4-reject]"
        iptables -A OUTPUT -j LOG -m limit --limit 500/hour --log-level 6 --log-prefix "[out4-reject]"  
;;

   ipv4ssh)
        # client SSH 
        iptables -t filter -A OUTPUT -o eth0 -s $v4ip001 -d $v4ip002 -p tcp --dport 22 -j ACCEPT -m comment --comment "client ssh"
        iptables -t filter -A INPUT  -i eth0 -s $v4ip002 -p tcp --sport 22 --dport $up_ports -m state --state ESTABLISHED,RELATED -j ACCEPT

        # client SSH 
        iptables -t filter -A OUTPUT -o eth0 -s $v4ip001 -d $v4ipext001 -p tcp --dport 22 -j ACCEPT -m comment --comment "client ssh"
        iptables -t filter -A INPUT  -i eth0 -s $v4ipext001 -p tcp --sport 22 --dport $up_ports -m state --state ESTABLISHED,RELATED -j ACCEPT

;;
  startipv4ftp)
        # client ftp Autoriser les requetes FTP

        modprobe ip_conntrack_ftp
        #pour la connection ftp puisse s'etablir
        iptables -t filter -A INPUT  -i eth0 -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
        iptables -t filter -A OUTPUT -o eth0 -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT

        #connexion pour les données (en mode actif).
        iptables -t filter -A INPUT  -i eth0 -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
        iptables -t filter -A OUTPUT -o eth0 -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT 

        #la connexion pour les données (en mode passif).
        iptables -t filter -A INPUT  -i eth0 -p tcp --sport $up_ports --dport $up_ports -m state --state ESTABLISHED -j ACCEPT
        iptables -t filter -A OUTPUT -o eth0 -p tcp --sport $up_ports --dport $up_ports -m state --state ESTABLISHED,RELATED -j ACCEPT

  ;;
  
  *)
        echo "Usage: {start|stop|restart|status}"
        exit 1
  ;;
esac

exit 0

Lancer un process au demarage

pour Demarrer le daemon dans les niveaux 2,3,4,5 avec une priorité 99 et le stopper dans les niveaux 0,1,6 pour une priorite 20, il faut creer un script MonScripte (en s'inspirant de ceux presents dans /etc/init.d/) puis le rendre executable et le placer dans /etc/init.d/.

Il ne reste plus qu'a  creer les liens symboliques par :

update-rc.d MonScripte start 99 2 3 4 5 . stop 20 0 1 6 .

Pour desactiver le script (supprimer les modules) :

update-rc.d -f MonScripte remove

pour voir les ressources utilisées, utiliser les commandes

ps -A

ou

top

Grub

title           Debian GNU/Linux, kernel 2.6.26-1-686
root            (hd0,1)
kernel          /boot/vmlinuz-2.6.26-1-686 root=/dev/hda2 ro 
initrd          /boot/initrd.img-2.6.26-1-686

title           Other operating systems:
root

## This entry automatically added by the Debian installer for a non-linux OS on /dev/hda1
title           Mon os sur hda1
root            (hd0,0)
savedefault
makeactive
chainloader     +1

jeudi 9 avril 2009

Raid linux

detecter une panne

mdam --detail /dev/md0

ou

cat /proc/mdstat 

retirer un disque defectueux

mdadm --manage /dev/md1 --remove /dev/sdb1 

apres avoir

  • eteint la machine
  • enlevé le disque defectueux
  • installé un nouveau disque ....
  • lancer la commande
mdadm --manage /dev/md1 --add /dev/sdb1

si ca marche ...

mercredi 4 mars 2009

Test reseau

  • liste des peripheriques pci

# lspci

  • Pilote de la carte réseau

# dmesg | grep eth

  • information sur la carte reseau

# ethtool -i eth0
# ethtool eth0

  • afficher la configuration

# ifconfig -a

  • teste debit et fonctionnement: ifstat iftop iperf

lundi 1 septembre 2008

Linux - associer un nom specifique a une interface reseau

pour associer un nom specifique a une interface reseau, il faut spécifier les adresse mac dans le fichier /etc/iftab (si le fichier n'existe pas, il faut le creer)

  • eth0 mac 00:08:a1:40:8e:1a arp 1
  • wlan0 mac 00:10:22:40:82:f0 arp 1
  • eth0 = interface réseau filaire
  • wlan0 = interface réseau wifi



if faut aussi installer ifrename puis le lancer

voir la configuration dans: /etc/udev/rules.d/25-persistent-net.rules

configuration des domaines ou sous domaines avec apache

repertoire apache /etc/apache2/sites-available

liste des configurations des domaines ou sous domaines Activer le site

  • a2ensite default

Activer le mod ssl

  • a2enmod ssl

dns chez gandi

configuration routage ipv4 chez gandi:

  • www 10800 IN A aaa.bbb.ccc.ddd
  • sousdomaine 10800 IN A aaa.bbb.ccc.ddd
  • * 10800 IN A aaa.bbb.ccc.ddd

configuration routage ipv6 chez gandi:

  • www 10800 IN AAAA 2a01:e0b:1:33:220:61ff:fce7:5e34

adresse web en ipv6

acceder a une adresse web ipv6

Linux - acceder a une partition du type fat32

pour acceder a une partition du type fat32, en tant que non root, modifier le fichier fstab :

  • /dev/hdb2 /dos vfat rw,uid=10000,gid=10000 0 0

ou

  • /deb/hdb2 est la partition que l'on veut acceder
  • /dos est son point de montage
  • rw,uid=10000,gid=10000
  • rw est pour Read et Write
  • uid=10000 est le n° de l'utilisateur propriétaire en lecture et ecriture
  • gid=10000 est le n°du groupe qui aura les droits d'acces en lecture et ecriture

dimanche 31 août 2008

Linux - Changer l'ordre des disques

pour booter comme on veut, gérer l'ordre des disque, il suffit d'identifier les disques par leur uuid

  • ls -l /dev/disk/by-uuid/

Information sur une partition

  • blkid /dev/hda1

Exemple de fichier fstab

  • UUID=f0f68b8c-cf26-4c76-8a21-6a5c02c028dd / ext3 defaults,errors=remount-ro 0 1

Exemple pour grub

  • kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/2d781b26-0285-421a-b9d0-d4a0d3b55680