SELinux : ポートのタイプを変更する2016/04/03 |
SELinux ではポートに対してもタイプが付与されています。
タイプが設定されていないポートでサービスを起動しようとすると SELinux によってアクセス拒否されます。 |
|
[1] | ポートに付与されているタイプの一覧は semanage コマンドで確認できます。 |
[root@dlp ~]# semanage port -l SELinux Port Type Proto Port Number afs3_callback_port_t tcp 7001 afs3_callback_port_t udp 7001 afs_bos_port_t udp 7007 ..... ..... zookeeper_leader_port_t tcp 2888 zope_port_t tcp 8021 |
[2] |
例として httpd で 82 番ポートを利用する際のポートのタイプについて設定します。
以下のように http のデフォルトポートである 80 や https の 443
で検索すると、「http_port_t」というタイプが割り当てられていることが分かります。ここに 82
番ポートは指定されていないため、httpd.conf 側で正しく設定したとしても 82 番ポートでは起動できません。82
番ポートを利用するには「http_port_t」に 82 番ポートを追加する必要があります。
|
# 現在の設定確認 [root@dlp ~]# semanage port -l | grep -E -w "80|443" http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000 # 82 番を追加する [root@dlp ~]# semanage port -a -t http_port_t -p tcp 82
semanage port -l | grep "^http_port_t"
http_port_t tcp 82, 80, 81, 443, 488, 8008, 8009, 8443, 9000
# 追加された
# httpd の設定を変更した後、サービス再起動して確認 [root@dlp ~]# ss -napt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 50 *:3306 *:* users:(("mysqld",pid=1081,fd=14))
LISTEN 0 50 *:139 *:* users:(("smbd",pid=867,fd=38))
LISTEN 0 128 *:22 *:* users:(("sshd",pid=821,fd=3))
LISTEN 0 100 127.0.0.1:25 *:* users:(("master",pid=1132,fd=13))
LISTEN 0 50 *:445 *:* users:(("smbd",pid=867,fd=37))
LISTEN 0 50 :::139 :::* users:(("smbd",pid=867,fd=36))
LISTEN 0 128 :::82 :::* users:(("httpd",pid=1356,fd=4),("httpd",p...
LISTEN 0 128 :::22 :::* users:(("sshd",pid=821,fd=4))
LISTEN 0 100 ::1:25 :::* users:(("master",pid=1132,fd=14))
LISTEN 0 50 :::445 :::* users:(("smbd",pid=867,fd=35))
# httpd が 82 でリスンしている
|
Sponsored Link |