Yuan のノート
心之所至,隨意亂書
使用 Debian 來架設工作站
Tue Aug 31, 2021
🏷️

前言

最近剛好在重新安裝工作站,就順手記錄起來囉!

主要內容

下載映像檔

1
wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-11.0.0-amd64-netinst.iso

製作安裝碟

1
sudo dd if=debian-11.0.0-amd64-netinst.iso of=/dev/DISK bs=10M

安裝

安裝步驟可以參考這邊

設定 IP

使用 systemd-networkd 設定 IP

透過重新命名 /etc/network/interfaces 的方式,來停用原本的網路介面配置。並建立 systemd-networkd 的設定檔。 完成後,我們就可以啟用 systemd-networkd 了。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# 取消 IPv6
echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf

mv /etc/network/interfaces{,.save}

cat << EOF >> /etc/systemd/network/lan.network
[Match]
Name=eth0

[Network]
Address=192.168.0.2/24
Gateway=192.168.0.254
DNS=8.8.8.8
EOF

systemctl enable systemd-networkd
systemctl start systemd-networkd

IP (已改用 systemd-networkd)

修改 /etc/network/interfaces 來設定主機的 IP

1
2
3
4
5
6
7
allow-hotplug eth0
iface eth0 inet static
        address 192.168.0.2/24
        gateway 192.168.0.254
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 8.8.8.8
        dns-search happy.internal

使用下列指令來重新起動網路

1
/etc/init.d/networking restart
1
2
3
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

我們可以使用下列指令來進行臨時的設定

1
2
3
4
5
6
7
8
ip addr add 192.168.0.2/24 dev eth0
ip addr del  192.168.0.2/24 dev eth0

dhcp eth0
dhcp -r eth0

ip link set eth0 up
ip link set eth0 down

安裝系統更新與常用工具

1
2
3
4
apt upgrade
apt update
apt install -y aptitude
aptitude install -y silversearcher-ag vim htop

設定時間同步

1
2
3
4
5
6
7
8
cat << EOF > /etc/systemd/timesyncd.conf
[Time]
NTP=time.google.com clock.stdtime.gov.tw
EOF

systemctl restart systemd-timesyncd.service
timedatectl status
date

設定防火牆規則

Firewalld

aptitude install -y firewalld
firewall-cmd --add-port=22022/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all

如果想直接操作 nftables 的話,可以使用下列指令

1
2
3
4
5
systemctl enable nftables
systemctl start nftables
nft add rule inet filter input tcp dport 22 accept
nft list ruleset
#nft list table inet filter

ufw (已改用 firewalld)

1
2
3
ufw enable
ufw default deny
ufw allow from XXX.XXX.XXX.XXX to XXX.XXX.XXX.XXX port 2234 proto tcp

修改 SSH Server 設定並上傳遠端存取公鑰

1
2
3
sed -i 's/^Port.*$/Port 2234/g' /etc/ssh/sshd_config
systemctl restart ssh
ssh-copy -i ~/.ssh/id_rsa  XXX.XXX.XXX.XXX -p 2234 -l user

如果想要生成新的金鑰,可以輸入下列指令

1
ssh-keygen -t rsa -b 4096 -f ~/.ssh/new_key_rsa -C email@example.com

限定只能使用金鑰進行認證

1
2
3
4
sed -i 's/^UsePAM.*$/UsePAM no/g' /etc/ssh/sshd_config
sed -i 's/^PermitRootLogin.*$/PermitRootLogin no/g' /etc/ssh/sshd_config
echo 'PasswordAuthentication no' >> /etc/ssh/sshd_config
systemctl restart ssh

如果是使用 sudo 的話,可以使用 tee 將輸出導向檔案

1
echo 'PasswordAuthentication no' | sudo tee -a /etc/ssh/sshd_config

查看有誰登入失敗以及有誰登入成功

1
2
cat /var/log/auth.log | ag 'sshd.*Invalid'
cat /var/log/auth.log | ag 'sshd.*opened'

擋掉登入失敗次數過多的連線

1
2
3
aptitude install -y fail2ban
sed -e 's/^enabled = false$/enabled = true/g' /etc/fail2ban/jail.conf > /etc/fail2ban/jail.local
systemctl enable fail2ban

我們可以使用 fail2ban-client 來查看目前的運行狀況

1
fail2ban-client status

自動安裝更新

1
2
3
aptitude install -y unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades
systemctl status unattended-upgrades.service

logrotate

1
/etc/logrotate.conf

小結

本文記錄了系統在剛安裝完成時,要先進行的配置。如: IP、時間、防火牆等。 未來若有再新增設定,會再補充說明。

參考連結

相關頁面