Posted by : Unknown Jumat, 26 Juli 2013

Shorewall

Shorewall adalah salah satu tools firewall pada linux yang berbasiskan iptables. Shorewall terdapat konsep “zone” yang memudahkan kita untuk menentukan policy firewall, daripada kita melakukan konfigurasi secara manual dengan iptables, sebelum kita mensetting shorewall lebih baiknya saya kasih mukadimah mengenai shorewall sebelumnya. Shorewall adalah sebuah tool firewall yang menggunakan IPTABLES sebagai pengeksekusi firewallnya. Dimana IPTABLES adalah tool firewall yang ada di Linux dan sudah di include kan ke kernel, jadi kalau kita nginstall Linux otomatis kita telah menginstall IPTABLES. Dengan IPTABLES saja sebenernya sudah cukup untuk membangun sebuah firewall, namun bila kita membangun firewall dari IPTABLES tanpa tool itu sama saja dengan menyiksa diri sendiri.
Dengan tool shorewall ini saya merasa dimanjakan dengan kemudahannya dalam membangun firewall. Kita cuma perlu menentukan aturan defaultnya lalu aturan khususnya juga pada masqueradingnya.
Shorewall juga dapat digunakan untuk loadbalancing, dan sangat mudah sekali dalam penggunaanya (baru baca, belum pernah nyoba saya).

Firewall di DEBIAN dengan Shorewall

Peringatan

Sebelum kita berkenalan dengan shorewall, perlu saya sampaikan disini, jika Anda ingin mencoba-coba mengkonfigurasi firewall, pastikan mesin yang Anda gunakan tidak berada di posisi yang jauh (susah Anda jangkau secara fisik). Kesalahan dalam mengkonfigurasi firewall bisa menyebabkan sistem Anda terkunci, dan tidak bisa diremote login dari jauh. Shorewall terdapat konsep “zone” yang memudahkan kita untuk menentukan policy firewall, daripada kite melakukan konfigurasi secara manual dengan iptables. Misalnya network anda adalah seperti gambar dibawah ini :




Instalasi Shorewall

maka untukmemudahkan kita, asumsikan saja ada 3 zona yang dapat di definisikan, yaitu :
1. LAN, yaitu jaringan lokal, kita definisikan sebagai zona lok
2. Internet, yaitu koneksi kita ke internet, kita definisikn sebagai zona net
3. Komputer Firewall kita secara otomatis bernama zona $FW

Berikut ini adalah step-by-step konfigurasi yang diterapkan
ini saya testing di Debian
sebelumnya ente kudu remove "ipchains" jika dah keinstal di mesin ente by running this command
# apt-get remove ipchains
setelah itu

1. Install shorewall dari repository terdekat

Code:
root@haris:~# apt-get install shorewall shorewall-doc

2. Kopi konfigurasi dari template yg ada

Code:
root@haris:~# cd /usr/share/doc/shorewall-common/default-config
root@haris:~# cp zones /etc/shorewall/
root@haris:~# cp interfaces /etc/shorewall/
root@haris:~# cp policy /etc/shorewall/
root@haris:~# cp rules /etc/shorewall/
3. Setting Shorewall sebagai berikut :

a. konfigurasi zona
Code:
root@haris:~# vim /etc/shorewall/zones
fw     firewall
lok ipv4
net ipv4

b. konfigurasi interface
Code:
root@haris:~# vim /etc/shorewall/interfaces
lok    eth0    detect    tcpflags,nosmurfs
net    eth1    detect    tcpflags,nosmurfs

c. konfigurasi policy
Code:
root@haris:~# vim /etc/shorewall/policy
$FW    all    ACCEPT
lok    $FW    DROP    info
lok    net    DROP    info
net    $FW    DROP    info
net    lok    DROP    info

d. konfigurasi rules

Code:
root@haris:~# vim /etc/shorewall/rules
ACCEPT    lok    $FW    tcp    80
ACCEPT    net    $FW    tcp    80
ACCEPT    lok    $FW    tcp    53
ACCEPT    lok    $FW    udp    53

4. Testing konfigurasi sebelum menjalankannya
Code:
root@haris:~# shorewall check
root@haris:~# shorewall start

5. Coba me-restart shorewall untuk memastikan tidak ada error

Code:
root@haris:~# shorewall restart
root@haris:~# shorewall safe-restart

6. Setting Shorewall agar automatis berjalan sewaktu booting
Code:
root@haris:~# vim /etc/default/shorewall
startup=1


Code:
shorewall
shorewall-nat
shorewall-accounting
shorewall-hosts
shorewall-interfaces
shorewall-routestopped
shorewall.conf
shorewall-masq
shorewall-policy
shorewall-rules
shorewall-zones






konfigurasi /etc/shorewall/shorewall.conf

Di konfigurasi ini, isi saja yang diperlukan, yang sebagian sudah terisi biasanya tidak perlu di ubah.

Lengkapnya…
Code:
###############################################################################
#               S T A R T U P   E N A B L E D
###############################################################################
#agar aktif saat startup

STARTUP_ENABLED=YES

###############################################################################
#                      V E R B O S I T Y
###############################################################################
#menampilkan proses

VERBOSITY=1

###############################################################################
#                              C O M P I L E R
#      (setting this to 'perl' requires installation of Shorewall-perl)
###############################################################################
#karena tidak ada yang perlu di compile, kosongkan saja

SHOREWALL_COMPILER=

###############################################################################
#                   L O G G I N G
###############################################################################
#bagian ini, tidak ada yang diubah, periksa dulu tapinyaaa

LOGFILE=/var/log/messages

LOGFORMAT="Shorewall:%s:%s:"

LOGTAGONLY=No

LOGRATE=

LOGBURST=

LOGALLNEW=

