Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh -e
- ### BEGIN INIT INFO
- # Provides: firewall-start
- # Required-Start: $network $remote_fs $syslog
- # Required-Stop: $network $remote_fs $syslog
- # Should-Start: network-manager
- # Should-Stop: network-manager
- # X-Start-Before: $x-display-manager gdm kdm xdm wdm ldm sdm nodm
- # X-Interactive: true
- # Default-Start: 2 3 4 5
- # Default-Stop: 0 1 6
- # Short-Description: Firewall service by Olivier
- # Description: This script will start the firewall rules
- ### END INIT INFO
- ################################################################################
- # Version d'Olivier du 20/07/2019
- ################################################################################
- echo -n "Starting firewall.... "
- PATH=/sbin:/bin:/usr/sbin:/usr/bin
- SSH="22"
- ALT_SSH="24"
- DNS="53"
- SMTP="25"
- SMTPS="465"
- OPENVPN="80"
- OPENVPN1="443"
- OPENVPN2="1194"
- INET_NETWORK="193.48.143.0/24"
- PRIVATE_NETWORK="172.31.240.0/20"
- VPN_NETWORK="172.31.240.0/21"
- VPN_ENSEIGNANT="172.31.247.0/24"
- ESX_NETWORK="172.31.248.0/24" #On y trouve ESX1-5 et tout le matériel Compellent
- ADMIN_NETWORK="172.31.251.0/24" #On y trouve les VMs d'administration comme le vCenter, le DSM, les FW...
- I1_NETWORK="172.31.252.0/24"
- I2_NETWORK="172.31.253.0/24"
- I3_NETWORK="172.31.254.0/24"
- IP_FW_L1="172.31.251.28"
- IP_FW_L2="172.31.251.29"
- IP_FW_I1="172.31.251.30"
- IP_FW_I2="172.31.251.31"
- IP_FW_I3="172.31.251.32"
- IP_ERIDA="172.31.251.13"
- VPN_IFACE="tun0"
- INET_IFACE="ens160"
- LAN_IFACE="eno2"
- LAN_BA_IFACE="ens192"
- LAN_DE_IFACE="ens224"
- IP_INET="193.48.143.86"
- IP_LAN="172.31.251.249"
- IP_VPN="172.31.240.1"
- IP_PARTOUT="0.0.0.0/0"
- IP_VCENTER="172.31.248.17"
- IP_DELL="143.166.156.113"
- LAN_ALL="192.168.0.0/16"
- ################################################################################
- # Le loopback
- LO_IFACE="lo"
- LO_IP="127.0.0.1"
- ################################################################################
- # Ou trouver iptables
- IPTABLES="/sbin/iptables"
- ################################################################################
- # 2. Module loading.
- ################################################################################
- /sbin/depmod -a
- /sbin/modprobe ip_tables
- /sbin/modprobe ip_conntrack
- /sbin/modprobe iptable_filter
- /sbin/modprobe iptable_mangle
- /sbin/modprobe iptable_nat
- /sbin/modprobe ipt_LOG
- /sbin/modprobe ipt_limit
- /sbin/modprobe ipt_state
- ################################################################################
- # 3. /proc set up.
- ################################################################################
- echo "0" > /proc/sys/net/ipv4/ip_forward
- echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
- ################################################################################
- ################################################################################
- ################################################################################
- ################################################################################
- #
- # on remet tout à zéro
- $IPTABLES --flush
- $IPTABLES --delete-chain
- $IPTABLES --table nat --flush
- ########################################################################
- # Politique par defaut
- $IPTABLES -P INPUT ACCEPT
- $IPTABLES -P OUTPUT ACCEPT
- $IPTABLES -P FORWARD ACCEPT
- # De nouvelles tables
- $IPTABLES -N LOG_DROP
- $IPTABLES -A LOG_DROP -j LOG --log-prefix "DROP: " --log-level 6
- $IPTABLES -A LOG_DROP -j DROP
- ##
- ########################################################################
- ################################################################################
- ################################################################################
- # On loggue tous les premiers paquets et on laisse passer ce qui correspond
- # a une connexion déjà établie
- ################################################################################
- ################################################################################
- $IPTABLES -A FORWARD -m state --state NEW -m limit --limit 1800/minute --limit-burst 3 -j LOG --log-prefix "NEWF: "
- $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
- $IPTABLES -A INPUT -m state --state NEW -m limit --limit 1800/minute --limit-burst 3 -j LOG --log-prefix "NEWI: "
- $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
- $IPTABLES -A OUTPUT -m state --state NEW -m limit --limit 1800/minute --limit-burst 3 -j LOG --log-prefix "NEWO: "
- $IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
- ################################################################################
- ## INPUT : accès au serveur
- ################################################################################
- ################################################################################
- ## FORWARD
- ################################################################################
- #On laisse passer de vCenter -> DELL
- # On laisse passer tout ce qui vient de l'intérieur et du VPN
- $IPTABLES -A FORWARD -m state --state NEW -i $LAN_BA_IFACE -j ACCEPT
- $IPTABLES -A FORWARD -m state --state NEW -i $LAN_DE_IFACE -j ACCEPT
- ################################################################################
- ## POSTROUTING -> MASQUERADE vers Internet
- ################################################################################
- #
- # On masquerade tout ce qui vient du 172.31.240.0 (donc VPN et INSIDE)
- # Il faudra sans doute réduire afin de forcer à passer par les FW de I1/....
- $IPTABLES -t nat -A POSTROUTING -s $LAN_ALL -o $INET_IFACE -j MASQUERADE
- ################################################################################
- #
- # Bad TCP Packets (2/12/05)
- $IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j LOG_DROP
- # Block tcp packets that have no tcp flags set.
- $IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -j LOG_DROP
- # Block tcp packets that have all tcp flags set (xmas tree)
- $IPTABLES -A INPUT -p tcp --tcp-flags ALL ALL -j LOG_DROP
- #Block netbios from outside
- $IPTABLES -A INPUT -i $INET_IFACE -p tcp -m multiport --dports netbios-ns,netbios-dgm,netbios-ssn,microsoft-ds,bootps,bootpc -j DROP
- $IPTABLES -A INPUT -i $INET_IFACE -p udp -m multiport --dports netbios-ns,netbios-dgm,netbios-ssn,microsoft-ds,bootps,bootpc -j DROP
- ################################################################################
- # Et on LOG_DROP tout le reste
- ################################################################################
- $IPTABLES -A INPUT -j LOG_DROP
- $IPTABLES -A FORWARD -j LOG_DROP
- #On accepte tout en output
- ################################################################################
- # Terminé
- ################################################################################
- echo "1" > /proc/sys/net/ipv4/ip_forward
- echo "... Firewall started."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement