[linux] ssh 포트 변경하기 (SELinux에서 Bind Permission denied 뜰 때)
급하게 리눅스(CentOS 7)에서 ssh 포트를 변경할일이 있는데..
예전에 올린글이 있어서 그걸 참고해서 하는데 안되는 부분이 있어서 추가한다.
기본적인건 예전에 올린글 대로 하면 된다.
[linux] ssh 포트 변경하기(추가하기)
다만.. 윗글의 3번 sshd를 재시작 할때..
Jul 26 10:01:07 localhost sshd[1590]: error: Bind to port 1922 on 0.0.0.0 failed: Permission denied. Jul 26 10:01:07 localhost sshd[1590]: error: Bind to port 1922 on :: failed: Permission denied. Jul 26 10:01:07 localhost sshd[1590]: fatal: Cannot bind any address.
라면서 안되는 경우가 있는데.. 이 경우 해결책이다.
방법1.
간단한 방법은 보안을 잠간 내린다음 ssh를 실행하고, 다시 보안을 올리는 경우다.
다만 이럴 경우 다음번에 sshd를 restart하면 또 에러난다. (비추. 급할때 써볼 정도)
[root@localhost ~]# setenforece 0 # 보안 내림 [root@localhost ~]# getenforece #지금 상태 확인 [root@localhost ~]# systemctl restart sshd.service [root@localhost ~]# systemctl status sshd.service # 오류가 없는지 확인 [root@localhost ~]# setenforece 1 # 다시 보안 올림
방법 2.
semanage 명령을 통해 새로운 포트를 등록한다.
[root@localhost ~]# yum install policycoreutils-python # semanage가 없을 경우 설치 [root@localhost ~]# semanage port -l | grep ssh # 현재 상태 확인 ssh_port_t tcp 22 # ssh 22번 포트 확인 [root@localhost ~]# semanage port -a -t ssh_port_t -p tcp 1922 # tcp 1922 포트를 ssh_port_t 에 추가 [root@localhost ~]# semanage port -l | grep ssh ssh_port_t tcp 1922, 22 # 1922 추가 확인
추가로..
방화벽에 정책에 추가해줘야할 수도 있다.
[root@localhost ~]# firewall-cmd --zone=public --add-port=1922/tcp --permanent [root@localhost ~]# firewall-cmd --reload [root@localhost ~]# firewall-cmd --info-zone=public # 추가됐는지 확인