BLACKLIST_LOGLEVEL=

MACLIST_LOG_LEVEL=info

TCP_FLAGS_LOG_LEVEL=info

RFC1918_LOG_LEVEL=info

SMURF_LOG_LEVEL=info

LOG_MARTIANS=No

###############################################################################
#    L O C A T I O N      O F    F I L E S   A N D   D I R E C T O R I E S
###############################################################################
#pada bagian ini, yang sebelah kanan setelah "=" berisi letak direktori file
#sebelah kiri yang sudah terisi tidak perlu di ubah, yang belum dan kalo akan
#digunakan cari dulu filenya, kemudian copy paste letak direktorinya.

#IPTABLES kosongkan, karena kita sudah jadikan shorewall sebagai firewall

IPTABLES=

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin

SHOREWALL_SHELL=/bin/sh

SUBSYSLOCK=/var/lock/subsys/shorewall

MODULESDIR=/lib/modules/2.6.24-19-server/kernel/net/netfilter

CONFIG_PATH=/etc/shorewall:/usr/share/shorewall

RESTOREFILE=

IPSECFILE=zones

LOCKFILE=

###############################################################################
#        D E F A U L T   A C T I O N S / M A C R O S
###############################################################################
#tak perlu ada yang diubah

DROP_DEFAULT="Drop"
REJECT_DEFAULT="Reject"
ACCEPT_DEFAULT="none"
QUEUE_DEFAULT="none"

###############################################################################
#                        R S H / R C P  C O M M A N D S
###############################################################################
#ini juga... biarkan

RSH_COMMAND='ssh ${root}@${system} ${command}'
RCP_COMMAND='scp ${files} ${root}@${system}:${destination}'

###############################################################################
#            F I R E W A L L      O P T I O N S
###############################################################################
# konfigurasi yang biasanya digunakan...

IP_FORWARDING=On

ADD_IP_ALIASES=Yes

ADD_SNAT_ALIASES=No

RETAIN_ALIASES=No

TC_ENABLED=Internal

TC_EXPERT=No

CLEAR_TC=Yes

MARK_IN_FORWARD_CHAIN=No

CLAMPMSS=No

ROUTE_FILTER=No

DETECT_DNAT_IPADDRS=No

MUTEX_TIMEOUT=60

ADMINISABSENTMINDED=Yes

BLACKLISTNEWONLY=Yes

DELAYBLACKLISTLOAD=No

MODULE_SUFFIX=

DISABLE_IPV6=Yes

BRIDGING=No

DYNAMIC_ZONES=No

PKTTYPE=Yes

RFC1918_STRICT=No

MACLIST_TABLE=filter

MACLIST_TTL=

SAVE_IPSETS=No

MAPOLDACTIONS=No

FASTACCEPT=No

IMPLICIT_CONTINUE=Yes

HIGH_ROUTE_MARKS=No

USE_ACTIONS=Yes

OPTIMIZE=1

EXPORTPARAMS=No

###############################################################################
#            P A C K E T   D I S P O S I T I O N
###############################################################################
#yang ini juga nggak perlu ada yang diubah

BLACKLIST_DISPOSITION=DROP

MACLIST_DISPOSITION=REJECT

TCP_FLAGS_DISPOSITION=DROP

#LAST LINE -- DO NOT REMOVE

konfigurasi /etc/shorewall/policy

Bagian ini bersifat umum, berlaku untuk keseluruhan
Code:
#pada baris pertama berarti dari firewall atau dari net yang berarti dari
#server kita menuju keluar atau ke net di ACCEPT semua... masa di larang!?

#pada baris kedua yang masuk dari net ke firewall kita di DROP semua

#pada baris ketiga saya tambahkan agar jika dari jaringan masuk ke server kita
#DROP dulu semuanya
###############################################################################
#SOURCE        DEST        POLICY        LOG LEVEL    LIMIT:BURST
$FW        net        ACCEPT
net        $FW        DROP        info
net        all        DROP        info
# The FOLLOWING POLICY MUST BE LAST
all        all        REJECT        info
#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE

konfigurasi /etc/shorewall/rules

Bagian ini merupakan pengecualian dari kongigurasi policy
Code:
#######################################################################################
#ACTION       SOURCE    DEST          PROTO     DEST    SOURCE
ORIGINAL   RATE        USER/  MARK
#                         PORT       PORT(S)
DEST       LIMIT     GROUP

# Reject Ping from the "bad" net zone.. and prevent your log from being flooded..

Ping/ACCEPT    net        $FW

# Permit all ICMP traffic FROM the firewall TO the net zone

#pada baris pertama berarti membolehkan semua dari server keluar atau ke net melalui icmp
#biar bisa ssh,treceroute,...etc kemana-manaaa

#pada baris kedua berarti kita membolehkan user dari net melakukan koneksi melalui tcp
#tepatnya port 22 ya... biar server kita bisa di kendalikan dengan ssh dari komp lain,
#setujui saja

#pada baris ketiga berarti memperbolehkan server kita diakses lewat browser, yaitu port 80
#karena kebetulan firewall saya pasang di webserver^^

ACCEPT        $FW        net        icmp
ACCEPT        net        $FW        tcp       22
ACCEPT          all             $FW             tcp       80

#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE

konfigurasi /etc/shorewall/interfaces

Code:
# nggak perlu ada yang diubah
###############################################################################
#ZONE    INTERFACE    BROADCAST    OPTIONS
net     eth0            detect          dhcp,tcpflags,logmartians,nosmurfs
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE

Klo udah,.tinggal start lagi shorewallnya
Code:
/etc/init.d/shorewall start

Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © Kumpulan Info Penting Dari Teknik Jaringan - Skyblue - Powered by Blogger - Designed by Johanes Djogan -