당신의 서버비는 안녕한가요? - 3

onlyJoon·2024년 1월 28일
4

홈서버

목록 보기
3/3
post-thumbnail

서버는 아무나 들어오면 안된다. 서버 정보를 아무나 알아서도 안된다. 하지만 매크로 공격에는 답이 없다. 그러니 안전장치가 필요하다.

보안 설정

root 계정 설정

보안 설정에 앞서 root 계정 설정을 해보자.

sudo passwd

  • root 계정의 최초 비밀번호 설정을 한다.

su -

  • root 계정으로 로그인 할 수 있다.
    sudo를 붙이지 않고 작업하고 싶을 때 활용하면 된다.

명령어 입력 후 비밀번호를 입력하면 root 계정으로 로그인 할 수 있다.
sudo를 붙이지 않고 작업하고 싶을 때 활용하면 된다.

exit

  • 로그아웃 할 수 있고, 원격 접속에서 빠져나올 수도 있다.

SSH 설정 파일 수정

SSH를 통해 다른 계정들은 접속하지 못하도록 막아보자.

sudo vim /etc/ssh/sshd_config

SSH 설정 파일을 열어 맨 밑 줄에 다음을 입력한다.

AllowUsers [계정 ID]

설정을 적용하기 위해 아래 명령어로 서비스를 재시작한다.

sudo service sshd restart

방화벽 설정

리눅스에서는 방화벽 설정 도구로 iptables를 기본 제공한다.
이를 통해, 포트를 여닫을 수 있다.
혹시라도 ufw가 더 익숙하다면 사용해도 좋다.
어차피 결국은 iptables 설정을 대신 해주는 역할이긴 하다.

[Linux] iptables 사용하기(방화벽 규칙 추가 및 삭제)

총 5가지 설정을 해줄 것이다.

  1. 로컬에서 로컬로의 모든 접속 허용

sudo iptables -A INPUT -s 127.0.0.1 -j ACCEPT

  1. SSH 포트로의 모든 접속 허용

sudo iptables -A INPUT -p tcp --dport [SSH 포트] -j ACCEPT

  1. 패키지 업데이트 관련 패킷 허용

sudo iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
- RELATED: 기존 연결과 관련된 패킷
- ESTABLISHED: 그후의 패킷

  1. 위에서 허용한 것 이외의 패킷은 폐기

sudo iptables -P INPUT DROP

  1. 서버를 거쳐 다른 곳으로 가는 모든 패킷 폐기

sudo iptables -P FORWARD DROP

이렇게 해준 다음 아주 중요한 작업이 필요하다. 바로 설정을 저장하는 것.

이대로는 서버 재부팅 시 설정이 모두 사라지므로 방화벽 관리 패키지를 사용해 저장해야 한다.

먼저, 방화벽 관리 패키지를 설치한다.

sudo apt install iptables-persistent

그리고, 설정을 저장 및 갱신 해준다.(매우 중요)

sudo netfilter-persistent save
sudo netfilter-persistent reload

fail2ban(선택)

집념의 해커들은 비밀번호 무작위 대입으로 서버에 공격을 가한다. 이를 위해 적용할 수 있는게 fail2ban이다.

fail2ban은 로그인을 실패하는 IP를 감옥에 가두는 역할을 한다.

sudo apt install fail2ban

설치하고 설정파일을 확인한다.

sudo vim /etc/fail2ban/jail.local

[DEFAULT]
bantime=86400
maxretry=5
findtime=86400

[sshd]
enabled = true
port=[SSH 포트]
filter=sshd
logpath=/var/log/auth.log

fail2ban 서비스는 logpath 에서 filter 항목을 찾아 findtime 시간 동안 maxretry 횟수 만큼 접속을 시도한 IP를 bantime 초 동안 차단합니다.

sudo service fail2ban restart

변경한 설정을 재시작을 통해 적용해주면 된다.

감옥에 잡힌 IP들을 보고 싶다면 이 명령어를 사용하면 된다.

sudo fail2ban-client status sshd

가끔 실수로 비밀번호를 잘못 입력해서 내 IP를 차단해버리는 경우가 있는데 이 때는 감옥에서 풀어주는 명령어를 입력해주어야 한다.

sudo fail2ban-client set sshd unbanip [ip]

이제 자유롭게 서버를 꾸미는 등의 활동을 하면 된다!

profile
A smooth sea never made a skilled sailor

1개의 댓글

comment-user-thumbnail
2024년 1월 28일

보고 많이 배워갑니다:) 덕분에 착한(?) 친구들 다 봉인 시켜버렸네요

답글 달기