본문 바로가기
웹 서버 설계

centos7 ssh포트 변경 안될때 selinux 설정 변경

by 손너잘 2017. 8. 2.

selinux는 센토스에서 제공하는 보안 옵션이다.


공격자가 강제로 포트등의 서버 셋팅을 못바꾸게 하여 공격으로부터 서버를 보호하기 위한 옵션인데


이때문에 ssh포트라든지 http포트등을 바꾼 후 데몬을 재시작 했을 경우 바뀌지 않고 오류를 뱉어내는 현상이 있다.


보통은 


1
setenforece 0

cs


명령어를 이용하여 해당 기능을 일시적으로 멈춘 후 셋팅을 하지만, 이럴경우 해당 보안옵션이 전부 꺼질뿐더러 재부팅을 하면 또다시 데몬이 오류를 뱉어내며 실행을 못하게 된다.

따라서 해당 보안옵션을 지키면서 포트변겨을 하는법을 보도록 하겠다.

본인은 ssh포트를 바꾸는데 바꾼 후 데몬을 재실행 하면 오류가 자꾸 발생하여 해당 방법을 이용하여 처리했다

selinux옵션을 바꾸기 위해서는 semanage 툴이 필요하다 설치하도록 하자.

1
yum install policycoreutils-python
cs


그런 뒤 selinux에서의 ssh포트 정의를 확인해 본다.


1
2
semanage port -| grep ssh
ssh_port_t    TCP    22

cs



확인하면 ssh_port_t 에서는 22번포트만을 허용하고 있는것을 보인다.

여기에 원하는 포트를 넣어보자


1
sudo semanage port --t ssh_port_t -p tcp 1234

cs


잘 들어갈 것 이다, 만일 이미 사용중인 포트라고 한다면 

1
semanage port -| grep 1234

cs



이와같이 해당 포트가 어디에서 사용되는지 확인 후

1
sudo semanage port -d -t <사용되는부분> -p tcp <포트>

cs



이와같이 해당 포트를 삭제해 주도록 하자. 만일 삭제가 안되면 해당 포트는 selinux에서 defualt로 사용중인 포트이기 때문에 안되는 것 이다. 



1
sudo semanage port -m -t ssh_port_t -p tcp 1234

cs




이와같이 그냥 해당 포트를 정책에 추가하는식으로 하면 된다.

댓글