openssh-server
# provides /etc/inputrc and understanding of ctrl+arrow key combos
readline-common
-# provides letsencrypt
-certbot
-# for letsencrypt renewal
-cron
# provides systemd scripts that configure iptables via /etc/iptables/*
iptables-persistent
# this line is here because the shell "read" in install_for_target.sh ignores lines without final newline
\ No newline at end of file
fi
mail_address="$1"
+# We need certbot to get LetsEncrypt certificates.
+apt install -y certbot
+
# If port 80 blocked by iptables, open it.
set +e
iptables -C INPUT -p tcp --dport 80 -j ACCEPT
--- /dev/null
+*filter
+:INPUT DROP [0:0]
+:FORWARD DROP [0:0]
+:OUTPUT ACCEPT [0:0]
+# otherwise self-referential connections to local host will fail
+-A INPUT -i lo -j ACCEPT
+# this enables ping etc.
+-A INPUT -p icmp -j ACCEPT
+# tolerate any inbound connections requested by our server, no matter the port
+-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
+# SSH
+-A INPUT -p tcp --dport 22 -j ACCEPT
+# HTTPS in theory, in practice my second SSH port, see sshd_config
+-A INPUT -p tcp --dport 443 -j ACCEPT
+# SMTP (allowing for STARTTLS); necessary for mail server to mail server banter
+-A INPUT -p tcp --dport 25 -j ACCEPT
+# SMTPS, for mail server to mail user agent communication
+-A INPUT -p tcp --dport 465 -j ACCEPT
+# IMAPS
+-A INPUT -p tcp --dport 993 -j ACCEPT
+COMMIT
+# this last line is here because iptables-restore ignores the final command if no newline follows it
\ No newline at end of file
:OUTPUT ACCEPT [0:0]
# otherwise self-referential connections to local host will fail
-A INPUT -i lo -j ACCEPT
+# tolerate any inbound connections requested by our server, no matter the port
+-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# this enables ping etc.
-A INPUT -p icmp -j ACCEPT
# SSH
-A INPUT -p tcp --dport 22 -j ACCEPT
-# HTTP; uncomment for creating LetsEncrypt certificates in standalone mode.
-#-A INPUT -p tcp --dport 80 -j ACCEPT
# HTTPS in theory, in practice my second SSH port, see sshd_config
-A INPUT -p tcp --dport 443 -j ACCEPT
-# SMTP (allowing for STARTTLS); necessary for mail server to mail server banter
--A INPUT -p tcp --dport 25 -j ACCEPT
-# SMTPS, for mail server to mail user agent communication
--A INPUT -p tcp --dport 465 -j ACCEPT
-# IMAPS
--A INPUT -p tcp --dport 993 -j ACCEPT
-# tolerate any inbound connections requested by our server, no matter the port
--A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# this last line is here because iptables-restore ignores the final command if no newline follows it
\ No newline at end of file