글쓰기 메뉴

UFW 방화벽 사용하기 - 우분투 14.04

UFW 는 iptables 의 설정 도구로 Uncomplicated Firewall 이란 뜻이며 문자 그대로 복잡하지 않은 방화벽 설정을 위해 사용된다.


서버는 어떤 목적이든, 공인 IP가 있든 없든 외부에서 접근이 가능하다면 보안 위험에 노출될 수 밖에 없다. IDC 레벨이나 네트워크 구성에서 하드웨어/소프트웨어 방화벽이 이미 사용되고 있을 수 있지만 그런 경우에도 각 서버의 방화벽 설정은 매우 유용하다(고 생각한다)


이런 목적으로 사용하기에 iptables 가 매우 적합하나 설정과 관리가 꽤나 복잡하여 나 같은 사람은 필요할 때 검색으로 룰을 설정했다가 어느 순간 뭔가 동작이 이상하면 iptables 전체를 내려버리는 괴상한 방식으로 운영하게되니 계륵이 아닐수가...


그런 의미로 UFW는 신세계! 방화벽이 미적용된 서버가 있다면 당장 UFW를 올려보자!


설치

$ sudo apt-get install ufw


기본 정책 설정 (들어오는 패킷은 차단, 나가는 패킷은 허용)

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing


ssh, http, https 허용 (ssh 포트를 변경해서 사용한다면 반드시 직접 포트를 입력하자)

$ sudo ufw allow ssh
$ sudo ufw allow http
$ sudo ufw allow https


포트를 변경해 사용하거나 특정 포트를 허용

$ sudo ufw allow 8080


방화벽 ON!

$ sudo ufw enable

위의 명령을 실행하면 "현재 ssh 연결에 문제가 생길 수 있습니다. 적용하시겠습니까?" 뭐 이런 질문이 나온다. ssh 포트는 허용으로 변경했으니 "y" 를 입력해 진행할 수 있다.


확인

$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22                         ALLOW IN    Anywhere
80/tcp                     ALLOW IN    Anywhere
443/tcp                    ALLOW IN    Anywhere
22 (v6)                    ALLOW IN    Anywhere (v6)
80/tcp (v6)                ALLOW IN    Anywhere (v6)
443/tcp (v6)               ALLOW IN    Anywhere (v6)


ufw 가 실행되고 있지 않다면 아래와 같은 결과가 리턴된다.

$ sudo ufw status verbose
Status: inactive


방화벽을 끌 때는 아래와 같은 명령어를 입력한다

$ sudo ufw disable




등록된 규칙을 삭제할 때는 2가지 방법이 있다.

첫번째는 등록 시 사용한 규칙을 그대로 입력하는 방법

$ sudo ufw delete allow ssh
$ sudo ufw delete allow 8080


두번째는 각 규칙의 번호를 확인하고 번호로 지우는 방법

$ sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22                         ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere
[ 3] 443/tcp                    ALLOW IN    Anywhere
[ 4] 22 (v6)                    ALLOW IN    Anywhere (v6)
[ 5] 80/tcp (v6)                ALLOW IN    Anywhere (v6)
[ 6] 443/tcp (v6)               ALLOW IN    Anywhere (v6)

등록된 규칙의 번호는 줄 맨앞에 있는 [숫자]


2번 규칙 80/tcp 를 지우려면

$ sudo ufw delete 2


새로운 규칙의 추가는 동일한 방식으로 가능하다

$ sudo ufw allow 21


포트 뒤에 tcp 나 udp 를 지정할 수 있고 지정하지 않는다면 모두 적용된다

$ sudo ufw allow 21/tcp


새로운 설정을 적용하려면 disable > enable 해도 좋고 아래와 같이 reload 가 가능하다

$ sudo ufw reload




특정 IP만 허용할 경우 

$ sudo ufw allow from 192.168.0.101


특정 IP에게 특정 포트만 허용할 경우

$ sudo ufw allow from 192.168.0.101 to any port 8080


포트의 범위를 규칙으로 사용할 경우

$ sudo ufw allow 9200:9300/tcp


특정 아이피에만 일정 범위의 포트를 tcp 패킷만 허용할 경우

$ sudo ufw allow from 192.168.0.101 to any port 9200:9300 proto tcp


서브넷을 특정 포트에 허용할 경우

$ sudo ufw allow from 192.168.0.0/24 to any port 8080


이 정도면 내가 써봤던 명령어는 다 정리한 것 같다.



