CentOS 7
Sponsored Link

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
[root@dlp ~]#
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 でリスンしている
 
Tweet