我正在跟进指示使用 kickstart 自动安装 Ubuntu Server 12.04。它可以很好地自动对驱动器进行分区、选择语言等。但是,它不会配置防火墙。它是一个已知问题。
在没有防火墙的情况下运行并不是一个好主意。如何在安装过程中配置 UFW 防火墙以防止未经授权访问服务器?
我的 kickstart 文件如下所示(仅更改了用户名)
#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。
答案1
您可以使用%post
kickstart 文件的(安装后)部分来运行防火墙规则,甚至创建一个基本的防火墙脚本。
我发现,在这个地点安装后配置的使用示例。以及这里您对如何实现您的目标有另一种解释。
编辑:%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
试试看这是否可行。可能有点过头了,但如果可行,可能是一个不错的解决方法。