$ vi /etc/ssh/sshd_config ## config 파일 열기
## sshd_config ##
....
PasswordAuthentication yes ## 이 부분을 yes로 설정
....
$ systemctl restart sshd ## ssh daemon 재실행
위 설정을 진행하게 되면 "User/Password" 으로 접근할 수 있게 됩니다.
리눅스 사용자 추가
$ useradd user1 ## user1이라는 사용자 추가
$ passwd user1 ## user1이라는 사용자의 패스워드 설정
New password : ## 사용할 패스워드 입력
Reteype new password : ## 재입력
$ cat /etc/shadow | grep user1 ## 정상적으로 생성되었고, 패스워드 설정되었는지 확인
사용자 sudo(관리자) 권한 추가
$ visudo ## sudoers 파일 열기
user1 ALL=(ALL) ALL ## user1이라는 계정에 관리자 권한 추가
# sudoers.d 디렉토리에 존재하는 파일 수정이 가능하지만, 권장하지 않음
cd /etc/sudoers.d
Host(192.168.45.55)에서 VM(192.168.137.78)에 22번 포트(SSH)를 접근을 못하고 있다.
이 경우 VM에 정상 통신이 가능한지 혹은 방화벽에 막히는지 확인이 필요하다.
우선 VM에 Ping을 날렸을 때 정상적으로 응답하는걸로 봐서는 라우팅(통신) 문제는 아닌걸로 확인된다.
그렇다면 telnet 명령어를 통해 22번 포트에 대해 요청을 진행해본다.
위에 ssh 명령어와 동일하다고 보면되지만 일단 진행해보면, 연결 안되는걸 볼 수 있다.
이 경우에는 방화벽이나 서비스 문제를 확인해봐야 한다.
VM에서 아래 명령어를 사용해, 서버에서 리스닝중인 tcp 포트에 대해서 확인한다.
netstat -nlp | grep tcp
명령어 결과를 보면, ssh 통신을 할 수 있게 해주는 22번 포트에 대한 서비스가 없는걸 볼 수 있다.
systemctl start sshd ## 서비스 실행
systemctl enable sshd ## 서비스 등록
systemctl status sshd ## 서비스 정상 확인
netstat -nlp | grep tcp ## Tcp Listen 확인
ssh 데몬을 띄워서 22번 포트에 대해서 통신할 수 있게 해준다.
서비스 실행 후, Host 서버에서 ssh 명령어로 접속하면 정상접근 할 수 있는걸 볼 수 있다.
리눅스 유저 생성 및 권한은 아래 포스팅 참고
dnf update -y ## 패키지 업데이트
dnf install nginx -y ## nginx 설치
systemctl enable nginx ## nginx 서비스 등록(부팅 시, 자동 실행 )
systemctl start nginx ## nginx 서비스 실행
systemctl status nginx ## 상태 확인
이제 서비스를 할 수 있게, Nginx 설치하여 접속해보도록 하겠다.
위 명령어를 차례대로 진행하여 nginx 서비스를 등록 및 실행시킨다.
정상적으로 설치 후, 서비스도 정상이라면 위에처럼 active 상태를 볼 수 있다.
하지만 Host서버 > 웹서버(VM)로 접근이 불가능한데, 아래를 참고하여 어떤 부분이 막힌지 확인해준다. ( os 마다 바로 접근할 수 있을 수도 있음 )
# VM에서 확인할 부분
방화벽(인바운드) 확인 / 서비스 정상 동작(netstat)
# Host에서 확인할 부분
라우팅 정상 확인 / 포트 확인 / 방화벽(아웃바운드)
확인을 해보니, 기본 이미지에 firewalld라는 os 방화벽이 있어 접속이 안된걸 볼 수 있다.
" systemctl stop firewalld " 명령어를 통해 os 방화벽을 내려 통신을 할 수 있도록 한다.
이 외에 iptables, ufw 등 다양한 os 방화벽이 있으니, 각자 서버에 맞게 올라온 방화벽 확인하고 수정을 해준다.
방화벽이 내려간걸 확인 후, host서버에서 웹서버에 들어가보면 fedora의 nginx 디폴트 페이지를 볼 수 있다.
이후에는 gitlab 서버를 생성 및 구축을 하여 관리를 할 수 있는 환경을 만들도록 하겠다.