Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/alptugay/Dokumanlar
Browse files Browse the repository at this point in the history
  • Loading branch information
Alptugay Değirmencioğlu committed Feb 15, 2019
2 parents 46767c8 + 011a474 commit 43d7364
Show file tree
Hide file tree
Showing 15 changed files with 1,096 additions and 1,017 deletions.
1,846 changes: 924 additions & 922 deletions docs/dizayn/paketler.md

Large diffs are not rendered by default.

30 changes: 0 additions & 30 deletions docs/dizayn/standalone-dizayn.md

This file was deleted.

32 changes: 32 additions & 0 deletions docs/dizayn/state-ng-dizayn.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
![ULAKBIM](../img/ulakbim.jpg)
#State-ng Rolü ve Dizaynı
------

State-ng rolü uç sistemlerin yapılandırma değişiklerini git sunucu üzerinden çekmesi ve kendi üzerinde çalıştırması ya da MYS cihazının değişiklileri otomatik bir şekilde uç birimlere aktarabilmesi için kullanılmaktadır.

Bu dökümanda bu rolün dizaynı anlatılmıştır.

------

* Kurulum dökümanında anlatıldığı gibi bir host state-ng olarak eklendiginde ve playbook calistirildiginda, uç makinaya ansible kurulur. Cron yapılandırması yapılarak makinanın belirli zamanlarda yapılandırma değişiklikleri kontrol edilir. Cron zamanı vars dosyasından ayarlanabilir.

* Bu yapılandırmanın MYS tarafında her push tarafından tetiklenmesi isteniyorsa aşağıdaki gibi alias tanımlanmalıdır.

$ **git config alias.xpush '!git push $1 $2 && ansible-playbook/etc/ansible/playbooks/state-ng.yml --tags smarttrigger'**


* Son olarak herhangi bir yapılandırmanın her bir commit sonrası uygulanması için post-commit hookuna aşağıdaki komut eklenir. Bu script MYS cihazına state-ng playbooku tarafından yuklenmektedir.

**/usr/sbin/ahtapot_stateng.py --smart-push**

* Bu komut playbook tarafından cron a eklenmektedir. İstenildiği taktirde manual olarak da çalıştırılabilir.


* State-ng playbooku çalıştırıldıtan sonra makinalar aşağıdaki şemaya uygun çalışır.


![state-ng](../img/state-ng.png)



