우분투 22.04 에서 IPTABLES 애드온 XTABLES 로 국가별 접속 차단/허용

우분투 서버 22.04 LTS라고 무작위 SSH 접속 시도가 사라지지는 않으니…
새 버전에서도 xtables-addon에 geoip를 사용해서 우리나라 이외에 나라는 전부 막아버리자.

SSH 접속 시도 보기(최근 50건만)

lastb 결과
인스턴스 생성 직후인데도 하루종일 끊임없이 들어온다.

xtables-addons-common 설치

iptables에 geoip 모듈이 들어있는 xtables-addons-common 팩키지를 설치한다.

iptables geoip 모듈 설정

iptables 설정을 백업하고, 편집할 파일을 생성하자.

iptables.geoip 파일을 편집. 첫째줄이 한국(국가코드 KR) 이외에는 다 리젝트. 둘째줄이 SSH가 사용하는 22포트를 허용.

편집한 iptables.geoip 파일을 적용하면 에러가 나온다. 국가별 IP 리스트가 없으니까.

국가별 IP 리스트 작성

https://github.com/elmitash/geoip_krnic2dbip 에서 go로 작성한 ip파일 리스트를 다운로드하고 변환하는 툴을 다운로드 받아 실행권한을 준다.

ARM CPU를 사용하는 경우에는 geoip.sh 안에 EXE_FILE 변수의 파일명을 수정할 것.
준비가 되면 geoip.sh를 실행하자.
geoip.sh에 내용은 KRNIC에서 국가별IP 할당정보를 받아오고, krnic2dbip_linux_* 실행파일이 db-ip.com에서 사용하는 형식으로 변환.
db-ip.com 형식의 CSV 파일을 xt_geoip_build 에서 /usr/share/xt_geoip 디렉토리에 국가코드별로 정리해서 넣어준다.

다시 iptables.geoip 파일을 적용하면 OK.

참조 글
우분투 18.04 에서 iptables 애드온 xtables 로 국가 별로 접속 차단 허용

우분투 서버 22.04 LTS 공개키 방식 SSH 접속이 안됨

오라클 클라우드에서 ARM 서버를 생성해서 최신 우분투 22.04 LTS를 운영체제로 선택했는데, SSH 접속이 안되서 한시간 정도 헤맸다.

오라클 클라우드에서는 서버를 생성할 때 SSH 접속용 공개키를 생성하거나 등록해야만 SSH 접속을 사용할 수 있는데,
기존 오라클 클라우드에서 사용하던 서버에 등록한 공개키를 등록해서 서버를 생성.
서버 기동 완료 후에 SSH 접속을 하면 아래 에러가 발생. (MobaXterm에 표시되는 에러 메시지)

서버 접속조차 불가능하니 로그를 볼 수도 없고, 한참 헤맸다.

결국 기존 서버에서 ssh -i 옵션으로 개인키를 지정하니 접속이 되더라 (왜 되는건지…?)
접속 에러가 기록된 /var/log/auth.log 파일을 보면

이런 에러 내용이 찍혀 있는데, 암호화 알고리즘이 문제인것 같아서 좀 검색해 보니…

OpenSSH 8.8부터 SHA-1 알고리즘으로 작성한 RSA 인증은 무효화 되었다고 한다.
서버 생성할 때 등록했던 예전부터 사용하던 키쌍이 2년 정도 된 오래된것이니 아마 그걸로 작성했던듯.

ssh-keygen 커맨드로 새로 키를 생성해서 사용하면 문제가 없다.
아무 옵션을 지정하지 않으면, 3072bit RSA(SHA256)로 작성 되니 그걸 사용하면 문제 없다.

일단 ed25519가 더 좋은것 같으니… 이걸로 작성해서 사용해야겠다.

참고 사이트
RSA, ED25519 차이(성능 등)
https://naleejang.tistory.com/218
SSH keys
https://wiki.archlinux.org/title/SSH_keys

우분투 서버 22.04 USB 무선랜 어댑터(Realtek 8812AU) 설치

우분투 서버 22.04버전에서 USB 무선랜 어댑터 TP-LINK Archer T4UH로 인터넷 접속하기까지 과정.

기본적으로 Realtek 8812AU 칩셋을 사용하고 있는 USB 무선랜 어댑터는 아래에서 제공하는 드라이버를 인스톨하면 된다.
https://github.com/aircrack-ng/rtl8812au
인스톨시 dkms가 필요하므로 드라이버 인스톨 전에 먼저 인스톨 하자.

netplan 설정 파일을 수정해서 무선랜으로 접속하도록 설정. 고정 IP를 사용할건데, DHCP4를 true로 하면 자동할당IP로 가능하다.

설정 확인. 문제가 있으면 알려준다.

설정 적용.

ifconfig, ping으로 접속 확인하면 된다.

나 같은 경우는 먼저 억세스포인트, 패스워드를 따음표로 감싸지 않아서 아마 문제가 됐던거 같고,
제일 중요한건 무선 공유기에서 암호화 방식을 WPA로 설정했을 경우, 아무런 에러도 없이 접속이 안되는데 여기서 고생했다.

WPA 방식을 지원하는 팩키지를 설치해야한다.

netplan 다시 적용하고 몇초 정도 기다리면 iwconfig에서 접속이 된걸 확인 할 수 있다.

엑스박스 시리즈 코디에서 SMB 사용하기

엑스박스 시리즈에서 코디(kodi)를 설치하면 최신 버전(내 경우 18.9)에서는 SMB를 지원하지 않는다.
윈도우에서 폴더 공유를 하면 SMB 로 공유 되기 때문에 윈도우에서 간단하게 공유해서 쓸때는 SMB를 많이 쓰게 되는데, 너무 불편해서 방법을 찾아봤다.

