13. Ubuntu 보안 설정 (해킹 예방)
1. Enable Automatic Updates
sudo apt-get update && \
sudo apt-get dist-upgrade -y && \
sudo apt-get install -y unattended-upgrades && \
sudo dpkg-reconfigure --priority=low unattended-upgrades
2. Limited User Account → Do not use root
sudo adduser [username]
sudo usermod -aG [groupname] [username]
3. Passwords are for suckers → Use Public/Private Key
1) In Remote
mkdir $HOME/.ssh && \
chmod 700 $HOME/.ssh && \
touch $HOME/.ssh/authorized_keys
2) In Local
ssh-keygen -t 암호화방식 -f ~/.ssh/생성할인증키이름 -C "코멘트"
ssh-keygen -t rsa -f ~/.ssh/test -C "My name is test"
3) *.pub
Remote 서버에 저장
4. Lockdown Logins (harden SSH)
sudo vim /etc/ssh/sshd_config
# SSH 접속 포트 변경
Port 22 -> Port 12345
# 접속 IP는 IPv4로 제한
AddressFamily any -> AddressFamily inet
# root 계정으로 들어오는 접속 차단
PermitRootLogin yes -> PermitRootLogin no
# 위의 Authorized_keys 사용 권장(Password는 절대 믿으면 안 됨)
PasswordAuthentication yes -> PasswordAuthentication no
sudo systemctl restart sshd
5. Filrewall It Up
1) IDC/Cloud 환경이라고 하더라도 시스템 방화벽까지도 필요함
2) 사용 중인 포트 확인
3) ufw
설치
sudo apt-get install -y ufw
4) 상태 확인
5) 포트 허용
sudo ufw allow [portnumber/tcp]
6) 방화벽 실행
7) 추가 정보
- 해커는 외부에서 핑 확인 후 서버 존재 유무 확인
sudo vim /etc/ufw/before.rules
...
# ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type echo-request -j DROP (<- (1) 추가)
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT (<- (2) 또는 DROP으로 변경 / (3) 또는 전부 DROP으로 변경)
...
sudo ufw reload
sudo reboot
References