반응형


보통 리눅스는 윈도우보다 보안성이 좋다고 말합니다. 하지만 그것은 어디까지나 상대적인 이야기일 뿐이지 절대적으로 안전하다는것은 아닙니다. 따라서 조금이나마 보안에 신경쓰는 방법중 하나는 방화벽을 설정해 주는것 입니다.

보통 흔히 보안을 이야기 할때 문제가 되는건 외부로 서비스되는 서버프로그램들입니다. 간단히 예를 들면 웹서버, FTP서버, SSH서버, 메일서버 같은 것들입니다. 물론 실제로 이들 서비스를 제공하는 업체라면 부지런히 보안버그가 생길때마다 서버를 패치해 주거나 대책을 새워야 할것입니다.

하지만 대부분 일반 사용자들은 이들 서비스를 외부에 제공할 필요가 없습니다. 즉 보안을  위해서 우선 해야 할일은 사용하지 않는 서비스를 제거하는 것입니다.

하지만 가끔은 테스트를 위해, 공부를 위해, 이런 서비스들을 사용해야 할 필요가 있습니다. 또는 다른 패키지에서 특정 서버 패키지를 요구해서 설치하는 경우도 있습니다. 이런경우 방화벽을 이용해 외부 접속을 막으면 보안성을 높일 수 있습니다.

단, 역시 방화벽을 이용하는 것은 방화벽을 사용하지 않는것 보다 약간 불편합니다. 이 점은 어쩔 수가 없습니다.



우분투 리눅스의 기본 방화벽은 ufw 입니다. ufw 는 기본적으로 설치는 되어 있지만 기본적으로 '사용안함' 으로 되어 있습니다. 따라서 사용하도록 설정해 줘야 합니다.

방화벽 ufw 의 사용법은 우분투의 위키에 잘 정리되어 있습니다.

https://help.ubuntu.com/community/UFW

하지만 문서를 보시면 아시겠지만 ufw 는 터미널에서 실행해야 하는 프로그램입니다. 이걸 쓰라고 하면 질겁을 하실 분들이 꽤나 계시죠. ^^; 뭐...저는 터미널에 상대적으로 다른분들 보다 익숙하긴 하지만 역시 이런건 좀 껄끄럽기도 하죠.

하지만 GUI 프로그램도 존재합니다. gufw 라는 프로그램이 있습니다. 우분투에선 시냅틱으로 찾아보시면 있습니다. ^^;

gufw 를 설치한 후에 '이게 어디있는거야?' 하실 분이 계실지도 모르겠는데요. '시스템 --> 관리 --> 방화벽설정' 으로 가서 실행하면 됩니다.

그러면 이런게 나옵니다.



입력/출력 이라고 되어 있는데 뭔가 좀 어색한 느낌도 드내요. 음....

어쨌던 '입력' 은 외부에서 내 컴퓨터로 접속하려는것. '출력' 은 내 컴퓨터에서 외부로 접속하려는 것을 말합니다.
위의 이미지 처럼 입력을 '차단' 으로 해두면 외부에서 내 컴퓨터로 접속은 불가능해 지고, 출력을 '허가' 로 해 놓았기 때문에 내 컴퓨터에서 외부서비스를 이용하는것은 제한없이 가능하게 됩니다.

이것은 기본 정책입니다. 그 외에 추가 정책을 설정할 수도 있습니다.

일단 일반적인 웹서핑에는 위의 설정도 무리가 없습니다. 외부에서의 접속은 불가능 하기 때문에 외부에서의 크래킹시도는 모두 차단됩니다. 다만 이렇게 해 놓으면 토렌트 같은 p2p 서비스 사용에는 문제가 생깁니다. 왜냐하면 p2p 서비스는 외부에서의 접속을 허용해야 하기 때문이지요. eMule 같은 경우는 사용이 가능하기는 하지만 로우ID 라고 해서 실 사용상에 불이익을 받게 됩니다.

이를 해결하려면 특정포트의 접속을 허용하는 규칙을 추가해 주면 됩니다.

보통 p2p프로그램에선 특정 포트(Port)를 이용해서 접속합니다. 따라서 해당 p2p프로그램이 어떤 포트번호를 쓰는지 알아낸다음, 그 포트 번호를 방화벽에서 접속가능하도록 설정해 주면 됩니다.

가령 예를 들어 토렌트 프로그램인 트랜스미션이 57891 포트를 쓴다고 가정해 보죠. 그러면 다음과 같이 설정해 줍니다.

우선 방화벽 프로그램에서 추가 버튼을 누릅니다.


그러면 다음과 같은 화면이 나옵니다. '간단하게' 탭을 클릭해서 위와 같이 설정해 줍니다.
스샷처럼 설정해 주면 'TCP 57891 포트로 들어오는 입력을 허가한다' 라는 뜻이 됩니다. 그런다음 추가 버튼을 눌러주세요.
그런다음 계속 추가할 다른포트가 있으면 적어주고 추가를 눌러 계속 추가 합니다.
입력이 끝났으면 닫기를 선택합니다.



그러면 위의 스샷처럼 규칙이 추가되어 있습니다.
이제 외부에서 오는 입력(접속)은 모두 차단되지만 위에서 추가한 57891의 tcp 입력에 한해서는 접속을 허용할 것입니다.



설명이 다소 부실하다고 생각하실지도 모르겠는데요. 아무래도 이부분은 기본적으로 네트워크에 약간의 지식이 필요하기 때문에 어쩔 수가 없네요. 그렇다고 처음부터 설명하기도 힘들고....어쩔 수 없이 모르는 부분은 구글등의 검색으로 배워가시는 방법 밖에 없을것 같습니다.

제가 쓴 이 포스트의 내용은 상당히 기본적인 내용에 불과합니다. 여러가지 상황과 여러가지 적용방법이 있을 수 있습니다.
더 방화벽에 대해 알고 싶으시다면 위에 링크한 우분투의 ufw 에 대한 문서부터 읽어 보면서 테스트 해보면 간단한 설정정도는 하실 수 있을겁니다. 그렇게 엄청 자세한 내용은 아닌것 같았지만 말이죠. ^^;

ps> ufw 방화벽은 기본적으로 부팅시에 적용 되지 않습니다. 부팅시에 자동으로 적용되게 하려면...

sudo update-rc.d -f ufw defaults

터미널에서 위의 명령을 입력합니다.

GUI 까지는 아니지만 조금 편하게 데몬관리를 하기 위한 터미널 프로그램인 'sysv-rc-conf' 라는 패키지를 설치해서 적용할 수도 있습니다.
참고로 sysv-rc-conf 실행은 root 권한이 필요하므로 우분투에선 sudo 명령으로 실행해야 합니다.

+ Recent posts