SHARE
TWEET

firewall_start.ssh

a guest Oct 16th, 2019 76 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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."
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top