리눅스에서 방화벽은 iptables가 있다.

iptables 설정을 해보겠다.

리눅스 터미널에서 iptables -L 명령어로 현재
iptables 정책들을 확인할 수 있다.



(현재 설정)



아무 설정이 안되있는 것을 확인 할 수 있다.
Chain이란 규칙들 모음이라고 생각하면 된다.
기본적으로 3개의 Chain이 만들어져있다.
INPUT (들어오는 것에 대한)
FORWARD ( 포워딩하는 것에 대한)
OUTPUT (나가는것에 대한)

간단하게 INPUT , OUTPUT의 규칙을 하나씩 추가해보겠다.
80번 tcp로 들어오는 것과 80번 포트에서 나가는 것을 허용하는 것이다.



(설정 입력)



iptalbes 옵션
-A  : 새로운 규칙 추가
-D  : 기존 규칙 삭제
-C  : 패킷 테스트
-I  : 새로운 규칙 삽입
-R  : 기존의 규칙을 교체
-L  : 적용된 규칙 리스트 출력
-F  : 규칙 초기화
-Z  : 모든 체인의 패킷과 바이트 카운터 값을 0으로 변경
-N  : 새로운 체인을 만든다.
-X  : 체인 삭제
-P  : 기본 정책 변경

(소문자 옵션)
-p  : 정책을 적용할 패킷의 프로토콜
-m  : 정책에 사용할 모듈
-s  : 패킷의 발신지 IP주소
-d  : 패킷의 수신지 IP주소
-i  : 규칙에 적용할 인터페이스
-j  : 룰을 적용할 타겟
-y  : syn 패킷 거부
-f  : 두 번째 이후 조각에 대해 규칙 명시

규칙을 입력하고 확인해본다.




(적용된 리스트)



이렇게 적용된 규칙들은 껐다 켜지면 다 사라진다..

리붓하고
다시 확인해본 모습



(다 사라진 모습)



이제 정책을 저장해보겠다.
다시 규칙을 입력한다.
아래 규칙은 내부로 들어오는 트래픽 중 목적지 포트번호가 21, 25, 80, 110, 143, 443, 587번인 tcp프로토콜인 트래픽을 허용하고 내부로 들어오는 트래픽 중 목적지 포트가 53번인 udp 프로토콜 트래픽을 허용한다는 뜻이다.



(규칙 적용)





이번에는 OUTPUT 체인을 설정하겠다.
외부로 나가는 트래픽 중 출발지 포트가 21, 25, 80, 110, 143, 443, 587번인 tcp 트래픽을 허용하고 외부로 나가는 트래픽 중 출발지 포트가 53번인 udp 프로토콜 트래픽을 허용한다.


(OUTPUT 설정)





체인을 만들어보겠다.
ICMP 체인을 만든다.



(체인 생성)




그 체인 안에 ping 메세지를 차단하는 규칙을 적용해보겠다.



(ICMP 설정)





iptables -L 로
규칙들을 확인한다.



(적용된 모습)




이제 이 체인들을 저장한다.


(저장)



그리고 부팅될때 바로 적용이 될 수 있도록
vi 편집기로
/etc/network/interfaces 에 한줄 추가해준다.



(추가한 모습)




리붓 하고 다시
iptables -L을 한 모습이다.



(저장된 모습)



껏다 켜도 체인이 적용되있는 것을 확인 할 수 있다.

이 규칙들이 적용됬는지
ping 메세지를 보내보겠다.
(아까 ping 요청 메세지를 차단했으므로 ping 응답이 오지 않을 것이다.)



(ping 전송)




ping 메세지 응답이 오지 않는 것을 확인 할 수 있다.
고로
방화벽 설정이 잘 되었다는 것이다.
:)



'Linux' 카테고리의 다른 글

모의해킹(Kali) - DNS 서버 구축  (0) 2017.01.13

오늘은 정확히 말하면

공격, 모의해킹은 아니다.
하지만 모의해킹의 칼럼에 글을 올리는 이유는
DNS 서버 구축을 이용해 다른 공격을 할 수 있기 때문이다.

그래서 오늘은 DNS 서버를 구축하는 과정을 공부했다.

bind라는 프로그램을 사용할 것이다.
먼저 설치 과정이다.



(bind9 설치 명렁어)



설치가 끝나면
구성 파일부터 볼것이다.
명령어 : cd /etc/bind

ls 를 입력해서 목록을 확인해보면
db.local 파일이 보인다. 바로 여기에 zone 파일의 샘플이 들어있다.




(파일 목록)



우리는 zone 파일을 작성해야한다.
zone 파일은 도메인 네임과 IP를 매핑한 정보가 들어있는 파일이다.
DNS 서버 동작 과정에서 zone 파일을 읽어서 도메인 주소를 IP 주소로 바꾸어주는 것이다.

샘블인 db.local을 복사해서 쓸것이다.



(복사 화면)


명령어 cp db/local db.zone

파일은 db.zone으로 복사되는 것이다.



(vi 편집기로 연다)



vi 편집기로 복사한 파일을 열어준다.

여기에 이제 우리가 원하는
도메인 네임과 IP주소를 매핑시켜서 작성해주면 된다.



(작성한 모습)



이제 이 작성한 파일의 경로를 conf 파일에 설정해줘야한다.

named.conf.local 파일을 수정할 것이다.



(vi 편집기로 연다.)




아래와 같이 수정해준다.



(수정 화면)




자 이제 여기까지 DNS 서버 설정은 끝났다.

DNS 서버를 재시작 시켜준다.
명령어 : service bind9 restart




(재시작)



이제 우리가 설정한 DNS 서버로 DNS 서버 지정을 해줄 것이다.
DNS 서버 설정은
/etc/resolv.conf 파일에 있다.
vi 편집기를 이용해 수정할 것이다.



(DNS 설정 파일)




우리가 만든 DNS 서버 주소와 이 DNS 서버에 없는 정보를 얻기 위해
168.126.63.1 주소도 추가해주었다. (이 주소는 한국 DNS 서버 주소다.)



(DNS 서버 설정화면)



ping 으로 humanist.hum.kr 을 입력해보았더니
IP주소
192.168.1.100 으로 잘 매핑되어 ping이 나간다.



(잘 매핑된 IP주소)



이제 컴퓨터를 바꾸어서 다른 리눅스를 틀어서 확인해 보겠다.

마찬가지로 /etc/resolv.conf 파일에 우리가 만든 DNS 서버를 등록시켜주었다.



(DNS 서버 등록)



dnsmap 을 이용해 humanist.hum.kr  이 IP주소로 잘 매핑되는 검색했다.



(dnsmap)





(결과화면)




결과 화면을 보면
우리가 설정했던 (작성했던) 대로 IP주소가 나오는 것을 확인 할 수 있다.

이렇게 DNS 서버 구축을 해보았다.
(잘 동작하는)



'Linux' 카테고리의 다른 글

Linux(Kali) - iptables 방화벽 구축  (0) 2017.01.17

+ Recent posts