Initial commit
add plenty of stuff
This commit is contained in:
commit
6785f8dbbd
14
README.md
Normal file
14
README.md
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# Base ansible role
|
||||||
|
|
||||||
|
This installs a bunch of packages that I will probably need quite soon,
|
||||||
|
and configures some services such as:
|
||||||
|
|
||||||
|
* Fail2ban
|
||||||
|
* cronie
|
||||||
|
* paccache cron
|
||||||
|
* sslh (with a default config that is only sent if there is none already available)
|
||||||
|
* nftables (with a default config that is only sent if there is none already available)
|
||||||
|
* uptimed
|
||||||
|
* vnstat
|
||||||
|
|
||||||
|
It also installs yay.
|
2
files/local.conf
Normal file
2
files/local.conf
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
[sshd]
|
||||||
|
enabled = true
|
48
files/nftables.conf
Normal file
48
files/nftables.conf
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
#!/usr/bin/nft -f
|
||||||
|
# ipv4/ipv6 Simple & Safe Firewall
|
||||||
|
# you can find examples in /usr/share/nftables/
|
||||||
|
|
||||||
|
table inet filter {
|
||||||
|
chain input {
|
||||||
|
type filter hook input priority 0;
|
||||||
|
|
||||||
|
# allow established/related connections
|
||||||
|
ct state {established, related} accept
|
||||||
|
|
||||||
|
# early drop of invalid connections
|
||||||
|
ct state invalid drop
|
||||||
|
|
||||||
|
# allow from loopback
|
||||||
|
iifname lo accept
|
||||||
|
|
||||||
|
# allow icmp
|
||||||
|
ip protocol icmp accept
|
||||||
|
meta l4proto ipv6-icmp accept
|
||||||
|
|
||||||
|
# Accept from VPN
|
||||||
|
iifname overlay accept;
|
||||||
|
|
||||||
|
# allow ssh
|
||||||
|
tcp dport {ssh, http, https, tinc} accept
|
||||||
|
udp dport {tinc} accept
|
||||||
|
|
||||||
|
tcp dport 53 accept
|
||||||
|
udp dport 53 accept
|
||||||
|
|
||||||
|
udp dport 60000-61000 accept
|
||||||
|
|
||||||
|
# everything else
|
||||||
|
reject with icmpx type port-unreachable
|
||||||
|
drop;
|
||||||
|
}
|
||||||
|
chain forward {
|
||||||
|
type filter hook forward priority 0;
|
||||||
|
drop
|
||||||
|
}
|
||||||
|
chain output {
|
||||||
|
type filter hook output priority 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# vim:set ts=2 sw=2 et:
|
31
files/sslh.cfg
Normal file
31
files/sslh.cfg
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# Default Arch configuration
|
||||||
|
# You can find more examples in /usr/share/doc/sslh
|
||||||
|
|
||||||
|
verbose: false;
|
||||||
|
foreground: true;
|
||||||
|
inetd: false;
|
||||||
|
numeric: false;
|
||||||
|
transparent: false;
|
||||||
|
timeout: 2;
|
||||||
|
user: "sslh";
|
||||||
|
#pidfile: "/run/sslh.pid";
|
||||||
|
|
||||||
|
|
||||||
|
listen:
|
||||||
|
(
|
||||||
|
{ host: "::0"; port: "443"; },
|
||||||
|
{ host: "0.0.0.0"; port: "443"; },
|
||||||
|
);
|
||||||
|
|
||||||
|
protocols:
|
||||||
|
(
|
||||||
|
{ name: "ssh"; service: "ssh"; host: "localhost"; port: "22"; probe: "builtin"; },
|
||||||
|
#{ name: "openvpn"; host: "localhost"; port: "1194"; probe: "builtin"; },
|
||||||
|
{ name: "xmpp"; host: "localhost"; port: "5222"; probe: "builtin"; },
|
||||||
|
#{ name: "http"; host: "localhost"; port: "80"; probe: "builtin"; },
|
||||||
|
{ name: "tls"; host: "localhost"; port: "8443"; probe: "builtin"; },
|
||||||
|
{ name: "tinc"; host: "localhost"; port: "655"; probe: "builtin"; },
|
||||||
|
{ name: "anyprot"; host: "localhost"; port: "8443"; probe: "builtin"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
# vim:set ts=4 sw=4 et:
|
106
tasks/main.yml
Normal file
106
tasks/main.yml
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Install packages
|
||||||
|
community.general.pacman:
|
||||||
|
state: present
|
||||||
|
name:
|
||||||
|
- base-devel
|
||||||
|
- borg
|
||||||
|
- cronie
|
||||||
|
- dfc
|
||||||
|
- fail2ban
|
||||||
|
- firejail
|
||||||
|
- git
|
||||||
|
- htop
|
||||||
|
- iftop
|
||||||
|
- inetutils
|
||||||
|
- iotop
|
||||||
|
- mlocate
|
||||||
|
- mosh
|
||||||
|
- neovim
|
||||||
|
- nethogs
|
||||||
|
- nftables
|
||||||
|
- nginx
|
||||||
|
- nmap
|
||||||
|
- nsd
|
||||||
|
- pacman-contrib
|
||||||
|
- prometheus-node-exporter
|
||||||
|
- sslh
|
||||||
|
- strace
|
||||||
|
- sudo
|
||||||
|
- tinc
|
||||||
|
- tmux
|
||||||
|
- tree
|
||||||
|
- uptimed
|
||||||
|
- vim
|
||||||
|
- vnstat
|
||||||
|
- wget
|
||||||
|
- zsh
|
||||||
|
|
||||||
|
- name: install fail2ban conf
|
||||||
|
copy:
|
||||||
|
dest: /etc/fail2ban/jail.d/local.conf
|
||||||
|
src: local.conf
|
||||||
|
|
||||||
|
- name: Enable fail2ban
|
||||||
|
systemd:
|
||||||
|
enabled: true
|
||||||
|
state: started
|
||||||
|
name: fail2ban
|
||||||
|
|
||||||
|
- name: Enable cronie
|
||||||
|
systemd:
|
||||||
|
enabled: true
|
||||||
|
state: started
|
||||||
|
name: cronie
|
||||||
|
|
||||||
|
- name: Enable vnstat
|
||||||
|
systemd:
|
||||||
|
enabled: true
|
||||||
|
state: started
|
||||||
|
name: vnstat
|
||||||
|
|
||||||
|
- name: Enable uptimed
|
||||||
|
systemd:
|
||||||
|
state: started
|
||||||
|
enabled: true
|
||||||
|
name: uptimed
|
||||||
|
|
||||||
|
- name: Install default nftables conf
|
||||||
|
copy:
|
||||||
|
dest: /etc/nftables.conf
|
||||||
|
src: nftables.conf
|
||||||
|
force: no
|
||||||
|
|
||||||
|
- name: Enable nftables
|
||||||
|
systemd:
|
||||||
|
state: started
|
||||||
|
enabled: true
|
||||||
|
name: nftables
|
||||||
|
|
||||||
|
- name: Add paccache cron
|
||||||
|
cron:
|
||||||
|
name: paccache
|
||||||
|
job: paccache -rk2
|
||||||
|
hour: "1"
|
||||||
|
minute: "30"
|
||||||
|
|
||||||
|
- name: Add pkg user
|
||||||
|
user:
|
||||||
|
name: pkg
|
||||||
|
group: users
|
||||||
|
create_home: yes
|
||||||
|
|
||||||
|
- name: Install sslh config
|
||||||
|
copy:
|
||||||
|
dest: /etc/sslh.cfg
|
||||||
|
src: sslh.cfg
|
||||||
|
force: no
|
||||||
|
|
||||||
|
- name: Enable sslh
|
||||||
|
systemd:
|
||||||
|
enabled: true
|
||||||
|
state: started
|
||||||
|
name: sslh-select
|
||||||
|
|
||||||
|
- include: yay.yml
|
32
tasks/yay.yml
Normal file
32
tasks/yay.yml
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
# Yay building & install task
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: Clone yay pkg
|
||||||
|
become: yes
|
||||||
|
become_user: pkg
|
||||||
|
git:
|
||||||
|
repo: https://aur.archlinux.org/yay.git
|
||||||
|
dest: /home/pkg/yay
|
||||||
|
clone: yes
|
||||||
|
update: yes
|
||||||
|
|
||||||
|
- name: Build yay
|
||||||
|
become: yes
|
||||||
|
become_user: pkg
|
||||||
|
command:
|
||||||
|
chdir: /home/pkg/yay
|
||||||
|
cmd: makepkg -f
|
||||||
|
creates: "*.pkg.*"
|
||||||
|
|
||||||
|
- name: Find pkg
|
||||||
|
find:
|
||||||
|
paths: /home/pkg/yay
|
||||||
|
file_type: file
|
||||||
|
patterns: '*.pkg*'
|
||||||
|
register: yay_pkgs
|
||||||
|
|
||||||
|
- name: Install yay
|
||||||
|
community.general.pacman:
|
||||||
|
name: "{{ yay_pkgs.files[0].path }}"
|
||||||
|
state: present
|
||||||
|
|
Loading…
Reference in New Issue
Block a user