En güvenli server fişi çekik serverdır. Bunun dışındaki tüm methotlar sadece server güvenliğini arttırmak içindir. Aşağıda server güvenliği ile ilgili verilmiş bilgiler genel bilgiler olup kullanıcıya göre değişebilmektedir.
vi, pico vb editorler kullanılarak aşağıdaki satırlar /etc/sysctl.conf içine eklenmelidir
CODE # disable packet forwarding net.ipv4.ip_forward = 0 # enable source route verification net.ipv4.conf.all.rp_filter = 1 # ignore broadcast pings net.ipv4.icmp_echo_ignore_broadcasts = 1 # enable syn cookies net.ipv4.tcp_syncookies = 1 # size of syn backlog net.ipv4.tcp_max_syn_backlog = 512 # disable automatic defragmentation # set max files fs.file-max = 32768 # Enable IP spoofing protection, turn on Source Address Verification net.ipv4.conf.all.rp_filter = 1 # Enable TCP SYN Cookie Protection net.ipv4.tcp_syncookies = 1 # Enable ignoring ping request net.ipv4.icmp_echo_ignore_all = 1
Bu ne yapar?
Bu kodlar linux işletim sisteminin kendisi tarafından kullanılmaktadır. Bu kodlar sisteme ping, icmp, isteklerini redetmesini ve SYN korumasını devreye alınmasını, network forwarding in engellenmesini sağlar. Ancak bu değişiklik yapıldıktan sonra server reboot edilmelidir.
/etc/rc.local, içine aşağıdaki kod eklenmelidir
CODE for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 1 > done echo 1 > /proc/sys/net/ipv4/tcp_syncookies for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do echo 0 > done echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
Bu kısım bir önceki kısımla aynıdır ve bu isteklerin rededilmesi işlemini tekrar, başka bir guvenlik katmanıdır.
/etc/host.conf, içine aşağıdaki kodlar eklenmelidir , tabi içinde yoksa
# Lookup names via DNS first then fall back to /etc/hosts. order bind,hosts # We have machines with multiple IP addresses. multi on # Check for IP address spoofing. nospoof on
/etc/hosts.deny içine aşağıdaki kod eklenmelidir
ALL: PARANOID
Burada bir önceki işlemde yapılan spoofing korumasını arttırılması sağlanır.
Firewall linux server için en önemli ihtiyaçtır. Firewall olmaksızın linux server tamamı ile tehlike altındadır denilebilir , firewall ile server güvenlik altındadır ve korunabilir diyebiliriz ancak unutlmamalıdır ki hiç bir firewall %100 güvenlik sağlamaz.
Kernel bilgilerini aramalı ve bulmalısnız. Hatta kişisel kernel derlemeside yapabilirsiniz, (eğer linuxde çok iyi bir kullanıcı değilseniz kesinlikle bu işlem önerilmez) veya RPM kullanabilrsiniz
Kernel derlemesi local olmayan makinalarda kesinlikle önerilmeyen bir işlemdir. Sebebi ise , eğer bir şeyler ters giderse sizin power düğmesine basıp kapatacak şansınız olmayacak ve tek kullanıcı modunda serverı başlatamayaaksınız. Data Center ı beklemeli bir destek isteğinde bulunmalı ve onların yanıt vermesini beklemek zorunda kalacaksınız. Buda hem büyük zaman kaybı, hem oldukça yavaş hem de çok maliyetli bir işlemdir.
Diğer uygulamalar yapılan konfigurasyon değişiklikleri sistem aşırı yükünü
vb sorunları engelleyecektir.
Örnek
proftpd:
/etc/proftpd.conf, içine aşağıdaki kod eklenebilir
TimeoutIdle 600 TimeoutNoTransfer 600 TimeoutLogin 300 MaxInstances 30 MaxClientsPerHost 2
mysql için:
CODE /etc/my.cnf
[mysqld] port = 3306 skip-locking set-variable = max_connections=100 set-variable = max_user_connections=20 set-variable = key_buffer=16M set-variable = join_buffer=4M set-variable = record_buffer=4M set-variable = sort_buffer=6M set-variable = table_cache=1024 set-variable = myisam_sort_buffer_size=32M set-variable = interactive_timeout=100 set-variable = wait_timeout=100 set-variable = connect_timeout=10 set-variable = thread_cache_size=128
ve son olarak, /etc/rc.local, içine aşağıdaki kod eklenebilir.
CODE TMOUT=180 export TMOUT
Bu kısım serverda 3 dk hareketsiz duran herkesle bağlantısını kesecektir.Bu rakamı değiştirerek zamanı da değiştirilebilir, örnek 300 yapıldığında bu 5 dk olacaktır
Güvenliğin bir seviye daha artırılması için aşağıdaki gibi bir uygulama yapılabilir
ssh erişimi kısıtlaması
CODE in /etc/hosts.deny
sshd: ALL
in /etc/hosts.allow
Code:
sshd: host.ip.number.1,host.ip.number.2,etc