반응형

Linux CentOS 7 : 방화벽 설정 입문

알게된 배경

 리눅스를 사용하는 대부분의 이유는 서버로 사용일 것이다. 그러면 항상 붙는 설정이 포트 설정과 방화벽 설정이다. 그래서 어쩔 수 없이 알아야 한다. 다만, 방화벽이 CentOS 7 으로 넘어와서 이전과 차이점이 있었다. 그래서 이전 버전이라면 추가 검색이 필요하다.


설정 커맨드

# tcp 방식 80포트 개방목록 추가
firewall-cmd --permanent --zone=public --add-port=80/tcp

# tcp 방식 80포트 개방목록 삭제
firewall-cmd --permanent --zone=public --remove-port=80/tcp

# 방화벽 재실행
firewall-cmd --reload


 아직 입문 수준이라 주로 사용하는게 위의 내용이 대부분이다. --이후에 붙는 내용들은 옵션이기 때문에 옵션 규칙만 맞는다면 순서는 상관없다.


주의 사항

 옵션 구분자'-'가 몇개인지 확인해야 한다. 종종 몇몇 블로그에서는 옵션 구분자를 하나로만 적는 경우가 있다. 방화벽에 대해 더 자세한 설명은 공식문서나 정리된 블로그를 참조하자.


참고자료

방화벽 공식 문서(영문)

한글로 일부 정리한 블로그

JAVA커뮤니티 글



반응형
반응형

Linux CentOS 7 : ssh-key remote login (아이디/비밀번호 없이 원격 로그인)

알게된 배경

 ssh-key는 리눅스 외에도 널리 사용되고 있는 git에서도 사용되고 있는 방식으로 먼저 접해보긴 했지만, 리눅스에서의 로그인에도 사용된다는 것을 알게 되었다. 아이디, 패스워드 로그인 방식은 통신과정에서 위의 아이디와 패스워드가 노출될 가능성이 존재한다. 물론 ssh 터미널 자체가 상당한 보안이지만, 더욱 견고하게 만들기 위해 등장하게 되었다.

 통신 내용을 두개의 짝을 가진 키를 이용해서 암호화 하기 때문에 해킹하기 더 어려워진다.


ssh-key 생성

 bash에서 ssh-keygen만 입력 해도 자동으로 현재 사용중인 계정폴더에 .ssh 폴더를 생성하고 그안에 키까 쌍으로 생성이 된다. 물론 생성과정에 private 키 안에다가 비밀번호를 추가로 넣는것도 가능하다.


생성시 입력되는 절차는 키생성 위치(기본 ~/.ssh/), 개인키 비밀번호 생성(그대로 엔터로 넘어갈 경우 없음), 생성한 비밀번호 확인, 절차를 거치면 2개의 키가 쌍으로 생성된다.


옵션을 통해서 key를 생성할때 비트수도 조정할 수 있다.


 생성된 파일 2개중에 뒤에 ".pub"가 붙은 파일은 공개키(public key)라 부르고 다른 하나는 개인키(private key)라 부른다. 공개키는 암호화 할때 사용되고, 개인키는 복호화 할때 사용된다. 개인키 보관에 주의 하도록 하자.


서버에 공유키 넣기

 비교적 높은 보안수준의 ssh-key 덕분에 리눅스에서는 ssh-key로 자동 로그인 하는 기능이 존재한다. 계정 폴더 .ssh/ 폴더에 authorized_keys 파일안에 앞에서 생성한 공유키의 내용을 넣으면 된다. 초기에 넣는 방법은 여러방법이 있으니 바음에 드는 방법을 사용하여 넣자. 여기서는 scp를 이용하여 넣겠다. 파일명이 복수인 만큼 누적해서 생성할 수 있다.

예시)

scp ~/.ssh/id_rsa.pub hg@192.xxx.xxx.xxx:~/.ssh/authorized_keys


 위의 올바르게 경우 192.xxx.xxx.xxx라는 호스트에 hg 계정의 /home/hg/.ssh/authorized_keys로 복사하라는 의미이다. 틀린것이 없다면, 기존 패스워드를 묻고 맞는 패스워드를 입력하면 복사가 진행된다.


로그인 옵션 변경

 높은 수준의 보안을 요구하는 곳에서는 원격 로그인을 할 경우 아이디와 패스워드 입력방식을 아예 막기도 한다. 이러한 경우 로그인 옵션을 변경해 줘야한다. 다만, 주의 할 점은 아이디/비밀번호 로그인을 막을 경우 키를 분실하게 될 경우 로그인할 방법이 없기 때문에 신중히 고려해야 한다.

