SSH를 통해 Linux 상에서는 편리하게 원격 접속을 할 수 있다.

SSH는 Secure Shell의 줄임말로 원격 호스트에 접속하기 위해 사용되는 보안 프로토콜을 말한다. SSH는 다른 원격 접속 프로토콜보다 안전하다는 장점이 있는데 암호화된 방식으로 접근하기 때문이다.

SSH 접근은 기본적으로 22번 포트를 사용하고 Root 접근이 가능하다. (Centos 9 stream을 사용해보니 9은 Root 접근을 기본적으로 차단하는 것 같다)

따라서 기본 포트를 사용하는 것과 Root 접근을 허용하면 보안에 취약하니 변경해주도록 하자.

우선 Root접근을 막으면 user 계정으로 접근해야하니 변경전에 user 계정의 password를 확인해두고 접속을 확인한 후 아래 내용을 따라가자.

$ vi /etc/ssh/sshd_config

#Port 22 → Port <사용하고자 하는 포트번호>

#PermitRootLogin yes → PermitRootLogin no

두줄을 #을 풀고 위처럼 바꾸자.

바꾸고 난 뒤에 sshd 서비스를 재시작 하자.

$ systemctl restart sshd

주의해야할 점은 방화벽을 사용중이라면 새로 추가한 포트를 방화벽에서 접속가능한 포트로 열어줘야 한다.

$ systemctl status firewalld

방화벽 가동 여부 확인 후

$ firewall-cmd --list-ports

사용하고자 하는 포트가 열려있는지 확인한다.

열려있지 않다면

$ firewall-cmd --permanent --zone=public --add-port=[port number]/tcp

$ firewall-cmd --reload

포트를 추가하고 재시작을 한다.

$ firewall-cmd --list-ports

실제 포트가 열렸는지 확인한다.

이제 실제로 SSH 접속이 Root로 그리고 기본 포트로 접속이 안되는지 그리고 바뀐 포트로 접속이 되는지 확인해보자.

잘 설정하였다면 Root 접속이 불가한 것을 알 수 있다. 포트도 기본 포트로 접근 시 접근이 거절되는 것을 볼 수 있다.

'개발 > Linux' 카테고리의 다른 글

[Centos9] YUM 저장소 구축  (2) 2023.01.06
[Centos9] NTP 시간 동기화  (0) 2023.01.06
[Centos7] local YUM 저장소 구축 및 원격 접속  (0) 2023.01.05

https://sungyun7295.tistory.com/124

 

[Centos7] local YUM 저장소 구축 및 원격 접속

네트워크시스템이 폐쇄망으로 구성되어 시스템을 새로 구축하거나 업그레이드를 해야할 때 혹은 특정 패키지가 필요할때 폐쇄망에서는 작업하기가 까다롭습니다. rpm을 다운받아서 usb를 통해

sungyun7295.tistory.com

일전에 Centos7 YUM 저장소를 구축하는 포스팅을 하였다. 

 

Centos stream 9도 동일하게 YUM 저장소를 구축하고자 작업을 하였다. 


※ 저장소 추가와 관련해서

Centos stream 9을 설치하고 /etc/yum.repo.d 에 들어가보면 두개의 저장소뿐 epel 등의 저장소는 없다. 

그럼 많은 Package들이 제외되기 때문에 추가로 다운로드 받아준다.

$ dnf config-manager --set-enabled crb
$ dnf install epel-release epel-next-release

$ dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm

저장소가 추가된 것을 확인하고 --downloadonly를 사용해 저장소에 넣어주고 혹시 이미 createrepo로 저장소를 만들었다면 다음 명령어로 저장소를 업데이트해주자. 

$ yum upgrade --downloadonly --downloaddir=<저장소 path>

$ createrepo --update <저장소 path>

 

- EPEL은 Extra Packages for Enterprise Linux의 약자로 RHEL/Centos에 포함되지 않은 여러 패키지를 설치할 수 있는 커뮤니티 기반의 저장소

- REMI는 LAMP (Linux, Apache, MySQL, PHP) 관련 최신버전을 포함한 저장소


 

Centos7가 대부분 동일한 방법으로 작업하지만 조금 달랐던 부분들을 소개한다. 

 

Centos7 구축 방법을 참고해 잘 따라하면 문제없이 로컬에서 WEB에 IP를 치면 아래화면을 얻을 수 있다. 

 

