parent
83a1eb1262
commit
c410b58392
@ -0,0 +1,294 @@
|
||||
#!/bin/bash
|
||||
# forksand-sf-admin-bootstrap
|
||||
# GPLv3+
|
||||
# This script does some initial setup and config
|
||||
|
||||
# Log script
|
||||
exec > >(tee /root/bootstrap-sf-admin.log) 2>/root/bootstrap-sf-admin.err
|
||||
|
||||
set -x
|
||||
|
||||
# Set locale
|
||||
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
|
||||
locale-gen
|
||||
update-locale
|
||||
|
||||
# XXX Set timezone
|
||||
ln -sf /usr/share/zoneinfo/America/Denver /etc/localtime
|
||||
|
||||
# Use apt-cache
|
||||
echo 'Acquire::http::Proxy "http://10.22.22.112:3142";' > /etc/apt/apt.conf
|
||||
|
||||
# Set up git for tracking. XXX Ansible... XXX
|
||||
apt-get -y install git sudo
|
||||
cd /etc
|
||||
git init
|
||||
chmod og-rwx /etc/.git
|
||||
|
||||
cat > /etc/.gitignore <<EOF
|
||||
prelink.cache
|
||||
*.swp
|
||||
ld.so.cache
|
||||
adjtime
|
||||
blkid.tab
|
||||
blkid.tab.old
|
||||
mtab
|
||||
resolv.conf
|
||||
asound.state
|
||||
mtab.fuselock
|
||||
aliases.db
|
||||
EOF
|
||||
|
||||
git config --global user.name "jebba"
|
||||
git config --global user.email moe@forksand.com
|
||||
cd /etc ; git add . ; git commit -m 'Add apt cache' /etc/apt/apt.conf
|
||||
cd /etc ; git add . ; git commit -a -m 'Set up new Debian stretch server.'
|
||||
|
||||
# Firewall
|
||||
# Create iptables startup script (is this still needed? From squeeze era)
|
||||
cat > /etc/network/if-pre-up.d/iptables <<EOF
|
||||
#!/bin/bash
|
||||
# iptables
|
||||
/sbin/iptables-restore < /etc/iptables.up.rules
|
||||
EOF
|
||||
|
||||
cat > /etc/iptables.test.rules <<EOF
|
||||
# iptables.test.rules
|
||||
*filter
|
||||
|
||||
# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
|
||||
-A INPUT -i lo -j ACCEPT
|
||||
|
||||
# Accepts all established inbound connections
|
||||
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
|
||||
|
||||
# Allows all outbound traffic
|
||||
# You could modify this to only allow certain traffic
|
||||
-A OUTPUT -j ACCEPT
|
||||
|
||||
# SSH Access Port
|
||||
-A INPUT -p tcp --dport 22 -j ACCEPT
|
||||
-A INPUT -p tcp --dport 26101 -j ACCEPT
|
||||
|
||||
# Allow web port 80 for Letsencrypt
|
||||
#-A INPUT -p tcp --dport 80 -j ACCEPT
|
||||
|
||||
# Allow SMTP
|
||||
#-A INPUT -p tcp --dport 25 -j ACCEPT
|
||||
|
||||
# Allow SMTPS
|
||||
#-A INPUT -p tcp --dport 465 -j ACCEPT
|
||||
|
||||
# Allow SMTP-MSA
|
||||
#-A INPUT -p tcp --dport 587 -j ACCEPT
|
||||
|
||||
# Allow IMAP SSL
|
||||
#-A INPUT -p tcp --dport 993 -j ACCEPT
|
||||
|
||||
# Allow ping
|
||||
#-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
|
||||
# log iptables denied calls (access via 'dmesg' command)
|
||||
|
||||
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
|
||||
|
||||
# Reject all other inbound - default deny unless explicitly allowed policy:
|
||||
-A INPUT -j REJECT
|
||||
-A FORWARD -j REJECT
|
||||
COMMIT
|
||||
EOF
|
||||
|
||||
touch /etc/iptables.up.rules
|
||||
chmod 600 /etc/iptables.up.rules
|
||||
chmod 755 /etc/network/if-pre-up.d/iptables
|
||||
chmod 600 /etc/iptables.test.rules
|
||||
iptables-restore < /etc/iptables.test.rules
|
||||
iptables -L -n
|
||||
iptables-save > /etc/iptables.up.rules
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Set up firewall.'
|
||||
|
||||
# scriptlet for root to reload firewall rules
|
||||
cat > /root/iptables-reload <<EOF
|
||||
iptables-restore < /etc/iptables.test.rules
|
||||
iptables-save > /etc/iptables.up.rules
|
||||
EOF
|
||||
chmod 700 /root/iptables-reload
|
||||
|
||||
|
||||
# SET UP APT
|
||||
#
|
||||
cat > /etc/apt/sources.list <<EOF
|
||||
deb http://mirrors.kernel.org/debian/ stretch-backports main
|
||||
deb http://mirrors.kernel.org/debian/ stretch main
|
||||
deb http://mirrors.kernel.org/debian/ stretch-updates main
|
||||
deb http://security.debian.org/ stretch/updates main
|
||||
EOF
|
||||
|
||||
# Make apt use IPv4:
|
||||
echo 'Acquire::ForceIPv4 "true";' | tee /etc/apt/apt.conf.d/99force-ipv4
|
||||
|
||||
git add /etc/apt/apt.conf.d/99force-ipv4
|
||||
git commit -m "Force APT to use IPv4, not IPv6." /etc/apt/apt.conf.d/99force-ipv4
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Set up apt.'
|
||||
|
||||
# UPGRADE SERVER
|
||||
apt-get update
|
||||
apt-get -y dist-upgrade --download-only
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confnew" dist-upgrade
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Update base install'
|
||||
|
||||
apt-get -y --download-only install \
|
||||
--no-install-recommends \
|
||||
apt-transport-https \
|
||||
bzip2 \
|
||||
ca-certificates \
|
||||
colordiff \
|
||||
curl \
|
||||
debian-archive-keyring \
|
||||
exuberant-ctags \
|
||||
git \
|
||||
host \
|
||||
less \
|
||||
locales \
|
||||
lsb-release \
|
||||
man-db \
|
||||
manpages \
|
||||
molly-guard \
|
||||
net-tools \
|
||||
ntp \
|
||||
openssh-server \
|
||||
python3 \
|
||||
qemu-guest-agent \
|
||||
rsync \
|
||||
telnet \
|
||||
traceroute \
|
||||
vim \
|
||||
vim-scripts
|
||||
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -y \
|
||||
-o Dpkg::Options::="--force-confdef" \
|
||||
-o Dpkg::Options::="--force-confnew" \
|
||||
install \
|
||||
--no-install-recommends \
|
||||
apt-transport-https \
|
||||
bzip2 \
|
||||
ca-certificates \
|
||||
colordiff \
|
||||
curl \
|
||||
debian-archive-keyring \
|
||||
exuberant-ctags \
|
||||
git \
|
||||
host \
|
||||
less \
|
||||
locales \
|
||||
lsb-release \
|
||||
man-db \
|
||||
manpages \
|
||||
molly-guard \
|
||||
net-tools \
|
||||
ntp \
|
||||
openssh-server \
|
||||
python3 \
|
||||
qemu-guest-agent \
|
||||
rsync \
|
||||
telnet \
|
||||
traceroute \
|
||||
vim \
|
||||
vim-scripts
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Install base packages'
|
||||
|
||||
# NTP SharkTech. They firewall outside ntp.
|
||||
sed -i \
|
||||
-e 's/pool 0.debian.pool.ntp.org/\#pool 0.debian.pool.ntp.org/g' \
|
||||
-e 's/pool 1.debian.pool.ntp.org/\#pool 1.debian.pool.ntp.org/g' \
|
||||
-e 's/pool 2.debian.pool.ntp.org/\#pool 2.debian.pool.ntp.org/g' \
|
||||
-e 's/pool 3.debian.pool.ntp.org/pool time.sharktech.net iburst/g' \
|
||||
/etc/ntp.conf
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Use SharkTech NTP (others firewalled).'
|
||||
/etc/init.d/ntp restart
|
||||
|
||||
# Small user tweaks
|
||||
echo :syntax on > ~/.vimrc
|
||||
echo :syntax on > /home/jebba/.vimrc
|
||||
chown jebba:jebba /home/jebba/.vimrc
|
||||
echo export EDITOR=vi >> /root/.bashrc
|
||||
|
||||
# XXX Passwordless sudo XXX Ya, probably remove
|
||||
sed -i -e 's/%sudo\tALL=(ALL:ALL) ALL/%sudo ALL=(ALL) NOPASSWD: ALL/g' /etc/sudoers
|
||||
|
||||
adduser jebba sudo
|
||||
cd /etc ; git add . ; git commit -a -m 'Set up passwordless sudo'
|
||||
|
||||
# SSH config XXX sed cruft
|
||||
sed -i \
|
||||
-e 's/PermitRootLogin yes/PermitRootLogin no/g' \
|
||||
-e 's/\#PermitRootLogin prohibit-password/PermitRootLogin no/g' \
|
||||
-e 's/\#PasswordAuthentication yes/PasswordAuthentication no/g' \
|
||||
-e 's/\#X11Forwarding yes/X11Forwarding no/g' \
|
||||
/etc/ssh/sshd_config
|
||||
|
||||
echo 'KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256' >> /etc/ssh/sshd_config
|
||||
|
||||
echo 'Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr' >> /etc/ssh/sshd_config
|
||||
|
||||
# Need to update/fix for Debian Buster (testing/10). This line breaks Buster:
|
||||
#echo 'MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-ripemd160-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160,umac-128@openssh.com' >> /etc/ssh/sshd_config
|
||||
|
||||
# XXX Add admins as only allowed ssh users
|
||||
# XXX add user for ansbile
|
||||
echo "AllowUsers jebba" >> /etc/ssh/sshd_config
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Set up sshd'
|
||||
systemctl restart sshd
|
||||
|
||||
# Startup XXX disable unneeded.
|
||||
for i in rsync exim4 saned
|
||||
do echo $i
|
||||
/usr/sbin/update-rc.d $i disable
|
||||
done
|
||||
# XXX KILL THIS, listening on public port (firewalled, but still):
|
||||
# tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 296/systemd-resolve
|
||||
cd /etc ; git add . ; git commit -a -m 'Turn off junk on boot'
|
||||
|
||||
# GRUB
|
||||
sed -i -e 's/^GRUB_TIMEOUT=5/GRUB_TIMEOUT=0/g' /etc/default/grub
|
||||
sed -i -e 's/^#GRUB_TERMINAL=console/GRUB_TERMINAL=console/g' /etc/default/grub
|
||||
sed -i -e 's/^GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="ipv6.disable=1"/g' /etc/default/grub
|
||||
echo 'GRUB_DISABLE_OS_PROBER=true' >> /etc/default/grub
|
||||
|
||||
update-grub
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'GRUB tweaks'
|
||||
|
||||
# Don't load IPv6 kernel modules.
|
||||
echo blacklist ipv6 > /etc/modprobe.d/ipv6.conf
|
||||
echo alias net-pf-10 off >> /etc/modprobe.d/aliases.conf
|
||||
echo alias ivp6 off >> /etc/modprobe.d/aliases.conf
|
||||
# Disable IPv6 with sysctl.
|
||||
cat >> /etc/sysctl.conf <<EOF
|
||||
net.ipv6.conf.all.disable_ipv6 = 1
|
||||
net.ipv6.conf.default.disable_ipv6 = 1
|
||||
net.ipv6.conf.lo.disable_ipv6 = 1
|
||||
#net.ipv6.conf.ens3.disable_ipv6 = 1
|
||||
EOF
|
||||
|
||||
sysctl -p
|
||||
cd /etc ; git add . ; git commit -a -m 'Disable IPv6'
|
||||
|
||||
# Fix network to come up on boot
|
||||
sed -i -e 's/allow-hotplug/auto/g' /etc/network/interfaces
|
||||
cd /etc ; git add . ; git commit -a -m 'Auto start network'
|
||||
|
||||
# XXX not sure why this is getting installed:
|
||||
apt-get -y autoremove
|
||||
cd /etc ; git add . ; git commit -a -m 'autoremove'
|
||||
|
||||
apt clean
|
||||
|
||||
exit 0
|
||||
|
||||
# Reboot
|
@ -0,0 +1,294 @@
|
||||
#!/bin/bash
|
||||
# forksand-sf-dev-bootstrap
|
||||
# GPLv3+
|
||||
# This script does some initial setup and config
|
||||
|
||||
# Log script
|
||||
exec > >(tee /root/bootstrap-sf-dev.log) 2>/root/bootstrap-sf-dev.err
|
||||
|
||||
set -x
|
||||
|
||||
# Set locale
|
||||
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
|
||||
locale-gen
|
||||
update-locale
|
||||
|
||||
# XXX Set timezone
|
||||
ln -sf /usr/share/zoneinfo/America/Denver /etc/localtime
|
||||
|
||||
# Use apt-cache
|
||||
echo 'Acquire::http::Proxy "http://10.22.22.112:3142";' > /etc/apt/apt.conf
|
||||
|
||||
# Set up git for tracking. XXX Ansible... XXX
|
||||
apt-get -y install git sudo
|
||||
cd /etc
|
||||
git init
|
||||
chmod og-rwx /etc/.git
|
||||
|
||||
cat > /etc/.gitignore <<EOF
|
||||
prelink.cache
|
||||
*.swp
|
||||
ld.so.cache
|
||||
adjtime
|
||||
blkid.tab
|
||||
blkid.tab.old
|
||||
mtab
|
||||
resolv.conf
|
||||
asound.state
|
||||
mtab.fuselock
|
||||
aliases.db
|
||||
EOF
|
||||
|
||||
git config --global user.name "jebba"
|
||||
git config --global user.email moe@forksand.com
|
||||
cd /etc ; git add . ; git commit -m 'Add apt cache' /etc/apt/apt.conf
|
||||
cd /etc ; git add . ; git commit -a -m 'Set up new Debian stretch server.'
|
||||
|
||||
# Firewall
|
||||
# Create iptables startup script (is this still needed? From squeeze era)
|
||||
cat > /etc/network/if-pre-up.d/iptables <<EOF
|
||||
#!/bin/bash
|
||||
# iptables
|
||||
/sbin/iptables-restore < /etc/iptables.up.rules
|
||||
EOF
|
||||
|
||||
cat > /etc/iptables.test.rules <<EOF
|
||||
# iptables.test.rules
|
||||
*filter
|
||||
|
||||
# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
|
||||
-A INPUT -i lo -j ACCEPT
|
||||
|
||||
# Accepts all established inbound connections
|
||||
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
|
||||
|
||||
# Allows all outbound traffic
|
||||
# You could modify this to only allow certain traffic
|
||||
-A OUTPUT -j ACCEPT
|
||||
|
||||
# SSH Access Port
|
||||
-A INPUT -p tcp --dport 22 -j ACCEPT
|
||||
-A INPUT -p tcp --dport 26101 -j ACCEPT
|
||||
|
||||
# Allow web port 80 for Letsencrypt
|
||||
#-A INPUT -p tcp --dport 80 -j ACCEPT
|
||||
|
||||
# Allow SMTP
|
||||
#-A INPUT -p tcp --dport 25 -j ACCEPT
|
||||
|
||||
# Allow SMTPS
|
||||
#-A INPUT -p tcp --dport 465 -j ACCEPT
|
||||
|
||||
# Allow SMTP-MSA
|
||||
#-A INPUT -p tcp --dport 587 -j ACCEPT
|
||||
|
||||
# Allow IMAP SSL
|
||||
#-A INPUT -p tcp --dport 993 -j ACCEPT
|
||||
|
||||
# Allow ping
|
||||
#-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
|
||||
# log iptables denied calls (access via 'dmesg' command)
|
||||
|
||||
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
|
||||
|
||||
# Reject all other inbound - default deny unless explicitly allowed policy:
|
||||
-A INPUT -j REJECT
|
||||
-A FORWARD -j REJECT
|
||||
COMMIT
|
||||
EOF
|
||||
|
||||
touch /etc/iptables.up.rules
|
||||
chmod 600 /etc/iptables.up.rules
|
||||
chmod 755 /etc/network/if-pre-up.d/iptables
|
||||
chmod 600 /etc/iptables.test.rules
|
||||
iptables-restore < /etc/iptables.test.rules
|
||||
iptables -L -n
|
||||
iptables-save > /etc/iptables.up.rules
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Set up firewall.'
|
||||
|
||||
# scriptlet for root to reload firewall rules
|
||||
cat > /root/iptables-reload <<EOF
|
||||
iptables-restore < /etc/iptables.test.rules
|
||||
iptables-save > /etc/iptables.up.rules
|
||||
EOF
|
||||
chmod 700 /root/iptables-reload
|
||||
|
||||
|
||||
# SET UP APT
|
||||
#
|
||||
cat > /etc/apt/sources.list <<EOF
|
||||
deb http://mirrors.kernel.org/debian/ stretch-backports main
|
||||
deb http://mirrors.kernel.org/debian/ stretch main
|
||||
deb http://mirrors.kernel.org/debian/ stretch-updates main
|
||||
deb http://security.debian.org/ stretch/updates main
|
||||
EOF
|
||||
|
||||
# Make apt use IPv4:
|
||||
echo 'Acquire::ForceIPv4 "true";' | tee /etc/apt/apt.conf.d/99force-ipv4
|
||||
|
||||
git add /etc/apt/apt.conf.d/99force-ipv4
|
||||
git commit -m "Force APT to use IPv4, not IPv6." /etc/apt/apt.conf.d/99force-ipv4
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Set up apt.'
|
||||
|
||||
# UPGRADE SERVER
|
||||
apt-get update
|
||||
apt-get -y dist-upgrade --download-only
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confnew" dist-upgrade
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Update base install'
|
||||
|
||||
apt-get -y --download-only install \
|
||||
--no-install-recommends \
|
||||
apt-transport-https \
|
||||
bzip2 \
|
||||
ca-certificates \
|
||||
colordiff \
|
||||
curl \
|
||||
debian-archive-keyring \
|
||||
exuberant-ctags \
|
||||
git \
|
||||
host \
|
||||
less \
|
||||
locales \
|
||||
lsb-release \
|
||||
man-db \
|
||||
manpages \
|
||||
molly-guard \
|
||||
net-tools \
|
||||
ntp \
|
||||
openssh-server \
|
||||
python3 \
|
||||
qemu-guest-agent \
|
||||
rsync \
|
||||
telnet \
|
||||
traceroute \
|
||||
vim \
|
||||
vim-scripts
|
||||
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -y \
|
||||
-o Dpkg::Options::="--force-confdef" \
|
||||
-o Dpkg::Options::="--force-confnew" \
|
||||
install \
|
||||
--no-install-recommends \
|
||||
apt-transport-https \
|
||||
bzip2 \
|
||||
ca-certificates \
|
||||
colordiff \
|
||||
curl \
|
||||
debian-archive-keyring \
|
||||
exuberant-ctags \
|
||||
git \
|
||||
host \
|
||||
less \
|
||||
locales \
|
||||
lsb-release \
|
||||
man-db \
|
||||
manpages \
|
||||
molly-guard \
|
||||
net-tools \
|
||||
ntp \
|
||||
openssh-server \
|
||||
python3 \
|
||||
qemu-guest-agent \
|
||||
rsync \
|
||||
telnet \
|
||||
traceroute \
|
||||
vim \
|
||||
vim-scripts
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Install base packages'
|
||||
|
||||
# NTP SharkTech. They firewall outside ntp.
|
||||
sed -i \
|
||||
-e 's/pool 0.debian.pool.ntp.org/\#pool 0.debian.pool.ntp.org/g' \
|
||||
-e 's/pool 1.debian.pool.ntp.org/\#pool 1.debian.pool.ntp.org/g' \
|
||||
-e 's/pool 2.debian.pool.ntp.org/\#pool 2.debian.pool.ntp.org/g' \
|
||||
-e 's/pool 3.debian.pool.ntp.org/pool time.sharktech.net iburst/g' \
|
||||
/etc/ntp.conf
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Use SharkTech NTP (others firewalled).'
|
||||
/etc/init.d/ntp restart
|
||||
|
||||
# Small user tweaks
|
||||
echo :syntax on > ~/.vimrc
|
||||
echo :syntax on > /home/jebba/.vimrc
|
||||
chown jebba:jebba /home/jebba/.vimrc
|
||||
echo export EDITOR=vi >> /root/.bashrc
|
||||
|
||||
# XXX Passwordless sudo XXX Ya, probably remove
|
||||
sed -i -e 's/%sudo\tALL=(ALL:ALL) ALL/%sudo ALL=(ALL) NOPASSWD: ALL/g' /etc/sudoers
|
||||
|
||||
adduser jebba sudo
|
||||
cd /etc ; git add . ; git commit -a -m 'Set up passwordless sudo'
|
||||
|
||||
# SSH config XXX sed cruft
|
||||
sed -i \
|
||||
-e 's/PermitRootLogin yes/PermitRootLogin no/g' \
|
||||
-e 's/\#PermitRootLogin prohibit-password/PermitRootLogin no/g' \
|
||||
-e 's/\#PasswordAuthentication yes/PasswordAuthentication no/g' \
|
||||
-e 's/\#X11Forwarding yes/X11Forwarding no/g' \
|
||||
/etc/ssh/sshd_config
|
||||
|
||||
echo 'KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256' >> /etc/ssh/sshd_config
|
||||
|
||||
echo 'Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr' >> /etc/ssh/sshd_config
|
||||
|
||||
# Need to update/fix for Debian Buster (testing/10). This line breaks Buster:
|
||||
#echo 'MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-ripemd160-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160,umac-128@openssh.com' >> /etc/ssh/sshd_config
|
||||
|
||||
# XXX Add admins as only allowed ssh users
|
||||
# XXX add user for ansbile
|
||||
echo "AllowUsers jebba" >> /etc/ssh/sshd_config
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Set up sshd'
|
||||
systemctl restart sshd
|
||||
|
||||
# Startup XXX disable unneeded.
|
||||
for i in rsync exim4 saned
|
||||
do echo $i
|
||||
/usr/sbin/update-rc.d $i disable
|
||||
done
|
||||
# XXX KILL THIS, listening on public port (firewalled, but still):
|
||||
# tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 296/systemd-resolve
|
||||
cd /etc ; git add . ; git commit -a -m 'Turn off junk on boot'
|
||||
|
||||
# GRUB
|
||||
sed -i -e 's/^GRUB_TIMEOUT=5/GRUB_TIMEOUT=0/g' /etc/default/grub
|
||||
sed -i -e 's/^#GRUB_TERMINAL=console/GRUB_TERMINAL=console/g' /etc/default/grub
|
||||
sed -i -e 's/^GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="ipv6.disable=1"/g' /etc/default/grub
|
||||
echo 'GRUB_DISABLE_OS_PROBER=true' >> /etc/default/grub
|
||||
|
||||
update-grub
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'GRUB tweaks'
|
||||
|
||||
# Don't load IPv6 kernel modules.
|
||||
echo blacklist ipv6 > /etc/modprobe.d/ipv6.conf
|
||||
echo alias net-pf-10 off >> /etc/modprobe.d/aliases.conf
|
||||
echo alias ivp6 off >> /etc/modprobe.d/aliases.conf
|
||||
# Disable IPv6 with sysctl.
|
||||
cat >> /etc/sysctl.conf <<EOF
|
||||
net.ipv6.conf.all.disable_ipv6 = 1
|
||||
net.ipv6.conf.default.disable_ipv6 = 1
|
||||
net.ipv6.conf.lo.disable_ipv6 = 1
|
||||
#net.ipv6.conf.ens3.disable_ipv6 = 1
|
||||
EOF
|
||||
|
||||
sysctl -p
|
||||
cd /etc ; git add . ; git commit -a -m 'Disable IPv6'
|
||||
|
||||
# Fix network to come up on boot
|
||||
sed -i -e 's/allow-hotplug/auto/g' /etc/network/interfaces
|
||||
cd /etc ; git add . ; git commit -a -m 'Auto start network'
|
||||
|
||||
# XXX not sure why this is getting installed:
|
||||
apt-get -y autoremove
|
||||
cd /etc ; git add . ; git commit -a -m 'autoremove'
|
||||
|
||||
apt clean
|
||||
|
||||
exit 0
|
||||
|
||||
# Reboot
|
@ -0,0 +1,294 @@
|
||||
#!/bin/bash
|
||||
# forksand-sf-internal-bootstrap
|
||||
# GPLv3+
|
||||
# This script does some initial setup and config
|
||||
|
||||
# Log script
|
||||
exec > >(tee /root/bootstrap-sf-internal.log) 2>/root/bootstrap-sf-internal.err
|
||||
|
||||
set -x
|
||||
|
||||
# Set locale
|
||||
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
|
||||
locale-gen
|
||||
update-locale
|
||||
|
||||
# XXX Set timezone
|
||||
ln -sf /usr/share/zoneinfo/America/Denver /etc/localtime
|
||||
|
||||
# Use apt-cache
|
||||
echo 'Acquire::http::Proxy "http://10.22.22.112:3142";' > /etc/apt/apt.conf
|
||||
|
||||
# Set up git for tracking. XXX Ansible... XXX
|
||||
apt-get -y install git sudo
|
||||
cd /etc
|
||||
git init
|
||||
chmod og-rwx /etc/.git
|
||||
|
||||
cat > /etc/.gitignore <<EOF
|
||||
prelink.cache
|
||||
*.swp
|
||||
ld.so.cache
|
||||
adjtime
|
||||
blkid.tab
|
||||
blkid.tab.old
|
||||
mtab
|
||||
resolv.conf
|
||||
asound.state
|
||||
mtab.fuselock
|
||||
aliases.db
|
||||
EOF
|
||||
|
||||
git config --global user.name "jebba"
|
||||
git config --global user.email moe@forksand.com
|
||||
cd /etc ; git add . ; git commit -m 'Add apt cache' /etc/apt/apt.conf
|
||||
cd /etc ; git add . ; git commit -a -m 'Set up new Debian stretch server.'
|
||||
|
||||
# Firewall
|
||||
# Create iptables startup script (is this still needed? From squeeze era)
|
||||
cat > /etc/network/if-pre-up.d/iptables <<EOF
|
||||
#!/bin/bash
|
||||
# iptables
|
||||
/sbin/iptables-restore < /etc/iptables.up.rules
|
||||
EOF
|
||||
|
||||
cat > /etc/iptables.test.rules <<EOF
|
||||
# iptables.test.rules
|
||||
*filter
|
||||
|
||||
# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
|
||||
-A INPUT -i lo -j ACCEPT
|
||||
|
||||
# Accepts all established inbound connections
|
||||
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
|
||||
|
||||
# Allows all outbound traffic
|
||||
# You could modify this to only allow certain traffic
|
||||
-A OUTPUT -j ACCEPT
|
||||
|
||||
# SSH Access Port
|
||||
-A INPUT -p tcp --dport 22 -j ACCEPT
|
||||
-A INPUT -p tcp --dport 26101 -j ACCEPT
|
||||
|
||||
# Allow web port 80 for Letsencrypt
|
||||
#-A INPUT -p tcp --dport 80 -j ACCEPT
|
||||
|
||||
# Allow SMTP
|
||||
#-A INPUT -p tcp --dport 25 -j ACCEPT
|
||||
|
||||
# Allow SMTPS
|
||||
#-A INPUT -p tcp --dport 465 -j ACCEPT
|
||||
|
||||
# Allow SMTP-MSA
|
||||
#-A INPUT -p tcp --dport 587 -j ACCEPT
|
||||
|
||||
# Allow IMAP SSL
|
||||
#-A INPUT -p tcp --dport 993 -j ACCEPT
|
||||
|
||||
# Allow ping
|
||||
#-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
|
||||
# log iptables denied calls (access via 'dmesg' command)
|
||||
|
||||
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
|
||||
|
||||
# Reject all other inbound - default deny unless explicitly allowed policy:
|
||||
-A INPUT -j REJECT
|
||||
-A FORWARD -j REJECT
|
||||
COMMIT
|
||||
EOF
|
||||
|
||||
touch /etc/iptables.up.rules
|
||||
chmod 600 /etc/iptables.up.rules
|
||||
chmod 755 /etc/network/if-pre-up.d/iptables
|
||||
chmod 600 /etc/iptables.test.rules
|
||||
iptables-restore < /etc/iptables.test.rules
|
||||
iptables -L -n
|
||||
iptables-save > /etc/iptables.up.rules
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Set up firewall.'
|
||||
|
||||
# scriptlet for root to reload firewall rules
|
||||
cat > /root/iptables-reload <<EOF
|
||||
iptables-restore < /etc/iptables.test.rules
|
||||
iptables-save > /etc/iptables.up.rules
|
||||
EOF
|
||||
chmod 700 /root/iptables-reload
|
||||
|
||||
|
||||
# SET UP APT
|
||||
#
|
||||
cat > /etc/apt/sources.list <<EOF
|
||||
deb http://mirrors.kernel.org/debian/ stretch-backports main
|
||||
deb http://mirrors.kernel.org/debian/ stretch main
|
||||
deb http://mirrors.kernel.org/debian/ stretch-updates main
|
||||
deb http://security.debian.org/ stretch/updates main
|
||||
EOF
|
||||
|
||||
# Make apt use IPv4:
|
||||
echo 'Acquire::ForceIPv4 "true";' | tee /etc/apt/apt.conf.d/99force-ipv4
|
||||
|
||||
git add /etc/apt/apt.conf.d/99force-ipv4
|
||||
git commit -m "Force APT to use IPv4, not IPv6." /etc/apt/apt.conf.d/99force-ipv4
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Set up apt.'
|
||||
|
||||
# UPGRADE SERVER
|
||||
apt-get update
|
||||
apt-get -y dist-upgrade --download-only
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confnew" dist-upgrade
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Update base install'
|
||||
|
||||
apt-get -y --download-only install \
|
||||
--no-install-recommends \
|
||||
apt-transport-https \
|
||||
bzip2 \
|
||||
ca-certificates \
|
||||
colordiff \
|
||||
curl \
|
||||
debian-archive-keyring \
|
||||
exuberant-ctags \
|
||||
git \
|
||||
host \
|
||||
less \
|
||||
locales \
|
||||
lsb-release \
|
||||
man-db \
|
||||
manpages \
|
||||
molly-guard \
|
||||
net-tools \
|
||||
ntp \
|
||||
openssh-server \
|
||||
python3 \
|
||||
qemu-guest-agent \
|
||||
rsync \
|
||||
telnet \
|
||||
traceroute \
|
||||
vim \
|
||||
vim-scripts
|
||||
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -y \
|
||||
-o Dpkg::Options::="--force-confdef" \
|
||||
-o Dpkg::Options::="--force-confnew" \
|
||||
install \
|
||||
--no-install-recommends \
|
||||
apt-transport-https \
|
||||
bzip2 \
|
||||
ca-certificates \
|
||||
colordiff \
|
||||
curl \
|
||||
debian-archive-keyring \
|
||||
exuberant-ctags \
|
||||
git \
|
||||
host \
|
||||
less \
|
||||
locales \
|
||||
lsb-release \
|
||||
man-db \
|
||||
manpages \
|
||||
molly-guard \
|
||||
net-tools \
|
||||
ntp \
|
||||
openssh-server \
|
||||
python3 \
|
||||
qemu-guest-agent \
|
||||
rsync \
|
||||
telnet \
|
||||
traceroute \
|
||||
vim \
|
||||
vim-scripts
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Install base packages'
|
||||
|
||||
# NTP SharkTech. They firewall outside ntp.
|
||||
sed -i \
|
||||
-e 's/pool 0.debian.pool.ntp.org/\#pool 0.debian.pool.ntp.org/g' \
|
||||
-e 's/pool 1.debian.pool.ntp.org/\#pool 1.debian.pool.ntp.org/g' \
|
||||
-e 's/pool 2.debian.pool.ntp.org/\#pool 2.debian.pool.ntp.org/g' \
|
||||
-e 's/pool 3.debian.pool.ntp.org/pool time.sharktech.net iburst/g' \
|
||||
/etc/ntp.conf
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Use SharkTech NTP (others firewalled).'
|
||||
/etc/init.d/ntp restart
|
||||
|
||||
# Small user tweaks
|
||||
echo :syntax on > ~/.vimrc
|
||||
echo :syntax on > /home/jebba/.vimrc
|
||||
chown jebba:jebba /home/jebba/.vimrc
|
||||
echo export EDITOR=vi >> /root/.bashrc
|
||||
|
||||
# XXX Passwordless sudo XXX Ya, probably remove
|
||||
sed -i -e 's/%sudo\tALL=(ALL:ALL) ALL/%sudo ALL=(ALL) NOPASSWD: ALL/g' /etc/sudoers
|
||||
|
||||
adduser jebba sudo
|
||||
cd /etc ; git add . ; git commit -a -m 'Set up passwordless sudo'
|
||||
|
||||
# SSH config XXX sed cruft
|
||||
sed -i \
|
||||
-e 's/PermitRootLogin yes/PermitRootLogin no/g' \
|
||||
-e 's/\#PermitRootLogin prohibit-password/PermitRootLogin no/g' \
|
||||
-e 's/\#PasswordAuthentication yes/PasswordAuthentication no/g' \
|
||||
-e 's/\#X11Forwarding yes/X11Forwarding no/g' \
|
||||
/etc/ssh/sshd_config
|
||||
|
||||
echo 'KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256' >> /etc/ssh/sshd_config
|
||||
|
||||
echo 'Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr' >> /etc/ssh/sshd_config
|
||||
|
||||
# Need to update/fix for Debian Buster (testing/10). This line breaks Buster:
|
||||
#echo 'MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-ripemd160-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160,umac-128@openssh.com' >> /etc/ssh/sshd_config
|
||||
|
||||
# XXX Add admins as only allowed ssh users
|
||||
# XXX add user for ansbile
|
||||
echo "AllowUsers jebba" >> /etc/ssh/sshd_config
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Set up sshd'
|
||||
systemctl restart sshd
|
||||
|
||||
# Startup XXX disable unneeded.
|
||||
for i in rsync exim4 saned
|
||||
do echo $i
|
||||
/usr/sbin/update-rc.d $i disable
|
||||
done
|
||||
# XXX KILL THIS, listening on public port (firewalled, but still):
|
||||
# tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 296/systemd-resolve
|
||||
cd /etc ; git add . ; git commit -a -m 'Turn off junk on boot'
|
||||
|
||||
# GRUB
|
||||
sed -i -e 's/^GRUB_TIMEOUT=5/GRUB_TIMEOUT=0/g' /etc/default/grub
|
||||
sed -i -e 's/^#GRUB_TERMINAL=console/GRUB_TERMINAL=console/g' /etc/default/grub
|
||||
sed -i -e 's/^GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="ipv6.disable=1"/g' /etc/default/grub
|
||||
echo 'GRUB_DISABLE_OS_PROBER=true' >> /etc/default/grub
|
||||
|
||||
update-grub
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'GRUB tweaks'
|
||||
|
||||
# Don't load IPv6 kernel modules.
|
||||
echo blacklist ipv6 > /etc/modprobe.d/ipv6.conf
|
||||
echo alias net-pf-10 off >> /etc/modprobe.d/aliases.conf
|
||||
echo alias ivp6 off >> /etc/modprobe.d/aliases.conf
|
||||
# Disable IPv6 with sysctl.
|
||||
cat >> /etc/sysctl.conf <<EOF
|
||||
net.ipv6.conf.all.disable_ipv6 = 1
|
||||
net.ipv6.conf.default.disable_ipv6 = 1
|
||||
net.ipv6.conf.lo.disable_ipv6 = 1
|
||||
#net.ipv6.conf.ens3.disable_ipv6 = 1
|
||||
EOF
|
||||
|
||||
sysctl -p
|
||||
cd /etc ; git add . ; git commit -a -m 'Disable IPv6'
|
||||
|
||||
# Fix network to come up on boot
|
||||
sed -i -e 's/allow-hotplug/auto/g' /etc/network/interfaces
|
||||
cd /etc ; git add . ; git commit -a -m 'Auto start network'
|
||||
|
||||
# XXX not sure why this is getting installed:
|
||||
apt-get -y autoremove
|
||||
cd /etc ; git add . ; git commit -a -m 'autoremove'
|
||||
|
||||
apt clean
|
||||
|
||||
exit 0
|
||||
|
||||
# Reboot
|
@ -0,0 +1,294 @@
|
||||
#!/bin/bash
|
||||
# forksand-sf-production-bootstrap
|
||||
# GPLv3+
|
||||
# This script does some initial setup and config
|
||||
|
||||
# Log script
|
||||
exec > >(tee /root/bootstrap-sf-production.log) 2>/root/bootstrap-sf-production.err
|
||||
|
||||
set -x
|
||||
|
||||
# Set locale
|
||||
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
|
||||
locale-gen
|
||||
update-locale
|
||||
|
||||
# XXX Set timezone
|
||||
ln -sf /usr/share/zoneinfo/America/Denver /etc/localtime
|
||||
|
||||
# Use apt-cache
|
||||
echo 'Acquire::http::Proxy "http://10.22.22.112:3142";' > /etc/apt/apt.conf
|
||||
|
||||
# Set up git for tracking. XXX Ansible... XXX
|
||||
apt-get -y install git sudo
|
||||
cd /etc
|
||||
git init
|
||||
chmod og-rwx /etc/.git
|
||||
|
||||
cat > /etc/.gitignore <<EOF
|
||||
prelink.cache
|
||||
*.swp
|
||||
ld.so.cache
|
||||
adjtime
|
||||
blkid.tab
|
||||
blkid.tab.old
|
||||
mtab
|
||||
resolv.conf
|
||||
asound.state
|
||||
mtab.fuselock
|
||||
aliases.db
|
||||
EOF
|
||||
|
||||
git config --global user.name "jebba"
|
||||
git config --global user.email moe@forksand.com
|
||||
cd /etc ; git add . ; git commit -m 'Add apt cache' /etc/apt/apt.conf
|
||||
cd /etc ; git add . ; git commit -a -m 'Set up new Debian stretch server.'
|
||||
|
||||
# Firewall
|
||||
# Create iptables startup script (is this still needed? From squeeze era)
|
||||
cat > /etc/network/if-pre-up.d/iptables <<EOF
|
||||
#!/bin/bash
|
||||
# iptables
|
||||
/sbin/iptables-restore < /etc/iptables.up.rules
|
||||
EOF
|
||||
|
||||
cat > /etc/iptables.test.rules <<EOF
|
||||
# iptables.test.rules
|
||||
*filter
|
||||
|
||||
# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
|
||||
-A INPUT -i lo -j ACCEPT
|
||||
|
||||
# Accepts all established inbound connections
|
||||
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
|
||||
|
||||
# Allows all outbound traffic
|
||||
# You could modify this to only allow certain traffic
|
||||
-A OUTPUT -j ACCEPT
|
||||
|
||||
# SSH Access Port
|
||||
-A INPUT -p tcp --dport 22 -j ACCEPT
|
||||
-A INPUT -p tcp --dport 26101 -j ACCEPT
|
||||
|
||||
# Allow web port 80 for Letsencrypt
|
||||
#-A INPUT -p tcp --dport 80 -j ACCEPT
|
||||
|
||||
# Allow SMTP
|
||||
#-A INPUT -p tcp --dport 25 -j ACCEPT
|
||||
|
||||
# Allow SMTPS
|
||||
#-A INPUT -p tcp --dport 465 -j ACCEPT
|
||||
|
||||
# Allow SMTP-MSA
|
||||
#-A INPUT -p tcp --dport 587 -j ACCEPT
|
||||
|
||||
# Allow IMAP SSL
|
||||
#-A INPUT -p tcp --dport 993 -j ACCEPT
|
||||
|
||||
# Allow ping
|
||||
#-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
|
||||
# log iptables denied calls (access via 'dmesg' command)
|
||||
|
||||
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
|
||||
|
||||
# Reject all other inbound - default deny unless explicitly allowed policy:
|
||||
-A INPUT -j REJECT
|
||||
-A FORWARD -j REJECT
|
||||
COMMIT
|
||||
EOF
|
||||
|
||||
touch /etc/iptables.up.rules
|
||||
chmod 600 /etc/iptables.up.rules
|
||||
chmod 755 /etc/network/if-pre-up.d/iptables
|
||||
chmod 600 /etc/iptables.test.rules
|
||||
iptables-restore < /etc/iptables.test.rules
|
||||
iptables -L -n
|
||||
iptables-save > /etc/iptables.up.rules
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Set up firewall.'
|
||||
|
||||
# scriptlet for root to reload firewall rules
|
||||
cat > /root/iptables-reload <<EOF
|
||||
iptables-restore < /etc/iptables.test.rules
|
||||
iptables-save > /etc/iptables.up.rules
|
||||
EOF
|
||||
chmod 700 /root/iptables-reload
|
||||
|
||||
|
||||
# SET UP APT
|
||||
#
|
||||
cat > /etc/apt/sources.list <<EOF
|
||||
deb http://mirrors.kernel.org/debian/ stretch-backports main
|
||||
deb http://mirrors.kernel.org/debian/ stretch main
|
||||
deb http://mirrors.kernel.org/debian/ stretch-updates main
|
||||
deb http://security.debian.org/ stretch/updates main
|
||||
EOF
|
||||
|
||||
# Make apt use IPv4:
|
||||
echo 'Acquire::ForceIPv4 "true";' | tee /etc/apt/apt.conf.d/99force-ipv4
|
||||
|
||||
git add /etc/apt/apt.conf.d/99force-ipv4
|
||||
git commit -m "Force APT to use IPv4, not IPv6." /etc/apt/apt.conf.d/99force-ipv4
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Set up apt.'
|
||||
|
||||
# UPGRADE SERVER
|
||||
apt-get update
|
||||
apt-get -y dist-upgrade --download-only
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confnew" dist-upgrade
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Update base install'
|
||||
|
||||
apt-get -y --download-only install \
|
||||
--no-install-recommends \
|
||||
apt-transport-https \
|
||||
bzip2 \
|
||||
ca-certificates \
|
||||
colordiff \
|
||||
curl \
|
||||
debian-archive-keyring \
|
||||
exuberant-ctags \
|
||||
git \
|
||||
host \
|
||||
less \
|
||||
locales \
|
||||
lsb-release \
|
||||
man-db \
|
||||
manpages \
|
||||
molly-guard \
|
||||
net-tools \
|
||||
ntp \
|
||||
openssh-server \
|
||||
python3 \
|
||||
qemu-guest-agent \
|
||||
rsync \
|
||||
telnet \
|
||||
traceroute \
|
||||
vim \
|
||||
vim-scripts
|
||||
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -y \
|
||||
-o Dpkg::Options::="--force-confdef" \
|
||||
-o Dpkg::Options::="--force-confnew" \
|
||||
install \
|
||||
--no-install-recommends \
|
||||
apt-transport-https \
|
||||
bzip2 \
|
||||
ca-certificates \
|
||||
colordiff \
|
||||
curl \
|
||||
debian-archive-keyring \
|
||||
exuberant-ctags \
|
||||
git \
|
||||
host \
|
||||
less \
|
||||
locales \
|
||||
lsb-release \
|
||||
man-db \
|
||||
manpages \
|
||||
molly-guard \
|
||||
net-tools \
|
||||
ntp \
|
||||
openssh-server \
|
||||
python3 \
|
||||
qemu-guest-agent \
|
||||
rsync \
|
||||
telnet \
|
||||
traceroute \
|
||||
vim \
|
||||
vim-scripts
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Install base packages'
|
||||
|
||||
# NTP SharkTech. They firewall outside ntp.
|
||||
sed -i \
|
||||
-e 's/pool 0.debian.pool.ntp.org/\#pool 0.debian.pool.ntp.org/g' \
|
||||
-e 's/pool 1.debian.pool.ntp.org/\#pool 1.debian.pool.ntp.org/g' \
|
||||
-e 's/pool 2.debian.pool.ntp.org/\#pool 2.debian.pool.ntp.org/g' \
|
||||
-e 's/pool 3.debian.pool.ntp.org/pool time.sharktech.net iburst/g' \
|
||||
/etc/ntp.conf
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Use SharkTech NTP (others firewalled).'
|
||||
/etc/init.d/ntp restart
|
||||
|
||||
# Small user tweaks
|
||||
echo :syntax on > ~/.vimrc
|
||||
echo :syntax on > /home/jebba/.vimrc
|
||||
chown jebba:jebba /home/jebba/.vimrc
|
||||
echo export EDITOR=vi >> /root/.bashrc
|
||||
|
||||
# XXX Passwordless sudo XXX Ya, probably remove
|
||||
sed -i -e 's/%sudo\tALL=(ALL:ALL) ALL/%sudo ALL=(ALL) NOPASSWD: ALL/g' /etc/sudoers
|
||||
|
||||
adduser jebba sudo
|
||||
cd /etc ; git add . ; git commit -a -m 'Set up passwordless sudo'
|
||||
|
||||
# SSH config XXX sed cruft
|
||||
sed -i \
|
||||
-e 's/PermitRootLogin yes/PermitRootLogin no/g' \
|
||||
-e 's/\#PermitRootLogin prohibit-password/PermitRootLogin no/g' \
|
||||
-e 's/\#PasswordAuthentication yes/PasswordAuthentication no/g' \
|
||||
-e 's/\#X11Forwarding yes/X11Forwarding no/g' \
|
||||
/etc/ssh/sshd_config
|
||||
|
||||
echo 'KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256' >> /etc/ssh/sshd_config
|
||||
|
||||
echo 'Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr' >> /etc/ssh/sshd_config
|
||||
|
||||
# Need to update/fix for Debian Buster (testing/10). This line breaks Buster:
|
||||
#echo 'MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-ripemd160-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160,umac-128@openssh.com' >> /etc/ssh/sshd_config
|
||||
|
||||
# XXX Add admins as only allowed ssh users
|
||||
# XXX add user for ansbile
|
||||
echo "AllowUsers jebba" >> /etc/ssh/sshd_config
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'Set up sshd'
|
||||
systemctl restart sshd
|
||||
|
||||
# Startup XXX disable unneeded.
|
||||
for i in rsync exim4 saned
|
||||
do echo $i
|
||||
/usr/sbin/update-rc.d $i disable
|
||||
done
|
||||
# XXX KILL THIS, listening on public port (firewalled, but still):
|
||||
# tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 296/systemd-resolve
|
||||
cd /etc ; git add . ; git commit -a -m 'Turn off junk on boot'
|
||||
|
||||
# GRUB
|
||||
sed -i -e 's/^GRUB_TIMEOUT=5/GRUB_TIMEOUT=0/g' /etc/default/grub
|
||||
sed -i -e 's/^#GRUB_TERMINAL=console/GRUB_TERMINAL=console/g' /etc/default/grub
|
||||
sed -i -e 's/^GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="ipv6.disable=1"/g' /etc/default/grub
|
||||
echo 'GRUB_DISABLE_OS_PROBER=true' >> /etc/default/grub
|
||||
|
||||
update-grub
|
||||
|
||||
cd /etc ; git add . ; git commit -a -m 'GRUB tweaks'
|
||||
|
||||
# Don't load IPv6 kernel modules.
|
||||
echo blacklist ipv6 > /etc/modprobe.d/ipv6.conf
|
||||
echo alias net-pf-10 off >> /etc/modprobe.d/aliases.conf
|
||||
echo alias ivp6 off >> /etc/modprobe.d/aliases.conf
|
||||
# Disable IPv6 with sysctl.
|
||||
cat >> /etc/sysctl.conf <<EOF
|
||||
net.ipv6.conf.all.disable_ipv6 = 1
|
||||
net.ipv6.conf.default.disable_ipv6 = 1
|
||||
net.ipv6.conf.lo.disable_ipv6 = 1
|
||||
#net.ipv6.conf.ens3.disable_ipv6 = 1
|
||||
EOF
|
||||
|
||||
sysctl -p
|
||||
cd /etc ; git add . ; git commit -a -m 'Disable IPv6'
|
||||
|
||||
# Fix network to come up on boot
|
||||
sed -i -e 's/allow-hotplug/auto/g' /etc/network/interfaces
|
||||
cd /etc ; git add . ; git commit -a -m 'Auto start network'
|
||||
|
||||
# XXX not sure why this is getting installed:
|
||||
apt-get -y autoremove
|
||||
cd /etc ; git add . ; git commit -a -m 'autoremove'
|
||||
|
||||
apt clean
|
||||
|
||||
exit 0
|
||||
|
||||
# Reboot
|
Loading…
Reference in new issue