1월 2주차. 리눅스 방화벽 설정

변현섭·2024년 1월 26일
0

다우데이타 인턴십

목록 보기
3/17
post-thumbnail

리눅스 IPTABLES

Nubo 솔루션이 구성되어 있는 서버의 IP 주소에 대해, 현재 사용 중이 아닌 모든 포트의 인바운드 트래픽을 차단해야 한다. 이 때, 사용할 수 있는 것이 바로 iptables이다. iptables란, 리눅스에서 방화벽을 설정하는 명령으로, 인바운드 또는 아웃바운드 트래픽을 제한하는 용도로 사용된다. 리눅스의 iptables 명령의 사용법은 아래와 같다.

① 현재 자신의 인바운드 방화벽 규칙을 볼 수 있는 명령

  • 방화벽 규칙 전체를 보고 싶다면 INPUT을 빼고 입력하면 된다.
  • 여기서는 인바운드 트래픽만 제한할 것이므로 INPUT까지 입력한다.
sudo iptables --list INPUT
sudo iptables -L INPUT

② 특정 포트를 차단하는 명령

  • 인바운드 트래픽을 블랙 리스트 형태로 관리할 때 사용하는 명령이다.
  • 여기서는 화이트 리스트 형태로 관리할 것이므로, 사용하지는 않을 예정이다.
sudo iptables -A INPUT -p tcp --dport {포트번호} -j DROP
  • -A INPUT: INPUT 체인에 새로운 규칙을 추가
  • -p tcp: TCP 프로토콜을 사용하는 트래픽에 적용
  • --dport {포트번호}: 해당 포트 번호를 차단

③ 특정 포트를 허용하는 명령

  • 허용하고자 하는 포트 번호를 일일이 입력하면 된다.
  • -s 옵션을 지정하여 서버의 IP 주소를 지정할 수 있으며, -s 옵션을 생략할 경우 모든 IP 주소에 대해 해당 포트를 허용한다.
sudo iptables -A INPUT -p tcp --dport {포트번호} -j ACCEPT
sudo iptables -A INPUT -p tcp --dport {포트번호} -s {IP 주소} -j ACCEPT

④ 방화벽 정책을 삭제하는 명령

sudo iptables -L INPUT // 인바운드 규칙 확인
sudo iptables -D INPUT 1 // 첫번쩨 정책을 삭제, 숫자 변경 가능

⑤ 허용된 포트를 제외한 모든 포트 차단

  • 3번 명령을 통해 포트 허용을 먼저 진행해야 한다.
  • iptables 규칙은 위에 있을수록 우선순위가 높으므로, 모든 포트를 차단하는 명령은 가장 아래에 위치해야 한다.
  • 즉, '-I'는 맨 위에, '-A'는 맨 아래에 규칙을 추가하기 때문에, 반드시 '-I'가 아닌 '-A'를 사용해야 한다.
  • 마찬가지로, -s를 이용하여 특정 IP에 대해서만 모든 포트를 차단할 수도 있다.
sudo iptables -A INPUT -p tcp -j DROP 
sudo iptables -A INPUT -p tcp -s {IP 주소} -j DROP
profile
LG전자 VS R&D Lab. Connected Service 1 Unit 연구원 변현섭입니다.

0개의 댓글