어디서 왔지?
[["www.google.co.kr", 3591], ["synd.kr", 92], ["www.google.com.mm", 2], ["mail.naver.com", 1], ["www.google.com", 175], ["adguard.com", 6], ["www.google.hr", 1], ["yandex.ru", 30], ["duckduckgo.com", 4], ["m.search.daum.net", 1], ["collabo.beatthemarket.co.kr", 1], ["www.google.co.th", 3], ["blog.naver.com", 6], ["encrypted.google.com", 2], ["ixquick-proxy.com", 1], ["ljj9812.synology.me", 1], ["www.google.com.kh", 1], ["cafe.naver.com", 7], ["search.naver.com", 3], ["www.google.nl", 2], ["www.google.com.ar", 1], ["www.google.com.py", 2], ["www.google.com.br", 3], ["itrepreneur.tistory.com", 4], ["www.naver.com", 2], ["www.google.com.ph", 7], ["search.daum.net", 6], ["www.google.co.jp", 36], ["www.google.com.au", 3], ["unknown", 7329], ["www.google.ca", 6], ["www.google.co.uk", 4], ["www.google.com.sg", 1], ["www.google.de", 3], ["www.google.com.tr", 1], ["www.google.co.nz", 2], ["www.google.co.id", 1], ["www.google.com.vn", 1], ["getpocket.com", 1], ["com.google.android.googlequicksearchbox", 3], ["www.google.com.hk", 3], ["www.bing.com", 18], ["www.google.by", 1], ["www.yalleemate.com", 10], ["www.google.com.tw", 2]]
다른 글들
0 0

Ubuntu 14.04 - Apache Tika 설치

아파치 티카는 PPT, XLS, PDF 등 수천종의 파일에서 텍스트와 메타정보를 추출하는 툴킷이다.
아파치 소프트웨어 재단의 프로젝트이며 아파치 루씬의 서브프로젝트로 시작됐고 현재는 독립되었다.
티카는 Apache Maven2로 빌드가 가능하나 여기서는 바이너리를 사용한다.
소스나 바이너리 다운로드 URL은 다운로드 페이지에서 확인하자
tika-app
콘솔에서도 유틸리티처럼 사용이 가능하고 --server 옵션으로 서버모드로도 사용이 가능하다. NetCat 등의 커맨드를 사용해 처리결과를 받을 수 있다.
tika-server
보다 서버스러운(!) 서버모드로 RESTful API 를 제공한다.
구동
JRE 는 당연히 설치되어 있어야하고 -jar 옵션으로 간단하게 구동된다. 기본 포트는 9998
구동 확인
브라우저에서 9998 포트로 접속하면 URL 정보가 출력된다.

tika-server 는 PUT 메쏘드만 받으며 리퀘스트 body 로 파일만을 받는다.
Meta 
Text
HTML
추가로, 내가 쓰는 Typhoeus 에서는 아래와 같이 사용할 수 있다.
Apache Tika : http://tika.apache.org/
TiakJAXRS Wiki : http://wiki.apache.org/tika/TikaJAXRS
0 0

Rails 모든 연결 SSL 로 변경하기 + Nginx Redirect

Let's encrypt 와 EFF 그리고 여러 스폰서들과 개인기부자들 덕분에 간단하게 SSL 을 적용했으니 이제 모든 http 연결을 ssl 로 돌려보자.
Rails 에서는 Controller 단위에서 force_ssl 을 사용할 수도 있고 보다 와이드하게 전체 설정에서 다룰 수도 있다.
씬디는 https 변경에 다른 별 이슈가 없기때문에 config/environments/production.rb 에 force_ssl 을 설정했다.
이렇게 설정하면 route 룰을 포함해 모두 ssl 연결로 변경된다.
NginX 나 Apache 등을 리버스 프락시로 구성하여 백단에 서버들에게 넘겨준다면 다음의 헤더를 반드시 포함시켜야한다.
Rack 서버는 1) 443 포트로 연결되었는지 2) ENV['HTTPS'] 값이 "on" 인지 3) X-Forwarded-Proto 헤더가 "HTTPS" 인지 3 가지를 보고 판단하기 때문에 리버스 프락시 뒤에 있는 puma 나 unicorn 등은 443 포트가 아닌 다른 포트나 유닉스소켓으로 통신하기 때문에 HTTPS 연결인지 확인하지 못하고 계속 리디렉션 시키게 된다.
NginX 나 Apache 단에서 301 리디렉션으로 연결 프로토콜을 변경할 수도 있겠다.
80 포트를 수신하는 서버 설정을 넣고 해당 설정에서는 http 를 https 로 변경하여 리디렉션시키면 443 을 리스닝하고 있는 아래의 설정이 요청을 수신하게 된다. 
끝.
1 2

삼성 9, 엘지 그램, MS 서피스 프로 4
어떤 노트북을 살까!

