AHTAPOT Firewall Builder Kurulumu Bu dökümanda, Ahtapot projesi, Güvenlik Duvarı ve Güvenik Duvarı Yönetim Sistemine ait bir bileşen olarak kullanılmak üzere bir Firewall Builder sunucusu kurulumu ve anlatılıyor. Gereken : 1. Pardus Temel ISO dan kurulumu tamamlanmış bir sunucu. İçerik Kurulum İşlemleri
Kurulum İşlemleri 1. Pardus Temel ISO dosyasından Pardus kurulumu tamamlandıktan sonra sisteme ahtapotops kullanıcı ile giriş yapılır. ahtapotops kullanıcısının parolası ahtapotops olarak öntanımlıdır. NOT: Pardus Temel ISO dosyasından Pardus kurulumu adımları için AHTAPOT Pardus Temel ISO Kurulumu dökümanına bakınız. 2. Sisteme giriş sağlandıktan sonra, aşağıdaki komut ile root kullanıcısına geçiş yapılır. root kullanıcısı için ISO kurulumda belirlenen parola kullanılır. $ sudo su - 3. Sisteme root kullanıcısı ile bağlantı sağlandıktan sonra aşağıdaki komut ile ansible ve kurulumu yapılır: # apt-get install -y ansible # apt-get install -y git 4. Bu adımda, BilgiO A.Ş tarafından geliştirilen ve kurulum, sıkılaştırma vb. gibi işleri otomatize etmeyi sağlayan ansible playbook ları Pardus Ahtapot reposunda paketlenmiş olarak bulunmaktadır. # apt-get install -y ahtapot-mys # cp -rf /ahtapotmys/* /etc/ansible/ 5. Ahtapot projesi kapsamında oluşacak tüm loglar /var/log/ahtapot/ dizinine yazılmaktadır. Bu dizinin sahipliğini ahtapotops kullanıcısına vermek için aşağıdaki komut çalıştırılır. # chown ahtapotops:ahtapotops -R /var/log/ahtapot v1.3 2
6. Bir sonraki adımda yer alan sıkılaştırma ve kurulum işlemlerinin akabinde sistemde bulunan diğer sunucular ile iletişimin kurulmasını sağlamak adına ahtapotops kullanıcısına ait AHTAPOT CA KURULUM dökümanına uygun bir şekilde oluşturulmuş anahtalar, sunucu üzerinde ilgili yerlere kopyalama işlemi yapılmalıdır. Bu işlem için gerekli adımlar aşağıdaki gibidir; a. ahtapotops kullanıcısı için oluşturulmuş anahtarları, sunucu üzerinde /home/ahtapotops dizinine belirlenen yöntem ile kopyalanır. b. Anahtarların kopyalanması gereken ilgili dizine gidilir. # su - ahtapotops $ mkdir ~/.ssh && chmod 700 ~/.ssh c. Kopyalanan anahtarların ahtapotops kullanıcısına atanması için aşağıdaki komutlar çalıştırılır. $ cp /home/ahtapotops/ahtapotops /home/ahtapotops/.ssh/id_rsa && chmod 600 /home/ahtapotops/.ssh/id_rsa $ cp /home/ahtapotops/ahtapotops-cert.pub /home/ahtapotops/.ssh/id_rsacert.pub $ cp /home/ahtapotops/ahtapotops.pub /home/ahtapotops/.ssh/id_rsa.pub 6. Ansible Playbookları dökümanında detaylı anlatımı bulunan, sunucu üzerinde gerekli sıkılaştırma işlemleri ve FirewallBuilder kurulumu yapacak olan firewallbuilder.yml playbookunu çalıştırmadan önce, playbook değişkenlerinde bulunan yerel GitLab IP adresi değiştirilmelidir. Bu değişlik için aşağıdaki komut kullanılar dosya düzenleyici açılır ve repo: ssh://git@10.0.7.246/ahtapotops/gdys.git satırı repo: ssh://git@yerelgitlabip/ahtapotops/gdys.git olacak şekilde değiştirilir. # su - ahtapotops $ cd /etc/ansible/ $ sudo vi roles/firewallbuilder/vars/main.yml v1.3 3
7. Tercih ettiğimiz metin düzenleyicisini kullanarak hosts dosyasını düzenliyoruz. Aşağıdaki örnekte vi kullanılır. Açılan dosyada [firewallbuilder] kısmı altına firewallbuilder makinasının tam ismi (FQDN) girilir. $ sudo vi hosts [firewallbuilder] fwbuilder.alan.adi 8. roles/base/vars klasörü altında değişkenleri barındıran main.yml dosyası üzerinde ntp server bilgileri girilmektedir. başlığı altındaki FirstNtpServerHost ve SecondNtpServerHost satırları karşısına NTP sunucu bilgileri girilmelidir. # rsyslog yapilandirmasini belirtmektedir. başlığı altındaki Server1 ve Server2 satırları Rsyslog sunucusunun FQDN bilgisi ile doldurulmalıdır. Sistemde bir Rsyslog sunucu olduğu durumlarda Server2, bir NTP sunucu olduğu durumda ise SecondNtpServerHost satırının başına # işareti konularak o satırın işlem dışı kalması sağlanmalıdır. Sunucularda ssh portunun varsayılan değer dışında bir değere atanması istendiği durumda, ssh fonksiyonu altında bulunan Port değişkenine istenen yeni değer yazılmalıdır. $ cd roles/base/vars/ $ sudo vi main.yml # ntp server bilgileri girilmektedir. FirstNtpServerHost: "0.debian.pool.ntp.org" SecondNtpServerHost: "1.debian.pool.ntp.org" # rsyslog yapilandirmasini belirtmektedir. conf: source: rsyslog.conf.j2 destination: /etc/rsyslog.conf service: name: rsyslog state: started enabled: yes v1.3 4
ConnectionType: tcp Server1: rsyslog01.domain_adı #Server2: rsyslog02.domain_adı Port: 514 ActionQueueMaxDiskSpace: 1g ActionQueueSaveOnShutdown: on ActionQueueType: LinkedList ActionResumeRetryCount: -1 WorkDirectory: "/var/spool/rsyslog" IncludeConfig: "/etc/rsyslog.d/*" ssh: # ssh yapilandirmasini belirtmektedir. conf: source: sshd_config.j2 destination: /etc/ssh/sshd_config service: name: ssh state: started enabled: yes TrustedUserCAKeys: source: ahtapot_ca.pub.j2 destination: /etc/ssh/ahtapot_ca.pub LocalBanner: source: issue.j2 destination: /etc/issue RemoteBanner: source: issue.net.j2 destination: /etc/issue.net v1.3 5
Port: 22 9. Playbook oynatmadan önce, gitlab sunucusunun port bilgisi değiştiğinden, gitlab sunucusu ile firewall builder makinası arasında ssh bağlantısı yapılarak, host_key kabul edilir. $ ssh FQDN_SUNUCU_ADI $ sudo su - # ssh ahtapotops@fqdn_sunucu_adi -i /home/ahtapotops/.ssh/id_rsa # exit 10. İlgili değişilik yapıldıktan sonra firewallbuilder.yml playbooku oynatılır. $ ansible-playbook playbooks/firewallbuilder.yml --connection=local 11. FirewallBuilder kurulumu tamamlandıktan sonra sunucu MYS ile yönetileceğinden, sunucu üzerindeki ansible paketi kaldırılır. # dpkg -r ansible 12. İşlem bittikten sonra, FirewallBuilder ve FirewallBuilder Kontrol Paneli kurulumları tamamlanmış olacaktır. v1.3 6