OpenBSD DHCP - Mengkonfigurasi IPv6 dengan dhcpcd
· 2 min read · Label UnixBSD
OpenBSD membuat router yang hebat. Kesederhanaan dan kemudahan konfigurasinya membuatnya sempurna untuk aplikasi infrastruktur jaringan. Semua yang Anda butuhkan untuk membangun jaringan dengan ukuran apa pun sudah ada di sistem dasar, ditambah halaman manual dan contohnya yang mencakup semua yang perlu Anda ketahui.
Saya baru saja membangun router rumah dari awal menggunakan OpenBSD 7 tanpa menginstal paket tambahan apa pun, hanya menggunakan apa yang disertakan dengan instalasi OS OpenBSD. Awalnya, sebelum memutuskan untuk "membangunnya dari awal", saya memiliki tujuan untuk membangun router menggunakan perangkat lunak sumber terbuka untuk meningkatkan keamanan jaringan saya. Setelah mempelajari beberapa proyek firewall dan perutean sumber terbuka yang populer (terutama pfSense dan OPNSense), saya akhirnya memutuskan untuk membangunnya sendiri.
PFSense dan OPNSense tampak seperti perangkat lunak yang layak (dan saya telah berhasil menggunakan keduanya di masa lalu), tetapi kali ini saya ingin "melakukannya dengan cara yang sulit" dan mempelajari tentang layanan yang membentuk router biasa. Berikut adalah beberapa fitur server DHCP keren yang dimiliki OpenBSD:
Setelah itu Anda ubah skrip berikut.
Ini akan mencegah resolv.conf disentuh dan memanggil hook up kita sendiri.
Kemudian Anda membuat file pf.conf untuk meningkatkan keamanan server DHCP Anda.
Berikutnya, untuk melakukan NAT (untuk menjadikan perangkat ini sebagai router sebenarnya), jalankan yang berikut ini:
Lanjutkan dengan mengedit file "dhcpd.conf".
Setelah selesai dengan berkas konfigurasi, saatnya untuk memulai server DHCP. Untuk melakukannya, pertama-tama saya mengaktifkannya, lalu memulainya menggunakan rcctl.
Dengan server yang berjalan, untuk melihat sewa yang saat ini dipegang dhcpd, Anda dapat memeriksa /var/db/dhcpd.leases. Entri akan ditambahkan ke berkas ini saat klien membuat permintaan DHCP.
Jadi, cukup sekian. Pada titik ini, perangkat berfungsi sebagai router, firewall, server DHCP, dan server DNS caching. Perangkat lunak yang dijalankan sepenuhnya open source. Perangkat ini menyimpan beberapa entri DNS khusus untuk layanan yang berjalan di jaringan lokal saya. Setiap permintaan DNS keluar dijamin akan dienkripsi. Selama beberapa bulan terakhir, saya telah menggunakan perangkat ini di jaringan rumah saya dan berfungsi dengan baik. Perangkat ini aman, berkinerja baik, minimal, dan mudah dirawat (hanya tiga berkas konfigurasi).
Saya baru saja membangun router rumah dari awal menggunakan OpenBSD 7 tanpa menginstal paket tambahan apa pun, hanya menggunakan apa yang disertakan dengan instalasi OS OpenBSD. Awalnya, sebelum memutuskan untuk "membangunnya dari awal", saya memiliki tujuan untuk membangun router menggunakan perangkat lunak sumber terbuka untuk meningkatkan keamanan jaringan saya. Setelah mempelajari beberapa proyek firewall dan perutean sumber terbuka yang populer (terutama pfSense dan OPNSense), saya akhirnya memutuskan untuk membangunnya sendiri.
PFSense dan OPNSense tampak seperti perangkat lunak yang layak (dan saya telah berhasil menggunakan keduanya di masa lalu), tetapi kali ini saya ingin "melakukannya dengan cara yang sulit" dan mempelajari tentang layanan yang membentuk router biasa. Berikut adalah beberapa fitur server DHCP keren yang dimiliki OpenBSD:
- Hampir sepenuhnya open source, hingga ke BIOS dan firmware.
- Setiap permintaan DNS yang keluar dari jaringan dapat dienkripsi.
- Dapat menyimpan cache pencarian DNS untuk setiap perangkat jaringan, yang dapat meningkatkan kecepatan kueri.
- Mendukung entri DNS jaringan lokal khusus.
Tugas ini sangat mudah di OpenBSD, karena dilengkapi dengan dhcpd pada sistem dasar. Proyek OpenBSD menyediakan dokumentasi yang sangat baik untuk sistem ini di bawah dhcpd(8) untuk server DHCP itu sendiri, dhcpd.conf(5) untuk berkas konfigurasi, dan dhcpd.leases(5) untuk format basis data sewa.
Contoh yang akan kita bahas dalam posting ini akan sangat sederhana, karena hanya untuk jaringan rumah kecil tanpa opsi lanjutan apa pun. Saya menganjurkan Anda untuk membaca halaman manual jika Anda ingin membuat jaringan Anda sendiri, karena saya mungkin tidak membahas apa yang perlu Anda ketahui di sini.
A. Instalasi & Konfigurasi
Di repositori OpenBSD, server DHCP tersedia secara default, Anda dapat langsung menginstalnya dengan perintah "pkg_add". Berikut cara menginstal server DHCP di OpenBSD.ns3# pkg_add isc-dhcp-server isc-bind
ns3# nano /etc/rc.d/dhcpcd
daemon_flags="-Mq -C resolv.conf -c /etc/dhcpcd_up.sh"
ns3# nano /etc/dhcpcd_up.sh
route sourceaddr -inet4 192.168.0.1
ns3# nano /etc/pf.conf
# interfaces
lo_if = "lo0"
wan_if = "em0"
prod_if = "em1"
dev_if = "em2"
# cidr ranges
prod_range = "192.168.0.0/24"
dev_range = "192.168.2.0/24"
# setup non-routable address list
# note: since this firewall is behind a local network,
# do not include the default gateway in the table
table <martians> { 0.0.0.0/8 10.0.0.0/8 127.0.0.0/8 169.254.0.0/16 \
172.16.0.0/12 192.0.0.0/24 192.0.2.0/24 224.0.0.0/3 \
192.168.0.0/16 198.18.0.0/15 198.51.100.0/24 \
203.0.113.0/24 !192.168.0.1 }
# drop blocked traffic
set block-policy drop
# set interface for logging
set loginterface $wan_if
# ignore loopback traffic
set skip on $lo_if
# normalize incoming packets
match in all scrub (no-df random-id max-mss 1460)
# perform NAT
match out on $wan_if inet from !($wan_if:network) to any nat-to ($wan_if:0)
# prevent spoofed traffic
antispoof quick for { $wan_if $prod_if $dev_if }
# block non-routable traffic
block in quick on $wan_if from <martians> to any
block return out quick on $wan_if from any to <martians>
# block all traffic
block all
# allow outgoing traffic
pass out inet
# allow traffic from internal networks
pass in on { $prod_if $dev_if } inet
# block traffic from prod <--> dev
block in on $prod_if from $prod_range to $dev_range
block in on $dev_if from $dev_range to $prod_range
# block outgoing unencrypted dns requests
block proto { TCP UDP } from { $prod_range $dev_range } to any port 53
pass proto { TCP UDP } from { $prod_range $dev_range} to self port 53
ns3# echo 'net.inet.ip.forwarding=1' >> /etc/sysctl.conf
ns3# nano /etc/dhcpd.conf
# Network: 192.168.0.0/255.255.255.0
# Domain name: home.local
# Name servers: 192.168.0.23 and 8.8.8.8
# Default router: 192.168.0.1
# Addresses: 192.168.0.30 - 192.168.0.200
#
option domain-name "home.local";
option domain-name-servers 192.168.0.23, 8.8.8.8, 1.1.1.1;
# prod network
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.1;
option domain-name-servers 192.168.0.1;
range 192.168.1.100 192.168.1.149;
host special-device-1 {
fixed-address 192.168.0.2;
hardware ethernet 00:08:22:2c:da:fb;
}
}
# dev network
subnet 192.168.2.0 netmask 255.255.255.0 {
option routers 192.168.2.1;
option domain-name-servers 192.168.2.1;
range 192.168.2.100 192.168.2.199;
host special-device-2 {
fixed-address 192.168.2.2;
hardware ethernet 18:89:5b:73:62:7f;
}
}
ns3# rcctl enable dhcpd
ns3# rcctl start dhcpd
Jadi, cukup sekian. Pada titik ini, perangkat berfungsi sebagai router, firewall, server DHCP, dan server DNS caching. Perangkat lunak yang dijalankan sepenuhnya open source. Perangkat ini menyimpan beberapa entri DNS khusus untuk layanan yang berjalan di jaringan lokal saya. Setiap permintaan DNS keluar dijamin akan dienkripsi. Selama beberapa bulan terakhir, saya telah menggunakan perangkat ini di jaringan rumah saya dan berfungsi dengan baik. Perangkat ini aman, berkinerja baik, minimal, dan mudah dirawat (hanya tiga berkas konfigurasi).
Silahkan Berkomentar, Kakak...! Bunda...!
Posting Komentar