Compare commits
1 Commits
e75db369f2
...
ed61026b45
Author | SHA1 | Date | |
---|---|---|---|
![]() |
ed61026b45 |
6
inventory/host_vars/ks3370405.yml
Normal file
6
inventory/host_vars/ks3370405.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
|
||||
allowed_smtp_ips: ["82.66.135.228", "80.67.179.200"]
|
||||
|
||||
global_smtp_relay_allowed_ips: "{{ allowed_smtp_ips }}"
|
||||
ufw_allowed_smtp_ips: "{{ allowed_smtp_ips }}"
|
@@ -14,6 +14,8 @@ all:
|
||||
ansible_host: muse-HP-EliteBook-820-G2.home.arpa
|
||||
pinkypie:
|
||||
ansible_host: pinkypie.home.arpa
|
||||
ks3370405:
|
||||
ansible_host: ks3370405.kimsufi.com
|
||||
|
||||
router:
|
||||
hosts:
|
||||
@@ -76,6 +78,7 @@ disabled_munin:
|
||||
baybay-ponay:
|
||||
muse-HP-EliteBook-820-G2:
|
||||
pinkypie:
|
||||
ks3370405:
|
||||
|
||||
disabled_syslog:
|
||||
hosts:
|
||||
@@ -83,6 +86,7 @@ disabled_syslog:
|
||||
machinbox:
|
||||
muse-HP-EliteBook-820-G2:
|
||||
pinkypie:
|
||||
ks3370405:
|
||||
|
||||
# Those are not servers and should not be configured as such
|
||||
disabled_server_conf:
|
||||
|
7
playbooks/global_smtprelay.yml
Normal file
7
playbooks/global_smtprelay.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
|
||||
- name: Install & configure the global SMTP relay
|
||||
hosts: ks3370405
|
||||
roles:
|
||||
- ufw
|
||||
- global_smtp_relay
|
@@ -18,6 +18,8 @@
|
||||
import_playbook: firewall.yml
|
||||
- name: Run mail playbook
|
||||
import_playbook: mail.yml
|
||||
- name: Run global_smtprelay playbook
|
||||
import_playbook: global_smtprelay.yml
|
||||
- name: Run xmpp playbook
|
||||
import_playbook: xmpp.yml
|
||||
- name: Run webservers playbook
|
||||
|
@@ -1,7 +1,7 @@
|
||||
---
|
||||
|
||||
- name: Deploy smtp relay
|
||||
hosts: all:!disabled_server_conf:!machinbox:!mail
|
||||
hosts: all:!disabled_server_conf:!machinbox:!mail:!ks3370405
|
||||
diff: true
|
||||
roles:
|
||||
- smtprelay
|
||||
|
6
roles/global_smtp_relay/handlers/main.yml
Normal file
6
roles/global_smtp_relay/handlers/main.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
- name: Restart postfix
|
||||
ansible.bultin.service:
|
||||
name: postfix
|
||||
state: restarted
|
||||
enable: true
|
15
roles/global_smtp_relay/tasks/main.yml
Normal file
15
roles/global_smtp_relay/tasks/main.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
|
||||
- name: Install postfix
|
||||
ansible.builtin.package:
|
||||
name: postfix
|
||||
state: present
|
||||
|
||||
- name: Put configuration
|
||||
ansible.builtin.template:
|
||||
src: main.cf.j2
|
||||
dest: /etc/postfix/main.cf.j2
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0o640"
|
||||
notify: Restart postfix
|
43
roles/global_smtp_relay/templates/main.cf.j2
Normal file
43
roles/global_smtp_relay/templates/main.cf.j2
Normal file
@@ -0,0 +1,43 @@
|
||||
compatibility_level = 2
|
||||
queue_directory = /var/spool/postfix
|
||||
command_directory = /usr/bin
|
||||
daemon_directory = /usr/lib/postfix/bin
|
||||
data_directory = /var/lib/postfix
|
||||
mail_owner = postfix
|
||||
myhostname = mail-relay.mateu.be
|
||||
myorigin = $myhostname
|
||||
mydestination = $myhostname, localhost.$mydomain, localhost
|
||||
unknown_local_recipient_reject_code = 550
|
||||
mynetworks = 127.0.0.0/8, [::1]/128, 82.66.135.228, 80.67.179.200
|
||||
debugger_command =
|
||||
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
|
||||
ddd $daemon_directory/$process_name $process_id & sleep 5
|
||||
sendmail_path = /usr/bin/sendmail
|
||||
newaliases_path = /usr/bin/newaliases
|
||||
mailq_path = /usr/bin/mailq
|
||||
setgid_group = postdrop
|
||||
html_directory = no
|
||||
mailbox_size_limit = 104857600
|
||||
message_size_limit = 104857600
|
||||
manpage_directory = /usr/share/man
|
||||
sample_directory = /etc/postfix
|
||||
readme_directory = /usr/share/doc/postfix
|
||||
inet_protocols = ipv4
|
||||
meta_directory = /etc/postfix
|
||||
shlib_directory = /usr/lib/postfix
|
||||
## Référence de chiffrement TLS
|
||||
# serveur SMTP
|
||||
smtpd_tls_cert_file = /etc/x509/mail-relay.mateu.be/fullchain.cer
|
||||
smtpd_tls_key_file = /etc/x509/mail-relay.mateu.be/mail-relay.mateu.be.key
|
||||
smtpd_use_tls = yes
|
||||
smtpd_tls_auth_only = yes
|
||||
smtpd_tls_protocols = !SSLv2,!SSLv3
|
||||
smtpd_tls_loglevel = 1
|
||||
# client SMTP
|
||||
smtp_tls_CApath = /etc/ssl/certs
|
||||
smtp_tls_cert_file = /etc/x509/mail-relay.mateu.be/fullchain.cer
|
||||
smtp_tls_key_file = /etc/x509/mail-relay.mateu.be/mail-relay.mateu.be.key
|
||||
smtp_use_tls = yes
|
||||
smtp_tls_protocols = !SSLv2,!SSLv3
|
||||
smtp_tls_security_level = may
|
||||
smtp_tls_loglevel = 1
|
2
roles/ufw/defaults/main.yml
Normal file
2
roles/ufw/defaults/main.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
---
|
||||
ufw_allowed_smtp_ips: []
|
43
roles/ufw/tasks/main.yml
Normal file
43
roles/ufw/tasks/main.yml
Normal file
@@ -0,0 +1,43 @@
|
||||
---
|
||||
|
||||
- name: Install ufw
|
||||
ansible.builtin.package:
|
||||
name: ufw
|
||||
state: present
|
||||
|
||||
- name: Permit outgoing flows
|
||||
community.general.ufw:
|
||||
default: allow
|
||||
direction: outgoing
|
||||
|
||||
- name: Deny incoming flows
|
||||
community.general.ufw:
|
||||
default: deny
|
||||
direction: incoming
|
||||
|
||||
- name: Allow incoming SSH
|
||||
community.general.ufw:
|
||||
rule: allow
|
||||
port: ssh
|
||||
proto: tcp
|
||||
|
||||
- name: Allow incoming HTTP
|
||||
community.general.ufw:
|
||||
rule: allow
|
||||
port: http
|
||||
proto: tcp
|
||||
|
||||
- name: Allow incoming SMTP
|
||||
community.general.ufw:
|
||||
rule: allow
|
||||
port: smtp
|
||||
src: "{{ item }}"
|
||||
loop: "{{ ufw_allowed_smtp_ips }}"
|
||||
|
||||
- name: Set logging
|
||||
community.general.ufw:
|
||||
logging: "on"
|
||||
|
||||
- name: Enable UFW
|
||||
community.general.ufw:
|
||||
state: enabled
|
Reference in New Issue
Block a user