블로그 이미지
GUCCI

카테고리

전체보기 (111)
여행 (1)
기기 (2)
쇼핑 (0)
게임 (0)
etc. (6)
취업이야기 (0)
업무일지 (5)
리눅스 (38)
웹프로그래밍 (2)
네트워크 (4)
JAVA (17)
Android (0)
IOS (2)
LUA (8)
C/C++ (1)
Objective C (2)
SERVER (2)
그누보드4 (1)
MSSQL (2)
Programming (1)
자바스크립트 (4)
HTML/CSS (1)
LGNAS (0)
Total
Today
Yesterday

1) 방화벽 기본 정책

iptables 방화벽의 시작은 기본 정책을 수립하는 것이다. iptables를 이용하여 방화벽을 구성할 경우 두 가지 정책 중 한가지를 선택하면 된다. 일반적으로 모든 패킷에 대해서 무시하는 것이 방화벽의 기본 정책이다.

방화벽의 기본 정책 

 * 모든 것을 허용한 후 제한할 것을 거부한다.

 * 모든 것을 거부한 후 필요한 것만 허용한다.

두 개중 일반적으로 모든 것을 막아버리는 것을 기본 정책으로 한다.

 

대부분의 리눅스 배포판은 모든 것을 거부하는 것을 기본 정책으로 채택하고 있으나, 페도라코어 리눅스의 경우는 모든 것을 허용하는 정책을 기본으로 하고 있다. 그러면 기본 정책으로 모든 것에 대해서 거부하는 정책을 택하여 다음과 같이 실행하여 기본 보안 정책을 수립한다.

 

 

iptables -L 명령으로 iptables의 테이블 상태를 점검할 수 있다. iptables -L 명령을 실행해 보면 INPUT과 FORWARD, OUTPUT 체인의 정책 모두 DROP으로 설정되 있음을 확인할 수 있다.

 

이것은 리눅스 서버로 어떠한 패킷이든 들어오고 나갈 수 없는 상태임을 의미하여, 로컬이든 외부에서 로컬 컴퓨터로는 네트워크가 차단된 것처럼 연결할 수 없게 된다. 그러면 ping 127.0.0.1 명령으로 루프백에 핑을 테스트해 봅시다. 루프백으로 핑이 나가질 않음을 알수 있다.

 

루프백으로 모든 패킷이 자유롭게 들어오고 나갈 수 있도록 다음과 같이 명령을 실행해 보자.

 

루프백 주소로 핑을 날리면 핑이 나감을 확인 할 수 있다. 핑 뿐만 아니라 로컬에서 제공하는 모든 네트워크 서비스에 접근할 수 있게 된다.

 

 

 

▶ iptables 사용법

iptables [-t table] command [match] [target\jump]

 

-A(--append)            : 규칙을 추가한다.

-N(--new-chain)        : 새로운 체인 생성

-X(--delete-chain)     : 체인 제거

-P(--policy)              : 체인 기본정책 변경

-L(--list)                  : 체인의 규칙상태 보기

-F(--flush)               : 체인내의 모든 규칙 제거(방화벽 초기화)

-Z(--zero)                : 체인내의 모든 규칙의 패킷과 바이트의 카운트를 0으로 초기화

-D(--delete)             : 규칙을 삭제

-R(--replace)            : 새로운 규칙으로 대체

-I(--insert)               : 체인의 가장 처음에 규칙을 추가한다.

-E(--rename-chain)    : 체인의 이름을 변경한다.

 

 

2) iptables 체인 종류

INPUT : 로컬로 들어오는 패킷(입력 패킷)

FORWARD : INPUT와 OUTPUT 역할, 라우터에 방화벽을 적용할 때 쓰임

OUTPUT : 외부로 나가는 패킷(출력 패킷)

 

INPUT 체인에 사용자 정의로 체인을 추가하여 INPUT 체인 대신에 사용할 수 있는데, 페도라 코어의 경우는 RH-Firewall-1-INPUT라는 사용자 정의 체인을 사용한다. 3개의 기본 체인(INPUT, OUTPUT, FORWARD)은 수정이나 삭제가 불가능하며, 사용자 정의 체인은 다음과 같은 방법으로 생성해 줄 수 있다.

 

 

 

3) iptables 다루기

 

▶ 방화벽 정책 초기화

# iptables -F

# iptables -X

# iptables -Z

 

 

▶ 기본 정책 설정

# iptables -P INPUT DROP

# iptables -P OUTPUT DROP

# iptables -P FORWARD DROP

 

 

▶ 사용자 정의 체인 생성 및 INPUT 체인에 추가

# iptables -N 사용자정의체인명

# iptables -A INPUT -j 사용자정의체인명

 

 

▶ 허용 정책 설정

루프백 접속 허용

다른 곳과 네트워크가 연결되어 있지 않더라도 시스템의 기본 네트워크이며 로컬 호스트의 인터페이스인 루프백에 대해서는 접속이 이뤄질 수 있도록 해야 하므로, 다음과 같이 설정한다.

iptables -A INPUT -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

 

 

내부 네트워크 접속

iptables -A  FORWARD -s 192.168.0.0/24 -d 192.168.0.0/24 -j ACCEPT

