AHTAPOT Ansible Kurulumu Bu dökümanda, Ahtapot bütünleşik güvenlik yönetim sisteminde kullanılan merkezi yönetim sunucusunun kurulması prosedürü 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 git kurulumları 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 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 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 [ansible] kısmı altına ansible makinasının tam ismi (FQDN) girilir. $ cd /etc/ansible/ $ sudo vi hosts [ansible] ansible.alan.adi 8. Ansible makinasının erişmesi gereken tüm makinaların hosts dosyasını düzenlemek adına, Ansible Playbookları dökümanında detaylı anlatımı bulunan Base rolüne ait hosts.j2 dosyasına tüm makina bilgileri yazılır. $ sudo vi /roles/base/templates/hosts.j2 ## Bu dosya ansible tarafindan yonetilmektedir! ## Burada yapilan degisikliklerin uzerine yazilir!! {{ ansible_managed }} # The following lines are desirable for IPv4 capable hosts 127.0.0.1 localhost x.x.x.x ansible.gdys.local ansible x.x.x.x gitlab.gdys.local gitlab x.x.x.x fwbuilder.gdys.local fwbuilder x.x.x.x fw.gdys.local fw x.x.x.x fwtest.gdys.local fwtest # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters 9. 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 4
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 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 5
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 Port: 22 10. Ansible Playbookları dökümanında detaylı anlatımı bulunan, sunucu üzerinde gerekli sıkılaştırma işlemleri ve ansible kurulumu yapacak olan ansible.yml playbook u çalıştırılır. $ ansible-playbook playbooks/ansible.yml --connection=local --skiptags=gdys,mys 11. ansible.yml playbookunun çalışması bittikten sonra, Ansible kurulumu tamamlanmış olacak ve sistem diğer sunucuları yönetebilir hale gelmiş olacaktır. 6