※그런데 /repo 경로로 들어가지지 않는다면 저장소에 대한 접근 권한에 문제가 있거나 httpd.conf의 설정이 잘못된것이니 한번더 확인해보자

 

여기까지 잘 따라왔으면 아마도 다른 client에서 web으로 접속을 시도해보면 접근금지 화면이 출력될 것이다.

 

Centos7 Apache 버전과 달리 9의 Apache 버전은 IPV6를 우선적으로 지원해주는? 듯 하였다. 

 

apache http를 가동하고 보니 

 

$ netstat -nao | grep LISTEN 

 

수행하면 http에서 사용하는 포트의 tcp가 tcp6로 되어 있는것을 볼 수 있었다. 

 

이를 수정하기 위해서는 httpd.conf에서 

 

LISTEN 80 을 

LISTEN 0.0.0.0:80으로 변경하자

 

변경 후 

$ systemctl restart httpd

 실행 후 

 

$ netstat -nao | grep LISTEN 

 

tcp6가 다시 tcp로 변경된 것을 확인할 수 있다.

 

이렇게 하면 이제 원격으로 저장소가 설치된 서버로 접속이 가능하다.

 

 

 

'개발 > Linux' 카테고리의 다른 글

SSH 설정  (0) 2023.01.11
[Centos9] NTP 시간 동기화  (0) 2023.01.06
[Centos7] local YUM 저장소 구축 및 원격 접속  (0) 2023.01.05

서버의 NTP 시간을 동기화하기 위해 Centos7에서는 rdate 명령어와 crontab을 통해 스케쥴링을 하여 주기적인 시간동기화를 해주었다. 

 

그런데 이번에 Centos Stream 9을 새롭게 다루고 있는데 시간 동기화를 위해 rdate 명령을 사용하려고 하니 없다고 한다. 

설치불가...

조금 찾아보니 Centos 8 버전 이상부터는 chronyd를 사용한다고 한다. 

 

Chrony는 Network Time Protocol (NTP) 서버로부터 시스템 시간을 동기화하는 기능을 지원한다. 

 

사용방법은 매우간단하였다. 

 

우선, 설치가 되어 있지 않다면 설치부터 하자. 

 

$ yum install chrony

 

설치 후 서비스를 시작한다. 

 

$ systemctl enable chronyd

$ systemctl start chronyd

 

enable을 통해 부팅시에도 자동 서비스를 구동한다.

 

$ vi /etc/chrony.conf

 

기존의 서버 정보 (디폴터 설정)을 #처리하고 NTP서버를 추가한다. 

 

server <NTP SERVER IP OR DOMAIN> iburst

 

변경 후 

$ systemctl restart chronyd 

 

$ timedatectl 

명령을 통해 Local time이 제대로 바뀌어 있는지 확인하자.

'개발 > Linux' 카테고리의 다른 글

SSH 설정  (0) 2023.01.11
[Centos9] YUM 저장소 구축  (2) 2023.01.06
[Centos7] local YUM 저장소 구축 및 원격 접속  (0) 2023.01.05

네트워크시스템이 폐쇄망으로 구성되어 시스템을 새로 구축하거나 업그레이드를 해야할 때 혹은 특정 패키지가 필요할때 폐쇄망에서는 작업하기가 까다롭습니다. 

rpm을 다운받아서 usb를 통해 넣거나 (의존성 지옥에 빠질지도...) 

망분리를 해서 업데이트 후 다시 연결하거나 등 귀찮은 작업들이 필요하죠. 

 

YUM 명령을 사용하면 필요한 rpm과 의존된 rpm들을 모두 다운받아주는데 이 기능을 사용하기 위해 로컬 환경에 YUM 저장소를 설치하고자 하였습니다. 

 

여기 정리한 내용은 제가 사용한 환경에서 실제로 사용하기 위해 구축하였고 추후 또 만들어야할 경우 참고하기 위해 정리합니다. 

 

우선, 아무 설정을 하지 않고 외부 네트워크에 연결되어 있지 않은 상태에서 

$ yum repolist 

를 실행해보면 에러가 발생합니다. 

 

mirror ~~ 찾을 수 없다고 합니다. 당연하죠. 네트워크가 연결이 되어 있지 않으니 말이죠. 

이것을 우리가 로컬에 설치한 저장소를 바라보게 만들면 끝입니다. 

자, 하나씩 해봅시다. 

 

1. 로컬 저장소 만들기

우선, 로컬에 저장소를 설치해야 합니다. 

 