**Sayfanın PDF versiyonuna erişmek için [buraya](state-ng-dizayn.pdf) tıklayınız.**
Binary file added docs/img/awx_inventory_import.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
17 changes: 12 additions & 5 deletions docs/kullanim-klavuzlari/ids-ips.md
Original file line number Diff line number Diff line change
Expand Up @@ -151,8 +151,11 @@ suricata_protocol_anomaly_rules:
suricata_mode: "ids"#ids|ips
fwbuilder_exists: "false"
suricata_ips_mode: "bridge" #nat|bridge
ips_int_iface: enp1s3
ips_ext_iface: enp0s3
ips_int_iface_master: enp1s3
ips_ext_iface_master: enp0s3
ips_int_iface_backup: enp1s3
ips_ext_iface_backup: enp0s3
ips_master_hostname: ahtapot-ips
config_suricata: true #defines if suricata should be configured
scripts_dir: /opt/scripts
suricata_home_net: "[192.168.0.0/16,10.0.0.0/8,172.16.0.0/12]"
Expand Down Expand Up @@ -611,15 +614,19 @@ suricata_protocol_anomaly_rules:
- alert udp any any -> any 53 (msg:"SURICATA UDP port 53 but not DNS"; flow:to_server; app-layer-protocol:!dns; sid:2271015; rev:1;)
- alert tcp any any -> any 502 (msg:"SURICATA TCP port 502 but not MODBUS"; flow:to_server; app-layer-protocol:!modbus; sid:2271018; rev:1;)
```
- “**main.yml**” dosyasında ips ayarlarının yapılması için gerekli ayar parametreleri bulunmaktadır. Burda ips yapılandırması için gerekli olan parametreler açıklanacaktır. "**suricata_mode**" ips için buraya ips yazılır. Eğer ips kurulacak makinede firewall kuralları fwbuilder tarafından yönetiliyorsa "**fwbuilder_exists**" paarametresi "**true**" yapılır yoksa "**false**" yapılır. "**suricata_ips_mode**" parametresi ips'in çalışma şeklini belirtmektedir. Router modu için "**nat**", bridge modu için "**bridge**" yazılır. Eğer ips bridge modunda çalışacaksa iç ağ trafiğinin geçeceği arabirim "**ips_int_iface**" dış ağ trafiğinin geçeceği arabirim "**ips_ext_iface**" parametrseinde ayarlanır. "**suricata_home_net:**" iç ağ tanımlarının yapıldığı değişkendir. "**suricata_external_net**" dış ağ tanımlarının yapıldığı parametredir. "**suricata_rules**" aktif edilecek imza gruplarının tanımlandığı yerdir. Aktif edilmesi istenmeyen parametreler başına "**#**" konularak yorum satırına alınabilir.
-**main.yml**” dosyasında ips ayarlarının yapılması için gerekli ayar parametreleri bulunmaktadır. Burda ips yapılandırması için gerekli olan parametreler açıklanacaktır. "**suricata_mode**" ips için buraya ips yazılır. Eğer ips kurulacak makinede firewall kuralları fwbuilder tarafından yönetiliyorsa "**fwbuilder_exists**" paarametresi "**true**" yapılır yoksa "**false**" yapılır. "**suricata_ips_mode**" parametresi ips'in çalışma şeklini belirtmektedir. Router modu için "**nat**", bridge modu için "**bridge**" yazılır. Eğer ips bridge modunda çalışacaksa iç ağ trafiğinin geçeceği arabirim "**ips_int_iface_master**" dış ağ trafiğinin geçeceği arabirim "**ips_ext_iface_master**" parametrseinde ayarlanır.
Eğer kurulum yedekli yapılıyorsa bu durumda hosts dosyası altında tanımlanan IPS sunucu isimlerinden master olması istenen sunucunun adı "**ips_master_hostname**" değişkenine yazılır. Bu durumda pasif modda olan sunucunun iç ve dış ağ arabirimleri sırasıyla "**ips_int_iface_backup**" ve "**ips_ext_iface_backup**" değişkenlerine yazılır. "**suricata_home_net**" iç ağ tanımlarının yapıldığı değişkendir. "**suricata_external_net**" dış ağ tanımlarının yapıldığı parametredir. "**suricata_rules**" aktif edilecek imza gruplarının tanımlandığı yerdir. Aktif edilmesi istenmeyen parametreler başına "**#**" konularak yorum satırına alınabilir.
```
---
# defaults file for ansible-suricata
suricata_mode: "ids"#ids|ips
fwbuilder_exists: "false"
suricata_ips_mode: "bridge" #nat|bridge
ips_int_iface: enp1s3
ips_ext_iface: enp0s3
ips_int_iface_master: enp1s3
ips_ext_iface_master: enp0s3
ips_int_iface_backup: enp1s3
ips_ext_iface_backup: enp0s3
ips_master_hostname: ahtapot-ips
config_suricata: true #defines if suricata should be configured
scripts_dir: /opt/scripts
suricata_home_net: "[192.168.0.0/16,10.0.0.0/8,172.16.0.0/12]"
Expand Down
22 changes: 21 additions & 1 deletion docs/kullanim-klavuzlari/mys-kullanim.md
Original file line number Diff line number Diff line change
Expand Up @@ -687,15 +687,34 @@ Son olarak grubumuzun içinde host yaratılır.

AWX üzerinden yönetilmek istenen bütün hostlar ve host grupları aynı şekilde eklenir.

##### Inventory Aktarılması/Çıkarılması

Inventory listesininin hosts dosyasından aktarılması edilmesi mümkündür.
Inventory sayfasında **Source** tabından 'Sourced from a Project' seçilerek dosyadan aktarılabilir.

![AWX](../img/awx_inventory_import.png)

AWX inventoryi dosya ya çıkarma(export) işlemini desteklememektedir. Bu işlem için bir betik yazılmıştır.
AWX üzerindeki inventoryleri dosya formatına dönüştürmek için aşağıdaki betik çalıştırılır. Betik dosyayı ekrana basar.

```
$ awx_inventory.sh
```

##### Proje Ekleme

Git Repo bilgileri girilerek proje eklenir. Eğer ssh kullanılacaksa **Credentials** tabından gerekli keylerin yaratılması ve scm credentials olarak girilmesi gerekmektedir.

![AWX](../img/awx_project_add.png)



##### Görev Ekleme

Son olarak playbookları çalıştırmak için görev şablonları tanımlanmalıdır.
Son olarak playbookları çalıştırmak için görev şablonları tanımlanmalıdır.
Task ile ilgili değişkenler 'Extra Variables' olarak eklenebilir. Buraya eklenen değerler vars dosyalarından öncelikli çalışacaktır.
AWX arayüzünden vars dosyaları değiştirilememektedir.

**Templates** tabına girilerek aşağıdaki gibi görev tanımlanır ve run edilir.

![AWX](../img/awx_template_add.png)
Expand All @@ -704,6 +723,7 @@ Son olarak playbookları çalıştırmak için görev şablonları tanımlanmal

![AWX](../img/awx_job_result.png)


