Poniższy przykład to pliki konfiguracyjne z 3 sieciówkami który
ma robić za mały routerek (do każdej siecówki jeden klient). Mam nadzieję,
że opis ten zachęci co poniektórych do używania shorewalla, który na
marinesie jest bardzo potężnym i bardzo wydajnym narzędziem. Poniższy
przykłąd nie pokazuje nawet połowy jego możliwości.... Aha kolejnośc w
jakiej wypisane są pliki nie jest przypadkowa, ma ona pomóc zrozumieć
logikę tego narzędzia. Zaczyamy:
Kod:
[/etc/network/interfaces]
================================
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
network <adres_sieci_twojego ISP>
address <twoj_adres_w sieci_ISP>
broadcast <adres_broudcast_sieci_twojego_ISP>
netmask <maska_sieci_twojego_ISP>
geteway <domyślna_brama_dla_ciebie_w_sieci_twojego_ISP>
auto eth1
iface eth1 inet static
network 192.168.0.0
address 192.168.0.1
###client address 192.168.0.2
broadcast 192.168.0.3
netmask 255.255.255.252
auto eth2
iface eth2 inet static
network 192.168.0.4
address 192.168.0.5
###client address 192.168.0.6
broadcast 192.168.0.7
netmask 255.255.255.252
auto eth3
iface eth3 inet static
network 192.168.0.8
address 192.168.0.9
###client address 192.168.0.10
broadcast 192.168.0.11
netmask 255.255.255.252
Kod:
[/etc/shorewall/shorewall.conf]
=======================
LOGFILE=/var/log/messages
LOGFORMAT="Shorewall:%s:%s:"
LOGTAGONLY=No
LOGRATE=10/minute
LOGBURST=5
LOGALLNEW=
BLACKLIST_LOGLEVEL=
LOGNEWNOTSYN=info
MACLIST_LOG_LEVEL=info
TCP_FLAGS_LOG_LEVEL=info
RFC1918_LOG_LEVEL=info
SMURF_LOG_LEVEL=info
BOGON_LOG_LEVEL=info
LOG_MARTIANS=No
IPTABLES=
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin
SHOREWALL_SHELL=/bin/sh
SUBSYSLOCK=""
STATEDIR=/var/lib/shorewall
MODULESDIR=
CONFIG_PATH=/etc/shorewall:/usr/share/shorewall
RESTOREFILE=
FW=fw
IP_FORWARDING=On
ADD_IP_ALIASES=Yes
ADD_SNAT_ALIASES=Yes
RETAIN_ALIASES=Yes
TC_ENABLED=No
CLEAR_TC=Yes
MARK_IN_FORWARD_CHAIN=No
CLAMPMSS=No
ROUTE_FILTER=Yes
DETECT_DNAT_IPADDRS=Yes
MUTEX_TIMEOUT=60
NEWNOTSYN=Yes
ADMINISABSENTMINDED=Yes
BLACKLISTNEWONLY=Yes
DELAYBLACKLISTLOAD=Yes
MODULE_SUFFIX=
DISABLE_IPV6=No
BRIDGING=No
DYNAMIC_ZONES=No
PKTTYPE=Yes
DROPINVALID=No
RFC1918_STRICT=No
MACLIST_TTL=
BLACKLIST_DISPOSITION=DROP
MACLIST_DISPOSITION=REJECT
TCP_FLAGS_DISPOSITION=DROP
Kod:
[/etc/shorewall/modules]
==================
loadmodule ip_tables
loadmodule iptable_filter
loadmodule ip_conntrack
loadmodule ip_conntrack_ftp
loadmodule ip_conntrack_tftp
loadmodule ip_conntrack_irc
loadmodule iptable_nat
loadmodule ip_nat_ftp
loadmodule ip_nat_tftp
loadmodule ip_nat_irc
loadmodule ip_queue
Kod:
[/etc/shorewall/interfaces]
===================
- eth0 - -
- eth1 - detectnets,dhcp,tcpflags,nosmurfs
- eth2 - detectnets,dhcp,tcpflags,nosmurfs
- eth2 - detectnets,dhcp,tcpflags,nosmurfs
Kod:
[/etc/shorewall/hosts]
================
net eth0:0.0.0.0/0
loc eth1:192.168.0.0/30
loc eth2:192.168.0.4/30
loc eth3:192.168.0.8/30
Kod:
[/etc/shorewall/zones]
================
net Internet Internet
loc LAN LocalAreaNetwork
Kod:
[/etc/shorewall/policy]
================
loc all ACCEPT -
fw all ACCEPT -
net all DROP -
all all REJECT -
Kod:
[/etc/shorewall/masq]
================
eth0 eth1
eth0 eth2
eth0 eth3
Kod:
[/etc/shorewall/rules]
================
(tu na razie nie wpisałem nic, bo nie wiem czy będzisz chiał coś wystawiać
na zewnątrz, pusty plik jednak utwórz)
Jak masz wszystko to piszemy z roota:
Kod:
# shorewall check
(...)
Configuration Validated
Notice: The 'check' command is provided to catch
obvious errors in a Shorewall configuration.
It is not designed to catch all possible errors
so please don't submit problem reports about
error conditions that 'check' doesn't find
# shorewall start
Powinno banglać.
Jak chcemy aby shorewall startował wraz z systemem w
pliku /etc/default/shorewall zmieniamy "startup=0" na "startup=1".
Mam nadzieję, że się podoba opis.
Pozdrawionka