Dieses Tutorial ist VALID und sollte aktuell funktionieren...

Bitte lies Dir den Disclaimer durch, bevor Du eine Anleitung umsetzt...

Haftungsausschluss / Disclaimer

Basissystem: Debian 9 „Stretch“ Installation OHNE Verschlüsselung

Firewall: Shorewall installieren

Shorewall für IPv4 installieren und einrichten

apt install -y shorewall
cd /usr/share/doc/shorewall/examples/one-interface/ && cp interfaces policy rules zones /etc/shorewall/ && cd
nano /etc/default/shorewall

startup=1

nano /etc/shorewall/policy

net / all / drop: Log level entfernen. (Sprich: „info“ löschen…) Sonst knallt uns das LOG voll.

nano /etc/shorewall/rules

Zeilen anfügen (für SSH, WEB und MAIL):

# SSH Port aufmachen
ACCEPT  net         $FW     tcp     55544   -       -    5/min:8
#
# WEB Ports aufmachen - http / https
ACCEPT:info net     $FW     tcp     80      -       -
ACCEPT:info net     $FW     tcp     443     -       -
#
# MAIL Ports aufmachen - smtp / transmission
ACCEPT:info net     $FW     tcp     25      -       -
ACCEPT:info net     $FW     tcp     587     -       -
nano /etc/shorewall/interfaces

### Ethernet Interface anpassen! [ens3 statt eth0]
net ens3 dhcp,tcpflags,logmartians,nosmurfs,sourceroute=0

Shorewall6 für IPv6 installieren und einrichten

apt install -y shorewall6
cd /usr/share/doc/shorewall6/examples/one-interface/ && cp interfaces policy rules zones /etc/shorewall6/ && cd
nano /etc/default/shorewall6

startup=1

nano /etc/shorewall6/policy

net / all / drop: und net / $FW / drop: Log level entfernen. (Sprich: „info“ löschen…) Sonst knallt uns das LOG voll.

nano /etc/shorewall6/rules

Zeilen anfügen (für SSH, WEB und MAIL):

# SSH Port aufmachen
ACCEPT  net         $FW     tcp     55544   -       -    5/min:8
#
# WEB Ports aufmachen - http / https
ACCEPT:info net     $FW     tcp     80      -       -
ACCEPT:info net     $FW     tcp     443     -       -
#
# MAIL Ports aufmachen - smtp / transmission
ACCEPT:info net     $FW     tcp     25      -       -
ACCEPT:info net     $FW     tcp     587     -       -
nano /etc/shorewall6/interfaces

### Ethernet Interface anpassen! [ens3]
net ens3 tcpflags

Shorewall auf das Zusammenspiel mit Docker vorbereiten

### Docker Support ab Shorewall v5.0.6
### Installiert wird Shorewall v5.0.15.6 :)

nano /etc/shorewall/shorewall.conf
###########################################################
#           F I R E W A L L   O P T I O N S
###########################################################
...
DOCKER=Yes
...
IP_FORWARDING=On
...

### Bei „stretch“ muss die shorewall zusätzlich zum startup=1 noch manuell in den Autostart hinzugefügt werden:

systemctl enable shorewall && systemctl enable shorewall6

Unattended Upgrades

https://wiki.debian.org/UnattendedUpgrades

apt install -y unattended-upgrades apt-listchanges
nano /etc/apt/apt.conf.d/50unattended-upgrades

### Uncomment Unattended-Upgrade::Mail „root“;

dpkg-reconfigure -plow unattended-upgrades

### [Ja] / [Enter] / [Enter]

cat /etc/apt/apt.conf.d/20auto-upgrades

### Check:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Rotierte LOGs komprimieren

nano /etc/logrotate.conf
# uncomment this if you want your log files compressed
compress

Terminal in Farbe und weitere nette Einstellungen

nano ~/.bashrc

[Bitte auf den Titel klicken, um das Script auszuklappen…]

## Start
# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color) color_prompt=yes;;
esac

force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
        # We have color support; assume it's compliant with Ecma-48
        # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
        # a case would tend to support setf rather than setaf.)
        color_prompt=yes
    else
        color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    alias grep='grep --color=auto'
fi

alias dco=docker-compose
##EOF

System neu starten

reboot

Finale Checks

### Einloggen als „ibims“ mit SSH-Key und Key-PW auf Port 55544
### „sudo -i“ mit ibims-PW für root-Rechte

Läuft Shorewall?

shorewall status -i
shorewall6 status -i
Shorewall-5.0.15.6 Status at tutorial - Di 21. Nov 19:39:12 CET 2017

Shorewall is running
State:Started Di 21. Nov 19:37:40 CET 2017 from /etc/shorewall/ (/var/lib/shorewall/firewall compiled Di 21. Nov 19:37:30 CET 2017 by Shorewall version 5.0.15.6)

Timeserver und Lokalzeit prüfen:

timedatectl status
      Local time: Sa 2018-07-14 21:27:07 CEST
  Universal time: Sa 2018-07-14 19:27:07 UTC
        RTC time: Sa 2018-07-14 19:27:07
       Time zone: Europe/Berlin (CEST, +0200)
 Network time on: yes
 NTP synchronized: yes
 RTC in local TZ: no
=======================================================

Falls KEINE ntp Synchronisation… So können wir sie einrichten:

nano /etc/systemd/timesyncd.conf
[Time]
Servers=0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org
timedatectl set-ntp true
timedatectl status

### Jetzt synct er die Zeit…

Plattenaufteilung:

df -h
root@stats:~# df -h
Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf
udev            3,9G       0  3,9G    0% /dev
tmpfs           799M    8,5M  791M    2% /run
/dev/sda3       235G    764M  234G    1% /
tmpfs           4,0G       0  4,0G    0% /dev/shm
tmpfs           5,0M       0  5,0M    0% /run/lock
tmpfs           4,0G       0  4,0G    0% /sys/fs/cgroup
tmpfs           799M       0  799M    0% /run/user/0

Wichtig ist der „/dev/sda3“ Part. Hier haben wir 1% belegt (764 MByte) und 234 GByte frei.

Gratulation – die Basisinstalltion ist jetzt abgeschlossen

Anzeige *

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.