[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 환경변수를 바꾸면 되겠습니다.
앞으로 무언가를 설치하는 글을 쓰게 된다면 이 리눅스를 이용할 생각입니다. 기분이 좋네요!
댓글남기기