- Mesaj
- 11.941
- Çözümler
- 567
- Beğeni
- 13.659
- Puan
- 5.915
- Ticaret Puanı
- 2
Konuya başlamadan önce birkaç şeyi belirtmek istiyorum. Bu konu
Başlangıcı yaptığımıza göre konuya geçelim.
Bu konuda Metin2 server güvenliği ve bakımı ile ilgili rehber yer alacaktır. Firewall korumaları yer almaktadır. Eğer ne yaptığınızı bilmiyorsanız kesinlikle bu işe koyulmayın. Yine de anlatılanları uygulamak istiyorsanız serverin yedeğini almanız gerekmektedir. Oluşan herhangi bir sorunda sorumluluk kabul etmiyorum.
Başlamadan önce kendimden bir şeyler söylemek istiyorum...
Bu rehberi zamanında başarıyla uyguladım ve olumlu sonuç almıştım. Şuan için olumlu sonuç verir mi bilmiyorum ancak ben yine de revize edip paylaşmanın mantıklı olduğunu düşünüyorum.
Fazla uzatmadan anlatımlara başlayalım. Tekrardan belirtiyorum. İşlemleri yapmadan önce makinanın yedeğini alınız.
Freebsd 9.3 için;
Güncell freebsd sürümlerini kullananlar bsdinstall yazmalı.
Bu aşama bitti. Bu şekilde kernel çekirdeğini güncelledik. Artık çalışabilir ve ihtiyacımıza göre düzenlenebilir hale getirdik.
Daha sonra dosyanın içine aşağıda yazan;
Kısımı şu şekilde düzenleyin.
Daha sonra esc tuşuna bir kere basın ve iki ere a seçeneğini seçerek dosyayı kayıt edin.
Bu aşama bitti. Sıradaki aşamaya geçelim.
32bit(i386) - 64bit(amd64) sistemler için 2 farklı yol mevcut.
32bit (i386) kullananlar;
64bit (amd64) kullananlar;
Komutunu uygulayınız.
Kendi sisteminiz için uygun olan komutları girdikten sonra aşağıda vereceğim komut ile GENERIC konfigürasyon dosyasını kopyalayın.
Örnek;
Bu komuttan sonra konfigürasyon dosyasını düzenleme zamanı.
"Options" yerine aşağıdaki seçenekleri ekleyelim.
Not: [TAB] => Notepad++'de tab tuşu ile oluşturacağınız boşluk. (4 tane boşluk anlamına gelir.)
Bu aşama da bitti
Yalnız burada bir şey söyleyeyim. Daha önce Casro2 serveri için bu rehberi uygularken çekirdek derleme işlemenin uzun bi zaman aldığını fark ettim.
Eğer vaktiniz varsa bu işlemi başlatın.
Eğer hazırım diyorsanız o halde derleyelim
Aşağıdaki komutları girin. (Daha önce oluşturduğunuz kernel adını girmelisiniz)
Bu komutu girdikten sonra kernel derlenmeye başlayacak. İşlemler bitene kadar bekleyin.
Bu aşamada yapacaklarımız bunlardır. (İçindekiler )
Aşağıdaki içeriği dosyanın içeriğine yapıştırın. (CTRL + C ile kopyalayın daha sonra putty ekranında farenin sağ tık tuşuna basın.)
Bu sistem başladığımda otomatik olarak pf kurallarını aktif edecek. Ancak daha kuralları oluşturmadık. O halde bir sonraki aşamaya geçelim.
PF Komutları
Türkçesi: PF yeniden başlat | aç | kapat
PF kurallarını yeniden yükler ve PF'yi yeniden başlatır.
PF kurallarını oluşturmak için son adıma geçelim.
İlk önce PF dosyamızı oluşturuyoruz.
Kuralları yazmaya başlıyoruz...
Öncelikle rahatça kendi kurallarınızı yazabilirsiniz. Kendi değişikliklerinizi ve yapılandırmalarınızı yapabilirsiniz. Yaygın bir makro mevcut.
Şimdi, aşağıda anlatacağım kurallar ile tamamen kendi kurallarımızı içeren PF oluşturabiliriz.
Kuralların PF işlevleri;
Koşullar:
Argümanlar:
Protokoller:
PF Koşulları:
PF koşulları, saldırılardan ağı korumak için çok önemlidir.
TCP İşaretlemeleri:
Bu işaretlemeler sadece TCP protokolü için geçerlidir.
Artık kendi kurallarınızı yazabilmek için yeterli örnekler bulunuyor.
PF temel kuralları bitti.
Hazır orta sınıf kurallar:
Putty'i açın ve aşağıdaki komutları uygulayın.
Freebsd 9.x kullananlar;
Güncel Freebsd kullananlar;
Karşınıza menü gelecek. Sırayla configure > distributions > src seçeneklerini seçin.
Daha sonra sys'yi işaretleyin ve sağ - sol tuşlar ile aşağıdan "OK" tuşunu seçin ve devam edin.
Şimdi aşağıdaki komutları uygulayın.
Kendi freebsd sürümünüzü uname -a ile öğrenebilirsiniz. Dosyalara erişmek için
9.3 sürümü kullananlar;
64bit (amd64);
32bit (i386);
12.1 sürümünü kulananlar;
64bit (amd64);
32bit (i386);
Daha sonra yes diyoruz. Dosyaları indirmek için aşağıdaki komutları giriyoruz.
64 bit;
32 bit;
Daha sonra şu komutları uygulayın;
Ve "options" bölümünü bulup ekliyoruz.
Daha sonra esc tuşuna basın ve iki kere a seçeğini seçin.
Daha sonra sırayla şu komutları yazın;
Daha sonra rc.conf dosyamızı yapılandıralım
Ve dosyanın sonuna ekleyin
Daha sonra esc tuşuna basın ve dosyayı kaydedin.
Şimdi ipfw.rules dosyamızı oluşturma zamanı.
Şu komutu yazın;
Dosyanın içeriğine şunları eklerin;
Daha sonra dosyayı kaydedin ve aşadağıki komutu girerek izinleri ayarlayın.
Tüm işlemleri bitirdikten sonra sistemi yeniden başlatmak için reboot komutunu giriniz.
Ve aşağıdaki kodları yapıştırın.
Daha sonra şunları yapıştırın;
Her şey sorunsuz ise şu mesaj çıkmalıdır.
Şimdi konfigürasyona girip sysctl düzenleme zamanı
Örnek yapılandırma;
Bu konu bu kadardır. Konuyu yazmaya başlayandan bu yana 2 saat geçmiş.
Diğer güvenlik önlemleri için sitemizdeki rehber konularına bakabilirsiniz ve Metin2 Sıfırdan Altyapı Server Files Hazırlama Rehberi 'nde gösterdiğim güvenlik önlemlerine bakabilirsiniz.
Linkleri görebilmek için
giriş yap veya kayıt ol.
alınmıştır. Ufak tefek değişiklikler yapılmıştır. Rehberin asıl sahibi r10'da Pasha37'de aittir. Ancak orijinal konusunda kodların bulunduğu kısımlar bozulduğu için tekrardan revize ederek paylaşmak istedim.Başlangıcı yaptığımıza göre konuya geçelim.
Bu konuda Metin2 server güvenliği ve bakımı ile ilgili rehber yer alacaktır. Firewall korumaları yer almaktadır. Eğer ne yaptığınızı bilmiyorsanız kesinlikle bu işe koyulmayın. Yine de anlatılanları uygulamak istiyorsanız serverin yedeğini almanız gerekmektedir. Oluşan herhangi bir sorunda sorumluluk kabul etmiyorum.
Başlamadan önce kendimden bir şeyler söylemek istiyorum...
Bu rehberi zamanında başarıyla uyguladım ve olumlu sonuç almıştım. Şuan için olumlu sonuç verir mi bilmiyorum ancak ben yine de revize edip paylaşmanın mantıklı olduğunu düşünüyorum.
Fazla uzatmadan anlatımlara başlayalım. Tekrardan belirtiyorum. İşlemleri yapmadan önce makinanın yedeğini alınız.
PF ve IPFW Anlatımı
1.1) PF (Packet Filter) Derleme ve Yapılandırma
1.1.1) Derleme
Bu aşamada yapılacaklar şunlardır (içindekiler );- 1.1.1.1) Kernel kaynağı indirilecek.
- 1.1.1.2) Başlatıcı düzenlenecek.
- 1.1.1.3) Konfigürasyon dosyası yeni kernel için yapılandırılacak.
- 1.1.1.4) Yeni kernel derlenecek.
1.1.1.1) Kernal kaynağı
İlk önce kkernak kaynağını indirmeniz gerekiyor.Freebsd 9.3 için;
Kod:
sysinstall [enter] --> [seçin]
configure [enter] --> [seçin]
src [enter] --> seçin
base ve sys [işaretleyin] --> [sağ sol tuş ile alttan ok'u seçin] --> [enter]
FTP [enter]
main site [enter] --> bekleyin
sysinstall'e kadar geri dönün
Güncell freebsd sürümlerini kullananlar bsdinstall yazmalı.
Bu aşama bitti. Bu şekilde kernel çekirdeğini güncelledik. Artık çalışabilir ve ihtiyacımıza göre düzenlenebilir hale getirdik.
1.1.1.2) Başlatıcı Düzenleme
PF'in gerekli izinlerini sağlamak için başlatıcıyı düzenlememiz gerekiyor. Aşağıdaki komutu putty'den uygulayın.
Bash:
cd /boot/defaults && ee loader.conf
Daha sonra dosyanın içine aşağıda yazan;
Kod:
PF_LOAD="NO"
Kısımı şu şekilde düzenleyin.
Kod:
PF_LOAD="YES"
Daha sonra esc tuşuna bir kere basın ve iki ere a seçeneğini seçerek dosyayı kayıt edin.
Bu aşama bitti. Sıradaki aşamaya geçelim.
1.1.1.3) Konfigürasyon Dosyasını Yeni Kernel için Yapılandırma
Konfigürasyon çekirdek seçeneklerini PF için düzenleyelim.32bit(i386) - 64bit(amd64) sistemler için 2 farklı yol mevcut.
32bit (i386) kullananlar;
Bash:
cd /usr/src/sys/i386/conf
64bit (amd64) kullananlar;
Bash:
cd /usr/src/sys/amd64/conf
Komutunu uygulayınız.
Kendi sisteminiz için uygun olan komutları girdikten sonra aşağıda vereceğim komut ile GENERIC konfigürasyon dosyasını kopyalayın.
Bash:
cp GENERIC bizim-cekirdegimiz
Örnek;
Bash:
cp GENERIC Whistle
Bu komuttan sonra konfigürasyon dosyasını düzenleme zamanı.
Bash:
ee Whistle
"Options" yerine aşağıdaki seçenekleri ekleyelim.
Kod:
device[TAB][TAB]pf
device[TAB][TAB]pflog
device[TAB][TAB]pfsync
options[TAB][TAB]ALTQ
options[TAB][TAB]ALTQ_CBQ
options[TAB][TAB]ALTQ_RED
options[TAB][TAB]ALTQ_RIO
options[TAB][TAB]ALTQ_HFSC
options[TAB][TAB]ALTQ_PRIQ
options[TAB][TAB]ALTQ_NOPCC
Not: [TAB] => Notepad++'de tab tuşu ile oluşturacağınız boşluk. (4 tane boşluk anlamına gelir.)
Bu aşama da bitti
1.1.1.4) Yeni Kerneli Derlemek
Şimdi PF kısmının son aşaması olan çekirdek derleme kısmına geldik.Yalnız burada bir şey söyleyeyim. Daha önce Casro2 serveri için bu rehberi uygularken çekirdek derleme işlemenin uzun bi zaman aldığını fark ettim.
Eğer vaktiniz varsa bu işlemi başlatın.
Eğer hazırım diyorsanız o halde derleyelim
Aşağıdaki komutları girin. (Daha önce oluşturduğunuz kernel adını girmelisiniz)
Bash:
cd /usr/src && make buildkernel KERNCONF=Whistle && make installkernel KERNCONF=Whistle
Bu komutu girdikten sonra kernel derlenmeye başlayacak. İşlemler bitene kadar bekleyin.
1.1.2) Başlangıç ve Komutlar
Şimdi başlangıç dosyasını düzenleme ve size temel komutları verme zamanı geldi.Bu aşamada yapacaklarımız bunlardır. (İçindekiler )
- 1.1.2.1) Sistem Başlangıcını Ayarlamak
- 1.1.2.2) Komutlar
- 1.1.2.3) PF Kurallarını Oluşturmak
1.1.2.1) Sistem Başlangıcını Ayarlamak
Aşağıdaki komutları yazdıktan sonra rc.conf dosyasını düzenleyin.
Bash:
ee /etc/rc.conf
Aşağıdaki içeriği dosyanın içeriğine yapıştırın. (CTRL + C ile kopyalayın daha sonra putty ekranında farenin sağ tık tuşuna basın.)
Kod:
pf_enable="YES"
pf_rules="/etc/pf.conf"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/whistle-pflog"
pflog_flags=""
Bu sistem başladığımda otomatik olarak pf kurallarını aktif edecek. Ancak daha kuralları oluşturmadık. O halde bir sonraki aşamaya geçelim.
PF Komutları
Bash:
/etc/rc.d/pf restart | start | stop
Bash:
pfctl -F all -f /etc/pf.conf
PF kurallarını oluşturmak için son adıma geçelim.
1.1.2.3) PF Kurallarını Oluşturmak
PF.conf dosyamızda bulunan PF kuralları önemli parça olduğundan dolayı onlar olmadan kernel işlemlerini yapamayız. Şimdi size örnek olması bakımından hazır kuralları verip nasıl uygulayacağımızı göstereceğim.İlk önce PF dosyamızı oluşturuyoruz.
Bash:
ee /etc/pf.conf
Kuralları yazmaya başlıyoruz...
Öncelikle rahatça kendi kurallarınızı yazabilirsiniz. Kendi değişikliklerinizi ve yapılandırmalarınızı yapabilirsiniz. Yaygın bir makro mevcut.
Şimdi, aşağıda anlatacağım kurallar ile tamamen kendi kurallarımızı içeren PF oluşturabiliriz.
- Makro
- Zaman bağlantısı üzerinden yönetim seçenekleri
- Parçanmış veya kırık paketlerin sunulması
- Standart paketleri
- Trafik yoğunluğu gibi bant genişliği kontrol yöntemi
- Çeviri paketi
- Yönlendirme - Filreleme kuralları
- Paket filtreleme
Kuralların PF işlevleri;
Kurallarda PF işaretleme koşul ve protokolleri:
Her kural gibi PF'nin de kendi koşul, bayrak ve protokolleri vardır.
Ayrıca TCP (Genellikle ICMP) üzerinden kullanılan Port taraması, Port engellemeye vs izin verir.
Bunun için bu kuralları bilmek ve çeşitli setler ile bu kurallarını değerlerini değiştirmek yeterlidir.
Koşullar:
Kod:
pass - Kilidi kaldırmak için kullanılan koşul, paket geçme izni, port kilidi açma vs.
block - pass karşısında paket, port vs engellemek için kullanılan koşul
quick - PF'de belirli bir kuralı durdurmak, kuralları ve akışı görüntülemesini iptal etmek (ağ güvenliği için yararlı) kullanılan koşul.
proto - Protokol, örneğin TCP protolünü tanımlar.
Argümanlar:
Kod:
any - Tüm kaynaklardan
from - Bir yerden bir yere ("from any to any" gibi)
all - Tümü (örneğin herşeyi engellemek için)
on - ne, hangi kartı
in / out - paket ve kurallarda giriş çıkışları kontrol etmek için
max 'num' (Örnek: "max 200") istek paketin byte boyutunu belirler
Protokoller:
Kod:
TCP - Unix üzerinden hemen hemen her yerde kullanabilirsiniz, port tarama, bağlantı noktası tarama vs standart ve en yaygın kullanılan protokol. Whistle
UDP - İletim ve Birleştirme için standart bir protokol Saldırılarda genellikle DoS saldırılarında tespit için olan protokol sınırı çok azdır.
ICMP - Genellikle sistemin kendi aktif bağlantıları, engellenmemiş bağlantıları kontrol etmek için kullanılan protokol
ICMP6 - -Whistle-
PF Koşulları:
Kod:
modulate state - Durumu değiştirir, daha iyi bir pf için kullanılır
keep state - Aşırı yükte iletişimi kesmek için kullanılır
PF koşulları, saldırılardan ağı korumak için çok önemlidir.
TCP İşaretlemeleri:
Kod:
F -- FIN, Bağlantıyı kapatma
S -- SYN, Bağlantıyı açma
R -- RST, Bağlantıyı yeniden başlatma
P -- PSH, Verilerin gelen trafiğini kontrol etmek için
A -- ACK, Alınanlar paketler için
U -- URG, Paketin acil olduğunu belirtmek için
Artık kendi kurallarınızı yazabilmek için yeterli örnekler bulunuyor.
PF temel kuralları bitti.
Sızıntı için herhangi bir kombinasyon:Basit Örnekler:
Kod:
#makro
int_if = "em1"
ext_if = "em0"
#PF kurallari
pass out on $ext_if proto tcp all modulate state flags S/SA
pass out on $ext_if proto { udp, icmp } all keep state
pass in on $ext_if proto tcp all modulate state flags S/SA
pass in on $ext_if proto { udp, icmp } all keep state
pass quick on lo0 all
Hazır orta sınıf kurallar:
Kod:
ext_if="em0"
int_if="em1"
***_net="10.0.0.0/24"
tcp_services="{ 3306, 22 }"
udp_services="{ 3306, 22 }"
icmp_types="echoreq"
set skip on lo0
set block-policy return
set loginterface $ext_if
scrub in all
block in on $ext_if
pass in on $int_if from $***_net to any
pass out on $int_if from any to $***_net
antispoof log quick for $int_if
pass in on $ext_if proto tcp from any to any port $tcp_services modulate state flags S/SA
pass in on $ext_if proto udp from any to any port $udp_services keep state
pass out on $ext_if proto tcp from any to any port $tcp_services modulate state flags S/SA
pass out on $ext_if proto udp from any to any port $udp_services keep state
pass in on $ext_if proto { tcp, udp } from any to $ext_if port 53
pass in inet proto icmp all icmp-type $icmp_types keep state
pass out on $ext_if proto { tcp, udp, icmp } all
1.2) IPFW (IP Firewall) Kurulumu:
Şimdi size serveriniz için güvenlik duvarı oluşturmayı göstereceğim.Putty'i açın ve aşağıdaki komutları uygulayın.
Freebsd 9.x kullananlar;
Bash:
sysinstall
Güncel Freebsd kullananlar;
Bash:
bsdinstall
Karşınıza menü gelecek. Sırayla configure > distributions > src seçeneklerini seçin.
Daha sonra sys'yi işaretleyin ve sağ - sol tuşlar ile aşağıdan "OK" tuşunu seçin ve devam edin.
Kod:
ok > FTP > URL
Şimdi aşağıdaki komutları uygulayın.
Kendi freebsd sürümünüzü uname -a ile öğrenebilirsiniz. Dosyalara erişmek için
Linkleri görebilmek için
giriş yap veya kayıt ol.
tıklayın. Daha eski freebsd sürümlerine erişmek için ise
Linkleri görebilmek için
giriş yap veya kayıt ol.
tıklayın.9.3 sürümü kullananlar;
64bit (amd64);
Bash:
ftp://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/amd64/9.3-RELEASE/
32bit (i386);
Bash:
ftp://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/i386/9.3-RELEASE/
12.1 sürümünü kulananlar;
64bit (amd64);
Bash:
ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/12.1-RELEASE/
32bit (i386);
Bash:
ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/12.1-RELEASE/
Daha sonra yes diyoruz. Dosyaları indirmek için aşağıdaki komutları giriyoruz.
64 bit;
Bash:
cd /usr/src/sys/amd64/conf
32 bit;
Bash:
cd /usr/src/sys/i386/conf
Daha sonra şu komutları uygulayın;
Bash:
cp GENERIC IPFWKERNEL
ee IPFWKERNEL
Ve "options" bölümünü bulup ekliyoruz.
Kod:
options[tab][tab]IPFIREWALL # IPFW için gerekli
options[tab][tab]IPFIREWALL_VERBOSE # LOG için gerekli
options[tab][tab]IPFIREWALL_VERBOSE_LIMIT=10 # Giriş limiti
options[tab][tab]IPDIVERT # NATD için gerekli
Daha sonra esc tuşuna basın ve iki kere a seçeğini seçin.
Daha sonra sırayla şu komutları yazın;
Bash:
cd /usr/src && make buildkernel KERNCONF=IPFWKERNEL
make installkernel KERNCONF=IPFWKERNEL
Daha sonra rc.conf dosyamızı yapılandıralım
Bash:
ee /etc/rc.conf
Ve dosyanın sonuna ekleyin
Kod:
firewall_enable="YES"
firewall_script="/etc/ipfw.rules"
Daha sonra esc tuşuna basın ve dosyayı kaydedin.
Şimdi ipfw.rules dosyamızı oluşturma zamanı.
Şu komutu yazın;
Bash:
ee /etc/ipfw.rules
Dosyanın içeriğine şunları eklerin;
Kod:
IPF="ipfw -q add"
ipfw -q -f flush
#loopback
$IPF 10 allow all from any to any via lo0
$IPF 20 deny all from any to 127.0.0.0/8
$IPF 30 deny all from 127.0.0.0/8 to any
$IPF 40 deny tcp from any to any frag
# statefull
$IPF 50 check-state
$IPF 60 allow tcp from any to any established
$IPF 70 allow all from any to any out keep-state
$IPF 80 allow icmp from any to any
# open port ftp (20,21), ssh (22), mail (25)
# http (80), dns (53) etc
$IPF 110 allow tcp from any to any 21 in
$IPF 120 allow tcp from any to any 21 out
$IPF 130 allow tcp from any to any 22 in
$IPF 140 allow tcp from any to any 22 out
$IPF 150 allow tcp from any to any 25 in
$IPF 160 allow tcp from any to any 25 out
$IPF 170 allow udp from any to any 53 in
$IPF 175 allow tcp from any to any 53 in
$IPF 180 allow udp from any to any 53 out
$IPF 185 allow tcp from any to any 53 out
$IPF 200 allow tcp from any to any 80 in
$IPF 210 allow tcp from any to any 80 out
# deny and log everything
$IPF 500 deny log all from any to any
Daha sonra dosyayı kaydedin ve aşadağıki komutu girerek izinleri ayarlayın.
Bash:
chmod -R 777 /etc/ipfw.rules
Tüm işlemleri bitirdikten sonra sistemi yeniden başlatmak için reboot komutunu giriniz.
IPFW Komutları:
Kod:
service ipfw start - IPFW Başlatır
service ipfw restart - IPFW Yeniden Başlatır
service ipfw stop - IPFW Durdurur
Port Eklemek:
Filezilla veya Winscp programları ile servere bağlanın ve /etc/ dizinine gidin. Daha sonra ipfw.rules dosyasını açın ve aşağıdaki örnekteki gibi portları ekleyin.
Kod:
$IPF 200 allow all from any to any 11002 in
$IPF 210 allow all from any to any 11002 out
IPFW'den Yasaklama Verilmesi:
Kod:
# IP yasaklari
# Ornek
$IPF 100 deny all from IP/32 to any in
$IPF 101 deny all from IP/32 to any in
# SSH, Mysql yasakları
$IPF 120 deny log all from IP/20 to any 22 in
$IPF 121 deny log all from IP/20 to any 22 in
$IPF 122 deny log all from IP/20 to any 3306 in
$IPF 123 deny log all from IP/20 to any 3306 in
1.3) Rc.conf Kurulum
rc.conf dosyasını düzenlemek için aşağıdaki komutu giriniz.
Bash:
ee /etc/rc.conf
Ve aşağıdaki kodları yapıştırın.
Kod:
#######################
####AĞ Değerleri####
#######################
sshd_enable="YES"
mysql_enable="YES"
apache22_enable="YES"
ntpdate_enable="YES"
ntpdate_hosts="213.186.33.99"
###################
####Bakım####
###################
fsck_y_enable="YES"
clear_tmp_enable="YES"
named_enable="YES"
#############################
####AĞ Yapılandırması####
#############################
ifconfig_em0="inet 37.59.18.89 netmask 255.255.255.0 broadcast 37.59.18.255"
defaultrouter="37.59.18.254"
hostname="ns232361.ovh.net"
######################
####Güvenlik####
######################
icmp_drop_redirect="YES"
icmp_log_redirect="YES"
tcp_drop_synfin="YES"
icmp_bmcastecho="NO"
icmp_bandlim="YES"
clear_tmp_enable="YES"
#################
####Firewall####
#################
firewall_enable="YES"
firewall_script="/etc/ipfw.rules"
firewall_logging="YES"
natd_enable="YES"
natd_interface="em0"
natd_flags="-dynamic -m"
pf_enable="YES"
pf_rules="/etc/pf.conf"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_flags=""
#################
####Diğer####
#################
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="NO"
1.4) Hazır PF Conf
pf.conf dosyasını düzenlemek için aşağıdaki komutu girin.
Bash:
ee /etc/pf.conf
Daha sonra şunları yapıştırın;
Kod:
#################
###PF Kurallari :###
#################
#makro
ext_if="re0"
***_net="10.0.0.0/24"
tcp_services="{ 9987, 3306, 22, 53, 25 }"
#udp_services="{ 3306, 25, 53, 22 }"
icmp_types="echoreq"
#filtre
set skip on lo0
set optimization normal
set ruleset-optimization basic
set require-order yes
set block-policy return
set loginterface $ext_if
set state-policy if-bound
scrub in all
scrub on $ext_if fragment drop-ovl
scrub on $ext_if all reassemble tcp
block in quick from urpf-failed
block in quick from urpf-failed label uRPF
antispoof log quick for $ext_if
#loopback
pass out quick on lo0 proto tcp all
pass in quick on lo0 proto tcp all keep state
#istisnalar
#seçilen oslar
pass in quick on $ext_if from any os Windows keep state
pass in quick on $ext_if from any os "Windows XP" keep state
pass in quick on $ext_if from any os "Windows Vista" keep state
pass in quick on $ext_if from any os "Windows 7" keep state
pass in quick on $ext_if from any os unknown keep state
#engellenen oslar
block in quick on $ext_if from any os "Linux 2.4 ts"
#block in quick on $ext_if from any os unknown
block in quick on $ext_if from any os OpenBSD
block in quick on $ext_if from any os Linux
block in quick on $ext_if from any os Debian
#engelli ipler
table <blockip> persist file "/etc/blockip.txt"
block in quick on $ext_if from <blockip> to any
#port yönlendirme
pass in quick on $ext_if proto tcp from any to any port $tcp_services keep state flags S/SA
pass out quick on $ext_if proto tcp from any to any port $tcp_services keep state flags S/SA
#pass in quick on $ext_if proto udp from any to any port $udp_services keep state
#pass out quick on $ext_if proto udp from any to any port $udp_services keep state
pass in quick inet proto icmp all icmp-type $icmp_types keep state
pass out quick on $ext_if proto { tcp, udp, icmp } all modulate state
#varsayılan kilit
block return
block in all
block out all
1.5) Sysctl.conf Düzenleme
Aşağıdaki komutu yazın
Bash:
sysctl -a
Her şey sorunsuz ise şu mesaj çıkmalıdır.
% sysctl kern.maxproc
Şimdi konfigürasyona girip sysctl düzenleme zamanı
Bash:
ee /etc/sysctl.conf
Örnek yapılandırma;
Kod:
# $FreeBSD: release/9.0.0/etc/sysctl.conf 112200 2003-03-13 18:43:50Z mux $
#
# This file is read when going to multi-user and its contents piped thru
# ``sysctl'' to adjust kernel values. ``man 5 sysctl.conf'' for details.
#
# Uncomment this to prevent users from seeing information about processes that
# are being run under another UID.
#security.bsd.see_other_uids=0
##########################################
####Sınırlama ve Ağ ayarları####
##########################################
n#security.bsd.see_other_uids=0
security.bsd.see_other_uids=0
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.inet.ip.ttl=128
kern.maxfilesperproc=200000
kern.maxvnodes=600000
kern.maxfiles=204800
kern.ipc.maxsockbuf=16777216
kern.ipc.shmmax=1073741824
kern.ipc.somaxconn=32768
kern.ipc.shmall=134217728
net.inet.tcp.rfc1323=1
net.inet.tcp.recvbuf_max=16777216
net.inet.tcp.sendbuf_auto=1
net.inet.tcp.sendbuf_inc=262144
net.inet.tcp.recvbuf_auto=1
net.inet.tcp.recvbuf_inc=524288
net.inet.tcp.hostcache.expire=1
net.inet.ip.redirect=0
net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
net.inet.icmp.maskrepl=0
net.inet.icmp.log_redirect=0
net.inet.icmp.drop_redirect=1
net.inet.tcp.drop_synfin=1
net.inet.tcp.msl=5000
net.inet.tcp.fast_finwait2_recycle=1
net.inet.ip.intr_queue_maxlen=4096
net.inet.ip.forwarding=1
net.inet.ip.fastforwarding=1
net.inet.tcp.ecn.enable=1
net.inet.ip.random_id=1
net.inet.tcp.log_in_vain=0
net.inet.tcp.log_debug=0
net.inet.udp.log_in_vain=0
kern.random.sys.harvest.ethernet=0
kern.random.sys.harvest.interrupt=0
kern.random.sys.harvest.point_to_point=0
net.inet.icmp.icmplim=40
net.inet.tcp.delayed_ack=1
net.inet.tcp.mssdflt=1460
net.inet.tcp.path_mtu_discovery=0
net.inet.tcp.recvspace=65536
net.inet.tcp.sendspace=65536
net.inet.udp.recvspace=65536
net.local.stream.recvspace=65536
net.inet6.ip6.accept_rtadv=0
net.inet6.ip6.auto_linklocal=0
kern.ipc.nmbjumbop=192000
net.inet.tcp.maxtcptw=163840
net.inet.tcp.sendbuf_max=16777216
net.inet.tcp.cc.algorithm=htcp
net.inet.tcp.hostcache.expire=5400
net.route.netisr_maxqlen=4096
net.inet.tcp.nolocaltimewait=1
net.local.stream.sendspace=163840
net.local.stream.recvspace=163840
net.inet.tcp.local_slowstart_flightsize=32
net.inet.tcp.slowstart_flightsize=32
net.inet.tcp.rfc3390=0
net.inet.tcp.syncache.rexmtlimit=1
net.inet.ip.rtexpire=2
net.inet.ip.check_interface=1
net.inet.ip.portrange.randomized=1
net.inet.ip.process_options=0
net.inet.icmp.bmcastecho=0
net.inet.icmp.maskfake=0
vfs.read_max=128
net.link.ether.inet.log_arp_movements=0
net.inet.tcp.log_in_vain=1
net.inet.udp.log_in_vain=1
net.inet.ip.rtminexpire=2
net.inet.tcp.icmp_may_rst=0
#####################
####IPFW Firewall####
#####################
net.inet.ip.fw.verbose=1
net.inet.ip.fw.verbose_limit=5
1.6) Kernel Güvenliğini Arttırmak
Kernel güvenliğini arttırmak için şu komutu uygulayın
Bash:
sysctl kern.securelevel=9
1.7) SSH Portu Değiştirme
Ftp ve ssh erişimi için 22 portu kullanılır. Bunu değiştirmek için /etc/sshd/sshd.conf içerisindeki 22 değerini değiştirebilirsiniz.1.8) MySQL Port Değiştirme
Kod:
Putty'e Giriniz ve Aşağıdaki Komutu Yazınız
cp /usr/local/share/mysql/my-medium.cnf /var/db/mysql/my.cnf
Kodu Yazıp ENTER Tuşuna Basınız ve Alttaki Komutu Yazınız.
ee /var/db/mysql/my.cnf
Karşınıza Gelen Ekranda Aşağıdaki Yerleri Değiştiriniz
[client] Kısmındaki
port = 3306
3306 Yerine Yeni Portunuzu Giriniz Max 4 Hane 4295 Gibi
Sonra Az Daha Aşağı Doğru İniniz
[mysqld] Kısmındaki
port = 3306
3306 Yerine Üsste Girdiğiniz Yeni Portunuzu Tekrar Giriniz Hatasız Girmeye Özen Gösterin Yoksa MYSQL Bağlantınız Kopar
Portları Düzenledikten Sonra ESC Tuşuna Basınız ve 2 Kere ENTER Tuşuna Basınız .
Ana Ekrana Dönünce reboot Atınız. Artık Yeni Portunuz Aktif. MYSQL Bağlanırken Navicattaki 3306 Yerine Yeni Portunuzu Giriniz
Bu konu bu kadardır. Konuyu yazmaya başlayandan bu yana 2 saat geçmiş.
Diğer güvenlik önlemleri için sitemizdeki rehber konularına bakabilirsiniz ve Metin2 Sıfırdan Altyapı Server Files Hazırlama Rehberi 'nde gösterdiğim güvenlik önlemlerine bakabilirsiniz.
Son düzenleme: