우분투 서버 22.04버전에서 USB 무선랜 어댑터 TP-LINK Archer T4UH(Realtek 8812AU 칩셋이면 아마 다 같음) 드라이버 설치 과정.
기본적으로 Realtek 8812AU 칩셋을 사용하고 있는 USB 무선랜 어댑터는 아래에서 제공하는 드라이버를 인스톨하면 된다.
https://github.com/aircrack-ng/rtl8812au
인스톨시 dkms가 필요하므로 드라이버 인스톨 전에 먼저 인스톨 하자.
1
2
3
4
git clonehttps://github.com/aircrack-ng/rtl8812au
cd rtl8812au
sudo apt install dkms
sudo make dkms_install
netplan 설정 파일을 수정해서 무선랜으로 접속하도록 설정. 고정 IP를 사용할건데, DHCP4를 true로 하면 자동할당IP로 가능하다.
1
sudo nano/etc/netplan/00-installer-config.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
network:
ethernets:
enp2s0:#유선랜 사용안할거면 안써도 됨
optional:true
dhcp4:true
dhcp6:true
nameservers:
addresses:
-1.1.1.1
-8.8.8.8
wifis:
wlan0:#무선랜 장치ID iwconfig 명령으로 확인
optional:true#이 라인이 없으면 부팅할때 네트워크가 확인 될때까지 기다린다.
dhcp4:false#IP 주소 자동 할당 안함
addresses:[192.168.1.3/24]#고정으로 할당할 서버IP 주소
routes:
-to:default
via:192.168.1.1#게이트웨이 주소
dhcp6:true
access-points:
"KT5G":
password:"password1"
nameservers:
addresses:
-1.1.1.1#클라우드 플레어 DNS
-8.8.8.8#구글 DNS
search:[]
설정 확인. 문제가 있으면 알려준다.
1
sudo netplan generate
설정 적용.
1
sudo netplan apply
ifconfig, ping으로 접속 확인하면 된다.
나 같은 경우는 먼저 억세스포인트, 패스워드를 따음표로 감싸지 않아서 아마 문제가 됐던거 같고,
제일 중요한건 무선 공유기에서 암호화 방식을 WPA로 설정했을 경우, 아무런 에러도 없이 접속이 안되는데 여기서 고생했다.
WPA 방식을 지원하는 팩키지를 설치해야한다.
1
sudo apt install wpasupplicant
netplan 다시 적용하고 몇초 정도 기다리면 iwconfig에서 접속이 된걸 확인 할 수 있다.
Update 2022/10/18
우분투 서버 22.04에서도 똑같이 적용 가능한 것을 확인.
집에 있는 서버를 사용할 때는 ssh 에 접속하는 22번 포트를 다른 포트 번호로 바꿔서 쓰거나 공유기의 포트포워딩으로 외부 1022번 포트를 내부 22번으로 연결해서 사용하거나 해서 딱히 외부에서 ssh로 무작위 대입 공격 같은건 당하지 않았다.
지금 쓰고 있는 오라클 클라우드 서버에서는 포트포워딩이 되는지도 모르겠고, 방화벽 문제도 있고 해서 ssh 디폴트값인 22번 포트를 사용하고 있는데, 얼마나 많이들 들어오는지… fail2ban을 설치하고 보니 3일 동안 밴한 IP가 천개는 가뿐히 넘었다.
방화벽을 기본 iptables 를 사용하고 있다보니, 밴한 IP 가 전부 iptables 에 저장되어서, iptables 건드리려고 하면 너무 양이 많아서 곤란해졌다.
iptables 가 비대해지면 속도도 느려지고 하니, ipset 을 설치해서 여러 IP를 세트로 묶어서 밴하도록 하자.
먼저 ipset 을 설치
1
sudo apt install ipset
fail2ban 을 설치안했으면 설치하자.
1
sudo apt install fail2ban
jail.local 파일을 작성 and 편집
1
2
sudo touch/etc/fail2ban/jail.local
sudo nano/etc/fail2ban/jail.local
jail.local 파일에 아래 내용을 쓴다.
1
2
3
4
5
6
7
8
9
[DEFAULT]
bantime=86400
findtime=86400
ignoreip=123.123.123.123
[sshd]
maxretry=0
banaction=iptables-ipset-proto6
banaction_allports=iptables-ipset-proto6-allports
[DEFAULT] 아래는 전체적으로 적용 되는 내용이고 [sshd] 는 ssh 접속에 한해서 적용되는 내용이다.
bantime 은 밴을 할 시간, findtime 은 이 시간 안에 접속 횟수가 초과 되면 밴을 한다.
ignoreip 는 밴을 하지 않을 IP 이다. 가정이라면 IP 가 바뀌기 때문에 소용이 없을테지만, 고정 IP 서버가 있다면 경유해서 접속이 가능하니 적어두면 좋다.
maxretry 는 ssh 공개키를 쓸때는 우리가 틀릴일이 없기 떄문에 0으로 설정해도 되지만, 패스워드를 입력해서 들어갈 경우에는 3이나 5정도로 여유를 두는게 좋다. 본인이 틀려서 밴 먹으면 곤란하겠지?
ipset을 사용해서 iptable로 밴을 하기 위해서 설정하는 것이 banaction 이다.
우분투 18.04 에서 ipset 을 설치하면 ipset -V 명령을 실행하면 표시 되는 프로토콜 버전이 6이기 때문에 iptables-ipset-proto6 을 사용한다. 우분투의 다른 버전이나 다른 리눅스 배포판을 사용하고 있으면 프로토콜 버전을 확인하고 설정하자. (6 이외에는 4 버전이 있다.)
banaction_allports 는 말그대로 모든 포트를 밴해버리는 설정인데, 딱히 다른 곳에서 저걸 사용하도록 설정하지 않는 이상 사용하진 않을 것이다.
jail.local 파일을 저장하고 fail2ban 서비스를 재기동하자.
1
sudo service fail2ban restart
기존에 iptables 에 밴 되어있는 IP가 있었다면 모두 ipset 에 옮겨서 저장되고, iptables 내용을 확인해 보면.