This is an old revision of the document!
Table of Contents
Pengantar
Sejarah Lahirnya OpenBSD
Apa saja yang disertakan dengan OpenBSD
OpenBSD menyertakan applikasi-aplikasi yang umumnya diperlukan di setiap rilisnya. Diantaranya adalah:
- X.org
- GCC (dengan peningkatan kemampuan)
- Perl 5.8.6 (dengan peningkatan kemampuan)
- Apache 1.3.29 (peningkatan kemampuan dari segi security)
- OpenSSL 0.9.7d (dengan peningkatan kemampuan)
- Groff 1.15
- Sendmail 8.13.3 mail server, with libmilter.
- BIND 9.3.0 DNS server. (dengan peningkatan kemampuan)
- Lynx 2.8.5rel.2 (peningkatan kemampuan)
- Sudo v1.6.8p6, allowing users to run individual commands as root.
- Ncurses 5.2.
- KAME IPv6.
- Heimdal 0.6rc1 (dengan peningkatan kemampuan)
- Arla 0.35.7
- OpenSSH 4.1
- gdb 6.1
Install
File ISO OpenBSD
Pertanyaan yang sangat sering muncul bagi yang baru kenal dengan OpenBSD adalah : dimana sih ngedownload file .iso nya OpenBSD ? kok di official dan mirror-mirror FTP nya gak ada. Jawabannya adalah : Memang tidak ada !. OpenBSD tidak menyediakan file .iso seperti yang disediakan oleh Linux, FreeBSD, NetBSD dan lainnya Untuk lebih lengkapnya silahkan baca http://www.openbsd.org/faq/faq3.html#3.1.2
Meskipun begitu, ada beberapa pihak yang membuat file ISO OpenBSD dan tersedia untuk di download di internet. Tentu saja file-file ISO tersebut bukan berasal dari OpenBSD. Saya pribadi tidak menganjurkan untuk menggunakan file yang beredar di internet ini. Kenapa ? Alasan yang masuk akal adalah security. Apa jadinya kalau distribusi OpenBSD yang anda download iso nya itu sudah dimodifikasi oleh pihak-pihak tertentu untuk tujuan tertentu pula.
Membuat file ISO OpenBSD tidak terlalu sulit. Berikut adalah langkah-langkah (dengan menggunakan Windows) untuk membuat file ISO OpenBSD 3.7 untuk arsitektur mesin i386 (cara yang sama bisa digunakan untuk membuat file iso untuk arsitektur mesin yang lain, seperti alpha, amd64, dsb):
- Buat direktori dengan susunan berikut , misal OpenBSD/3.7/i386
- Downloadlah semua isi ftp://ftp.openbsd.org/pub/OpenBSD/3.7/i386 ke direktori i386 yang ada di komputer anda (yang baru saja dibuat di atas). Jangan lupa untuk juga mendownload file-file
src.tar.gzsrcsys.tar.gzports.tar.gz. File-file tersebut merupakan file yang berisi source code dan ports OpenBSD, yang akan dapat menghemat waktu dan bandwith dalam proses update ataupun membuat kernel yang baru. Susunan direktorinya kira-kira sebagai berikut :3.7/ i386/ bsd baseXX.tgz etcXX.tgz manXX.tgz compXX.tgz gameXX.tgz miscXX.tgz xbaseXX.tgz xbaseXX.tgz xservXX.tgz xshareXX.tgz ports.tar.gz src.tar.gz srcsys.tar.gz HARDWARE PACKAGES PORTS README TRANS.TBL song37.mp3
- Kemudian baru kita membuat iso nya dengan menggunakan program mkisofs (yang dapat di download di http://lupalagi.com) dengan perintah detail nya sebagai berikut :
c:\isotools\mkisofs -v -r -T -J -V "OpenBSD-Current" -b C:/OpenBSD/3.7/i386/cdrom37.fs -c boot.catalog -o C:/OpenBSD/OpenBSD-37.iso -x C:/OpenBSD/OpenBSD-37.iso C:/OpenBSD/.
- Tunggulah sampai proses pembuatan file ISO tersebut selesai, kalau sudah, file iso OpenBSD yang anda buat C:\OpenBSD\OpenBSD-37.iso sudah dapat anda burn ke CD
Catatan : Cara yang sama dapat digunakan untuk membuat DVD-ROM OpenBSD dengan menyertakan semua file-file packages yang tersedia. Total ukurannya sekitar 2.5 GB.
Instalasi
Proses instalasi OpenBSD, termasuk proses instalasi yang paling cepat dibandingkan dengan Operating System yang lainnya. Perlu dicatat, bahwa instalasi OpenBSD tidak sekedar instalasi kernel.
Multiboot
Windows → OpenBSD → FreeBSD atau Linux
- Jika anda ingin dualboot antara Windows dan OpenBSD, installah Windows terlebih dahulu. Baik itu Windows 9x ataupun Windows NT-based (termasuk Windows 2000, Windows XP, Windows 2003)
- Pastikan ukuran partisi pertama (C:\>) anda tidak lebih besar dari 7 GB. Karena partisi
rootdari OpenBSD, dimana kernel berada, harus bisa diakses di bagian partisi pertama dari hardisk yang ukurannya < 8 GB. - Contoh kasus ini adalah instalasi Windows XP (dengan ukuran partisi pertama - C:\> sebesar 7 GB) + OpenBSD di dalam hardisk yang berukuran 20 GB.
Available disks are: sd0 sd1 wd0. Which one is the root disk? (or done) [done] wd0 Do you want to use *all* of wd0 for OpenBSD? [no]
Setting dan Konfigurasi
/etc/rc.conf
Post-Install
Berikut ini adalah hal-hal yang dilakukan sesudah proses Instalasi berhasil dilakukan.
man afterboot
Bagi yang baru menggunakan OpenBSD disarankan untuk memaca manual afterboot
- Mengirimkan file dmesg (file yang berisi informasi hardware yang kita gunakan untuk menjalankan OpenBSD) dapat berguna bagi developer OpenBSD, baik untuk statistik maupun bugs yang mungkin ditemukan pada hardware-hardware tertentu.
$ dmesg | mail -s "subject mesin" [email protected]
- Bagaimana caranya mengakses CDROM ? merupakan salah satu pertanyaan yang sering muncul bagi yang baru menggunakan OpenBSD.
# mkdir /mnt/cdrom; mount -t cd9660 /dev/cd0a /mnt/cdrom
- Install source code OpenBSD
# cd /usr/src ; tar -xzvpf /mnt/cdrom/src.tar.gz # cd /usr/src ; tar -xzvpf /mnt/cdrom/srcsys.tar.gz
- Install Ports
# cd /usr ; tar -xzvpf ports.tar.gz
sudo
Dianjurkan untuk tidak menggunakan user root secara langsung untuk memantain server. Kenapa ? Terlalu beresiko dan berbahaya, baik langsung maupun tidak langsung. Untuk itulah diciptakan sudo yang memungkinkan pendelegasian hak kepada user-user lain. Untuk mensetup sudo lakukan hal berikut ini :
# vi /etc/group wheel:root,monyet,buaya,kuya
#visudo %wheel ALL:ALL
Artinya memberikan akses superuser kepada user-user yang termasuk ke dalam group wheel melalui perintah sudo. Selanjutnya cara penggunaan sudo ini tidak terlalu sulit. Misalkan, buaya yang termasuk kedalam group wheel adalah user yang mempunyai hak setara dengan superuser. User buaya dapat melakukan perintah, katakanlah reboot melalui sudo ini dengan mengetikkan perintah $ sudo reboot Dengan contoh seperti di atas, sebelum perintah reboot dijalankan, user buaya terlebih dahulu harus mengisi password, yaitu password yang sama dengan password login buaya ke sistem.
System
Versi
- Siklus pengembangan OpenBSD
- CURRENT
Merupakan versi terakhir dari OpenBSD. Versi -CURRENT adalah versi OpenBSD yang digunakan oleh para developer untuk menguji fitur-fitur baru, atau juga oleh para Administrator yang ingin ikut mencoba atau menguji fitur-fitur baru yang disediakan oleh OpenBSD. Jika anda tidak bisa bahasa C, Perl, Shell, tidak ingin melakukan debug pada sistem anda jika terjadi sesuatu yang tidak diharapkan. Sebaiknya anda jauh-jauh dari versi ini. Selain itu proses update pada susunan source file OpenBSD hanya mendukung satu arah yaitu dari versi yang lama - ke versi yang baru. Dengan kata lain, anda akan mengalami banyak masalah ketika ingin mengembalikan susunan source file OpenBSD anda dari versi -CURRENT ke versi -STABLE ataupun -RELEASE.
- Snapshots
Sekali dalam beberapa hari, para developer me
- RELEASE
Tiap 6 bulan,
- STABLE
Versi ini merupakan kelanjutan dari versi -RELEASE yang menyediakan perbaikan-perbaikan (jika ada), dari sisi bugs dan keamanan.
Kernel
Dimana kernel OpenBSD disimpan ?
/bsd merupakan kernel atau jantung dari OpenBSD.
Ports dan Packages
Ada dua metode yang disediakan untuk memudahkan proses instalasi dan pengaturan applikasi/software/program di OpenBSD (juga varian BSD yang lainnya)
- Packages
Merupakan kumpulan file binari (hasil kompilasi) yang dibuat oleh para developer OpenBSD dengan menggunakan ports sebagai dasarnya. Jika anda membeli CD official OpenBSD, di dalamnya sudah disertakan package-package yang umumnya diperlukan. Biasanya ciri dari package di OpenBSD adalah file yang berekstensi .tgz. Perintah-perintah yang akan akrab sehubungan dengan package ini adalah
Install package
# pkg_add -v packagenya.tgz
Option -v di atas artinya verbose, dimana proses instalasi package akan ditampilkan, dianjurkan untuk selalu menggunakan option ini, untuk memantau prosess instalasi, dan pesan-pesan yang disertakan para developer di dalam package yang akan diinstall.
Informasi package yang sudah terinstall di sistem
# pkg_info
Delete package
# pkg_delete namapackage
Selain itu kita juga dapat menginstall packages secara langsung dari internet.
untuk csh, tcsh
# setenv PKG_PATH ftp://ftp.openbsd.org/pub/OpenBSD/3.6/packages/i386/
untuk ksh, bash
# export PKG_PATH ftp://ftp.openbsd.org/pub/OpenBSD/3.6/packages/i386/
Contoh penggunaan
# pkg_add ${PKG_PATH}gimp-1.2.5.tgz
Agar dapat menginstall GIMP, kita juga perlu menginstall package-package lain, yang diperlukan agar GIMP dapat berfungsi dengan baik. Dan karena kita sudah mendefenisikan dimana lokasi package kita dengan cara di atas, maka perintah pkg_add akan secara automatis mencari semua package-package lain yang diperlukan untuk menginstall GIMP
- Ports
# make search key=keyword # make fetch # make depends # make build # make install # make package # make clean
sekaligus
# make install clean
Update
Rata-rata pengguna BSD sudah cukup akrab untuk mengupdate sistem mereka dengan menggunakan cvsup. cvsup tidak tersedia di dalam base nya OpenBSD, untuk itu kita perlu menginstallnya terlebih dahulu.
# pkg_add -v ftp://ftp.openbsd.org/pub/OpenBSD/3.7/packages/i386/cvsup-16.1g-no_x11.tgz
Proses update yang akan kita lakukan dalam contoh ini adalah proses update dari versi -RELEASE ke versi -STABLE.
stable-supfile
# Defaults that apply to all the collections *default release=cvs *default delete use-rel-suffix *default umask=002 *default host=anoncvs3.usa.openbsd.org *default base=/usr *default prefix=/usr *default tag=OPENBSD_3_7 #Repository yang tersedia #OpenBSD-all OpenBSD-src OpenBSD-ports #OpenBSD-www #OpenBSD-x11 #OpenBSD-xf4
Perhatikan bagian *default tag=OPENBSD_3_7 diatas. Bagian inilah yang akan menginformasikan kepada cvsup server bahwa source tree anda akan diupdate ke versi 3.7-STABLE. Jika di dalam supfile anda terdapat *default tag=. , artinya anda akan mengupdate source tree anda ke versi -CURRENT, versi yang sangat-sangat tidak dianjurkan untuk mesin yang memerlukan stabilitas tinggi.
# cvsup -g -L 2 stable-supfile
Perintah diatas akan melakukan proses update terhadap source tree system dan ports anda. Lama tidaknya proses diatas, tergantung koneksi yang anda miliki.
Kernel
Aplikasi tidak ada yang perlu di update
# cd /usr/ports # ./out-of-date Make sure your ports tree is up-to-date Generating specs Checking new package names Recording old package names Showing discrepancies #
Aplikasi ada yang perlu di update, berdasarkan susunan ports yang baru saja di fetch
# ./out-of-date Make sure your ports tree is up-to-date Generating specs Checking new package names Recording old package names Showing discrepancies --- /tmp/outdated.dmwN17408/old Thu Aug 11 18:06:36 2005 +++ /tmp/outdated.dmwN17408/new Thu Aug 11 18:06:36 2005 @@ -1,9 +1,9 @@ -bash-3.0.16p0 -cvsup-16.1g-no_x11 -gettext-0.10.40p2 -libiconv-1.9.2 -lsof-4.69p0 -pico-4.9 -pine-4.62 -unzip-5.51 +bash-3.0.16p1 +cvsup-16.1h-no_x11 +gettext-0.10.40p3 +libiconv-1.9.2p1 +lsof-4.75 +pico-4.10 +pine-4.63 +unzip-5.52 zip-2.3p0 #
# cp /bsd /bsd.old # cd /usr/src/sys/arch/i386/conf
Tips : Untuk membuat kernel yang spesifik dengan hardware yang ada di box tersebut, selain dengan mengedit file /usr/src/sys/arch/i386/conf/GENERIC juga bisa menggunakan tool [http://http://www.sentia.org/projects/dmassage/|dmassage]] . Contoh penggunaan dmassage adalah sebagai berikut:
# cd /usr/src/sys/arch/i386/conf/ # dmassage -s GENERIC >KERNELKU
lanjutkan dengan
# config KERNELKU Don't forget to run "make depend" If config tells you to make clean, do so before running make depend. [make clean && make depend] # cd /usr/src/sys/arch/i386/compile/GENERIC/ # make depend && make # cp /usr/src/sys/arch/i386/compile/GENERIC/bsd /
Rebuilding the system
# cd /usr/src # find . -type l -name obj | xargs rm # make cleandir # rm -rf /usr/obj/* # make obj # cd /usr/src/etc # make DESTDIR=/ distrib-dirs # cd /usr/src # make build
Daemon
DNS
Bind/Named
djbdns
Sendmail
Apache / Webserver
Virtual Host
SSL
# openssl genrsa -out /etc/ssl/private/server.key 1024
# openssl req -new -key /etc/ssl/private/server.key -out /etc/ssl/private/server.csr
# openssl x509 -req -days 365 -in /etc/ssl/private/server.csr \
-signkey /etc/ssl/private/server.key -out /etc/ssl/server.crt
File rc.conf
httpd_flags="-DSSL" # for normal use: "" (or "-DSSL" after reading ssl(8))
Start Apache+SSL
# apachectl startssl
chroot
Persiapan direktori untuk chroot, dengan catatan, webserver ini disiapkan untuk support PHP dan Perl
# mkdir -p /var/www/var/db # mkdir -p /var/www/usr/bin # mkdir -p /var/www/usr/lib # mkdir -p /var/www/usr/libdata/perl5 # mkdir -p /var/www/usr/local/libdata/perl5 # mkdir -p /var/www/usr/libexec # mkdir -p /var/www/etc # mkdir -p /var/www/tmp # chmod a+w /var/www/tmp # chmod u+t /var/www/tmp
Perl
# cp /usr/bin/perl /var/www/usr/bin/ # cp /usr/lib/libc.so.34.1 /var/www/usr/lib/ # cp /usr/lib/libm.so.2.0 /var/www/usr/lib/ # cp /usr/lib/libperl.so.10.0 /var/www/usr/lib/ # cp /usr/lib/libutil.so.11.0 /var/www/usr/lib/ # cp /usr/libexec/ld.so /var/www/usr/libexec/ # cd /usr/libdata/perl5; tar cf - . | (cd /var/www/usr/libdata/perl5; tar xfBp -) # cd /usr/local/libdata/perl5; tar cf - . | (cd /var/www/usr/local/libdata/perl5; tar xfBp -)
Untuk memeriksa apakah chroot berjalan dengan baik, install MovableType
PHP
Di dalam susunan ports OpenBSD terdapat dua macam versi PHP, yaitu PHP4 dan PHP5, dan rata-rata aplikasi web yang ada di ports yang menggunakan PHP, mensyaratkan untuk menggunakan PHP5. Karena itu disini juga akan digunakan PHP5. Kemungkinan masalah yang akan timbul adalah tidak kompatibelnya aplikasi web yang akan digunakan dengan PHP5.
# cd /usr/ports/www/php5; make install clean
Dengan metode instalasi di atas, secara default akan terinstall dua package yaitu php5-core dan php5-extension, seperti di bawah ini :
php5-core-5.0.5 server-side HTML-embedded scripting language php5-extensions-5.0.5p0 informational package about PHP5 extensions
Untuk mengaktifkan PHP di webserver, lakukan hal-hal berikut, seperti terdapat di post-message nya PORTS
# /usr/local/sbin/phpxs -s
pastikan baris berikut terdapat di dalam file /var/www/conf/httpd.conf
AddType application/x-httpd-php .php
Kopi file konfigurasi php (php.ini) dari direktori contoh
# cp /usr/local/share/examples/php5/php.ini-recommended /var/www/conf/php.ini edit file php.ini pada bagian session.save_path = /tmp
Kemudian restart apache nya
# apachectl stop # apachectl startssl Catatan : karena kita menggunakan Apache dengan fitur SSL, kita tidak bisa langsung mengetikkan apachectl restart
Lalu bagaimana jika seandainya kita ingin PHP nya support mysql ? PHP5 yang baru saja kita install, dipisahkan dalam beberapa extension, coba perhatikan extension-extension yang sudah di build begitu kita melakukan perintah make install clean tadi
# ls /usr/ports/packages/i386/all/ | grep php5 php5-bz2-5.0.5p0.tgz php5-core-5.0.5.tgz php5-curl-5.0.5p0.tgz php5-dba-5.0.5p0.tgz php5-dbase-5.0.5p0.tgz php5-dbx-5.0.5p0.tgz php5-extensions-5.0.5p0.tgz php5-filepro-5.0.5p0.tgz php5-gd-5.0.5p2-no_x11.tgz php5-gmp-5.0.5p0.tgz php5-imap-5.0.5p1.tgz php5-ldap-5.0.5p0.tgz php5-mbstring-5.0.5p0.tgz php5-mcrypt-5.0.5p0.tgz php5-mhash-5.0.5p0.tgz php5-mysql-5.0.5p0.tgz php5-ncurses-5.0.5p0.tgz php5-odbc-5.0.5p0.tgz php5-pear-5.0.5.tgz php5-pgsql-5.0.5p0.tgz php5-shmop-5.0.5p0.tgz php5-snmp-5.0.5p0.tgz php5-soap-5.0.5p1.tgz php5-sqlite-5.0.5p0.tgz php5-sybase_ct-5.0.5p0.tgz php5-xmlrpc-5.0.5p0.tgz php5-xsl-5.0.5p1.tgz
Jika kita ingin menambahkan ekstensi mysql, yang memungkinkan PHP5 untuk berinteraksi dengan MySQL, berarti kita harus menginstall dan mengaktifkan ekstensi PHP5-mysql
# pkg_add -v /usr/ports/packages/i386/all/php5-mysql-5.0.5p0.tgz # /usr/local/sbin/phpxs -a mysql
bash-3.00# cp jhead /var/www/usr/local/bin/
bash-3.00# ldd jhead
jhead:
Start End Type Ref Name
00000000 00000000 exe 1 jhead
03663000 2366a000 rlib 1 /usr/lib/libm.so.2.0
08914000 2894c000 rlib 1 /usr/lib/libc.so.34.1
0c0ec000 0c0ec000 rtld 1 /usr/libexec/ld.so
bash-3.00# cp /usr/lib/libm.so.2.0
bash-3.00# cp /usr/lib/libm.so.2.0 /var/www/usr/lib/
bash-3.00# cp /usr/libexec/ld.so /var/www/usr/libe
bash-3.00# mkdir /var/www/usr/libexec
bash-3.00# cp /usr/libexec/ld.so /var/www/usr/libexec/
bash-3.00# history | grep sysctl
2078 sysctl kern.emul.freebsd=1
2126 history | grep sysctl
bash-3.00# sysctl kern.emul.freebsd=0
kern.emul.freebsd: 1 -> 0
bash-3.00#
Untuk memeriksa apakah chroot berjalan dengan baik, install Gallery
Caching/Proxy
Squid
Transparent Proxy
FTP Server
Anonymous FTP
# adduser Use option ``-silent'' if you don't want to see all warnings and questions. Reading /etc/shells Reading /etc/login.conf Check /etc/master.passwd Check /etc/group Ok, let's go. Don't worry about mistakes. I will give you the chance later to correct any input. Enter username []: ftp Enter full name []: anonymous ftp Enter shell csh false ksh nologin sh tcsh zsh [sh]: false Uid [1002]: Enter Login group ftp [ftp]: Enter Login group is ``ftp''. Invite ftp into other groups: guest no [no]: no Login class auth-defaults auth-ftp-defaults daemon default staff [default]: Enter Enter password []: Enter Set the password so that user cannot logon? (y/n) [n]: y Name: ftp Password: **** Fullname: anonymous ftp Uid: 1002 Gid: 1002 (ftp) Groups: ftp Login Class: default HOME: /home/ftp Shell: /usr/bin/false OK? (y/n) [y]: y Added user ``ftp'' Copy files from /etc/skel to /home/ftp Add another user? (y/n) [y]: n Goodbye!
FTP-only User
Tambahkan baris berikut di file /etc/shells
/usr/bin/false
Gunakan /usr/bin/false sebagai shell dari user yang hanya diizinkan untuk menggunakan FTP
File & Print Services
Samba
NFS
AFS
Database
MySQL
# pkg_add -v ftp://ftp.openbsd.org/pub/OpenBSD/3.6/packages/i386/mysql-server-4.0.20.tgz Adding ftp://ftp.openbsd.org/pub/OpenBSD/3.6/packages/i386/mysql-server-4.0.20.tgz Dependencies for mysql-server-4.0.20 resolve to: mysql-client-4.0.20,p5-DBD-mysql-2.9004 (todo: mysql-client-4.0.20,p5-DBD-mysql-2.9004) Adding mysql-client-4.0.20 Adding p5-DBD-mysql-2.9004 Dependencies for p5-DBD-mysql-2.9004 resolve to: p5-DBI-1.43,mysql-client-4.0.20 (todo: p5-DBI-1.43) Adding p5-DBI-1.43 Dependencies for p5-DBI-1.43 resolve to: p5-PlRPC-0.2018 (todo: p5-PlRPC-0.2018) Adding p5-PlRPC-0.2018 Dependencies for p5-PlRPC-0.2018 resolve to: p5-Net-Daemon-0.38 (todo: p5-Net-Daemon-0.38) Adding p5-Net-Daemon-0.38 ===> Creating _mysql group for MySQL ===> Creating _mysql user for MySQL Preparing db table Preparing host table Preparing user table Preparing func table Preparing tables_priv table Preparing columns_priv table Installing all prepared tables 050402 6:14:07 /usr/local/libexec/mysqld: Shutdown Complete
# /usr/local/bin/mysqladmin -u root password 'new-password' # /usr/local/bin/mysqladmin -u root -h obsd3.securemarmot.com password 'new-password'
# /usr/local/bin/mysqld_safe & [1] 5452 # Starting mysqld daemon with databases from /var/mysql
Agar mysql bisa diakses dari aplikasi web yang menggunakan sistem chroot, perlu ditambahkan : file /etc/rc.local
if [ -x /usr/local/bin/mysqld_safe ]; then
echo -n " mysqld"
/usr/local/bin/mysqld_safe --user=_mysql --log=/var/log/mysqld
sleep 4
rm -f /var/www/var/run/mysql/mysql.sock
ln /var/run/mysql/mysql.sock /var/www/var/run/mysql/mysql.sock
fi
PostgreSQL
X-Windows
KDE
# pkg_add -v kdebase-3.4.tgz
KDM
# /usr/local/bin/genkdmconf
PWM
Network
Firewall
Contoh pf.conf from phoenix
–> phoenix-pf.conf
######## needed variables & their values #######
ext_if="rl0"
int_if="rl1"
wifi_if="rl2"
ipv6_if="gif0"
local_net="192.168.10.0/24"
unroutable='{ 127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 255.255.255.255/32 }'
tcp_services='{ 20, 21, 22, 25, 80, 110, 113, 143, 443, 993, 995, 6881, 5041, 5678, 12121, 32031, 50115, 51235 }'
udp_services='{ 53, 517, 518, 993, 995, 3306, 5000><5010 }'
dns_servers='{ 209.53.4.130, 209.53.4.150 }'
icmp_types='{ 8, 11 }'
irc='6667'
# cvs.openbsd.org
trusted_hosts='{ 202.51.227.12/32, 70.68.160.199/32, 24.80.109.23/32, 24.84.236.251/32, 142.58.101.25/32, 199.185.137.3/32, 216.232.85.96/32, 19
5.20.105.149/32, 213.133.115.5/32, 202.162.217.14/32, 195.20.105.149/32, 206.123.31.116/32, 64.71.128.84/32, 213.121.24.85/32 }'
set timeout { interval 10, frag 30 }
set timeout { tcp.first 120, tcp.opening 30, tcp.established 86400 }
set timeout { tcp.closing 900, tcp.finwait 45, tcp.closed 90 }
set timeout { udp.first 60, udp.single 30, udp.multiple 60 }
set timeout { icmp.first 20, icmp.error 10 }
set timeout { other.first 60, other.single 30, other.multiple 60 }
set timeout { adaptive.start 0, adaptive.end 0 }
set limit { states 10000, frags 5000 }
set loginterface none
set optimization normal
set block-policy return
set require-order yes
set fingerprints "/etc/pf.os"
table <authpf_users> persist
##################################### Rulez! ##############################################
scrub in on $ext_if all fragment reassemble no-df min-ttl 24 max-mss 1492
scrub out on $ext_if all fragment reassemble random-id no-df min-ttl 24 max-mss 1492
##################################### Shaper! #############################################
#altq on $int_if priq bandwidth 2.5Mb queue {std_in, max_in, min_in}
# queue std_in priq(default)
# queue max_in priority 15 priq(red)
# queue min_in priority 0
#altq on $ext_if priq bandwidth 800Kb queue {std_out, max_out, med_out, min_out}
# queue std_out priq(default)
# queue max_out priority 14 priq(red)
# queue med_out priority 7
# queue min_out priority 0
##### Network Address Translation #######
nat on $ext_if from 192.168.10.0/24 to any -> 142.179.115.60/32
nat-anchor "authpf/*"
## redirect ##
rdr pass on $int_if proto tcp to port $irc -> 192.168.10.1 port 7667
rdr pass on $int_if proto tcp to port ftp -> 127.0.0.1 port 8021
rdr on $ext_if proto tcp from any to 142.179.115.60/32 port 6881 -> 192.168.10.3 port 6881
rdr on $ext_if proto tcp from any to 142.179.115.60/32 port 5041 -> 192.168.10.3 port 5041
rdr on $ext_if proto tcp from any to 142.179.115.60/32 port 25 -> 192.168.10.2 port 25
rdr on $ext_if proto tcp from any to 142.179.115.60/32 port 110 -> 192.168.10.2 port 110
rdr on $ext_if proto tcp from any to 142.179.115.60/32 port 25 -> 192.168.10.2 port 25
rdr on $ext_if proto tcp from any to 142.179.115.60/32 port 110 -> 192.168.10.2 port 110
rdr on $ext_if proto tcp from any to 142.179.115.60/32 port 143 -> 192.168.10.2 port 143
rdr on $ext_if proto tcp from any to 142.179.115.215/32 port 113 -> 192.168.10.1 port 113
rdr on $ext_if proto tcp from any to 142.179.115.215/32 port 22 -> 192.168.10.2 port 22
rdr on $ext_if proto tcp from any to 142.179.115.215/32 port 25 -> 192.168.10.2 port 25
rdr on $ext_if proto tcp from any to 142.179.115.215/32 port 80 -> 192.168.10.2 port 80
rdr on $ext_if proto tcp from any to 142.179.115.215/32 port 110 -> 192.168.10.2 port 110
rdr on $ext_if proto tcp from any to 142.179.115.215/32 port 143 -> 192.168.10.2 port 143
rdr on $ext_if proto tcp from any to 142.179.115.215/32 port 3306 -> 192.168.10.2 port 3306
rdr on $ext_if proto tcp from any to 142.179.115.215/32 port 5432 -> 192.168.10.2 port 5432
rdr on $ext_if proto tcp from any to 142.179.115.215/32 port 995 -> 192.168.10.2 port 995
rdr on $ext_if proto tcp from any to 142.179.115.215/32 port 993 -> 192.168.10.2 port 993
##### FILTERING ######
block log all
pass quick on { lo $int_if $ipv6_if }
pass quick on $ipv6_if inet6
antispoof quick for { lo $int_if }
antispoof quick for $ext_if inet
block drop in quick on $ext_if from $unroutable to any
block drop out quick on $ext_if from any to $unroutable
pass in on $int_if from $int_if:network to any keep state
pass out on $int_if from any to $int_if:network keep state
pass in on $ext_if inet proto {tcp,udp,icmp} from $trusted_hosts to any keep state
pass in on $ext_if inet proto tcp from any to any port $tcp_services flags S/SAFR keep state
pass in on $ext_if inet proto udp from any to any port $udp_services keep state
pass out on $ext_if inet proto tcp from $ext_if to any flags S/SA keep state
pass out on $ext_if inet proto {udp, icmp}from $ext_if to any keep state
anchor "snort2pf"
#for wifi
pass out quick on $wifi_if proto tcp from $wifi_if:network flags S/SA modulate state
pass out quick on $wifi_if proto { udp, icmp } from $wifi_if:network keep state
pass in quick on $wifi_if inet proto tcp from any to any port { bootps, bootpc, ssh } flags S/SA keep state
pass in quick on $wifi_if inet proto udp from <authpf_users> to $dns_servers port domain keep state
anchor "authpf/*" in on $wifi_if
anchor "authpf/*" out on $wifi_if
←- phoenix-pf.conf
Bandwith Limiter
IPV6
NTP (Network Time Protocl)
Server
# vi /etc/ntpd.conf # $OpenBSD: ntpd.conf,v 1.7 2004/07/20 17:38:35 henning Exp $ # sample ntpd configuration file, see ntpd.conf(5) # Addresses to listen on (ntpd does not listen by default) #listen on * listen on ::1 # sync to a single server #server ntp.example.org # use a random selection of 8 public stratum 2 servers # see http://twiki.ntp.org/bin/view/Servers/NTPPoolServers servers pool.ntp.org
# vi /etc/rc.conf.local ntpd_flags= # enabled during install
Unix Client
# vi /etc/ntpd.conf # $OpenBSD: ntpd.conf,v 1.7 2004/07/20 17:38:35 henning Exp $ # sample ntpd configuration file, see ntpd.conf(5) # Addresses to listen on (ntpd does not listen by default) #listen on * # sync to a single server #server ntp.example.org server 192.168.1.20 # use a random selection of 8 public stratum 2 servers # see http://twiki.ntp.org/bin/view/Servers/NTPPoolServers #servers pool.ntp.org
# vi /etc/rc.conf.local ntpd_flags= # enabled during install
Windows Client
C:\>net time /setsntp:192.168.1.20 The command completed successfully. C:\>net stop w32time The Windows Time service is stopping. The Windows Time service was stopped successfully. C:\>net start w32time The Windows Time service is starting. The Windows Time service was started successfully. C:\>net time /querysntp The current SNTP value is: 192.168.1.20 The command completed successfully.
Check konfigurasi
$ grep ntpd daemon May 22 17:23:15 obsd3 ntpd[29943]: adjusting local clock by 0.175522s May 22 18:44:44 obsd3 ntpd[14662]: adjusting local clock by 0.184475s May 22 19:42:26 obsd3 ntpd[14662]: adjusting local clock by 0.159438s May 22 23:08:08 obsd3 ntpd[14662]: adjusting local clock by 0.185314s May 23 00:19:29 obsd3 ntpd[14662]: adjusting local clock by 0.158105s May 23 17:55:48 obsd3 ntpd[31680]: adjusting local clock by -0.921275s May 23 17:59:07 obsd3 ntpd[31680]: adjusting local clock by -0.778339s May 23 18:01:12 obsd3 ntpd[31680]: adjusting local clock by -0.297160s etc...
Filosofi
- Kenapa Mailing List OpenBSD sangat tidak bersahabat/ramah ?
- Kenapa OpenBSD tidak mempunyai journaling file sistem ?
- Kenapa IPF tidak ada lagi di OpenBSD ?
- Kenapa versi BIND yang disertakan di OpenBSD sangat tua ?
- Saya baru saja melakukan scanning dengan menggunakan nmap terhadap OpenBSD yang baru saja saya install, dan yang mengejutkan adalah, saya mendapatkan [apapun daemonnya] aktif !
- Kenapa OpenBSD menyertakan software-software seperti Sendmail dan BIND yang jelas-jelas diketahui tidak secure ?
- Kenapa website www.openbsd.org menggunakan Solaris ?
- Saya mempunyai usulan ! Kenapa para developer tidak mendengarkan usul saya ?
— Hengky Anwar 2005/06/11 03:20
