前言
最近剛好在重新安裝工作站,就順手記錄起來囉!
主要內容
下載映像檔
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
2
3
| aptitude install -y unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades
systemctl status unattended-upgrades.service
|
logrotate
小結
本文記錄了系統在剛安裝完成時,要先進行的配置。如: IP、時間、防火牆等。
未來若有再新增設定,會再補充說明。
參考連結
相關頁面