2021-04-06

[오늘은 공부중] CentOS 공유기 설정하기

홈 서버를 구성하는데 있어서 사람들이 어려움을 겪는 것 중 하나가 공유기 설정이다.
공유기 설정은 큰 어려움이 없지만, 무엇을 어떻게 설정해야 하는지 모르기 때문에 어려워한다.
공유기 설정하는 법을 간단하게 설명해보려 한다.

먼저 공유기 설정에 접속한다.
설정화면은 공유기 회사마다 다르기 때문에 모양은 다르지만, 기능은 거의 비슷하다.


처음 보는 것들이 많을텐데, 이 중에서 '포트포워드'라는 글자를 누른다.


위와 같은 화면이 나오면 서버에 할당된 IP와 포트를 지정해주면 된다.
서버 특성상 공유기 전원이 꺼졌다가, 다시 켜져도 해당 IP를 할당받을 수 있도록, 고정 IP를 지정해줘야 한다.

[오늘은 공부중] CentOS 서버에 PHP 설치하기

PHP는 웹 서비스를 제공하는 서버에는 반드시 설치해야 하는 필수 언어로 자리잡았다.
하지만 CentOS에는 PHP가 포함돼 있지 않기 때문에 별도로 설치를 해줘야 한다.
단순하게

yum install php

로 설치를 하면 좋겠지만, yum 레포지터리에 있는 php는 버전이 5로 매우 낮다.
이는 레드햇의 정책과 관련이 있는데... 음...
버전이 낮으면 오히려 보안 정책이 뒤쳐지는 것 아닌가 싶은 생각이 든다.


2021년 4월 6일 기준으로 php는 8까지 나와있다.
5로도 php를 구현하는 데에는 큰 지장이 없지만, 그래도 최신 버전을 이용하는게 장기적으로는 낫다.
일반적인 설치방법으로는 php 최신버전을 설치할 수 없기 때문에 remi 레포지터리를 이용해야 한다.

yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

위와 같이 입력하면 레포지터리가 설치된다.
간혹 설치파일이 없다고 뜨는 경우가 있는데 이럴 경우 주소 처음 부분이 http로 되어 있는지 확인하자.
http에는 설치 파일이 없으며, 반드시 https를 입력해야만 다운로드 및 설치가 가능하다.


설치에 필요한 epel-release와 yum-utils도 설치를 하자.

yum install yum-utils

yum-utils는 yum의 설치 환경을 설정하는 도구이다.
우리는 yum-config-manager를 사용하기 위해 설치를 한다.


설치가 끝났다면 현재 yum에 올라가 있는 php 5 버전을 비활성화 시키기 위해 아래와 같이 입력한다.

yum-config-manager --disable remi-php54

이후 php 8 버전을 사용가능하도록 yum-config-manger를 설정한다.

yum-config-manager --enable remi-php80

차후 php 9버전이 나오면 80이 아니라 90이 된다.
9.1이면 91, 9.2면 92


설치가 끝났다면 php를 설치하자.

yum install php php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json php-pdo php-pecl-apcu php-pecl-apcu-devel

을 입력해 설치한다.
php는 프로그램 자체를 말하는 것이고, php-fpm은 nginx에서 동적인 홈페이지와 빠른 실행을 위해 필요한 도구이다.


설치가 끝나면

php -v

를 입력해 제대로 설치가 됐는지 확인하자.


php는 설치 후 설정 없이도 구동하지만, php-fpm은 별도의 프로그램이기 때문에 실행 명령이 필요하다.

systemctl start php-fpm

을 입력해 프로그램을 실행하자.

systemctl status php-fpm

으로 정상 구동이 확인된다면

systemctl enable php-fpm

으로 서버 부팅시마다 자동으로 작동되도록 설정해주자.

[오늘은 공부중] CentOS 서버에서 계정 생성과 root 계정의 외부 접속 차단

서버는 보안이 생명이다.
다양한 정보가 포함돼 있기 때문에 서버가 해킹이라도 당하면 피해는 엄청나기 때문이다.
내 서버에 가져갈만한 정보가 있겠냐만은 그래도 해킹을 당하면 찜찜한 것은 어쩔 수가 없기 때문에 보안이 생명이다.

리눅스는 공통적으로 root라는 계정이 있는데, 모든 권한을 가지고 있는 계정이다. 최초에 만들어지는 계정이다보니 이를 통한 해킹 시도도 빈번하게 발생한다.

