[私のLinuxは、私がショットを呼び出します!場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘

(A)SELinuxはどのように動作するかを理解する
のSELinux(セキュリティが強化Linuxは)強制アクセス制御を実装するために、米国国家安全保障局(NSA)で、Linuxは最も顕著な新しいセキュリティ・サブシステムの歴史です。NSAは、Linuxコミュニティの助けを借りてアクセス制御システムの開発で、このアクセス制御システムの制限内で、プロセスは、必要書類によって彼のタスクでのみアクセスすることができます。SELinuxはFedoraとのRed Hat Enterprise Linuxにデフォルトでインストールされ、あなたはまた、パッケージをインストールするように簡単に他のディストリビューションを得ることができます。SELinuxは提供Linuxカーネルのバージョン2.6の強制アクセス制御(MAC)システムです。Linuxのセキュリティモジュールのために現在利用可能なために、SELinuxが最も包括的かつ最も完全にテストされ、それが20年の研究ベースのMAC上に構築されています。型強制サーバーまたはオプションのマルチクラス戦略のSELinuxのマルチレベルのセキュリティをマージ、および役割ベースのアクセス制御の概念を使用しています。
SELinuxのディストリビューションは、Fedoraの、Red Hat Enterprise Linuxに(RHELとして、ほとんどの人が使用してSELinuxを使用する準備ができている )、DebianのかCentOSの。彼らはまた、彼らはSELinuxの機能を使用することができ、多くのユーザレベルのライブラリとツールを提供し、SELinuxの、カーネルで有効にし、カスタマイズされたセキュリティポリシーを提供しています。
SELinuxのは、「ドメイン-タイプモデル」に基づいて強制アクセス制御(MAC)セキュリティシステム、およびカーネルにNSAカーネルモジュールによって書き込まれるように設計されているそれぞれの特定のセキュリティ関連のアプリケーションがパッチSELinuxをヒットし含みます最後に、対応するセキュリティポリシーがあります。そのリソースの任意のプログラムを完全に制御できます。プログラムはその後、誰もがDACの状況で彼を止めることはできない、潜在的に下/ tmpディレクトリに投げ込まれ、重要な情報が含まれているファイルをする予定とします。SELinuxは、伝統的なUNIXのパーミッションアクセス制御よりも優れています。
従来のファイル制御は、このような私たちは、ファイルの誰もが変更し、ファイル操作が完全に権限によって制御され、削除、読み取ることができ、777で設定されたファイルへのアクセス権などの権限を設定することによって達成され、このアプローチが呼び出されますDAC(アクティブなアクセスコントロール)。SELinuxのは、ファイルBBながら、例えば、ファイルのAAにアクセスするプロセスは、そのラベルは、AA-FAであり、他のファイルへのアクセス処理BのBBで、そのラベルは、BB-FBである、によってタグアクセス制御によって行われている間あなたはすべての権限が読み書き実行可能であっても、この時点でBBファイルをプロセスにアクセスする場合の許可は、777ですが、それはまだアクセスできないので、ラベルは、同じではありませんので。だから、SELinuxは、プロセスの特定のマーカーであるだけで、特定のタグのリソースにアクセスすることができ、それは概念の文脈です。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘


(B)のSELinuxのコンテキストを理解する
(2.1)我々はvms002 HTTPサービスでホストにインストールしようとした、および起動時に設定します。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
(2.2)SELinuxのサービスのためには、開いていない、状態を開くように設定することができます。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
httpdサービス情報およびコンテキストを表示するためにはgrep httpdのコマンド|#PSはaxZを使用して(2.3)。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
私たちは下のルートに/ wwwディレクトリを作成し、192.168.26.102/wwwポイント/ wwwディレクトリを設定している場合(2.4)我々は、/ var / www / html /ディレクトリの内容を知っているので、それはのhttpd_sys_content_tで、ルートの下に作成されます。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
(2.5)は、その後、我々は、/ etc / httpdの/ confに/ httpd.confの設定ファイルディレクトリ内のパラメータ情報ディレクトリ/ wwwディレクトリを設定します。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
(2.6)我々は、/ wwwディレクトリコンテキストは、コンテキストのhttpd_sys_content_tと同じの/ var / www / html /ディレクトリ、default_tではありません見つけます。私たちは、コンテキストを変更するには、次のコマンドを使用します。
-R&LT -tのhttpd_sys_content_t CHCON位/ WWW
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
コンテキストが同じであるので、(2.7)は、この場合は、正常に表示されたディレクトリアクセスhttp://192.168.26.102/www/に見出すことができます。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
私たちは、工場出荷時の設定を復元したい場合(2.8)、あなたは#1 restoreconコマンド-R / www /のコマンドを使用することができます。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
(2.9)我々は、/ var / www / html /ディレクトリコンテキストを直接参照したい場合は、参照パラメータを使用することができます。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
(2.10)私たちは時々 、特定のコンテキストを覚えている場合は、それが普遍的コンテキストを使用して設定することができ、非常に明確ではありません。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
(2.11)私たちは、現在のシステムの状況に関するすべての情報を照会したい場合は、#semanage fcontext -lクエリを使用することができます。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
(2.12)、例えば、/var/www/html(/.*など)?正規表現の表現は/ var / www / htmlディレクトリと、次のファイルまたはディレクトリのすべてを一致させることができるされています。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
(2.13)私たちは、コンテキスト情報に対応するデフォルトのディレクトリを変更する必要がある場合#semanage fcontext -a -t public_content_t「/www(/.*使用することができます )?」 コマンド、#のrestoreconコマンドの-R / WWWを使用する際に/コマンドが復元するように、工場出荷時のデフォルトを情報の価値は、semanageコマンドを表示したとき。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
(2.14)、我々は、デフォルトのコンテキストが設定されている削除したい場合は、あなたが#semanage fcontext -d -t public_content_t「/www(/.*を使用することができますか )?
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘


(三)了解SELinux的几种模式
(3.1)查看SELinux模式类型的命令是getenforce。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
(3.2)enforcing----->强制模式,必须要满足SELinux的条件,不满足的话,则阻止访问且警报。
permissive----->允许模式,可以不满足SELinux的条件,不满足也可以访问,但是有警报。所以有时候我们访问不了服务器的时候,想想是不是SELinux导致的,可以临时关闭SELinux,就是切换到了permissive模式。
(3.3)由于setenforce命令只是临时切换,当我们重启机器之后就不在生效了,如果希望服务器重启后也生效,则可以在/etc/selinux/config配置文件中进行设置。记住:如果是设置成disable禁止的话,修改完之后必须要重启才能生效。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
(3.4)由于/etc/sysconfig/selinux目录下的配置文件是指向/etc/selinux/config配置文件的软连接,所以也可以对这个文件进行修改。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘


(四)了解SELinux的布尔值
一个服务有很多功能,比如是否允许写,是否允许匿名写等等。是否开启这个功能,完全由配置文件来决定,但是如果SELinux功能启用后,那么决定服务是否启动的一个条件是SELinux也要允许服务启动。
(4.1)我们首先在vms002主机上安装vsftpd服务。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
(4.2)接着在vms001主机上安装lftp和ftp的客户端软件。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
(4.3)首先我们在vms001主机上通过客户端软件登录vms002主机的ftp服务器,并准备将本地的books.txt文件上传到ftp服务器。但是系统显示“put: Access failed: 550 Permission denied. (books.txt)”报错。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
(4.4)首先检查配置文件/etc/vsftpd/vsftpd.conf中的匿名用户权限是否都有开启。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
(4.5)开启匿名用户的权限后,发现仍然没有上传文件的权限,系统显示“put: Access failed: 553 Could not create file. (books.txt)”
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
(4.6)创建一个/var/ftp/xx目录,并且设置目录的属主和属组为ftp用户,此时在vms001主机的客户端上进入xx目录后,尝试上传文件,发现仍然有“put: Access failed: 553 Could not create file. (books.txt)”报错信息。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
(4.7)我们查询到在vms002主机上关于ftp布尔值的参数ftpd_anon_write和ftpd_full_access均为off,在/etc/vsftpd/目录下的vsftpd.conf的配置文件中已经有注释提示布尔值设置问题。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
(4.8)その後、我々はftpd_anon_writeうとftpd_full_accessパラメータがONに設定されている
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
(4.9)システムが再起動した後、我々はまた、有効であることができるブール値を設定したい場合は、-Pパラメータを追加することができます。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
(4.10)概要:設定ファイルが書き込みを許可さであることを確認してください。2検査:私たちはサーバからクライアントへのファイルの転送を開始するために、サービスを構築しますが、最大送信できない場合は、次の三つの中からチェックする必要があります。ファイルシステムのアクセス許可をするかどうか、権限がSELinuxの状況を設定する3.チェック、それが関係するSELinuxのブール値量の状況と一般的な側面です。
(4.11)私たちはあなたにもSELinuxを設定するためのグラフィカルインタフェースの方法を使用することができ、SELinuxの設定に加えて、コマンドラインを使用します。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
(4.12)SELinuxのポートは、コンテキスト上に設けられています。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
(4.13)我々は発見サービスが正常に起動することはできません後にして、httpdサービスを再起動し、httpd.conf構成ファイル内のリスナーポート808を追加します。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
(4.14)この時点では、/ etc / ssh / sshd_configファイルをで表示するテンプレートファイルを見つけることができます。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
この時点でコンテキストサービスのhttpd、httpdサービスを設定する(4.15)808ポートは、通常の再起動することができます。
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘
[私のLinuxは、私がショットを呼び出します! 場合は、企業全体のセキュリティポリシー--SELinux軍の戦闘

おすすめ

転載: blog.51cto.com/13613726/2437794