« Utilisateur:Sv0t » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 84 : | Ligne 84 : | ||
start_fw() | start_fw() | ||
{ | { | ||
# On efface toutes les regles existantes | |||
/sbin/ip6tables -F | |||
# On supprime d'eventuelles regles personnelles | |||
/sbin/ip6tables -X | |||
# Mise en place des regles par defaut (on refuse tout par default) | |||
/sbin/ip6tables -P INPUT DROP | |||
/sbin/ip6tables -P FORWARD DROP | |||
/sbin/ip6tables -P OUTPUT DROP | |||
# On accepte les connexions sur la boucle locale (sur lo == 127.0.0.1) | |||
/sbin/ip6tables -A INPUT -i lo -j ACCEPT | |||
/sbin/ip6tables -A OUTPUT -o lo -j ACCEPT | |||
# On accepte la sortie de certain protocoles (commenter les lignes selon le besoin) | |||
/sbin/ip6tables -A INPUT -i $IF_RESEAU -p UDP --dport domain -j ACCEPT # Port 53 (Windows udp) | |||
/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport domain -j ACCEPT # Port 53 (Windows tcp) | |||
#/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport netbios-ssn -j ACCEPT # Port 139 (smb or windows share) | |||
#/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport microsoft-ds -j ACCEPT # Port 445 (smb or windows share) | |||
/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport http -j ACCEPT # Port 80 (Http) | |||
/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport https -j ACCEPT # Port 443 (Https) | |||
/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport imap -j ACCEPT # Port 143 (Imap) | |||
/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport imaps -j ACCEPT # Port 993 (Imaps) | |||
/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport pop3 -j ACCEPT # Port 110 (Pop3) | |||
/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport smtp -j ACCEPT # Port 25 (Smtp) | |||
/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport smtps -j ACCEPT # Port 465 (Smtps) | |||
/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport ftp-data -j ACCEPT # Port 20 (Ftp Data) | |||
/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport ftp -j ACCEPT # Port 21 (Ftp) | |||
/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport ssh -j ACCEPT # Port 22 (Ssh) | |||
#/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport nntp -j ACCEPT # Port 119 (News groups) | |||
#/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport ldap -j ACCEPT # Port 389 (ldap) | |||
#/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport ldaps -j ACCEPT # Port 636 (ldaps) | |||
#/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport 1863 -j ACCEPT # Port 1863 (Msn messenger) | |||
/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport 5222 -j ACCEPT # Port 5222 (Jabber) | |||
#/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport 6881:6889 -j ACCEPT # Port 6881 a 6889 (Bittorrent) | |||
# On autorise les connexions deja etablies ou relatives a une autre connexion a sortir | |||
/sbin/ip6tables -A OUTPUT -o $IF_RESEAU --match state --state NEW,ESTABLISHED,RELATED -j ACCEPT | |||
# On autorise les connexions deja etablies a entrer | |||
/sbin/ip6tables -A INPUT -i $IF_RESEAU --match state --state ESTABLISHED,RELATED -j ACCEPT | |||
# On autorise le PC a faire des ping sur des IP exterieur | |||
/sbin/ip6tables -A OUTPUT -p icmpv6 -j ACCEPT | |||
# On interdit les PC a l'exterieur de faire des ping | |||
/sbin/ip6tables -A INPUT -p icmpv6 -j ACCEPT | |||
# Ecriture de la politique de log | |||
# Ici on affiche [ip6tables DROP] dans /var/log/message a chaque paquet rejette par ip6tables | |||
/sbin/ip6tables -N LOG_DROP | |||
/sbin/ip6tables -A LOG_DROP -j LOG --log-level 1 --log-prefix '[ip6tables DROP]:' | |||
/sbin/ip6tables -A LOG_DROP -j DROP | |||
# On met en place les logs en entree, sortie et routage selon la politique LOG_DROP ecrit avant | |||
/sbin/ip6tables -A FORWARD -j LOG_DROP | |||
/sbin/ip6tables -A INPUT -j LOG_DROP | |||
/sbin/ip6tables -A OUTPUT -j LOG_DROP | |||
# Chargement du module de gestion des connexion state (autorisation des connexions deja etablies a passer le firewall) | |||
/sbin/modprobe ip_conntrack | |||
# Chargement du module special pour palier au probleme de connexion FTP passive | |||
/sbin/modprobe ip_conntrack_ftp | |||
} | } | ||
stop_fw() | stop_fw() | ||
Ligne 168 : | Ligne 168 : | ||
case "$1" in | case "$1" in | ||
start) | |||
start_fw | |||
echo "firewall started" | |||
;; | |||
stop) | |||
stop_fw | |||
echo "firewall stopped" | |||
;; | |||
restart) | |||
stop_fw | |||
echo "firewall stopped" | |||
start_fw | |||
echo "firewall restarted" | |||
;; | |||
*) | |||
echo "usage: $0 [start|stop|restart]" >&2 | |||
exit 1 | |||
esac | esac |
Version du 2 mai 2012 à 21:41
Liste des commandes linux
a
a2p alsamixer apt-cache apt-key aseqdump a2ps alsaucm apt-cdrom apt-listbugs aseqnet a2ps-lpr-wrapper amidi apt-config apt-listchanges aspell aconnect amixer apt-extracttemplates apt-mark aspell-import acpi amuFormat.sh apt-ftparchive apt-sortpkgs at acpi_fakekey ant apt-get ar atobm acpi_listen aot-compile apt-internal-solver arch atq addpart aplay aptitude arecord atrm addr2line aplaymidi aptitude-create-state-bundle arecordmidi awk alias appres aptitude-curses arm2hpdl alsaloop apropos aptitude-run-state-bundle as
b
base64 bdftruncate bluez-test-adapter bluez-test-serial bsd-mailx bzcmp bzip2recover basename bg bluez-test-audio bluez-test-service bsd-write bzdiff bzless bash bind bluez-test-device bluez-test-telephony buildhash bzegrep bzmore bashbug bitmap bluez-test-discovery bmtoa builtin bzexe batch bluetooth-agent bluez-test-input brasero bunzip2 bzfgrep bc bluez-simple-agent bluez-test-manager break busybox bzgrep bdftopcf bluez-simple-service bluez-test-network bsd-from bzcat bzip2
c
c2050 case chardet ckbcomp column coproc c_rehash c2ph cat chattr ck-history comm corelist crontab c89 catchsegv chcon ck-launch-session command cp csplit c89-gcc catman chfn ck-list-sessions command2foo2lava-pjl cpan ctstat c99 cc chgrp cksum compgen cpan2dist cups-calibrate c99-gcc ccsm chkdupexe clear compiz cpanp cupstestdsc cal cd chmod clear_console compiz-decorator cpanp-run-perl cupstestppd calendar cd-create-profile chown cmp complete cpio cut calibrate_ppa cd-fix-profile chrt codepage compopt cpp cvlc caller cdrdao chsh col compose cpp-4.6 cvt cancel c++filt chvt colcrt composeglyphs cpufreq-aperf captoinfo chacl ciptool colormgr config_data cpufreq-info card chage cjpeg colrm continue cpufreq-set
d
dash db5.1_verify debconf-copydb dh_dkms dirs dpkg-divert date dbus-cleanup-sockets debconf-escape dh_installxmlcatalogs discover-config dpkg-maintscript-helper db5.1_archive dbus-daemon debconf-set-selections dh_nativejava disown dpkg-query db5.1_checkpoint dbus-launch debconf-show dh_numpy djpeg dpkg-ruby db5.1_deadlock dbus-monitor declare dh_pycentral dmesg dpkg-split db5.1_dump dbus-send defmt-c dh_pysupport dm-tool dpkg-statoverride db5.1_hotbackup dbus-uuidgen defmt-sh dh_python2 dnsdomainname dpkg-trigger db5.1_load dc delpart diff do dprofpp db5.1_log_verify dd dequote diff3 domainname du db5.1_printlog ddate desktop-file-install dig done dump-gnash db5.1_recover deallocvt desktop-file-validate dir dotlockfile dumphint db5.1_replicate debconf df dircolors dpkg dumpkeys db5.1_stat debconf-apt-progress dfutool script directomatic dpkg-checkdeps dvd+rw-format db5.1_upgrade debconf-communicate dh_bash-completion dirname dpkg-deb dvipdf
script-ip6tables
- !/bin/bash
- -----------------------------------------------------------------------#
- #
- Description : Firewal with ip6tables #
- OS : Linux #
- Requires : ip6tables - ip_conntrack* - modprobe #
- Licence : GPL #
- Version : 0.2.0 #
- Author : Benoît Pourre <benoitpourre AT rt74.eu> #
- Web site : http://www.rt74.eu/ #
- #
- -----------------------------------------------------------------------#
- Variables
export IF_RESEAU="eth0"
start_fw() {
- On efface toutes les regles existantes
/sbin/ip6tables -F
- On supprime d'eventuelles regles personnelles
/sbin/ip6tables -X
- Mise en place des regles par defaut (on refuse tout par default)
/sbin/ip6tables -P INPUT DROP /sbin/ip6tables -P FORWARD DROP /sbin/ip6tables -P OUTPUT DROP
- On accepte les connexions sur la boucle locale (sur lo == 127.0.0.1)
/sbin/ip6tables -A INPUT -i lo -j ACCEPT /sbin/ip6tables -A OUTPUT -o lo -j ACCEPT
- On accepte la sortie de certain protocoles (commenter les lignes selon le besoin)
/sbin/ip6tables -A INPUT -i $IF_RESEAU -p UDP --dport domain -j ACCEPT # Port 53 (Windows udp) /sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport domain -j ACCEPT # Port 53 (Windows tcp)
- /sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport netbios-ssn -j ACCEPT # Port 139 (smb or windows share)
- /sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport microsoft-ds -j ACCEPT # Port 445 (smb or windows share)
/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport http -j ACCEPT # Port 80 (Http) /sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport https -j ACCEPT # Port 443 (Https) /sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport imap -j ACCEPT # Port 143 (Imap) /sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport imaps -j ACCEPT # Port 993 (Imaps) /sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport pop3 -j ACCEPT # Port 110 (Pop3) /sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport smtp -j ACCEPT # Port 25 (Smtp) /sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport smtps -j ACCEPT # Port 465 (Smtps) /sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport ftp-data -j ACCEPT # Port 20 (Ftp Data) /sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport ftp -j ACCEPT # Port 21 (Ftp) /sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport ssh -j ACCEPT # Port 22 (Ssh)
- /sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport nntp -j ACCEPT # Port 119 (News groups)
- /sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport ldap -j ACCEPT # Port 389 (ldap)
- /sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport ldaps -j ACCEPT # Port 636 (ldaps)
- /sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport 1863 -j ACCEPT # Port 1863 (Msn messenger)
/sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport 5222 -j ACCEPT # Port 5222 (Jabber)
- /sbin/ip6tables -A INPUT -i $IF_RESEAU -p TCP --dport 6881:6889 -j ACCEPT # Port 6881 a 6889 (Bittorrent)
- On autorise les connexions deja etablies ou relatives a une autre connexion a sortir
/sbin/ip6tables -A OUTPUT -o $IF_RESEAU --match state --state NEW,ESTABLISHED,RELATED -j ACCEPT
- On autorise les connexions deja etablies a entrer
/sbin/ip6tables -A INPUT -i $IF_RESEAU --match state --state ESTABLISHED,RELATED -j ACCEPT
- On autorise le PC a faire des ping sur des IP exterieur
/sbin/ip6tables -A OUTPUT -p icmpv6 -j ACCEPT
- On interdit les PC a l'exterieur de faire des ping
/sbin/ip6tables -A INPUT -p icmpv6 -j ACCEPT
- Ecriture de la politique de log
- Ici on affiche [ip6tables DROP] dans /var/log/message a chaque paquet rejette par ip6tables
/sbin/ip6tables -N LOG_DROP /sbin/ip6tables -A LOG_DROP -j LOG --log-level 1 --log-prefix '[ip6tables DROP]:' /sbin/ip6tables -A LOG_DROP -j DROP
- On met en place les logs en entree, sortie et routage selon la politique LOG_DROP ecrit avant
/sbin/ip6tables -A FORWARD -j LOG_DROP /sbin/ip6tables -A INPUT -j LOG_DROP /sbin/ip6tables -A OUTPUT -j LOG_DROP
- Chargement du module de gestion des connexion state (autorisation des connexions deja etablies a passer le firewall)
/sbin/modprobe ip_conntrack
- Chargement du module special pour palier au probleme de connexion FTP passive
/sbin/modprobe ip_conntrack_ftp } stop_fw() {
- Vidage des règles pour toutes les tables :
ip6tables -F
- permet l’effacement de toutes les chaînes qui ne sont pas par défaut dans la
- table filter notamment LOG_ACCEPT
ip6tables -X
- On remet la politique par défaut à ACCEPT dans les trois tables par défaut
ip6tables -P INPUT ACCEPT ip6tables -P OUTPUT ACCEPT ip6tables -P FORWARD ACCEPT
}
case "$1" in start) start_fw echo "firewall started"
stop) stop_fw echo "firewall stopped"
restart) stop_fw echo "firewall stopped" start_fw echo "firewall restarted"
- )
echo "usage: $0 [start|stop|restart]" >&2 exit 1
esac exit 0
- -----------------------------------------------------------------------#