나 역시 서버를 접속하려고 보니 90여 번의 접속 시도가 있던 것을 확인했다. 별것도 없는 서버에 꾸준히 접속하려 한 것을 보니 무작정 번호를 대입해 접속시도를 하는 '봇(bot)'일 가능성이 높다. 하지만 저런 봇도 비밀번호를 알게 된다면 어떻게 사용될 지 모르기 때문에 가능한 한 root는 차단을 해놓는 것이 좋다.


root의 외부 접속을 차단하기 전에 대신 접속할 수 있는 계정을 하나 만들어놓아야 한다.
만드는 방법은 간단하다.

useradd -m 계정명

을 치면 계정 하나가 생성된다.
뒤쪽에 -m 인자는 해당 계정의 폴더를 하나 만든다는 것이다.

조금 더 안전한 사용을 위해 비밀번호도 함께 설정하는 것이 좋다.
비밀번호 설정하는 방법은

passwd 계정명

이다.


2021-04-05

[오늘은 생각중] 돌아보는 중

예전에 한 선배가 "기자를 하고 싶냐"라고 묻자, 나는 "에이.. 제가요?"라고 답한 적이 있다.
겉으로 비춰지는 '기자'의 모습은 전문적이고, 날카로운 분석력을 지닌 것처럼 보였기에 내가 할 수 없는 직업이라고 여겼던 것 같다.
그렇게 보였기에 나는 그들을 조금이라도 닮고 싶어서 노력을 했었고, 그렇게 노력하다보니 하고 싶은게 생겼고, 그렇게 기자가 됐었다.


기자는 어찌보면 정말 비효율적인 직업이다. 쓸지 안쓸지 모르는 정보와 워딩을 꾸준히 수집하고, 혹시나 대형사건사고가 터질까 잠도 제대로 자지 못한다. 월급으로나마 보상을 받으면 그래도 나을텐데, 그렇지 못한 경우가 더 많다. 신경써서 취재한게 전파를 타면 그 뿌듯함으로 자위하며 아등바등 기자의 끈을 놓지 않았던 건데, 직장을 그만두니 그것도 덧없더라. 

여러가지 직업이 있는데 왜 '기자'를 고집했는지 이제서야 돌아보는 중이다.
동기들과 비교해 모아놓은 돈은 적고, 이룬 것은 거의 없다. 취준생일 때는 몰랐었던 언론의 불편한 진실을 내가 겪고나니 "과연 어디에서나 좋은 기사를 쓸 수 있을까?"라는 의문도 생겼다.


앞으로 무엇을 해야 할지 매일 매일 고민 중이다.
수많은 갈림길에 선 내가 이제 하나의 길을 선택하면 다시 되돌아오기가 어렵다는 것을 몸으로, 마음으로 체감하고 있다.

어떤 선택을 하던 좋은 선택을 할 수 있게 됐으면 좋겠다.

[오늘은 공부중] mariadb 설치하기

일전에 말했던 yum으로도 mariadb는 설치할 수 있지만, 버전이 5.5로 매우 낮다.
2021년 4월 5일 기준으로 나온 mariadb의 버전은 10.5.9이다.
그동안 보안 업데이트나 여러 기술들이 추가됐기 때문에 최신 버전으로의 설치는 중요하다.
다만, 호환성 이슈가 있을 수 있으니 유의해야 한다.

앞서 nginx를 설치했던 것처럼 vi로 repo 파일을 작성해야 한다.
cd /
cd etc
cd yum.repos.d

를 눌러 /etc/yum.repos.d/ 로 이동한다.


cd /etc/yum.repos.d/ 로 한번에 이동할 수도 있지만, 간혹 스펠링이 틀려 이동하지 못하면 일일이 체크해야 하기 때문에 번거롭더라도 이렇게 이동하고 있다.

vi mariadb.repo

를 눌러 설치 환경설정을 한다.
[i]를 눌러 입력모드로 전환한 뒤, 아래와 같이 입력한다.

[mariadb]
name=mariadb
baseurl = http://yum.mariadb.org/10.5/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

이 입력문은 하단에 있는 리포지터리 설정 링크에서 확인할 수 있다.
빨간색 글씨로 표기한 곳이 mariaDB의 버전이다.
향후 업데이트가 된다면 저 부분의 숫자만 수정해주면 된다.


