가이드는 아래와 같은 셋팅 정보를 예시로 설명을 진행합니다.
예시에 빨간색 표시한 값들을 선호하는 값으로 바꾸어 진행하셔도 됩니다.
예시)
- 인스턴스 IP : 123.45.67.89
- Ubuntu 유저 계정 : test1234
- 변경할 SSH 포트 : 11122
- 변경할 xRDP 포트 : 11133
Tip. 리눅스 console에서 command 실행 결과는 "접은글"로 숨겨 놓았습니다.
실행 결과에 대한 참고가 필요한 경우 "더보기"를 클릭해서 확인 할 수 있습니다.
Tip. vim 편집 내용은 표로 정리 하였는데, 표 안의 // 주석은 편집해야할 위차나 설명이니
// 까지 함께 copy & paste 하시면 에러 날 수 있으니 잘 필터링 해주세요.
2-3. Ubuntu 20.04 보안 설정
1) fail2ban 설치
// fail2ban 설치
- $ sudo apt install -y fail2ban python3-pip sqlite3 rsyslog
- $ sudo pip3 install pyinotify
// 정책 파일 복사 (필요시 수정)
- $ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
// 서비스 재시작
- $ sudo systemctl enable fail2ban
- $ sudo systemctl restart fail2ban
- $ sudo systemctl status fail2ban
$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
$ sudo systemctl enable fail2ban
Synchronizing state of fail2ban.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable fail2ban
$ sudo systemctl restart fail2ban
$ sudo systemctl status fail2ban
● fail2ban.service - Fail2Ban Service
Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-04-07 23:03:06 KST; 3s ago
Docs: man:fail2ban(1)
Process: 20454 ExecStartPre=/bin/mkdir -p /run/fail2ban (code=exited, status=0/SUCCESS)
Main PID: 20455 (f2b/server)
Tasks: 5 (limit: 1081)
Memory: 11.3M
CGroup: /system.slice/fail2ban.service
└─20455 /usr/bin/python3 /usr/bin/fail2ban-server -xf start
Apr 07 23:03:06 test systemd[1]: Starting Fail2Ban Service...
Apr 07 23:03:06 test systemd[1]: Started Fail2Ban Service.
Apr 07 23:03:07 test fail2ban-server[20455]: Server ready
2) fail2ban 사용법
// 현재 ssh 접속 실패 로그 확인 (아무 결과도 없는게 좋은겁니다.)
- $ sudo cat /var/log/auth.log | grep "Failed password"
$ sudo cat /var/log/auth.log | grep "Failed password"
...(생략)
Apr 7 14:02:27 test sshd[19732]: Failed password for invalid user kostas from 43.154.166.195 port 51524 ssh2
Apr 7 14:02:40 test sshd[20344]: Failed password for invalid user dmitry from 165.227.30.170 port 46544 ssh2
Apr 7 14:03:00 test sshd[20352]: Failed password for invalid user datav from 115.186.58.55 port 46630 ssh2
Apr 7 14:03:09 test sshd[20448]: Failed password for invalid user honza from 51.140.185.84 port 43388 ssh2
Apr 7 14:03:26 test sshd[20467]: Failed password for invalid user ca from 20.205.206.132 port 43160 ssh2
Apr 7 14:04:01 test sshd[20469]: Failed password for root from 92.255.85.237 port 62684 ssh2
// Bans 테이블에서 차단된 IP 조회
- $ sudo sqlite3 /var/lib/fail2ban/fail2ban.sqlite3 "select distinct ip from bips;"
$ sudo sqlite3 /var/lib/fail2ban/fail2ban.sqlite3 "select distinct ip from bips;"
115.186.58.55
164.132.50.191
20.205.206.132
// checkban 명령 alias 추가 (자주 실행해 보기 위해 단축 명령어 설정)
- $ vim ~/.bashrc
// 맨 아래줄 추가 alias checkban='sudo sqlite3 /var/lib/fail2ban/fail2ban.sqlite3 "select distinct ip from bips;"' alias checkauth='sudo cat /var/log/auth.log | grep "Failed password"' |
- $ source ~/.bashrc
- $ checkban
- $ checkauth
$ checkban
115.186.58.55
164.132.50.191
20.205.206.132
$ checkauth
...(생략)
Apr 7 14:02:27 test sshd[19732]: Failed password for invalid user kostas from 43.154.166.195 port 51524 ssh2
Apr 7 14:02:40 test sshd[20344]: Failed password for invalid user dmitry from 165.227.30.170 port 46544 ssh2
Apr 7 14:03:00 test sshd[20352]: Failed password for invalid user datav from 115.186.58.55 port 46630 ssh2
Apr 7 14:03:09 test sshd[20448]: Failed password for invalid user honza from 51.140.185.84 port 43388 ssh2
Apr 7 14:03:26 test sshd[20467]: Failed password for invalid user ca from 20.205.206.132 port 43160 ssh2
Apr 7 14:04:01 test sshd[20469]: Failed password for root from 92.255.85.237 port 62684 ssh2
// fail2ban 로그 마지막 100 라인 확인 (필요시에만 사용. CTRL+C 누르면 종료됨)
- $ sudo tail -100f /var/log/fail2ban.log
// IP 차단 커맨드 설정/제거
- $ sudo fail2ban-client set sshd banip <IP주소>
- $ sudo fail2ban-client set sshd unbanip <IP주소>
$ sudo fail2ban-client set sshd banip 111.111.111.111
1
$ checkban
111.111.111.111
115.186.58.55
164.132.50.191
20.205.206.132
$ sudo fail2ban-client set sshd unbanip 111.111.111.111
1
$ checkban
115.186.58.55
164.132.50.191
20.205.206.132
fail2ban 설정법 출처: https://www.clien.net/service/board/cm_nas/17149125
보안 설정에 더 추가할 내용이 생각나면 편집으로 업데이트 하겠습니다.
NEXT
PS. 본 포스팅이 도움이 되셨다면 소중한 리플로 후기 공유해주세요. 광고 클릭도 큰 도움이 됩니다.
'Guide_Tip_Tech > Oracle_Cloud_Free_Tire' 카테고리의 다른 글
[OCI] Oracle Cloud 인스턴스 응용 : 4-1. 블록 볼륨 활용의 필요성 (0) | 2022.04.12 |
---|---|
[OCI] Oracle Cloud Docker 셋팅 : 3-3. Portainer 설치 및 NPM 연동 (6) | 2022.04.08 |
[OCI] Oracle Cloud Docker 셋팅 : 3-2. Nginx Proxy Manager 설치 및 NPM 연동 (v0.2 수정) (31) | 2022.04.08 |
[OCI] Oracle Cloud Docker 셋팅 : 3-1. docker 설치 및 docker network 설정 (2) | 2022.04.08 |
[OCI] Oracle Cloud 인스턴스 셋팅 : 2-4. Ubuntu 20.04 xRDP 설정 및 원격 데스크탑 연결 (9) | 2022.04.07 |
[OCI] Oracle Cloud 인스턴스 셋팅 : 2-2. Ubuntu 20.04 기본 설정 (새로운 user 계정) (14) | 2022.04.07 |
[OCI] Oracle Cloud 인스턴스 셋팅 : 2-1. Ubuntu 20.04 초기 설정 (기본 ubuntu 계정) (11) | 2022.04.07 |
[OCI] Oracle Cloud 인스턴스 구성 : 1-8. 오라클 클라우드 인스턴스 및 구획 초기화 (3) | 2022.04.06 |
[OCI] Oracle Cloud 인스턴스 구성 : 1-7. 인스턴스 부트 볼륨 백업 및 복구 (1) | 2022.04.06 |
[OCI] Oracle Cloud 인스턴스 구성 : 1-6. 인스턴스 ssh 접속 확인 (0) | 2022.04.06 |