http://isoredirect.centos.org/centos/7/isos/x86_64/

 

CentOS Mirrors List

 

isoredirect.centos.org

위 경로로 들어가서 최신 Centos7파일 중에 Everything-2009.iso 파일을 받아줍니다.

용량이 9.5G 정도이니 조금 시간이 걸릴겁니다. 

Everything을 받아야 모든 rpm들이 들어있습니다. 

 

받은 iso파일을 Centos7 OS가 설치된 PC로 옮기고 복사를 위해 마운트를 합니다. 

저는 /root/tmp/mnt 경로로 디렉토리를 만들고 해당 디렉토리에 마운트 하였습니다. 경로는 지정하시면 됩니다. 

 

$ mount -o loop <Centos7-iso 파일 경로> <마운트할 디렉토리>

ex 

$ mount -o loop /home/Centos7-x86_64-Everything-1708.iso /root/tmp/mnt

 

마운트에 성공하면 Packages 폴더를 확인할 수 있습니다. Packages 폴더안에 rpm 정보들이 있습니다. 

이 rpm들을 저장소로 사용할 경로로 복사해줍니다. 

$ cp -rf <마운트된 경로> <저장소 경로>

 

복사는 시간이 조금 걸립니다. 완료되면 마운트를 해제하고 이 PC를 외부 네트워크와 연결해줍니다. 

$ umount <마운트된 경로>

 

이때, 외부 네트워크와 연결이 필요한 이유는 다운로드받은 패키지들을 업데이트를 하기 위해서 입니다. 

우선, 업데이트를 하고자 한다면 저장소가 설치된 OS도 가장 최신 버전인게 좋겠죠?

 

네트워크 연결 후 복사한 저장소 경로로 아래 명령어를 수행합니다. 

$ yum update -y --downloadonly --downloaddir=<path>

 

update를 수행하며 rpm들을 최신 파일로 다운로드 받습니다. 

 

자 그럼 이제 로컬 저장소를 생성합니다. 

 

$ createrepo <저장소 경로> 

 

이러면 로컬 저장소는 준비끝입니다. 

 

2. 로컬 저장소 접근 

$ cd /etc/yum.repo.d

경로로 들어가면 Base, epel 등 여러 repo들이 설정되어 있습니다. 우린 네트워크가 차단된 환경이므로 사용이 불가하니 모두 삭제하거나 backup폴더를 만들어서 옮겨줍니다. 

$ mkdir backup 

$ mv *.repo /backup

 

이후 vi 편집기를 열어서 repo에 대한 지정을 합니다. 

$ vi <reponame>.repo

 

[yum7-repo] #repo 호출시 노출되는 name
name=Local Repository
baseurl=file:///home/repo  # 저장소 경로
gpgcheck=0 
enabled=1 #저장소 활성화

 

$ yum clean all 

$ yum repolist

호출하면 지정한 저장소가 보이는지 확인할 수 있다. 

 

$ yum install telnet 

과 같은 명령을 통해 실제 설치가 되는지 확인하자.

 

3. 원격 접속

로컬 저장소에 접속은 가능하나 구축된 폐쇄망안에서 다른 서버를 통해 접속이 가능하려면 추가 설정이 필요하다. 

여기서는 httpd를 사용하고자 한다. 

 

$ vi /etc/httpd/conf/httpd.conf

접속해서 아래에 해당하는 부분만 수정한다. 

 

 

- DocumentRoot 안의 경로는 저장소의 경로이다. 

 

http로 접속할 때 package에 대한 접근이 가능하도록 alias를 지정한다. 

$ vi /etc/httpd/conf.d/repo.conf

$ systemctl start httpd

$ systemctl enable httpd

httpd 서비스를 시작한다. 

 

처음에 접속을 해보면 위와 같이 apache 서비스가 가동중인것을 확인할 수 있다. 

우리는 /repo로 alias를 하였기 때문에 IP 뒤에 /repo를 붙여서 호출을 하면 repo 경로에 접근할 수 있다. 

 

 

이제 로컬에서 설정한 repo 파일안에 baseurl은 

http://<ip-address> 로 변경하고 

동일한 방식으로 client단의 repo도 변경 후 yum 명령어 사용이 가능한지 확인해보자.

'개발 > Linux' 카테고리의 다른 글

SSH 설정  (0) 2023.01.11
[Centos9] YUM 저장소 구축  (2) 2023.01.06
[Centos9] NTP 시간 동기화  (0) 2023.01.06

+ Recent posts