**Önemli Not:** AWX ansible'ı farklı bir klasorde çalıştırdığı için ansible.cfg dosyasında **roles_path** değişkeninin ayarlanması gerekmektedir.
Proje eklendikten sonra /var/awx_projects klasörünün altından proje klasoru bulunarak roles_path editlenmelidir.
Örnek: /var/awx_projects/__12_ahtapot/roles
Expand Down
26 changes: 0 additions & 26 deletions docs/kullanim-klavuzlari/standalone-kullanim.md

This file was deleted.

49 changes: 49 additions & 0 deletions docs/kullanim-klavuzlari/state-ng-kullanim.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# State-ng
State-ng, uç birimlerin yapılandırmalarını periyodik olarak çekmesi için tasarlanan playbook'tur. “**/etc/ansible/playbooks/**” dizini altında bulunan “**state-ng.yml**” dosyasına bakıldığında, “**hosts**” satırında ansible’a ait “**/etc/ansible/**” altında bulunan “**hosts**” dosyasında “**[state-ng]**” satırı altına yazılmış tüm sunucularda bu playbookun oynatılacağı belirtilir. “**sudo**” satırı ile çalışacak komutların sudo yetkisi ile çalışması belirlenir. “**vars_files**” satırı state-ng playbookunun değişken dosyalarını belirtmektedir. “**roles**” satırı altında bulunan satırlarda ise bu playbook çalıştığında “**state-ng**” rolünün çalışacağı belirtilmektedir.
```
- hosts: state-ng
sudo: yes
vars_files:
- /etc/ansible/roles/state-ng/vars/main.yml
roles:
- role: state-ng
```
#### State-ng Rolü Değişkenleri
Bu roldeki değişkenler “**/etc/ansible/roles/state-ng/vars/**” dizini altında bulunan **state-ng.yml** dosyasında belirtilmiştir. Değişken bilgileri aşağıdaki gibidir;

- "**ansible_git_url**" değişkeni uç birimin pull ediceği ansible reposunu belirtir.
"**gdys_git_url**" değişkeni uç birimin pull ediceği gdys reposunu belirtir. Firewall cihazları bu repodan değişiklik kontrolu yapmaktadır.
Uç birim ile git reposu arasında ssh yapılandırılması yapılmalıdır.
"**branch**" değişkeni hangi git branch'ının kullanılacağını belirtir.
"**ansible_directory**" ve "**gdys_directory**"değişkenleri ansible ve gdys repolarının nereye kaydedilmesi gerektiğini belirtir.
Anbible için bu klasörun MYS cihazındaki ile aynı olması gerektiğine dikkat ediniz.
"**cron_file**" cron yapılandırmalarının kaydedileceği dosyayı belirtir.
"**cron_minute**" cron dakika yapılandırması,
"**cron_hour**" cron saat yapılandırması,
"**cron_day**" cron gün yapılandırmasıdır.
"**pull_hosts**" değişkenine eklenen hostlar yapılandırmalarını otomatik olarak cron ile alır. Öntanımlı olarak kapalıdır.


```
state_ng:
ansible_git_url: "ahtapotops@10.0.0.200:/srv/git/ansible.git"
gdys_git_url: "ahtapotops@10.0.0.200:/srv/git/gdys.git"
branch: "master"
ansible_directory: "/etc/ansible"
gdys_directory: "/home/ahtapotops/gdys"
mys:
cron_file: "/etc/cron.d/ahtapot-stateng"
cron_minute: "0"
cron_hour: "*/4"
cron_day: "*"
host:
cron_file: "/etc/cron.d/ahtapot-stateng"
cron_hour: "*/4"
cron_day: "*"
#pull_hosts:
#- host1
#- host2
#- host3
```
4 changes: 2 additions & 2 deletions docs/kurulum-yonergeleri/gdys-kurulum.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ Yukarıdaki şemada gösterildiği üzere GDYS sisteminin çalışma prensibini



#Güvenlik Duvarı Kurulumu
# Güvenlik Duvarı Kurulumu


Bu dokümanda, Ahtapot bütünleşik güvenlik yönetim sisteminde kullanılan güvenlik duvarlarının kurulum prosedürü anlatılıyor.
Expand Down Expand Up @@ -270,7 +270,7 @@ $ ansible-playbook playbooks/firewall.yml --skip-tag=deploy
```
# dpkg -r ansible
```
#Güvenlik Duvarı Yönetim Sistemi Entegrasyonu
# Güvenlik Duvarı Yönetim Sistemi Entegrasyonu
------

Bu dokümanda, Ahtapot bütünleşik güvenlik yönetim sistemi entegrasyonu anlatılıyor.
Expand Down
Loading

0 comments on commit 43d7364

Please sign in to comment.