最近週末は、趣味でSELinuxを触っています。手軽に試したかったのでAWSのAmazonLinuxを使うことにしました。
しかしAmazonLinuxはデフォルトでSELinuxがインストールされておりませんので、SELinuxパッケージ群をインストールする必要があります。
SELinuxはモジュールをカスタマイズしていくので、ごちゃごちゃになってたりするので、頻繁に環境を作り直しをしたくなりました。
そこでCloudFormationでAmazonLinuxをSELinux化するテンプレートを書きましたので、こちらを備忘として貼って置こうと思います。
テンプレート
AWSTemplateFormatVersion: "2010-09-09"
Description:
Create EC2 instance on amazon linux that install selinux.
Parameters:
InstanceType:
Type: String
Default: t2.micro
Ec2SshKey:
Type: String
Resources:
EC2Instance:
Type: AWS::EC2::Instance
Properties:
ImageId: ami-9c9443e3
InstanceType: !Ref InstanceType
KeyName: !Ref Ec2SshKey
UserData:
Fn::Base64:
!Sub |
#!/bin/bash -xe
yum update -y aws-cfn-bootstrap
yum install -y selinux-policy-targeted policycoreutils-python setools-console
sed -i -e 's/selinux=0/security=selinux selinux=1/g' /boot/grub/menu.lst
dracut --force
touch /.autorelabel
shutdown -r now
Tags:
- Key: Name
Value: !Ref AWS::StackName
ログインして確認してみると。。。
Amazon LinuxにログインしてSELinuxがインストールされていることを確認してみます。
無事にSELinuxが導入されたことが確認できるかと思います。
SELinuxモードを確認
$ getenforce
Enforcing
SELinuxのスタータス確認
$ sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
SELinux root directory: /etc/selinux/
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31
以上