A tiny bash util to setup dns and ssh
install-stepcli.sh
· 433 B · Bash
原始文件
apt-get update && apt-get install -y --no-install-recommends curl gpg ca-certificates
curl -fsSL https://packages.smallstep.com/keys/apt/repo-signing-key.gpg -o /etc/apt/keyrings/smallstep.asc
cat << EOF > /etc/apt/sources.list.d/smallstep.sources
Types: deb
URIs: https://packages.smallstep.com/stable/debian
Suites: debs
Components: main
Signed-By: /etc/apt/keyrings/smallstep.asc
EOF
apt-get update && apt-get -y install step-cli
| 1 | apt-get update && apt-get install -y --no-install-recommends curl gpg ca-certificates |
| 2 | curl -fsSL https://packages.smallstep.com/keys/apt/repo-signing-key.gpg -o /etc/apt/keyrings/smallstep.asc |
| 3 | cat << EOF > /etc/apt/sources.list.d/smallstep.sources |
| 4 | Types: deb |
| 5 | URIs: https://packages.smallstep.com/stable/debian |
| 6 | Suites: debs |
| 7 | Components: main |
| 8 | Signed-By: /etc/apt/keyrings/smallstep.asc |
| 9 | EOF |
| 10 | apt-get update && apt-get -y install step-cli |
| 11 |
interface.sh
· 1.0 KiB · Bash
原始文件
#!bin/zsh
configure_interfaces() {
log_info "Configuration via /etc/network/interfaces"
cp /etc/network/interfaces /etc/network/interfaces.$(date +%s).bkp
# Ajouter DNS si absent
if ! grep -q "dns-nameservers" /etc/network/interfaces; then
# Trouver l'interface principale
main_iface=$(ip route | grep default | awk '{print $5}' | head -n1)
if [[ -n $main_iface ]]; then
DNS_JOIN="${DNS_SERVERS[*]}"
# Ajouter après l'interface
sed -i "/iface ${main_iface}/a \ dns-search ${SEARCH_DOMAIN}" /etc/network/interfaces
sed -i "/iface ${main_iface}/a \ dns-nameservers ${DNS_JOIN}" /etc/network/interfaces
fi
else
DNS_JOIN="${DNS_SERVERS[*]}"
sed -i "s/dns-nameservers.*/dns-nameservers ${DNS_JOIN}/" /etc/network/interfaces
sed -i "s/dns-search.*/dns-search ${SEARCH_DOMAIN}/" /etc/network/interfaces
fi
systemctl restart networking
log_info "/etc/network/interfaces configuré"
}
| 1 | #!bin/zsh |
| 2 | |
| 3 | configure_interfaces() { |
| 4 | log_info "Configuration via /etc/network/interfaces" |
| 5 | |
| 6 | cp /etc/network/interfaces /etc/network/interfaces.$(date +%s).bkp |
| 7 | |
| 8 | # Ajouter DNS si absent |
| 9 | if ! grep -q "dns-nameservers" /etc/network/interfaces; then |
| 10 | # Trouver l'interface principale |
| 11 | main_iface=$(ip route | grep default | awk '{print $5}' | head -n1) |
| 12 | |
| 13 | if [[ -n $main_iface ]]; then |
| 14 | DNS_JOIN="${DNS_SERVERS[*]}" |
| 15 | # Ajouter après l'interface |
| 16 | sed -i "/iface ${main_iface}/a \ dns-search ${SEARCH_DOMAIN}" /etc/network/interfaces |
| 17 | sed -i "/iface ${main_iface}/a \ dns-nameservers ${DNS_JOIN}" /etc/network/interfaces |
| 18 | fi |
| 19 | else |
| 20 | DNS_JOIN="${DNS_SERVERS[*]}" |
| 21 | sed -i "s/dns-nameservers.*/dns-nameservers ${DNS_JOIN}/" /etc/network/interfaces |
| 22 | sed -i "s/dns-search.*/dns-search ${SEARCH_DOMAIN}/" /etc/network/interfaces |
| 23 | fi |
| 24 | |
| 25 | systemctl restart networking |
| 26 | |
| 27 | log_info "/etc/network/interfaces configuré" |
| 28 | } |
resolved.sh
· 707 B · Bash
原始文件
#!bin/zsh
configure_systemd_resolved() {
log_info "Configuration via systemd-resolved"
# Créer le drop-in directory
mkdir -p /etc/systemd/resolved.conf.d/
# Écrire la config
cat > /etc/systemd/resolved.conf.d/dns.conf <<EOF
[Resolve]
DNS=${DNS_SERVERS[@]}
FallbackDNS=1.1.1.1 8.8.8.8
Domains=${SEARCH_DOMAIN}
DNSSEC=no
DNSOverTLS=no
EOF
# Restart service
systemctl restart systemd-resolved
if [[ ! -L /etc/resolv.conf ]]; then
log_warn "/etc/resolv.conf n'est pas un symlink, correction..."
rm -f /etc/resolv.conf
ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
fi
log_info "systemd-resolved configuré"
}
| 1 | #!bin/zsh |
| 2 | |
| 3 | configure_systemd_resolved() { |
| 4 | log_info "Configuration via systemd-resolved" |
| 5 | |
| 6 | # Créer le drop-in directory |
| 7 | mkdir -p /etc/systemd/resolved.conf.d/ |
| 8 | |
| 9 | # Écrire la config |
| 10 | cat > /etc/systemd/resolved.conf.d/dns.conf <<EOF |
| 11 | [Resolve] |
| 12 | DNS=${DNS_SERVERS[@]} |
| 13 | FallbackDNS=1.1.1.1 8.8.8.8 |
| 14 | Domains=${SEARCH_DOMAIN} |
| 15 | DNSSEC=no |
| 16 | DNSOverTLS=no |
| 17 | EOF |
| 18 | |
| 19 | # Restart service |
| 20 | systemctl restart systemd-resolved |
| 21 | |
| 22 | if [[ ! -L /etc/resolv.conf ]]; then |
| 23 | log_warn "/etc/resolv.conf n'est pas un symlink, correction..." |
| 24 | rm -f /etc/resolv.conf |
| 25 | ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf |
| 26 | fi |
| 27 | |
| 28 | log_info "systemd-resolved configuré" |
| 29 | } |
static.sh
· 586 B · Bash
原始文件
configure_static() {
log_warn "Aucun gestionnaire détecté, configuration statique"
# Désactiver immutabilité si présente
chattr -i /etc/resolv.conf 2>/dev/null || true
cp /etc/resolv.conf /etc/resolv.conf.backup.$(date +%s)
cat > /etc/resolv.conf <<EOF
# Generated by custom DNS setup script
search ${SEARCH_DOMAIN}
$(for dns in "${DNS_SERVERS[@]}"; do echo "nameserver $dns"; done)
EOF
# Rendre immutable pour éviter l'écrasement
chattr +i /etc/resolv.conf
log_info "Configuration statique appliquée (fichier verrouillé)"
}
| 1 | configure_static() { |
| 2 | log_warn "Aucun gestionnaire détecté, configuration statique" |
| 3 | |
| 4 | # Désactiver immutabilité si présente |
| 5 | chattr -i /etc/resolv.conf 2>/dev/null || true |
| 6 | |
| 7 | cp /etc/resolv.conf /etc/resolv.conf.backup.$(date +%s) |
| 8 | |
| 9 | cat > /etc/resolv.conf <<EOF |
| 10 | # Generated by custom DNS setup script |
| 11 | search ${SEARCH_DOMAIN} |
| 12 | $(for dns in "${DNS_SERVERS[@]}"; do echo "nameserver $dns"; done) |
| 13 | EOF |
| 14 | |
| 15 | # Rendre immutable pour éviter l'écrasement |
| 16 | chattr +i /etc/resolv.conf |
| 17 | |
| 18 | log_info "Configuration statique appliquée (fichier verrouillé)" |
| 19 | } |