iptables -A OUTPUT -s 192.168.0.0/24 -d 192.168.0.0/24 -j ACCEPT

 

 

내부 -> 외부 접속

iptables -A  FORWARD -s 외부주소 -p tcp -m tcp --sport 포트번호 -j ACCEPT

iptables -A OUTPUT -d 외부주소 -p tcp -m tcp --dport 포트 -j ACCEPT

 

 

① DNS 포트 허용

iptables -A  FORWARD -p udp -m udp --sport 53 -j ACCEPT

iptables -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT

 

② ICMP 핑 허용

iptables -A OUTPUT -o eth0 -p icmp --icmp-type echo-request -j ACCEPT

iptables -A  FORWARD -i eth0 -p icmp --icmp-type echo-reply -j ACCEPT

iptables -A OUTPUT -o eth0 -p icmp --icmp-type echo-reply -j ACCEPT

 

③ SSH 포트 허용 ( 192.168.0.1 -> 172.16.1.20)

iptables -A fedora -s 172.16.1.20 -p tcp -m tcp --sport 22 -j ACCEPT

iptables -A OUTPUT -d 172.16.1.20 -p tcp -m tcp --dport 22 -j ACCEPT

 

④ HTTP 포트 허용

iptables -A  FORWARD  -i eth0 -p tcp -m tcp --sport 80 --dport 1024:65535 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 80 -j ACCEPT

 

⑤ FTP 포트 허용

* 명령(제어) 포트(tcp 21) 접속

iptables -A  FORWARD  -i eth0 -p tcp -m tcp --sport 21 --dport 1024:65535 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 21 -j ACCEPT

*데이터 포트(tcp20) 접속(능동 모드 접속)

iptables -A  FORWARD -i eth0 -p tcp -m tcp --sport 21 --dport 1024:65535 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 21 -j ACCEPT

*데이터 포트(tcp 1024이상의 포트) (Passive 모드 접속)

iptables -A  FORWARD -i eth0 -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 -j ACCEPT

 

 

외부 -> 내부 접속

① SSH 포트 허용

iptables -A  FORWARD -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 22 -j ACCEPT

 

② http 포트 허용

iptables -A FORWARD -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT

iptables -A OUTPUT -o eth0 0p tcp -m tcp --sport 80 -j ACCEPT

 

③ ftp 포트 허용 ( passive mode)

iptables -A  FORWARD  -i eth0 -p tcp -m tcp --dport 21 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 21 -j ACCEPT

 

iptables -A  FORWARD -i eth0 -p tcp -m tcp --dport 1024:65535 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 -j ACCEPT

 

Posted by GUCCI
, |


원인은
 
submit 이름에 에러

id 도 마찬가지로 에러 발생

다른폼에 type이 submit이 아닌곳에서 

name="submit" 이나 id="submit" 이 있는지 확인


<input type="submit" name="submit" .... /> 만 가능하다..

Posted by GUCCI
, |

<button> 배경이미지 및 텍스트 숨김  CSS 

2012/04/23 17:03

복사http://blog.naver.com/jeioi/80158542470

CSS 적용

button {border:0 none;padding:0;margin:0;background:transparent;*overflow:visible;cursor:pointer;}

button::-moz-focus-inner {border:0;padding:0;}  /* firefox 여백방지 */

/* <butto>초기화 설명

background:transparent; 회색배경 없애기
overflow:visible; IE6~7 여백버그 해결
cursor:pointer; 손 커서

*/

 

/* <button> 배경이미지 적용 & 텍스트 삭제*/

.clacel {width:75px;height:27px;background:url('이미지경로') no-repeat;}

span {visibility:hidden;}

 

HTML 사용

<button type="button" name="" id="" onfocus="this.blur()" class="cancel"><span>취소하기</span></button></div>

 

------------------------------------

 

기타 참고

<button> 기본 활용

- type 선택 가능 (submit, reset, button *기본은 submit)

1.이미지 요소
<label for="">로그인 버튼</label>
<button type="button" name="" id="">
  <img src="img/btn.gif" alt="로그인" />
</button>

 

2.텍스트 요소
<label for="">로그인 버튼</label>
<button type="button" name="" id="">로그인</button>

 

3.스타일을 이용하여 background이미지+텍스트숨김

 

 

<button>요소 링크 걸기

1.기존창
<button type="button" onclick="location.href('#');" name="" id="" >로그인</button>

2.새창
<button type="button" onclick="window.open('#');" name="" id="" >로그인</button>

3.팝업
<button type="button" onclick="window.open('#','','width=500,height=500');return false;" name="" id="" >로그인</button>

 

 

 버튼요소의 장점: 텍스트 요소, 이미지 요소 포함 가능   
   <label for=""> <button id="">   웹 폼 컨트롤에 대한 설명
   <button type="button">             버튼요소로 자바스크립트 실행 (그 외 submit,reset)
   <button name="">                        버튼 이름 명시
   <button onclick="">                     버튼 요소에 링크걸기
   <button onfocus="this.blur()"> 점선모양 테두리 삭제, 버튼눌림 방지
   <button title="">                        툴팁 지정

'웹프로그래밍' 카테고리의 다른 글

MVC (Model View Controller) 패턴  (0) 2012.03.20
Posted by GUCCI
, |

최근에 달린 댓글

글 보관함