# TP Firewall / IPSEC
## Firewall
```shell=
IP_DMZ=192.168.1.1/24
IP_INT=192.168.2.1/24
IF_DMZ=enp1s0f0
IF_INT=enp1s0f1
IP_L=127.0.0.1
modprobe ip_conntrack
modprobe ip_conntrack_ftp
iptables -F
iptables -X
iptables -P FORWARD DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
# Ingress egress
iptables -t filter -A FORWARD -o $IF_DMZ -s $IP_DMZ -j DROP
iptables -t filter -A FORWARD -o $IF_INT -s $IP_INT -j DROP
# Limitation a 5/s
iptables -t filter -A INPUT -p icmp -mlimit --limit 5/s -j ACCEPT
iptables -t filter -A INPUT -p icmp -j DROP
# Regles stateless
#iptables -t filter -A FORWARD -o $IF_DMZ -i $IF_INT -s $IP_INT -d $IP_DMZ -p tcp --dport 8080 -j ACCEPT
#iptables -t filter -A FORWARD -i $IF_DMZ -o $IF_INT -d $IP_INT -s $IP_DMZ -p tcp --sport 8080 -j ACCEPT
# Regles stateful port 8080 (80)
iptables -t filter -A FORWARD -o $IF_DMZ -i $IF_INT -s $IP_INT -d $IP_DMZ -p tcp --dport 8080 --syn -m state --state NEW -j ACCEPT
# Regles stateful port 4433 (443)
iptables -t filter -A FORWARD -o $IF_DMZ -i $IF_INT -s $IP_INT -d $IP_DMZ -p tcp --dport 4433 --syn -m state --state NEW -j ACCEPT
# Regles stateful port SMTP (2525)
iptables -t filter -A FORWARD -o $IF_DMZ -i $IF_INT -s $IP_INT -d $IP_DMZ -p tcp --dport 2525 --syn -m state --state NEW -j ACCEPT
iptables -t filter -A FORWARD -i $IF_DMZ -o $IF_INT -d $IP_INT -s $IP_DMZ -p tcp --dport 2525 --syn -m state --state NEW -j ACCEPT
# Regles port DNS (5353)
iptables -t filter -A FORWARD -o $IF_DMZ -i $IF_INT -s $IP_INT -d $IP_DMZ -p tcp --dport 5353 --syn -m state --state NEW -j ACCEPT
iptables -t filter -A FORWARD -o $IF_DMZ -i $IF_INT -s $IP_INT -d $IP_DMZ -p udp --dport 5353 -j ACCEPT
iptables -t filter -A FORWARD -i $IF_DMZ -o $IF_INT -d $IP_INT -s $IP_DMZ -p udp --sport 5353 -j ACCEPT
# Regles ping
iptables -t filter -A FORWARD -o $IF_DMZ -i $IF_INT -s $IP_INT -d $IP_DMZ -p icmp -m state --state NEW -j ACCEPT
# Regle ssh interne -> routeur
iptables -t filter -A INPUT -i $IF_INT -s $IP_INT -p tcp --dport 22 -m state --state NEW -j ACCEPT
# Regles established et related
iptables -t filter -A FORWARD -m state --state ESTABLISHED -j ACCEPT
iptables -t filter -A FORWARD -m state --state RELATED -j ACCEPT
iptables -t filter -A INPUT -m state --state ESTABLISHED -j ACCEPT
iptables -t filter -A INPUT -m state --state RELATED -j ACCEPT
iptables -t filter -A OUTPUT -m state --state ESTABLISHED -j ACCEPT
iptables -t filter -A OUTPUT -m state --state RELATED -j ACCEPT
```
voir [fiche](https://notes.ar-lacroix.fr/s/gb3BiwoGB)
## IPSEC