[Linux] Rocky Linux 설치 후 초기 설정하기

1. 네트워크 설정

  • 설치 때 잡아주었다면 안 해도 됩니다.

1-1. 통신확인

$ ping google.com

1-2. network manager cli로 설정

$ nmcli connection
NAME    UUID                                  TYPE      DEVICE
enp7s0                                        ethernet  --

$ nmcli connection up enp7s0
$ nmcli connection reload
NAME    UUID                                  TYPE      DEVICE
enp7s0                                        ethernet  enp7s0

1-3. 통신 확인

$ ping google.com
PING google.com () 56(84) bytes of data.
64 bytes from : icmp_seq=1 ttl=117 time=36.4 ms

2. 업데이트

최신 보안 업데이트 등을 수행합니다.

$ yum update -y

3. ssh 설정

22번 그대로 사용하면 너무 위험하니 바꾸어 줍시다.

$ sudo vi /etc/ssh/sshd_config
Port 22 -> 원하는 값으로 변경

포트 열어주기

# semanage 사용에 필요한 패키지 확인
$ yum provides /usr/sbin/semanage
마지막 메타자료 만료확인 1 day, 12:46:18 이전인: 2021년 12월 12일 () 오후 01시 39분 45초.
policycoreutils-python-utils-2.9-16.el8.noarch : SELinux policy core python
                                               : utilities
리포지토리      : @System
일치하는 항목 :
파일 이름 : /usr/sbin/semanage

$ sudo yum install policycoreutils-python-utils
$ semanage -h
usage: semanage [-h]                {import,export,login,user,port,ibpkey,ibendport,interface,module,node,fcontext,boolean,permissive,dontaudit}
                ...

semanage is used to configure certain elements of SELinux policy with-out
requiring modification to or recompilation from policy source.

$ sudo semanage port -a -t ssh_port_t -p tcp 설정한PORT
$ netstat -tnlp
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:원하는PORT        0.0.0.0:*               LISTEN      -
tcp6       0      0 :::원하는PORT             :::*                    LISTEN      -

# firewalld, sshd 재기동
$ systemctl restart sshd
$ systemctl restart firewalld

원격 접속 테스트

# 다른 PC
$ ssh user@host -p 원하는PORT
cherrue's password:
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Tue Dec 14 02:25:48 2021
[cherrue@localhost ~]$

만약 원격지에서 붙는데 실패했다면 sshd, firewalld, selinux를 하나씩 재기동 해보고, 설정값이 정상 반영되었는지 확인합니다.

4. fail2ban (ssh 접속 실패 시 ban 해주는 패키지) 설치

마지막으로 ssh로 여러 번 접속 시도하는 ip를 차단하는 fail2ban을 설치합니다. 저는 필수라고 생각합니다.

# epel-release repo 추가
$ sudo yum install epel-release -y
# 설치
$ sudo yum install fail2ban
# 기동
$ sudo systemctl enable fail2ban
$ sudo systemctl start fail2ban

fail2ban 설정변경

# 로컬 설정 파일 생성
$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# ignoreip = 127.0.0.1/8
bantime = 10m
findtime = 10m
maxretry = 5
[sshd]
enabled = true
port = 수정한 PORT

# 수정했으면 재기동
$ sudo systemctl restart fail2ban
  • ignoreip : 정책을 안 먹일 ip 지정 가능. 기본은 Localhost만 봐준다
  • bantime : ban 먹일 시간 지정. 기본은 10분
  • findtime / maxretry : findtime 동안 maxretry만큼 시도하면 밴한다. 기본값은 10분에 5회
  • sshd 밑에 port를 적어주어야 한다.

추가적으로 action 설정을 통해 메일을 보낼 수도 있다.

fail2ban 실행 결과 확인

[cherrue@localhost ~]$ sudo fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed:	0
|  |- Total failed:	0
|  `- Journal matches:	_SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned:	0
   |- Total banned:	0
   `- Banned IP list:
[cherrue@localhost ~]$ sudo fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed:	1
|  |- Total failed:	1
|  `- Journal matches:	_SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned:	0
   |- Total banned:	0
   `- Banned IP list:

이렇게 기초 설정이 완료되었습니다.

언어와 timezone은 설치 때 설정이 완료되었습니다.

오히려 한글이라 불편할 때는 local이나 LANG 환경변수를 바꾸면 되겠습니다.

앞으로 무언가를 설치하는 글을 쓰게 된다면 이 리눅스를 이용할 생각입니다. 기분이 좋네요!

카테고리: ,

업데이트:

댓글남기기