vi /etc/ssh/sshd_config

아래 항목을 주로 설정하는 방식이고 사실 자신의 입맛이나 정책에 맞게 설정을 하자. 일반적으로는 주석처리 되어 있다. (영어가 조금 되는 사람(?)은 값의 이름만 읽어봐도 대략 어떤 내용인지 짐작이 될 것이다.)

# ssh-key로 자동 로그인
PubkeyAuthentication yes
# ssh-key 자동 로그인 경로 설정
AuthorizedKeyFile  .ssh/authorized_keys
# 아이디 패스워드 로인인 옵션 no로 하면 처은 원격 접속시 비밀번호로 로그인을 할 수 없게 된다.
PasswordAuthentication no
# ssh-key로그인 시도에 대해서 답변 메시지를 보낼지 여부
ChallengeResponseAuthentication no

옵션을 변경하였다면, sshd를 다시 시작하면 적용이 된다.

service sshd reload


이제 다시 접속할때 패스워드를 묻지 않는다면, 성공적으로 설정이 된 것이다.


주의사항

 CentOS 7 한정으로 폴더 권한이 ~/.ssh/는 700, authorized_keys 파일은 600으로 되어야 동작이 된다. 라즈비안의 경우 상관이 없는 것으로 확인 되었다.


참고자료

블로그: 비밀번호 막는 방법(영문)

생활코딩: ssh-key 설정하기

블로그: ssh-key 와 옵션 설명


반응형
반응형

Linux CentOS 7 : 사용자 계정 추가

알게된 배경

 협업 환경에서 리눅스라는 운영체제는 다수의 사용자 환경을 제공하기 때문에 이를 이용해서 작업환경을 만들 수 있다.

 각 명령어의 기본적으로 자세한 사용법을 알고 싶다면, 그냥 명령어만 입력을 하면, 사용방법에 대해서 설명을 해준다.


그룹 추가하기

명령어는 "groupadd"이다. 만약 devel이라는 그룹을 추가한다면, 뒤에 적어주면 된다. 우분투의 경우 명령어가 다르니 주의 하도록 하자.

예시)

groupadd devel


계청 추가하기

 명령어는 "useradd"이다. 만약 앞에서 생성한 devel 그룹에 lemi라는 계정을 추가할 경우 -g 옵션을 사용해서 추가해줘야 한다. 옵션 식별자 바로 뒤의 키워드는 옵션 값이 되므로 이를 주의 해서 입력하자. 그룹명이 먼저이나 계정명이 먼저이나 상관은 없다.

예시)

useradd -g devel lemi


계정 비번생성

 root 계정에서 "passwd lemi"를 입력하면, lemi에 대한 패스워드를 새로 생성하는 것을 확인할 수 있다. 이 명령어의 경우 그냥 입력할 경우 현재 로그온 되어 있는 계정의 패스워드를 재설정하려 하기 때문에 주의가 필요하다.

예시)

passwd lemi

 계정 비번이 활성화 되면, 이제 외부에서도 로그인을 할 수 있게 된다.


참고자료

블로그: 리눅스 계정관련 명령 모음

제타위키: 리눅스 계정 생성

게시판: 사용자 계정 패스워드 변경


반응형
반응형

Linux CentOS 7 : root 계정 직접 로그인 막기

알게된 배경

 ssh 원격을 사용하면서, root 계정으로 직접적으로 로그인이 가능하게 할 경우 비밀번호에 대해서 상당한 취약점이 발생한다는 것을 알게 되었기 때문에 이러한 취약점을 보강하기 위해서 root 계정의 직접 로그인을 막는다.


설정 변경 방법

 설정파일을 변경하고 리부트를 하면 된다.

vi /etc/ssh/sshd_config

이 파일에서 아래의 #PermitRootLogin yes 부분을 찾아서 주석(#)을 해제한 다음에 yes를 no로 바꾸면 된다.

#PermitRootLogin yes

 vi가 익숙하지 않다면, 익숙한 편집기를 사용해도 된다. 

 vi에서는 '/'키를 눌러서 'PermitRootLogin'으로 검색을 하면 쉽게 찾을 수 있다. 찾았으면, 'i'를 눌러서 편집모드로 바꾼뒤 주석해제와 yes를 no로 바꾼뒤 'esc'로 편집모드를 나온다음에 ':wq' 입력하여 저장하고 vi를 닫는다.

 이후 리부트 하면 root 계정으로 바로 로그인이 안되고 다른 계정을 통해서 로그인한뒤에 'su'명령어를 통해서 root 계정으로 전환할 수 있다.

반응형

+ Recent posts