stefanoxjx
21-01-2005, 09:31
Mi sono fatto un serverino con debian che mi fa da router e firewall e poi farà anche altre funzioni non ancora implementate.
Il serverino in questione ha 2 schede di rete.
Sotto trovate lo script che configura il mio firewall e router, ma volevo sapere se secondo voi mi conviene configurare il firewall in modo che gestisca separatemente le due schede di rete o se va bene anche com'è.
Grazie.
Ecco gli script:
----------------------------------------------------------------------------------------------------
server:/etc/scripts# more firewall.sh
#!/bin/bash
# Policy di default delle catene
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# Accetta tutti i pacchetti in input e output dalla rete
iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT
# Accetto tutti i pacchetti che derivano da connessioni che io stesso ho iniziato
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Accetto tutti i paccheti in ingresso per le connessioni che vengono generate dall'interno
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Apro la porta
# ssh
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
# www
iptables -A INPUT -p tcp --dport www -j ACCEPT
# smtp
iptables -A INPUT -p tcp --dport smtp -j ACCEPT
# Loggo tutto quello che NON deriva da connessioni che io ho instaurato
# a livello 7 (debug) del syslog. Questo significa, per esempio in Debian, che i pacchetti
# bloccati verranno visualizzati in /var/log/syslog.
iptables -A INPUT -j LOG --log-level 7 --log-prefix "Blocked Packet: "
------------------------------------------------------------------------------------------------------
server:/etc/scripts# more router.sh
#!/bin/bash
EXTERNAL=eth0
INTERNAL=eth1
iptables="/usr/sbin/iptables"
# Blocca il forward fino a quando non vengono stabilite tutte le regole.
echo '0' > /proc/sys/net/ipv4/ip_forward
# Carica i moduli necessari
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe iptable_nat
modprobe ipt_MASQUERADE
# Attiva il nat (routing)
iptables -t nat -A POSTROUTING -o $EXTERNAL -j MASQUERADE
iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
# Forwarda tutti i pacchetti inerenti alla nostra rete locale
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
# Forwarda i pacchetti destinati alla porte 4661-4662 per il pc 192.168.0.253
# iptables -t nat -A PREROUTING -i $EXTERNAL -p tcp --dport 4661 -j DNAT --to-destination 192.168.0.1:4661
# iptables -t nat -A PREROUTING -i $EXTERNAL -p tcp --dport 4662 -j DNAT --to-destination 192.168.0.1:4662
# iptables -A FORWARD -i $EXTERNAL -p tcp --dport 4661 -j ACCEPT
# iptables -A FORWARD -i $EXTERNAL -p tcp --dport 4662 -j ACCEPT
iptables -A FORWARD -j DROP
# Attiva il forward
echo '1' > /proc/sys/net/ipv4/ip_forward
Il serverino in questione ha 2 schede di rete.
Sotto trovate lo script che configura il mio firewall e router, ma volevo sapere se secondo voi mi conviene configurare il firewall in modo che gestisca separatemente le due schede di rete o se va bene anche com'è.
Grazie.
Ecco gli script:
----------------------------------------------------------------------------------------------------
server:/etc/scripts# more firewall.sh
#!/bin/bash
# Policy di default delle catene
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# Accetta tutti i pacchetti in input e output dalla rete
iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT
# Accetto tutti i pacchetti che derivano da connessioni che io stesso ho iniziato
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Accetto tutti i paccheti in ingresso per le connessioni che vengono generate dall'interno
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Apro la porta
# ssh
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
# www
iptables -A INPUT -p tcp --dport www -j ACCEPT
# smtp
iptables -A INPUT -p tcp --dport smtp -j ACCEPT
# Loggo tutto quello che NON deriva da connessioni che io ho instaurato
# a livello 7 (debug) del syslog. Questo significa, per esempio in Debian, che i pacchetti
# bloccati verranno visualizzati in /var/log/syslog.
iptables -A INPUT -j LOG --log-level 7 --log-prefix "Blocked Packet: "
------------------------------------------------------------------------------------------------------
server:/etc/scripts# more router.sh
#!/bin/bash
EXTERNAL=eth0
INTERNAL=eth1
iptables="/usr/sbin/iptables"
# Blocca il forward fino a quando non vengono stabilite tutte le regole.
echo '0' > /proc/sys/net/ipv4/ip_forward
# Carica i moduli necessari
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe iptable_nat
modprobe ipt_MASQUERADE
# Attiva il nat (routing)
iptables -t nat -A POSTROUTING -o $EXTERNAL -j MASQUERADE
iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
# Forwarda tutti i pacchetti inerenti alla nostra rete locale
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
# Forwarda i pacchetti destinati alla porte 4661-4662 per il pc 192.168.0.253
# iptables -t nat -A PREROUTING -i $EXTERNAL -p tcp --dport 4661 -j DNAT --to-destination 192.168.0.1:4661
# iptables -t nat -A PREROUTING -i $EXTERNAL -p tcp --dport 4662 -j DNAT --to-destination 192.168.0.1:4662
# iptables -A FORWARD -i $EXTERNAL -p tcp --dport 4661 -j ACCEPT
# iptables -A FORWARD -i $EXTERNAL -p tcp --dport 4662 -j ACCEPT
iptables -A FORWARD -j DROP
# Attiva il forward
echo '1' > /proc/sys/net/ipv4/ip_forward