#!/bin/sh
# description: Firewall
IPT=/sbin/iptables
stop() {
$IPT -F INPUT
$IPT -F LOG_DROP
$IPT -X LOG_DROP
}
start() {
# logs - drop
# tout n'est pas necessaire, c'est juste le principe
$IPT -N LOG_DROP
$IPT -A LOG_DROP -j LOG -p tcp --dport 3306 --log-prefix '[IPTABLES DROP MYSQL] : '
$IPT -A LOG_DROP -j LOG -p tcp --dport 22 --log-prefix '[IPTABLES DROP SSH] : '
$IPT -A LOG_DROP -j LOG -p tcp --dport 10000 --log-prefix '[IPTABLES DROP WEBMIN] : '
$IPT -A LOG_DROP -j LOG -p tcp --dport 5060 --log-prefix '[IPTABLES DROP SIP] : '
$IPT -A LOG_DROP -j LOG -p tcp --dport 5038 --log-prefix '[IPTABLES DROP ASTMAN] : '
$IPT -A LOG_DROP -j LOG -p tcp --log-prefix '[DROP] : '
$IPT -A LOG_DROP -j REJECT
# host a bannir
# $IPT -A INPUT -i eth0 -p tcp --source x.x.x.x -j DROP
$IPT -A INPUT -i eth0 -p all --source 194.51.85.76 -j DROP
$IPT -A INPUT -i eth0 -p all --source ccc-hanau.de -j DROP
$IPT -A INPUT -i eth0 -p all --source sinister.wzw.tum.de -j DROP
$IPT -A INPUT -i eth0 -p all --source formularfetischisten.de -j DROP
$IPT -A INPUT -i eth0 -p all --source TRADERHOUSE-DS.datagate.net.uk -j DROP
# facultatif
# on autorise tout ce qui vient du subnet, a adapter pour vous.
# iptables -A INPUT -s 192.168.10.0/24 -j ACCEPT
$IPT -A INPUT -s MONNDD -j ACCEPT
iptables -A INPUT -s IPFIXEDUNAUTREPC -j ACCEPT
$IPT -A INPUT -i eth0 -p all --source MONNDD -j ACCEPT
#asterisk
# supprime erreur dans log asterisk
$IPT -A INPUT -p udp -m udp --dport 5060 -m string --string "Cirpack KeepAlive Packet" --algo bm -j DROP
# pour le port 5060 on autorise uniquement certaines ips
# Tout le subnet, a dapter pour VOTRE config
$IPT -A INPUT -s 192.168.2.0/24 -i eth0 -p udp --dport 5060 -j ACCEPT
#on autorise certains fournisseurs sip
#on ajoutera aussi ses propres ip externes
#$IPT -A INPUT -s sip.ovh.net -i eth0 -p udp --dport 5060 -j ACCEPT
#$IPT -A INPUT -s sip3.voip-centrex.net -i eth0 -p udp --dport 5060 -j ACCEPT
#$IPT -A INPUT -s sip.intervoip.com -i eth0 -p udp --dport 5060 -j ACCEPT
#$IPT -A INPUT -s sip.a.lomacom.com -i eth0 -p udp --dport 5060 -j ACCEPT
#$IPT -A INPUT -s freephonie.net -i eth0 -p udp --dport 5060 -j ACCEPT
$IPT -A INPUT -s ippi.fr -i eth0 -p udp --dport 5060 -j ACCEPT
$IPT -A INPUT -i eth0 -p tcp --dport 5060 -j LOG_DROP
$IPT -A INPUT -i eth0 -p udp --dport 5060 -j LOG_DROP
$IPT -A INPUT -s MONDNNDD -i eth0 -p udp --dport 22 -j ACCEPT
$IPT -A INPUT -s MONNDD -i eth0 -p tcp --dport 22 -j ACCEPT
$IPT -A INPUT -i eth0 -p udp -m udp --dport 10000:11000 -j ACCEPT
# Le reste est fonction de votre config, juste pour info
# si vous autorisez le subnetlocal, juste ssh est necessaire normalement.
# On le mettra sur un autre port de preference.
# on pourra limiter l'acces ssh a certaines ips avec la meme methode que ci dessus
$IPT -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -i eth0 -p tcp --dport 25 -j ACCEPT
$IPT -A INPUT -i eth0 -p tcp --dport 53 -j ACCEPT
$IPT -A INPUT -i eth0 -p udp --dport 53 -j ACCEPT
$IPT -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
$IPT -A INPUT -i eth0 -p tcp --dport 110 -j DROP
$IPT -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
$IPT -A INPUT -i eth0 -p tcp --dport 143 -j DROP
$IPT -A INPUT -i eth0 -p tcp --dport 4025 -j DROP
$IPT -A INPUT -i eth0 -p tcp --dport 21 -j DROP
$IPT -A INPUT -i eth0 -p udp --dport 21 -j DROP
$IPT -A INPUT -i eth0 -p tcp --dport 22 -j DROP
$IPT -A INPUT -i eth0 -p udp --dport 22 -j DROP
$IPT -A INPUT -i eth0 -p tcp --dport 1194 -j DROP
$IPT -A INPUT -i eth0 -p udp --dport 1194 -j DROP
$IPT -A INPUT -i eth0 -p tcp --dport 5038 -j DROP
$IPT -A INPUT -i eth0 -p udp --dport 5038 -j DROP
#ping
$IPT -A INPUT -i eth0 -p icmp -j DROP
# on rejette tout les autres
$IPT -A INPUT -i eth0 -j LOG_DROP
}
case "$1" in
start)
start
echo "FireWall Telisk -- Start OK";
exit 0
;;
stop)
stop
echo "FireWall Telisk -- Stop OK";
exit 0
;;
restart)
stop
start
echo "FireWall Telisk -- Restart OK";
exit 0
;;
*)
echo "Usage: /etc/init.d/firewall {start|stop|restart}"
exit 1
;;
esac