Загрузка данных
ISP:
WAN = enp0s3
LAN = enp0s8
mkdir -p /etc/net/ifaces/enp0s8
vim /etc/net/ifaces/enp0s8/options
ONBOOT=yes
BOOTPROTO=static
TYPE=eth
NM_CONTROLLED=no
echo "10.0.128.1/24" > /etc/net/ifaces/enp0s8ddress
systemctl restart network
vim /etc/net/sysctl.conf
поменяй net.ipv4.ip_forward=0 > 1
sysctl net.ipv4.ip_forward <-- проверка
DHCP
apt-get update
apt-get install -y dhcp-server
cp /etc/dhcp/dhcp.conf.sample /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
Сделать примерно тоже самое:
default-lease-time 600;
max-lease-time 7200;
subnet 10.0.128.0 netmask 255.255.255.0 {
option routers 10.0.128.1;
option domain-name "ilove.sa";
option domain-name-servers 8.8.8.8;
range 10.0.128.50 10.0.128.100;
}
host server {
hardware ethernet 08:00:27:a0:85:70; <-- тут мак аддрес SRV
fixed-address 10.0.128.2;
}
dhcpd -t -4 -cf /etc/dhcp/dhcpd.conf <-- проверка синтаксиса
vim /etc/sysconfig/dhcpd
DHCPDRAGS=enp0s8
apt-get install -y iptables
# NAT
iptables -t nat -A POSTROUTING -o "$WAN_IF" -s 10.0.128.0/24 -j MASQUERADE
# сохраняем и включаем автозагрузку
iptables-save > /etc/sysconfig/iptables
systemctl enable --now iptables
systemctl restart iptables
проверка
iptables -S
iptables -t nat -S
iptables -L -v -n
SRV:
vim /etc/net/ifaces/enp0s3
ONBOOT=yes
BOOTPROTO=dhcp
TYPE=eth
NM_CONTROLLED=no
systemctl restart network
RAID5
mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd
проверка
cat /proc/mdstat
mdadm --detail /dev/md0
ФС и монтирование
mkfs.ext4 -L RAID5 /dev/md0
mkdir -p /mnt/raid
UUID=$(blkid -s UUID -o value /dev/md0)
echo "UUID=$UUID /mnt/raid ext4 defaults 0 2" >> /etc/fstab
mount -a
сохранить конфиг
mdadm --detail --scan >> /etc/mdadm.conf
NFS:
apt-get install -y nfs-server rpcbind
systemctl enable --now rpcbind
systemctl enable --now nfs-server
Проверка сервисов:
systemctl status rpcbind --no-pager
systemctl status nfs-server --no-pager
Экспорт:
cat > /etc/exports <<'EOF'
/mnt/raid 10.0.128.0/24(rw,sync,no_subtree_check)
EOF
exportfs -ra
chmod 777 /mnt/raid
Проверка экспорта (на Server):
exportfs -v
CLI:
ip -br a
при отсутствии ip настроить /etc/net/ifaces/enp0s3/options как на сервере
3.2 Mount NFS: 10.0.128.2:/mnt/raid → /share
На cli:
apt-get install -y nfs-utils
mkdir -p /share
# проверить что сервер экспортирует
showmount -e 10.0.128.2
echo "10.0.128.2:/mnt/raid /share nfs defaults,_netdev 0 0" >> /etc/fstab
mount -a
Проверка:
df -h | grep /share
touch /share/test_from_cli
ls -la /share | tail
4) SSH доступ с cli на ISP и Server: алиасы, без пароля, нестандартные порты, пользователь sshuser
4.1 На ISP и на Server: создать sshuser + sudo только shutdown/reboot/htop (без пароля)
На ISP и на Server:
useradd sshuser
passwd sshuser
apt-get install -y sudo htop
Sudo-ограничение:
cat > /etc/sudoers.d/sshuser <<'EOF'
Cmnd_Alias POWER = /sbin/shutdown, /sbin/reboot, /usr/sbin/shutdown, /usr/sbin/reboot
Cmnd_Alias HTOP = /usr/bin/htop
sshuser ALL=(root) NOPASSWD: POWER, HTOP
EOF
chmod 0400/etc/sudoers.d/sshuser
chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
visudo -c
Проверка:
sudo -l -U sshuser
4.3 На cli: ключи + ~/.ssh/config (алиасы ssh ISP / ssh Server)
На cli:
ssh-keygen -t rsa
ssh-copy-id sshuser@10.0.128.1
ssh-copy-id sshuser@10.0.128.2
cat > ~/.ssh/config <<'EOF'
Host ISP
HostName 10.0.128.1
User sshuser
Port 2222
IdentityFile ~/.ssh/id_ed25519
Host srv
HostName 10.0.128.2
User sshuser
Port 2223
IdentityFile ~/.ssh/id_ed25519
EOF
chmod 600 ~/.ssh/config
Проверка:
ssh ISP
ssh srv
5) Samba AD DC на Server: домен ilove.sa, пользователи ssa1/ssa2/ssa3, группа ssa_group, вход на cli
5.1 Server: установка и поднятие samba-dc
На Server:
apt-get install task-samba-dc
systemctl disable --now bind krb5kdc nmb smb slapd
rm -f /etc/samba/smb.conf
rm -rf /var/lib/samba
rm -rf /var/cache/samba
mkdir -p /var/lib/samba/sysvol
hostnamectl set-hostname <name>
hostname и domainname должны быть разными
samba-tool domain provision --realm=ilove.sa --domain ilove --adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL --server-role=dc
dns forwarder 8.8.8.8
systemctl enable --now samba
echo "127.0.0.1" > /etc/net/ifaces/enp0s3/resolv.conf
systemctl restart network
Проверка:
samba-tool domain info 127.0.0.1
smbclient -L localhost -U administrator
3. Проверка конфигурации DNS
3.1 Убедитесь в наличии nameserver 127.0.0.1 в /etc/resolv.conf:
host ilove.sa
3.2 Проверяем имена хостов:
адрес _kerberos._udp.*адрес домена с точкой
# host -t SRV _kerberos._udp.ilove.sa.
Вывод:_kerberos._udp.ilove.sa has SRV record 0 100 88 c228.ilove.sa.
адрес _ldap._tcp.*адрес домена с точкой
# host -t SRV _ldap._tcp.ilove.sa.
Вывод:_ldap._tcp.ilove.sa has SRV record 0 100 389 c228.ilove.sa.
адрес хоста.*адрес домена с точкой
# host -t A c228.ilove.sa.
Вывод:c228.ilove.sa has address 192.168.1.1
Если имена не находятся, проверяйте выключение службы named.
systemctl status named
4. Проверка Kerberos:
kinit administrator
klist
5.2 Server: создать группу и пользователей ssa1/ssa2/ssa3
samba-tool user create ssa1 P@ssw0rd
samba-tool user create ssa2 P@ssw0rd
samba-tool user create ssa3 P@ssw0rd
samba-tool group addmembers ssa_group ssa1,ssa2,ssa3
CLI:
apt-get install task-auth-ad-sssd
echo "nameserver 10.0.128.2" > /etc/net/ifaces/enp0s3/resolv.conf
echo "search ilove.sa" >> /etc/net/ifaces/enp0s3/resolv.conf
reboot
realm discover
realm join
reboot
Проверки:
kinit ssa1@ILOVE.SA
klist
id ssa1@ilove.sa
getent passwd ssa1@ilove.sa
H="/home/ssa1@ilove.sa"
mkdir -p "$H"
chown $(id -u 'ssa1@ilove.sa'):$(id -g 'ssa1@ilove.sa') "$H"
chmod 700 "$H"
H="/home/ssa2@ilove.sa"
mkdir -p "$H"
chown $(id -u 'ssa2@ilove.sa'):$(id -g 'ssa2@ilove.sa') "$H"
chmod 700 "$H"
H="/home/ssa3@ilove.sa"
mkdir -p "$H"
chown $(id -u 'ssa3@ilove.sa'):$(id -g 'ssa3@ilove.sa') "$H"
chmod 700 "$H"
5.4 cli: sudo-ограничение для группы ssa_group (как в IV-A)
На cli:
cat > /etc/sudoers.d/ssa_group <<'EOF'
Cmnd_Alias POWER = /sbin/shutdown, /sbin/reboot, /usr/sbin/shutdown, /usr/sbin/reboot
Cmnd_Alias HTOP = /usr/bin/htop
%ssa_group@ilove.sa ALL=(root) NOPASSWD: POWER, HTOP
EOF
chmod 0400 etc/sudoers.d/ssa_group
visudo -c
Проверка:
# после входа под ssa1:
sudo -l
sudo htop
# разрешаем established/related
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# разрешаем DNS 53 TCP/UDP
iptables -A FORWARD -i "$LAN_IF" -o "$WAN_IF" -s 10.0.128.0/24 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -i "$LAN_IF" -o "$WAN_IF" -s 10.0.128.0/24 -p tcp --dport 53 -j ACCEPT
# разрешаем HTTP/HTTPS
iptables -A FORWARD -i "$LAN_IF" -o "$WAN_IF" -s 10.0.128.0/24 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i "$LAN_IF" -o "$WAN_IF" -s 10.0.128.0/24 -p tcp --dport 443 -j ACCEPT
# сохраняем и включаем автозагрузку
iptables-save > /etc/sysconfig/iptables
systemctl restart iptables