[:wq]를 입력해 vi 에디터를 빠져나온 뒤

yum install MariaDB-server galera-4 MariaDB-client MariaDB-shared MariaDB-backup MariaDB-common

을 입력해 설치를 한다.
위에 적힌 것을 모두 설치하면 어지간한 mariadb 툴은 모두 설치가 된다.


mariadb는 실행을 한 뒤, DB에 접속하면 버전을 확인할 수 있다.

systemctl start mariadb
mysql

을 입력하면 상단에 mariadb 버전이 10.5.9인 것을 확인할 수 있다.


원래대로라면 mysql -u root -p 를 입력한 뒤 비밀번호를 입력해야 DB에 접근할 수 있지만, 현재는 root 계정으로 접속해 있기 때문에 이러한 절차가 생략됐다.

exit

를 눌러 바깥으로 빠져나온 뒤

systemctl enable mariadb

를 입력해 부팅 때마다 실행이 되도록 설정을 해주자.

mysql의 root 비밀번회를 설정해주자.

mysql_secure_installation

을 입력하면 mysql 암호 설정이 진행된다.

현재 비번을 묻는 질문에는 아무런 암호가 설정돼 있지 않기 때문에 엔터를 치면 된다.
두 번째도 엔터를 치면 기본 값으로 설정이 된다.
세 번째 질문에서 비밀번호를 설정하는 질문이 나온다. y를 눌러 비밀번호를 설정해주자.
비밀번호를 설정한 후에는 익명 계정을 삭제할 지 물어본다. 잘 모르겠다면 엔터를 치면 된다.
원격에서 root계정으로 데이터베이스에 접속할 것인지 묻는다. 보안을 높이고 싶다면 y를 치고, 아니라면 엔터를 누르면 된다.
테스트 데이터베이스를 삭제할 것인지 물어본다. 이것도 그냥 엔터를 누르면 된다.



만약 되지 않는다면

mysqladmin -uroot -p현재패스워드 password '새로운패스워드'

를 입력해 root의 비밀번호를 설정하자.

[오늘은 공부중] nginx 설치하기

SSH를 다룰 줄 안다면 CentOS 서버에 Nginx를 설치하는 것은 매우 쉬운 일이다.
CentOS에서는 YUM(Yellowdog Updater Modified)이라는 패키지 관리 프로그램을 사용한다.
YUM이 관리하는 패키지 관리 프로그램에 설치하고자 하는 프로그램이 있다면

yum install 프로그램명

를 입력하면 자동으로 설치가 된다.
중간 중간에 설치할 것인지, 설치하지 않을 것인지를 묻는데
무조건 허용을 하려면 끝에 '-y'를 붙여주면 된다.

yum install 프로그램명 -y

하지만 무조건 넣었다가는 나중에 돌이킬 수 없는 서버 오류가 발생할 수 있으므로 권장하지는 않는다.

[오늘은 공부중] SSH에서 그동안 나온 명령어 지우기

명령어를 입력하다보면 어느 순간부터 위에 나온 명령어들이 굉장히 거슬리는 순간이 온다.
사실 남겨두는게 나중을 위해 좋을 수도 있지만, 이미 프로젝트가 끝났는데 위에 명령어가 있는 것도 어찌보면 정신건강에 해로울 수 있다(?).


복잡한 명령어를 한꺼번에 정리하는 명령어는

clear

이다.
입력하는 순간 창에는 모든 로그가 사라지고, 계정명과 접속한 서버, 현재 위치한 폴더 위치만 나타난다.

다만 [clear] 명령어를 입력하더라도, 마우스 스크롤을 위로 올리면 이전에 출력된 로그들을 다시 확인할 수 있다.



[오늘은 생각중] '기내 만취 루머' 소유, 항공사 사과받더니 더 깡말라졌다…"밥 더 먹어야겠네"

네이버 포털을 보던 중 나온 인터넷 기사의 제목이다. SNS 사진을 복사해, 붙여넣고, 고혹적, 건강미 등의 자극적인 언어를 붙인 뒤, SNS 댓글 몇 개를 인용해 송고 하면 끝. 잔뜩 그래 뭐 소유 일상이 궁금할 수도 있다고 생각한다. 기내 만취 루...