SMB 활성화 방법

애드온 -> 내 애드온 -> 가상 파일시스템 -> SMB Support(libsmb2) 선택한 상태에서 A 버튼을 누르고 있으면 팝업메뉴가 뜨는데 사용하기를 선택하면 활성화 된다.

코디 smb 활성화 상태
SMB 활성화하기 전에는 없었던 윈도우 네트워크(SMB) 가 추가되어 있다.

별것도 아닌데 이거 찾는데 꽤 고생했다.
SMB 쓰는 사람이 많을텐데 이걸 왜 꺼두는지 모르겠다.

엑스박스 시리즈에서 스크린샷 찍은 후 저장 방법 정리

엑스박스 시리즈에서 스크린샷을 찍은 후에 저장하는 방법에 대한 정리 글.

원드라이브 공유해서 옮기기

공유 및 캡처에서 원드라이브나 트위터로 공유하기가 있는데 캡처한 원본 파일 그대로를 옮기고 싶다면 트위터는 논외니 제외한다.
원드라이브로 공유하는 방법은 스크린샷을 찍은 후, Xbox 버튼을 누르고 공유 및 캡처 탭으로 가서 ‘최근 캡처’로 가서 스크린샷을 선택하거나 ‘마지막 캡처 공유’를 선택, ‘모든 공유 옵션 보기’->’OneDrive’를 선택.하면 되는 줄 알았지만…
윈도우10에 원드라이브 앱에서도, 원드라이브 웹사이트에서도 Xbox Screenshots라는 폴더는 생성되었는데, 정작 스샷 파일이 없다.

원드라이브 - 이 폴더는 비어 있습니다
13분 정도 후에도 여전히 비어 있었다.

이 파일이 잘못된건가 싶어서 엑박에서 다른 스샷도 원드라이브 공유하기를 몇번 선택하니 아래 에러까지 발생…

엑박 스크린샷 공유하기 에러

에러가 나는건 내 환경 문제라고 치더라도, 애초에 원드라이브 공유는 위 설명처럼 일일이 파일을 선택해서 공유하기를 눌러줘야하니 스샷 수십장만 되도 이미 무리…

스마트폰 xbox 앱에서 스마트폰으로 저장하기

엑박에서 스크린샷을 찍으면 어디다 자꾸 업로드가 완료 되었다고 하는데 바로 xbox live에 업로드하는 것이다. 여기에 올라가면 어디에서 볼 수 있냐하면, xbox 앱의 라이브러리에서 볼 수 있다.
앱에서 스크린샷을 선택하면 저장을 할 수 있다. 공유 버튼을 누르면 스마트폰에서 가능한 공유 방법으로 다른 곳으로 공유도 가능.
하지만 이것도 역시 파일 하나하나 눌러서 저장 버튼을 눌러야하고, PC로 옮기기는 또 한번 수고를 들여야한다.

xbox앱 이외에도 gamerdvr.com이라는 사이트에서 자기 게이머 태그를 검색하면 업로드된 스크린샷을 볼 수도 있다.
가끔 반영이 느린 경우가 있어서 안정적이지는 않은듯한데 각자 써 보고 편하면 이방법도 괜찮을듯하다.

엑박에 USB 드라이브 연결해서 옮기기

USB 포트에 USB 메모리나 USB 외장 하드/SSD 드라이브를 연결해서 스샷을 그쪽에 저장하는 방법.
외장 하드 디스크에 저장하는 방법은 불편한 점이 있는데, 외장하드를 일정시간(보통 10분인듯) 사용하지 않으면 절전모드로 들어가고, 다시 사용하려고 하면 슬립에서 깨어나게 되는데 현재 엑박에서는 버그로 인해 이 슬립에서 깨어나지를 않는다고 한다. 슬립에서 깨우려면 매번 USB 커넥트를 뽑았다 꼽았다 해야된다. ㅋㅋ

관리 저장 장치
설정 – 시스템 – 저장소에 들어가면 나오는 내용

그렇게 되면 선택지는 외장 SSD나 USB 메모리만 남았는데, SSD가 여러개 있다면 모르겠지만 하나만 가지고 있다면 우선 게임 저장용으로 사용하기 위해서 xbox용으로 포맷해야 되고 그렇게 되면 스크린샷 저장용으로 사용할 수가 없다. 스크린샷 저장용은 xbox용이 아닌 NTFS로 포맷해야 되기 때문에.
여러모로 골때리게 만들어 놨다…

결론적으로 스크린샷을 저장/공유하기에는 USB 메모리를 사용하는게 제일 낫고, 편하다.
USB 메모리를 스크린샷 저장용으로 사용하는 방법은 윈도우에서 NTFS로 포맷한 USB 메모리를 엑박에 연결한 후에 옵션->기본 설정->공유 및 캡처->캡처 위치에서 연결한 USB 메모리를 선택하면 된다.

엑박 스샷에 관련된 다른 정보들

엑스박스원 스크린샷 USB로 바로 캡쳐하는 법!
NTFS포맷하기, 스샷 저장위치를 USB로 설정하는 스샷

[참고] 엑박 스샷 외부 USB메모리로 어느정도 해결은 가능한데 불안정하네요
스샷 저장은 USB 메모리가 답.

[XSX하드] 엑스박스 시리즈 X|S. 캡쳐 & 공유 기능 개선 예정
2021/1/26 일단 마소측에서 개선예정은 있는듯.