SECSTACK
SECSTACK

GNU/Linux ve Siber Güvenlik üzerine dökümanlar.

SECSTACK
Author

Share


Tags


.gz text aramak arkime arkime kurulumu bitwarden bitwarden kurulum bitwarden ubuntu canonical livepatch canonical livepatch yapılandırma centos grub rescue centos nfs yapılandırma centos samba yapılandırma centos stream troubleshooting chmod -R 777 /etc chronograf chrony chrony ntp chrony ntp server chrony ntp server kurulumu chrony nts chrony nts yapılandırma dns over tls dns server kurulumu dnssec ed25519 ed25519 openssh ed25519 ssh full packet capture grafana grafana ile prometheus izleme grub rescue grub troubleshooting grub yeniden kurulumu influxdb iptables nftables geçişi iptables nftables kural geçişi irc server kapacitor kernelcare uchecker knot resolver knot resolver dns kurulumu knot resolver kurulumu linux nts server kurulum lvm lvm disk genişletme lvm genişletme lvm ikincil disk genişletme lvm ikincil genişletme lvm var olan disk genişletme lvm var olan genişletme moloch moloch kurulumu network time security nfs nfs yapılandırma nftables ngircd ngircd server ngircd ubuntu ntp server kurulumu nts nts server kurulum openvpn openvpn hardening ossec ossec hids ossec kurulumu outdated shared libraries prometheus restic restic kullanımı rsync rsync dosya transfer rsync kullanımı rsyslog rsyslog log yönlendirme rsyslog uygulama log yönlendirme samba samba yapılandırma scp scp dosya transfer scp kullanımı selks selks kurulumu sftp sftp kullanımı smbclient smbclient kullanımı ssh anahtar oluşturma ssh key oluşturma sshfs sshfs kullanımı sshfs nasıl kullanılır stubby stubby kurulumu stubby yapılandırması suricata suricata kurulumu systemd systemd hardening systemd-resolved systemd-resolved dns over tls systemd-resolved dnssec telegraf tick stack tick stack kurulumu ubuntu nfs yapılandırma ubuntu samba yapılandırma uchecker unbound unbound dns unbound dns kurulumu unbound forwarding dns vuls vuls vulnerability scanner vuls vulnerability scanner kurulumu zcat zgrep zmore

systemd Hardening

systemd servis unit'leri tarafında yapılabilecek sıkılaştırmalar ile istediğiniz servislerin ağdan izole çalışması veya yetkilerinin kısıtlanması mümkün haldedir.

systemd tarafından bize sunulan systemd-analyze security ile tüm servis süreçlerinin güvenlik denetimini sağlayabilirsiniz. Sonuçlar kısaltılmıştır.

# systemd-analyze security
UNIT                                 EXPOSURE PREDICATE HAPPY
atd.service                               9.5 UNSAFE    😨    
cron.service                              9.5 UNSAFE    😨    
dbus.service                              9.5 UNSAFE    😨    
dm-event.service                          9.5 UNSAFE    😨    
emergency.service                         9.5 UNSAFE    😨    
getty@tty1.service                        9.5 UNSAFE    😨    
lvm2-lvmpolld.service                     9.5 UNSAFE    😨    
nginx.service                             9.5 UNSAFE    😨 

Temel olarak puanlama sistemi unit üzerinde kullanılabilecek sıkılaştırmaların uygulanıp uygulanmadığıdır. 1-10 arası derecelendirmeye sahiptir. Derecelendirme düştükçe güvenlik artar doğrultusundadır.

Örnek olarak Nginx için uygulanan/uygulanmayan sıkılaştırmaların sonucunu alıyoruz. Sonuçlar kısaltılmıştır.

# systemd-analyze security nginx.service
  NAME                                                        DESCRIPTION                                                             EXPOSURE
✗ PrivateNetwork=                                             Service has access to the host's network                                     0.5
✗ User=/DynamicUser=                                          Service runs as root user                                                    0.4
✗ CapabilityBoundingSet=~CAP_SET(UID|GID|PCAP)                Service may change UID/GID identities/capabilities                           0.3
✗ CapabilityBoundingSet=~CAP_SYS_ADMIN                        Service has administrator privileges                                         0.3
✗ CapabilityBoundingSet=~CAP_SYS_PTRACE                       Service has ptrace() debugging abilities                                     0.3
✗ RestrictAddressFamilies=~AF_(INET|INET6)                    Service may allocate Internet sockets                                        0.3
✗ RestrictNamespaces=~CLONE_NEWUSER                           Service may create user namespaces                                           0.3
✗ RestrictAddressFamilies=~…                                  Service may allocate exotic sockets                                          0.3
✗ CapabilityBoundingSet=~CAP_(CHOWN|FSETID|SETFCAP)           Service may change file ownership/access mode/capabilities unrestricted      0.2
✗ CapabilityBoundingSet=~CAP_(DAC_*|FOWNER|IPC_OWNER)         Service may override UNIX file/IPC permission checks                         0.2

Genel olarak uygulayabileceğimiz sıkılaştırmalara göz gezdirebiliriz.

Servis ve içerdiği tüm süreçler için tüm dosya sistem hiyerarşisini read-only olacak şekilde kısıtlayacaktır.

ProtectSystem=strict

Servis ve içerdiği tüm süreçler için özel geçici /tmp alan yaratır.

PrivateTmp=yes

Servis ve içerdiği tüm süreçler için her türlü ağ bağlantısını izole etmektedir.

PrivateNetwork=yes

Servis ve içerdiği tüm süreçlerin /var dizinine erişimini engelleyecektir.

InaccessibleDirectories=/var

Servis ve içerdiği tüm süreçleri /var/log dizinine erişimini read-only olacak şekilde kısıtlayacaktır.

ReadOnlyDirectories=/var/log

Servis ve içerdiği tüm süreçlerin yetki yükseltmesine olanak vermeyecektir.

NoNewPrivileges=true

Servis ve içerdiği tüm süreçlerin kernel parametrelerini değiştirmesine izin vermeyecektir.

ProtectKernelTunables=yes 

Servis ve içerdiği tüm süreçlerin kullanıcı verilerinin bulunduğu dizinlere erişimini read-only olarak kısıtlayacaktır.

ProtectHome=read-only

Servis ve içerdiği tüm süreçlerin kernel modülü yüklemesine izin vermeyecektir.

ProtectKernelModules=yes

Servis ve içerdiği tüm süreçlerin cgroups (Linux Control Groups) hiyerarşileri erişimini read-only olacak şekilde kısıtlayacaktır.

ProtectControlGroups=yes

Servis ve içerdiği tüm süreçlerin dosyalar ve dizinler tarafında SUID ve SGID yetkilendirmesine izin vermeyecektir.

RestrictSUIDSGID=yes

Servis ve içerdiği tüm süreçlerin sadece belirli subnet aralığının erişimine izin verilmesi veya verilmemesini sağlar.

IPAddressAllow=192.168.1.0/24 veya IPAddressDeny=192.168.2.0/24

Nginx systemd unit dosyasını düzenleyerek yukarıda bahsettiğimiz sıkılaştırmaların bazılarını tanımlıyoruz.

# systemctl edit nginx.service
[Service]
PrivateTmp=yes
ProtectHome=read-only
NoNewPrivileges=true
ProtectKernelTunables=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
RestrictSUIDSGID=yes

Değiştirdiğimiz unit dosyasını yeniden yüklemek için daemon-reload uyguluyoruz. Ardından Nginx servisini yeniden başlatıyoruz.

# systemctl daemon-reload
# systemctl restart nginx.service
SECSTACK
Author

SECSTACK

View Comments