iptables.sh
3.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#!/bin/sh
#########################################################
# Création : Sebastien Le Moal <sebastien@calexium.com>
# Fonction : Autorisé calexium à se connecter au port 22 et 8006 du serveur proxmox
# Rediriger le reste du trafic vers la VM OPNSense
# Date : Janvier 2018
#########################################################
# ---------
# VARIABLES
# ---------
# Bridge Wan Public
ProxIntPubWAN="eth0" ## Proxmox bridge IP Public
ProxIpPubWAN="163.172.94.226" ## Proxmox IP Public
# Bridge Wan OPNSense
ProxIntOpnsWAN="vmbr1" ## Proxmox bridge WAN OPNsense
NetVmWan="10.10.9.0/24" ## Reseau entre proxmox et OPNsense
ProxIpVmWan="10.10.9.1" ## Proxmox IP du Reseau entre proxmox et OPNsense
OpnsIPVmWan="10.10.9.2" ## OPNsense wan ip adresse
# Bridge LAN OPNSense
#IntVMLan="vmbr2" ## Proxmox bridge IP Public
#NetVmLan="10.10.10.0/24" ## Réseau VMNET
# Network/Mmask of VpnNET
#VpnNET="10.20.0.0/24"
# ---------------------
# Pré config
# ---------------------
### Supprime les routes existantes
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
### désactiver IPv6
ip6tables -P INPUT DROP
ip6tables -P OUTPUT DROP
ip6tables -P FORWARD DROP
### Bloquer tout
iptables -P INPUT DROP
iptables -P FORWARD DROP
### On crée des chaines personnalisées pour éviter la répétition des options.
iptables -N TCP
iptables -N UDP
iptables -A INPUT -p udp -m conntrack --ctstate NEW -j UDP # UDP = ACCEPT / SEND TO THIS CHAIN
iptables -A INPUT -p tcp --syn -m conntrack --ctstate NEW -j TCP # TCP = ACCEPT / SEND TO THIS CHAIN
# ------------
# Regle de base
# ------------
iptables -A INPUT -i lo -j ACCEPT # permet les communications from/to de l’interface locale
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT # préserve les connections déjà actives
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT # préserve les connections déjà actives
iptables -A INPUT -p icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT #autorise la réponse au ping.
# --------------------
# Regle pour Proxmox bridge IP Public ( ProxIntPubWAN)
# --------------------
### Regle entrante
iptables -A TCP -i $ProxIntPubWAN -d $ProxIpPubWAN -p tcp --dport 22 -s 109.190.201.236/32 -j ACCEPT # Accepte acces SSH server venant de calexium Avon
iptables -A TCP -i $ProxIntPubWAN -d $ProxIpPubWAN -p tcp --dport 8006 -s 109.190.201.236/32 -j ACCEPT # Accepte acces Proxmox WebUI venant de calexium Avon
### Regle de Routage
iptables -A FORWARD -i $ProxIntPubWAN -d $OpnsIPVmWan -o $ProxIntOpnsWAN -j ACCEPT # Autoriser le transfert tcp vers l'interface WAN OPNsense
iptables -A FORWARD -i $ProxIntOpnsWAN -s $NetVmWan -j ACCEPT # Autoriser le transfert de requête à partir du réseau local
### Natter le trafic sortant versInternet (SNAT)
iptables -A POSTROUTING -t nat -s $ProxIpVmWan -j SNAT --to-source $ProxIpPubWAN
iptables -A POSTROUTING -t nat -s $OpnsIPVmWan -j SNAT --to-source $ProxIpPubWAN
### Rediriger le trafic venant d'Internet (NAT)
iptables -A PREROUTING -t nat -i $ProxIntPubWAN -d $ProxIpPubWAN -p tcp --match multiport ! --dports 22,8006 -j DNAT --to $OpnsIPVmWan # tout tcp vers WAN OPNsense WAN sauf le 22 et 8006
# ----------------------
# Regles pour bridge WAN OPNsense (PrxVmWanVBR)
# ----------------------
### Regle entrante
iptables -A TCP -i $ProxIntOpnsWAN -d $ProxIpVmWan -p tcp --dport 22 -s 109.190.201.236/32 -j ACCEPT # Accepte acces SSH server venant de calexium Avon
iptables -A TCP -i $ProxIntOpnsWAN -d $ProxIpVmWan -p tcp --dport 8006 -s 109.190.201.236/32 -j ACCEPT # Accepte acces Proxmox WebUI venant de calexium Avon
# -----------------------
# Regle pour Proxmox bridge LAN VM (PrxVmPrivVBR)
# -----------------------
# NO RULES => Tout est bloqué !!!