UFW
Ansiblegüvenlik duvarı kurallarını işlemek için bir ufwmodülü vardır. Gelen roles/common/tasks/main.ymltü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 ufwbaş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 commonrol gerekli hazırlamak fermyapılandırma ve daha sonra diğer rolleri bu dizinlere dosyaları damla var.
düz iptables
ansibleBaş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 iptablesbir 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.