Advertisement
Guest User

firewall_start.ssh

a guest
Oct 16th, 2019
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.66 KB | None | 0 0
  1. #!/bin/sh -e
  2.  
  3. ### BEGIN INIT INFO
  4. # Provides: firewall-start
  5. # Required-Start: $network $remote_fs $syslog
  6. # Required-Stop: $network $remote_fs $syslog
  7. # Should-Start: network-manager
  8. # Should-Stop: network-manager
  9. # X-Start-Before: $x-display-manager gdm kdm xdm wdm ldm sdm nodm
  10. # X-Interactive: true
  11. # Default-Start: 2 3 4 5
  12. # Default-Stop: 0 1 6
  13. # Short-Description: Firewall service by Olivier
  14. # Description: This script will start the firewall rules
  15. ### END INIT INFO
  16.  
  17.  
  18. ################################################################################
  19. # Version d'Olivier du 20/07/2019
  20. ################################################################################
  21.  
  22. echo -n "Starting firewall.... "
  23.  
  24. PATH=/sbin:/bin:/usr/sbin:/usr/bin
  25.  
  26. SSH="22"
  27. ALT_SSH="24"
  28. DNS="53"
  29. SMTP="25"
  30. SMTPS="465"
  31. OPENVPN="80"
  32. OPENVPN1="443"
  33. OPENVPN2="1194"
  34.  
  35.  
  36. INET_NETWORK="193.48.143.0/24"
  37. PRIVATE_NETWORK="172.31.240.0/20"
  38. VPN_NETWORK="172.31.240.0/21"
  39. VPN_ENSEIGNANT="172.31.247.0/24"
  40.  
  41. ESX_NETWORK="172.31.248.0/24" #On y trouve ESX1-5 et tout le matériel Compellent
  42. ADMIN_NETWORK="172.31.251.0/24" #On y trouve les VMs d'administration comme le vCenter, le DSM, les FW...
  43. I1_NETWORK="172.31.252.0/24"
  44. I2_NETWORK="172.31.253.0/24"
  45. I3_NETWORK="172.31.254.0/24"
  46.  
  47. IP_FW_L1="172.31.251.28"
  48. IP_FW_L2="172.31.251.29"
  49. IP_FW_I1="172.31.251.30"
  50. IP_FW_I2="172.31.251.31"
  51. IP_FW_I3="172.31.251.32"
  52. IP_ERIDA="172.31.251.13"
  53.  
  54.  
  55.  
  56.  
  57. VPN_IFACE="tun0"
  58. INET_IFACE="ens160"
  59. LAN_IFACE="eno2"
  60. LAN_BA_IFACE="ens192"
  61. LAN_DE_IFACE="ens224"
  62.  
  63. IP_INET="193.48.143.86"
  64. IP_LAN="172.31.251.249"
  65. IP_VPN="172.31.240.1"
  66. IP_PARTOUT="0.0.0.0/0"
  67.  
  68. IP_VCENTER="172.31.248.17"
  69. IP_DELL="143.166.156.113"
  70.  
  71. LAN_ALL="192.168.0.0/16"
  72.  
  73.  
  74. ################################################################################
  75. # Le loopback
  76.  
  77. LO_IFACE="lo"
  78. LO_IP="127.0.0.1"
  79.  
  80. ################################################################################
  81. # Ou trouver iptables
  82.  
  83. IPTABLES="/sbin/iptables"
  84.  
  85. ################################################################################
  86. # 2. Module loading.
  87. ################################################################################
  88.  
  89. /sbin/depmod -a
  90.  
  91. /sbin/modprobe ip_tables
  92. /sbin/modprobe ip_conntrack
  93. /sbin/modprobe iptable_filter
  94. /sbin/modprobe iptable_mangle
  95. /sbin/modprobe iptable_nat
  96. /sbin/modprobe ipt_LOG
  97. /sbin/modprobe ipt_limit
  98. /sbin/modprobe ipt_state
  99.  
  100. ################################################################################
  101. # 3. /proc set up.
  102. ################################################################################
  103.  
  104. echo "0" > /proc/sys/net/ipv4/ip_forward
  105. echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
  106.  
  107. ################################################################################
  108. ################################################################################
  109. ################################################################################
  110. ################################################################################
  111. #
  112. # on remet tout à zéro
  113.  
  114.  
  115. $IPTABLES --flush
  116. $IPTABLES --delete-chain
  117. $IPTABLES --table nat --flush
  118.  
  119.  
  120. ########################################################################
  121. # Politique par defaut
  122. $IPTABLES -P INPUT ACCEPT
  123. $IPTABLES -P OUTPUT ACCEPT
  124. $IPTABLES -P FORWARD ACCEPT
  125.  
  126. # De nouvelles tables
  127. $IPTABLES -N LOG_DROP
  128.  
  129. $IPTABLES -A LOG_DROP -j LOG --log-prefix "DROP: " --log-level 6
  130. $IPTABLES -A LOG_DROP -j DROP
  131.  
  132. ##
  133. ########################################################################
  134.  
  135. ################################################################################
  136. ################################################################################
  137. # On loggue tous les premiers paquets et on laisse passer ce qui correspond
  138. # a une connexion déjà établie
  139. ################################################################################
  140. ################################################################################
  141.  
  142.  
  143.  
  144. $IPTABLES -A FORWARD -m state --state NEW -m limit --limit 1800/minute --limit-burst 3 -j LOG --log-prefix "NEWF: "
  145. $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
  146.  
  147.  
  148. $IPTABLES -A INPUT -m state --state NEW -m limit --limit 1800/minute --limit-burst 3 -j LOG --log-prefix "NEWI: "
  149. $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  150.  
  151. $IPTABLES -A OUTPUT -m state --state NEW -m limit --limit 1800/minute --limit-burst 3 -j LOG --log-prefix "NEWO: "
  152. $IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  153.  
  154. ################################################################################
  155. ## INPUT : accès au serveur
  156. ################################################################################
  157.  
  158.  
  159.  
  160. ################################################################################
  161. ## FORWARD
  162. ################################################################################
  163.  
  164.  
  165. #On laisse passer de vCenter -> DELL
  166. # On laisse passer tout ce qui vient de l'intérieur et du VPN
  167. $IPTABLES -A FORWARD -m state --state NEW -i $LAN_BA_IFACE -j ACCEPT
  168. $IPTABLES -A FORWARD -m state --state NEW -i $LAN_DE_IFACE -j ACCEPT
  169.  
  170.  
  171. ################################################################################
  172. ## POSTROUTING -> MASQUERADE vers Internet
  173. ################################################################################
  174.  
  175. #
  176. # On masquerade tout ce qui vient du 172.31.240.0 (donc VPN et INSIDE)
  177. # Il faudra sans doute réduire afin de forcer à passer par les FW de I1/....
  178.  
  179. $IPTABLES -t nat -A POSTROUTING -s $LAN_ALL -o $INET_IFACE -j MASQUERADE
  180.  
  181. ################################################################################
  182. #
  183. # Bad TCP Packets (2/12/05)
  184. $IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j LOG_DROP
  185.  
  186. # Block tcp packets that have no tcp flags set.
  187. $IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -j LOG_DROP
  188.  
  189. # Block tcp packets that have all tcp flags set (xmas tree)
  190. $IPTABLES -A INPUT -p tcp --tcp-flags ALL ALL -j LOG_DROP
  191.  
  192. #Block netbios from outside
  193.  
  194. $IPTABLES -A INPUT -i $INET_IFACE -p tcp -m multiport --dports netbios-ns,netbios-dgm,netbios-ssn,microsoft-ds,bootps,bootpc -j DROP
  195. $IPTABLES -A INPUT -i $INET_IFACE -p udp -m multiport --dports netbios-ns,netbios-dgm,netbios-ssn,microsoft-ds,bootps,bootpc -j DROP
  196.  
  197. ################################################################################
  198. # Et on LOG_DROP tout le reste
  199. ################################################################################
  200.  
  201. $IPTABLES -A INPUT -j LOG_DROP
  202. $IPTABLES -A FORWARD -j LOG_DROP
  203. #On accepte tout en output
  204.  
  205. ################################################################################
  206. # Terminé
  207. ################################################################################
  208.  
  209. echo "1" > /proc/sys/net/ipv4/ip_forward
  210. echo "... Firewall started."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement