652 |
richard |
1 |
#!/bin/sh
|
2538 |
tom.houday |
2 |
#
|
826 |
franck |
3 |
# $Id: alcasar-iptables-local.sh 2854 2020-07-20 22:08:05Z rexy $
|
2538 |
tom.houday |
4 |
#
|
|
|
5 |
# Custom rules for ALCASAR firewall
|
|
|
6 |
#
|
|
|
7 |
# Examples:
|
|
|
8 |
# - Local MAC addresses filtering (MAC are in '/usr/local/etc/alcasar-iptables-local-mac-filtered'. Format : aa:09:23:2f:4d:ee)
|
|
|
9 |
# - allow ICMP from an Internet IP address (Admin_from) to EXTIF
|
|
|
10 |
# - allow SMTP from aLCASAR to an Internet server (SMTP_IP)
|
|
|
11 |
# - PAT rules from Internet
|
|
|
12 |
# - Deny access to protected networks from internal LAN
|
|
|
13 |
# - Allow managers to access ACC from the external network
|
|
|
14 |
# This script inherit of alcasar-iptables.sh variables : $INTIF, $EXTIF, $IPTABLES, etc
|
2740 |
rexy |
15 |
# !!Beware, run the script "alcasar-iptables.sh" after changing this file.
|
2538 |
tom.houday |
16 |
|
|
|
17 |
# Local MAC addresses filtering (MAC are in '/usr/local/etc/alcasar-iptables-local-mac-filtered'. Format : aa:09:23:2f:4d:ee)
|
1829 |
richard |
18 |
if [ -s /usr/local/etc/alcasar-iptables-local-mac-filtered ]; then
|
2547 |
tom.houday |
19 |
while read mac_line
|
|
|
20 |
do
|
|
|
21 |
ip_on=`echo $mac_line|cut -b1`
|
|
|
22 |
if [ $ip_on != "#" ]
|
|
|
23 |
then
|
|
|
24 |
mac_filtered=`echo $mac_line|cut -d" " -f1`
|
|
|
25 |
echo "MAC filtered = $mac_filtered"
|
|
|
26 |
$IPTABLES -A FORWARD -i $INTIF -m mac --mac-source $mac_filtered -j NFLOG --nflog-group 1 --nflog-prefix "$mac_filtered -- Filt_DROP"
|
|
|
27 |
$IPTABLES -A FORWARD -i $INTIF -p tcp -m mac --mac-source $mac_filtered -j DROP
|
|
|
28 |
$IPTABLES -A FORWARD -i $INTIF -p udp -m mac --mac-source $mac_filtered -j DROP
|
|
|
29 |
$IPTABLES -A FORWARD -i $INTIF -m mac --mac-source $mac_filtered -j DROP
|
|
|
30 |
fi
|
|
|
31 |
done < /usr/local/etc/alcasar-iptables-local-mac-filtered
|
1522 |
franck |
32 |
fi
|
652 |
richard |
33 |
|
2854 |
rexy |
34 |
# On autorise le ping (echo & request) (ICMP N°0 & 8) en provenance d'Internet vers ALCASAR
|
|
|
35 |
# Allow ping (echo & request) (ICMP N°0 & 8) from Internet
|
2538 |
tom.houday |
36 |
#$IPTABLES -A INPUT -i $EXTIF -s $Admin_from_IP -p icmp --icmp-type 8 -j ACCEPT
|
652 |
richard |
37 |
#$IPTABLES -A OUTPUT -o $EXTIF -d $Admin_from_IP -p icmp --icmp-type 0 -j ACCEPT
|
|
|
38 |
|
2854 |
rexy |
39 |
# On autorise ALCASAR a accéder à un serveur MAIL local (envoie de rapports, alertes, etc.)
|
|
|
40 |
# Allow ALCASAR to conect to a local mail server (send reports, alerts, etc.)
|
2621 |
tom.houday |
41 |
#SMTP_IP='192.168.111.5' # IP of mail server
|
|
|
42 |
#SMTP_PORT=587 # port of mail server (25 for SMTP ; 587 for STARTTLS ; 465 for SMTPS)
|
|
|
43 |
#$IPTABLES -A OUTPUT -p tcp -d $SMTP_IP --dport $SMTP_PORT -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
|
|
|
44 |
#$IPTABLES -A INPUT -p tcp -s $SMTP_IP --sport $SMTP_PORT -m conntrack --ctstate ESTABLISHED -j ACCEPT
|
652 |
richard |
45 |
|
2854 |
rexy |
46 |
# On autorise l'accès SSH depuis Internet (port 11222) vers un equipement du LAN (port 22). On réalise donc un "PAT" (Port Adresse Translation)
|
|
|
47 |
# Allow PAT (Port Adresse Translation) from INTERNET (port 11222) in order to connect to a LAN equipment on port 22 (SSH)
|
2645 |
rexy |
48 |
# example for the external UDP-TCP port 11222 which is redirected to the internal IP 192.168.182.10 on port 22
|
|
|
49 |
#$IPTABLES -A PREROUTING -i $EXTIF -t nat -p tcp -d $PUBLIC_IP --dport 11222 -j DNAT --to 192.168.182.10:22
|
|
|
50 |
#$IPTABLES -A PREROUTING -i $EXTIF -t nat -p udp -d $PUBLIC_IP --dport 11222 -j DNAT --to 192.168.182.10:22
|
|
|
51 |
#$IPTABLES -A FORWARD -p tcp -d 192.168.182.10 --dport 22 -j ACCEPT
|
2652 |
tom.houday |
52 |
#$IPTABLES -A FORWARD -p udp -d 192.168.182.10 --dport 22 -j ACCEPT
|
652 |
richard |
53 |
|
2538 |
tom.houday |
54 |
# Deny access to protected networks from internal LAN
|
|
|
55 |
#protectedNetworks='10.0.0.0/8,172.16.0.0/12,192.168.0.0/16' # (RFC 1918)
|
2547 |
tom.houday |
56 |
#[ -n "$TUNIF" ] && consultationIF=$TUNIF || consultationIF=$INTIF
|
|
|
57 |
#$IPTABLES -A FORWARD -i $consultationIF -d $protectedNetworks -j DROP
|
|
|
58 |
#$IPTABLES -A FORWARD -o $consultationIF -s $protectedNetworks -j DROP
|
2538 |
tom.houday |
59 |
|
|
|
60 |
# Allow managers to access ACC from the external network
|
|
|
61 |
#managerIPs='192.168.111.10'
|
|
|
62 |
#externalPort='34443'
|
2716 |
tom.houday |
63 |
#$IPTABLES -t mangle -A PREROUTING -i $EXTIF -s $managerIPs -p tcp -d $PUBLIC_IP --dport $externalPort -j MARK --set-mark 100
|
2538 |
tom.houday |
64 |
#$IPTABLES -t nat -A PREROUTING -i $EXTIF -s $managerIPs -p tcp -d $PUBLIC_IP --dport $externalPort -j DNAT --to $PRIVATE_IP:443
|
2716 |
tom.houday |
65 |
#$IPTABLES -A INPUT -i $EXTIF -s $managerIPs -p tcp --dport 443 -m mark --mark 100 -j ACCEPT
|