CentOS 7.1 root 패스워드 재설정

CentOS 7.1 에서 root 패스워드를 잊어버렸을 때 재설정하는 방법에 대해서 설명한다.

CentOS 를 설치할때 썼던 설치 디스크가 필요하다. 만약 설치 디스크가 없을 경우에는 Download CentOS 여기에서 Minimal ISO 를 받아서 굽던지 가상환경이라면 그대로 마운트해서 사용하면 된다.

설치 디스크를 넣고 부팅하면 아래와 같은 메뉴가 나온다. 아래 그림들을 순서대로 따라하면 된다.

Troubleshooting 을 선택

Troubleshooting 을 선택

Rescue a CentOS system 을 선택

Rescue a CentOS system 을 선택

화살표키로 Continue 를 선택하고 엔터

화살표키로 Continue 를 선택하고 엔터

쉘에서 빠져나가면 자동으로 리부팅 된다는 설명. 엔터를 누르자.

쉘에서 빠져나가면 자동으로 리부팅 된다는 설명. 엔터를 누르자.

엔터를 누르자.

엔터를 누르자.

chroot /mnt/sysimage

chroot /mnt/sysimage

아래 명령어를 입력

sudo passwd root

sudo passwd root

아래 명령어를 입력하고, 새로운 패스워드를 물어보면 새 패스워드를 확인까지 두번 입력하면 된다.

rm -f /.autorelabel

SELinux 관련해서 하는 작업인 것 같은데 정확하게 뭘 하는건진 모르겠지만 하라니까하자.

이후에 exit 명령을 두번 입력해서 쉘을 나오면 자동으로 부팅이 된다. 부팅 후에는 변경한 패스워드로 로그인이 될 것이다.

참조 – Red Hat Customer Portal

CentOS 7.1 최소 설치 후 SSH 포트 번호 변경 방법. 방화벽 포트 열기

CentOS 7.1을 최소 설치 후, SSH 포트를 변경하는 방법을 설명한다. CentOS 7.1에서 바뀐 명령도 있는 것 같고, 최소로 설치하면 설치가 안된 툴들이 있어서 그런지 우분투에서 쓰던 여러 명령들이 작동하지 않는다. 애초에 우분투와 다른 명령들도 많고…

IP 주소 고정

CentOS 설치 과정에서 네트워크 설정으로 들어가서 IP 주소를 고정으로 할당 받도록 하면 일이 많이 편해진다. 설치 과정에서 설정하지 않았으면, 아래 파일을 편집 후 네트워크를 재시작해야 한다.

ifconfig 로 현재 IP 주소를 알아보려고 하면 command not found. 이럴때는 ifconfig 대신 ip 명령을 사용하면 된다.

ifconfig 커맨드를 쓰려면 net-tools 팩키지를 설치하면 된다.

SSH 포트 번호 변경

우분투와 다름없이 아래 명령으로 sshd_config 파일을 열어서 Port 부분의 주석을 해제하고 원하는 포트 번호를 써주고 파일을 저장한다.

로 되어 있는 걸

으로 고치고 저장한다.

그리고, SSH데몬 재기동

테라텀으로 서버 IP 주소에 바꾼 포트 번호로 접속을 해 봐도 접속이 안될 것이다. SSH 포트가 제대로 바뀌어 있나 확인 해 보자.

열려 있는 포트 중에 위에서 바꾼 새로운 SSH 포트 번호인 1022가 나오지 않는다.

이유는 CentOS 에 있는 SELinux가 SSH 포트를 기본 SSH 포트인 22번으로 고정하고 있기 때문이다. SELinux 의 SSH 포트 정의에 1022 번을 추가하기 위해서는 semanage 명령이 필요하다. 하지만, semanage 명령을 쳐보면 command not found. semanage 툴을 설치하자.

먼저 SSH 포트 정의 내용을 확인한다.

ssh_port_t 라는 이름으로 TCP 22번이 쓰여져 있다.

아래 명령으로 ssh_port_t 정의에 TCP 포트 1022번을 추가한다. 시간이 좀 걸린다. 기다리자.

다시 SSH데몬 재기동 후, 포트가 열려 있는지 다시 확인한다.

이번에는 1022번이 열려 있는걸 확인 할 수 있다.
다시 테라텀으로 접속해 보면 여전히 접속이 안될 것이다. 이번엔 방화벽이 문제다.

방화벽 포트 열기

CentOS 에서는 방화벽이 돌아가고 있고, 기본 SSH 포트인 22번 포트는 열려 있지만, SSH 포트를 임의의 포트 번호로 변경을 했을 때는 당연히 그 포트 번호는 방화벽으로 막혀 있는 상태이다.
방화벽에 새로 지정한 SSH 포트 번호를 추가해야 한다.

CentOS 7 에서는 기본 방화벽인 iptables 대신 firewall 을 사용한다.

현재 방화벽 상태는 아래 명령으로 확인한다.

명령 실행 결과

services 에 ssh 는 포트 22번이기 때문에, ports 에 TCP 1022번 포트를 추가해 줘야한다.

아래 명령을 실행해서 1022번 포트를 추가해 주고, 방화벽을 리로드 한다. 그리고, 확인.

ports 에 1022/tcp 라고 되어 있으면 포트 번호가 제대로 추가된 것이다.

이제 테라텀으로 접속하면 잘 접속 될 것이다.