1) 애플의 맥북을 사지 않는 이유가 있고
2) 작업용 메인 노트북이지만 휴대가 필요하고
3) CPU 기준으로 i7 정도를 알아보고 있다면
현 시점에서 대부분 아래 3가지 모델로 압축되는 것 같다.
그리고 머리 쥐나게 고민하겠지.
오늘 특별히 형이 셋 중 무엇을 골라야할지 알려주겠다!
스펙빠 : MS 서피스 프로 4
가성비 : 엘지 그램
어중간 : 삼성 9
특별히 설명도 해주겠어.
서피스가 셋 중에 유일하게 6세대 i7 (그램과 나인은 5세대)
서피스가 셋 중에 유일하게 메모리 16GB 모델이 있음 (235만원)
서피스가 셋 중에 가장 가벼움 - 786g
서피스는 OS 가 Windows 10 Professional
필기감 괜츈하고 노트와 메모 용도로 아주 적합한 펜 있음
전원 어댑터에 충전용으로 사용할 수 있는 USB 포트 하나 있음 
But...

본체에 USB 포트가 단 하나
OS 미포함 구매가 가능함
OS 포함해도 온라인으로 150만원 정도면 OK. 
그냥 쌈.
개무난
스펙만큼 성능나옴
디자인과 마감 무난함
셋 중에선 제일 무겁지만 휴대하기 무난한 무게 (1.2~1.3)
서비스센터 좋음
0 0

로또

믿어?
진짜 그렇게 믿어?
네가 당첨 될거라고 믿어?
네가 당첨 되면 행복할거라고 믿어?
돈 많으면 무조건 행복할거라고 믿어?
물론 그 돈을 제대로 사용하면 행복할거야.
넌 네가 그 돈을 제대로 사용할거라고 믿어?
난 분명 그 돈을 제대로 사용하지 못할거야.
0 0

보물

나는 말하곤 했다. 
때로는 행복 하기만 해서는 찾을 수 없는 보물도 있다는 것을· 
하지만 말이야 막상 나에게 그 행복이 다가오니까 모든것이 빛나는 보물이더라. 
그런데 너무 함부로 사용했나봐. 
좀 더 가치있게 사용했을 수 있었을것을
고마웠다. 
나의 연휴.
0 0

의미

의미란 영어로는 meaning. 어떤 단어에 대한 뜻을 알고 싶을 때 사용하기도 하고 자주 쓰인다
0 0

종이

 종이.
 나무로 만드는 종이.
 나무와 화학 약품과 각종 재료를 사용해 만든 종이.
 우리는 종이를 사용합니다.
 하루에도 몇십, 몇백 장의 종이를.
 얼마나 많은 재료가 사용됬을까.
 얼마나 많은 약품이 사용됬을까.
 얼마나 많은 종이가 만들어졌을까.
0 0
Square

밤에 드는 생각

졸리다 피곤하다
그런데 잠이 안온다
왠지 차가울것같은
달이 하늘을 비추는 밤에 말고도
누가봐도 뜨거운
해가 하늘을 비추는 낮이 있는데
낮에는 꼭 안 떠오르던
여러 잡 생각들
올 듯 말 듯
내 잠이 떠났다
꼭 '밤'이어야만 하는거니
1 0

바다

나는 바다를 좋아해. 바다 내음, 파도가 부숴지는 소리, 푸르고 하얀 파도. 내 모든 감각이 사용되는, 내가 살아 있다는 걸 알게 해주거든. 내 숨이 붙어 있고 36.5 도의 일정한 체온을 유지하고 있단 걸 알려 주거든. 
2 2
Square

넘나 성실한 스팸알바생

기본적으로 손님 글 등록은 구글 캡챠를 사용하기 때문에 수동작업이 필수인데 꾸준히 할당량(?)을 채우고 있고 오늘은 심지어 커버까지 등록하는 인간적인 모습을 보여주네.
참.. 열심히 사시는구나. 나도 본받아야지.
4 0

피들리

최근 봐야할 사이트가 많아서 피들리를 처음 써봤는데 정말 편하고 좋다.
(피들리는 rss서비스라고 하네요. )
분류도 쉽고 효율성도 올라가고 피들리를 쓰고나서 플립보드 앱은 바로 지웠다. 설치하고 사용을 거의 안했는데 
피들리는 많이 쓸거 같은 느낌.
feedly.com

인터넷 검색 많이 하시는 분은 한번 사용해보세요.
저는 인터넷 하면 창에 기본탭이 10개 이상입니다. ㅋㅋ 중독인가봐여
0 0

죽음

늘 가까이에.
피하거나 적은 곳으로 간 것.
내 상처들은 회피권 사용의 흔적
나를 소중히,
그렇지 않을 것으로 느끼고
고도화된 인간세상에서 잘 생각하지도 않고

무심코 지나치다 만나면 놀랄라
화나고 어이가 없을지언정
후회만은 하지 않게

항상 조심히, 충실히.
내일 보는 오늘이 만족스럽기는 물론
10분 뒤에 보는 지금이 만족스럽게.