UFW
Ansible
güvenlik duvarı kurallarını işlemek için bir ufw
modülü vardır. Gelen roles/common/tasks/main.yml
tüm sunucuların dahildir, ben (diğer şeyler arasında) sahiptir:
- name: Install ufw
apt: name=ufw
- name: Allow ssh through firewall
ufw: proto=tcp port=22 rule=allow
- name: Set ufw policy
ufw: state=enabled direction=incoming policy=deny
Düzenleme : Varsayılan ilkeyi "reddetme" (başlangıçta yukarıda tersi) olarak ayarlamadan önce ssh'a izin vermek gerekir, aksi takdirde iki adım arasında kilitlenmiş olabilirsiniz.
Sonra, her bir rol için, bu rol için ek güvenlik duvarı kurallarım var. Örneğin, içinde roles/nginx/tasks/main.yml
, (diğer şeylerin yanı sıra) bu var:
- name: Allow nginx firewall
ufw: proto=tcp port=80 rule=allow
- name: Allow nginx ssl firewall
ufw: proto=tcp port=443 rule=allow
Yani tüm nginx sunucularımın 80 ve 443 numaralı portları açıldı.
Bu şekilde, istediğiniz genel yapılandırmayı oluşturabilir ve daha spesifik rollere ek kurallar ekleyebilirsiniz.
ferm
Eğer ufw
başa çıkamayacak kurallarınız varsa , bence en iyi çözümlerden biri ferm
; neredeyse her şeyi yapabilir ve siz gibi dizinleri kurallarını okumak için yapılandırabilirsiniz /etc/ferm/input.d/
, /etc/ferm/output.d/
, /etc/ferm/forward.d/
vb Sen yapabilir common
rol gerekli hazırlamak ferm
yapılandırma ve daha sonra diğer rolleri bu dizinlere dosyaları damla var.
düz iptables
ansible
Başka bir şekilde belirtilen kurallara ek olarak kuralları belirtme gereksinimi olağandışıdır ve görünüşe göre kullanım noktasının çoğunu ortadan kaldırır ansible
. Ne yazık ki bunu yapmak için herhangi bir yol göremiyorum iptables
. Aşağıda roles/nginx/tasks/main.yml
(denenmemiş) 80 numaralı bağlantı noktasını açma örneği :
- name: Check if port 80 is allowed
shell: iptables -L | grep -q "Allow http" && echo -n yes || echo -n no
register: check_allow_http
changed_when: no
always_run: yes
- name: Allow port 80
command: >
iptables -A INPUT -p tcp -m tcp --dport 80
-m comment --comment "Allow http" -j ACCEPT
when: check_allow_http.stdout == "no"
notify:
- Save iptables
Nerede çalışan Save iptables
bir işleyici iptables-save
. Yukarıdakilerin hepsi yazmak oldukça sıkıcıdır, ancak özellikle yönetmek için sadece birkaç kuralınız varsa uygun olabilir ansible
.