я следую инструкции для автоматизации установки Ubuntu Server 12.04 с помощью кикстарта. Он хорошо работает для автоматического разбиения дисков, выбора языков и т. Д. Однако он не настраивает брандмауэр. Это известная проблема.
Работать без брандмауэра - не лучшая идея. Как настроить брандмауэр UFW во время установки, чтобы предотвратить несанкционированный доступ к серверу?
Файл кикстарта, который у меня есть, выглядит следующим образом (с измененным только именем пользователя)
#System language
lang en_US
#Language modules to install
langsupport en_US
#System keyboard
keyboard us
#System mouse
mouse
#System timezone
timezone America/Los_Angeles
#Root password
rootpw --disabled
#Initial user
user johnd --fullname "John Doe" --iscrypted --password <omitted>
#Reboot after installation
reboot
#Use text mode install
text
#Install OS instead of upgrade
install
#Use CDROM installation media
cdrom
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr yes
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part / --fstype ext4 --size 1 --grow
part swap --recommended
#System authorization infomation
auth --useshadow --enablemd5
#Network information
network --bootproto=dhcp --device=eth0
#Firewall configuration
firewall --enabled --trust=eth0 --ssh
#Do not configure the X Window System
skipx
ОБНОВИТЬ
Я добавил следующее в файл выше:
%post
mkdir /usr/sample
ufw enable
ufw allow 22
После установки каталог /usr/sample
существует, но брандмауэр по-прежнему отключен и доступ к порту 22 запрещен.
Вы можете использовать %post
(после установки) часть файла кикстарта для запуска правил брандмауэра или даже создания базового скрипта брандмауэра.
Я нашел на этом сайт пример использования настройки после установки. И Вот у вас есть другое объяснение того, как достичь того, чего вы хотите.
РЕДАКТИРОВАТЬ: %post
предложение:
%post
mkdir /usr/sample
sed -i 's/^\(ENABLE=\s*\).*$/\1yes/' /etc/ufw/ufw.conf
sed -i 's/^COMMIT/-A ufw-before-input -p tcp --dport 22 -j ACCEPT\n\nCOMMIT/' /etc/ufw/before.rules
ufw status verbose > /usr/sample/ufw_out.log
Попробуйте и посмотрите, сработает ли это. Может быть, немного больше, но если это сработает, это может быть хорошим решением.