우분투 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에서 접속이 된걸 확인 할 수 있다.