리눅스 ssh 포트 확인 - linugseu ssh poteu hwag-in

하도 접속시도 (해킹시도)가 많아서 리눅스 신규 설치후에는 접속포트를 변경하는게 좋다.

Show

ssh 기본포트인 22번을 1999로 변경해 보자.

** 방화벽이 구동중인 경우 반드시 방화벽을 먼저 처리 후 포트를 변경해야 한다. **

리눅스 ssh 포트 확인 - linugseu ssh poteu hwag-in

1. 포트 확인

# netstat -an|grep LISTEN 
tcp        0      0 0.0.0.0:22           0.0.0.0:*               LISTEN 
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN 
tcp6       0      0 :::22                :::*                    LISTEN 
tcp6       0      0 ::1:25                  :::*                    LISTEN 

22번 포트로 LISTEN 하는걸 알수 있다.

2. 설정파일 변경

#  vi /etc/ssh/sshd_config

Port 22 주석처리 후 원하는 포트로 변경

Port 1999

3. sshd 재시작

# systemctl restart sshd.service

어라! 오류가 발생한다.

# systemctl restart sshd.service 
Job for sshd.service failed because the control process exited with error code. See "systemctl status sshd.service" and "journalctl -xe" for details.

status 로 상세정보를 보란다.

SELINUX의 경우 보안땜에 먼저 포트를 열어줘야 한다.

# semanage port -a -t ssh_port_t -p tcp 1999

4. sshd 재시작 후 포트 확인

# systemctl restart sshd.service
# netstat -n|grep LISTEN
tcp        0      0 0.0.0.0:1999           0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN
tcp6       0      0 :::1999                :::*                    LISTEN
tcp6       0      0 ::1:25                  :::*                    LISTEN 

5. 새로운 터미널로 xxxx 포트로 접속되면 성공!!

ssh 포트를 외부에 공개해야 할 경우 보안을 위해서는 22번이 아닌 다른 포트를 사용하는 것이 좋으며 서버와 클라이언트로 나눠서 설정 방법 및 사용법을 정리해 본다.

SSHD

RHEL/CentOS Linux 의 경우 /etc/ssh/sshd_config 에 Port 항목을 수정하면 된다. Port 는 여러 개 지정할 수 있다. 다음은 ssh 로 10022와 20022 포트를 사용한다.

/etc/ssh/sshd_config

## ssh 포트
## Port 22
Port 10022
Port 20022

BASH

설정을 마쳤으면다음 명령어로 서비스를 재구동하면 반영된다. 포트를 변경했으므로 iptables 이나 firewalld 도 잊지 말고 반영해야 한다.

systemd 사용

systemctl restart sshd

BASH

systemd 미사용

service sshd restart

BASH

SELinux 주의 사항

RHEL/CentOS 사용자는 권한이 없다고 나오는 경우 다음 SELinux 명령을 실행한다.

semanage port -a -p tcp -t ssh_port_t 10022
semanage port -a -p tcp -t ssh_port_t 20022

CODE

SSH Client

ssh client 는 실행시 -p 옵션 뒤에 원격 서버의 포트 번호를 주면 된다. 다음은 ssh 로 10022 포트로 연결하는 예제이다.

ssh -p 10022 example.com

CODE

그런데 매번 포트를 입력하기가 귀찮고 또 내부적으로 ssh 를 사용하는 git 이나 rsync 등을 사용시 포트 번호를 설정하기 번거롭거나 포트 번호 옵션을 제공하지 않는 경우가 있다.

이럴 경우 ssh 의 config 파일에 Host 별 Port 를 지정해 줄 수 있다.

~/.ssh/config

Host example.com
    Port 10022
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/example.com/id_rsa 

BASH

같이 보기

  • ssh config 설정해서 서버마다 다른 ssh key 사용하기
  • git 을 ssh 로 연결시 22번 이 아닌 다른 포트 사용하기
  • systemd(system daemon) 을 관리하는 systemctl 명령어 사용법