PHP 출력문 기본 형태
  sample.php 소스가 웹부라우저 화면에 출력되기까지의 과정을 살펴보자.
  이것은 html 태그 내에 php 코드가 어떤 식으로 삽입되는지를 보여 주기 위한 예이다.

 sample.php 원본소스 sample.php 가 생성해내는 html 태그 웹부라우저 출력 화면
<?
   // 앞에 '//' 가 붙여진 줄은 출력없음.

   $text1 = "안녕하세요?";
   $text2 = "반갑습니다.";
?>

<html>
  <body>

    출력시작합니다.<br><br>

    text1 : <?= $text1 ?><br>
    text1 : <? echo $text1 ?><br><br>

    text2 : <?= $text2 ?> <br>
    text2 : <? echo $text2 ?> <br><br>

   <font color=#0000ff>
   <?
      echo " $text1 <br>";
      echo " $text2 <br><br>";
   ?>
   </font>

  </body>
</html>
<html>
  <body>

    출력시작합니다.<br><br>

    text1 : 안녕하세요?<br>
    text1 : 안녕하세요?<br><br>

    text2 : 반갑습니다. <br>
    text2 : 반갑습니다. <br><br>

   <font color=#ooooff>
    안녕하세요? <br> 반갑습니다. <br><br>
   </font>

  </body>
</html>
출력시작합니다.

text1 : 안녕하세요?
text1 : 안녕하세요?

text2 : 반갑습니다. 
text2 : 반갑습니다. 

안녕하세요? 
반갑습니다.

  [분석]  위 예에서 sample.php 원본소스 코드를 살펴보면 아래와  같은 일정한 규칙을 찾을 수 있다.
  ㆍ  // 으로 시작되는 라인은 주석문으로서 출력에 아무 영향을 주지 않는다.
  ㆍ  $text 와 같이 $ 로 시작되는 단어는 어떤 값을 저장하는 '변수' 이다.
  ㆍ php 코드는 <??> 사이에 들어간다.
  ㆍ <?= $abcd ?>$abcd 변수에 저장된 내용을 출력하라는 의미이다.
  ㆍ <? echo $abcd ?>$abcd  변수에 저장된 내용을 출력하라는 의미이다.


 include 문
  Main php 파일에서 Sub php 파일을 불러들일 때는 include 문을 사용한다.
 아래는 main.php 에서 sub.php 를 include 문으로 삽입하여 출력되는 과정이다.
 main.php 메인소스 웹부라우저 출력 화면

1.체크카드로 지금 바꾸세요.<br>
<? include "./sub.php"; ?>
3.다양한 혜택을 받으세요. 


1.체크카드로 지금 바꾸세요.
2.현금카드의 완벽한 위조 방지.
3.다양한 혜택을 받으세요. 

 sub.php 소스       ↓↑

2.현금카드의 완벽한 위조 방지.<br> 


변수 어떤 값을 저장하기 위해서는 변수라는 그릇을 사용한다. ㆍ 일반변수 : 1개의 독립된 값을 가지는 변수이다. 저장: $myname="홍길동"; 출력 : echo $myname ; 또는 <?= $myname ?> ㆍ 배열변수 : 한줄로 엮여진 변수들의 묶음이다. 저장: $myfamily = array(father=>'김철수' , mother=>'이영희' , me=>'김왕자' , sister=>'김공주'); 출력: echo $myfamily[father] ; 또는 <?= $myfamily[mother] ?>
 함수
  어떤 기능이 내장된 명령어 또는 기능구현을 위한 코드 블록(function)을 의미한다.
   ㆍ 내장함수 - php 모듈로 자체 내장되어 있는 함수이다.
 php 코드출력결과
$string = "아름다운 세상";
echo strlen($string);
13
        strlen 라는 내장 함수의 속성에 의해 $string 변수의 문자열 길이가 계산되어 출력된 예이다.

   ㆍ function 함수 - 사용자에 의해 작성된 함수이다.
 php 코드출력결과
function plus_plus($int){
  $int2 = $int + 2;
  return $int2
}

echo plus_plus(214);
echo plus_plus(17);
216
19
        plus_plus 라는 function 함수에 의해 +2 가 계산된 값을 출력한 예이다.


제어문 ㆍif($strin == 'abcd') echo 'ok'; // 만약, $strin 변수의 값이 'abcd' 이면 'ok' 라고 출력하라. ㆍfor($i=1; $i<=10; $i++) echo 'ok'; // $i 가 10 이 될때까지 1씩 증가하면서 'ok' 를 반복 출력하라. ㆍwhile($i < 10){ echo 'ok'; $i=$i+1; } // $i 가 10 이 될때까지 1씩 증가하면서 'ok' 를 반복 출력하라. ㆍforeach($myfamily as $value) echo $value; // 배열분수 $myfamily 의 요소들을 차례대로 출력하라.
FORM 문서 => PHP변수 생성 html 의 Form 양식에서 입력한 데이타가 php 파일에서 변수로 생성되는 과정을 살펴보자.
 form.html 소스 show.php 소스 폼 전송후 출력된 부라우저 화면
<form method=post action='./show.php'>
  이름 <input type=text name=myname value='홍길동'>
  별명 <input type=text name=mynick value='홍멍구'>
  메일 <input type=text name=mymail value='abc@red.com'>
  <input type=submit value='전송'>
</form>
나의 신상정보입니다.<br>
1. 내 이름은: <?=$myname?><br>
2. 내 별명은: <?=$mynick?><br>
3. 내 메일은: <?=$mymail?><br>
나의 신상정보입니다.
1. 내 이름은: 홍길동
2. 내 별명은: 홍멍구
3. 내 메일은: abc@red.com
[보충설명] 위와 같이 폼문서(html) 내의 입력필드 name 값이 php 파일에선 변수명이 되어 생성된다.
  또 $_POST['myname'] , $_POST['mynick'] , $_POST['mymail'] 형태의 배열변수로도 동시 생성된다.

링크URL(GET) => PHP변수 생성 http://abcd.co.kr/show.php?myname=홍길동 과 같은 링크URL 에 의한 GET 방식의 변수생성을 살펴보자.
 link.html 소스 show.php 소스 링크 클릭후 출력된 부라우저 화면
<a href="/show.php?myname=홍길순&mynick=길순이&mymail=qwe@fgc.net">클릭하세요</a>
나의 신상정보입니다.<br>
1. 내 이름은: <?=$myname?><br>
2. 내 별명은: <?=$mynick?><br>
3. 내 메일은: <?=$mymail?><br>
나의 신상정보입니다.
1. 내 이름은: 홍길순
2. 내 별명은: 길순이
3. 내 메일은: qwe@fgc.net
[보충설명] 위와 같이 링크URL에 실려진 name 값이 php 에선 변수명이 되어 생성된다.
또 $_GET['myname'] , $_GET['mynick'] , $_GET['mymail'] 형태의 배열 변수로도 사용할 수 있다.



출처 - http://www.technote.co.kr/php/technote1/home.php






●php에서 주석은 '/*   */' 또는 '//'을 사용



●php에서는 다른 프로그램과 달리 변수이름 앞에 '$"를 붙인다
ex)
$a=2;



●php는 c언어처럼 사용할 변수를 미리 선언할 필요없고, 필요한 곳에서 바로 사용하면 된다.



●var_dump()함수 - 변수에 대한 정보 표시
ex)
$a=100;
var_dump($a);



●문자열에 '$'을 표시하려면 $앞에 '\'을 붙인다

print "$a";          //변수값를 표시
print $a;            //변수값를 표시
print "a";           //문자열을 표시
print "\$a";      //$a가 표시



" "(더블 퀘테이션)안에 변수명을 사용하면 변수에 저장도니 값이 표시
ex)
$a="$b";   //$b의값이 $a에 저장됨



' '(싱글 퀘테이션)안에 변수명을 사용하면 그대로 문자열로 취급됨
ex)
$a='$b';   //"$b"라는 문자열이 $a에 저장됨


출처 - http://hyunssssss.tistory.com/entry/PHP-%EB%AC%B8%EB%B2%95-%EA%B0%84%EB%8B%A8-%EC%A0%95%EB%A6%AC1






* 화살표 -> 의미

자바에서 클래스 맴버 변수와 같다.

String.indexOf()
String->indexOf()

$aa->adf();

$aa 는 인스턴스 입니다. 

인스턴스의 멤버 함수 또는 변수를 호출 또는 참조하기 위하여 -> 를 사용합니다. 

다른 언어의 . 연산자를 사용하지 못하는 이유는 php 에서는 . 는 문자열 결합에 사용되기 때문입니다.


출처 - http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_function&wr_id=282635&sca=&sfl=wr_name&stx=%BC%DB%C8%BF%C1%F8&sop=and&page=23

'Development > PHP' 카테고리의 다른 글

php - foreach 문  (0) 2013.06.19
php - 유용한 함수  (0) 2013.05.23
php - iphone, android detect  (0) 2013.05.16
php - syslog  (0) 2013.05.15
php - PDT 설치  (0) 2013.05.13
Posted by linuxism
,


iptables -I INPUT -p tcp -s 1.1.1.0/24 -j ACCEPT
1.1.1.x 대역을 사용하는 모든 아이피에 모든 tcp 포트를 연다


iptables -I INPUT -p tcp --dport 3306 -s 1.1.1.0/24 -j ACCEPT
1.1.1.x 대역을 사용하는 모든 아이피에 3306 tcp 포트를 연다

iptables -I INPUT -p tcp --dport 80 -j ACCEPT
모든 아이피 대역에 대하여 tcp 80포트를 연다

iptables -D INPUT -p tcp --dport 3306 -s 2.2.2.2 -j ACCEPT 
방화벽에서 해당 조건을 삭제
(추가와 같은 커맨드에 -D만 다름)


service iptables save
설정값 저장

service iptables restart
iptables 재시작


iptables 정책 테이블

vi /etc/sysconfig/iptables

iptables 정책 수정하기
vi /etc/sysconfig/iptables-config 




출처 - http://happykns.tistory.com/198                            


저작자 표시 비영리 동일 조건 변경 허락








출처 : http://www.homepage.montana.edu/~unixuser/031705/iptables.fedora.html

# /etc/sysconifg/iptables
# /etc/init.d/iptables restart after edit
# Based on Martin's workstation iptables ruleset
# My IP: 172.16.1.100
#
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
# Handle loopback addresses
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
# Allow outbound packets if state related, and inbound if established
-A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
-A INPUT -m state --state ESTABLISHED -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Drop if no flags set or all flags set
-A INPUT -p tcp -s 0/0 -d 172.16.1.100 --tcp-flags ALL NONE -j DROP
-A INPUT -p tcp -s 0/0 -d 172.16.1.100 --tcp-flags ALL ALL -j DROP
# Drop stealth scans
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags SYN,FIN SYN,FIN
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags SYN,RST SYN,RST
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,RST FIN,RST
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags ACK,FIN FIN
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags ACK,URG URG
# Allow port 25.  SMTP
-A INPUT -s 0/0 -p tcp -m tcp --dport 25 -j ACCEPT
# Allow & log SSH in from ben, jerry, and MSU 
-A INPUT -p tcp --syn --dport 22 -j LOG --log-prefix "SSH SYN "
-A INPUT -s 172.16.1.11 -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -s 172.16.1.12 -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -s 153.90.0.0/16 -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
# Allow VNC in from MSU
# -A INPUT -s 152.90.0.0/16 -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
# Allow ICMP pings to the world, drop all others
-A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -s 0/0 -d 172.16.1.100 -j DROP
# Need to allow BackupServ1 in for Legato backups
 -A INPUT -s 172.16.1.27 -m state --state NEW -m tcp -p tcp --dport 514 -j ACCEPT
 -A INPUT -s 172.16.1.27 -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
 -A INPUT -s 172.16.1.27 -m state --state NEW -m tcp -p tcp --dport 7937 -j ACCEPT
 -A INPUT -s 172.16.1.27 -m state --state NEW -m tcp -p tcp --dport 7938 -j ACCEPT
# Allow X in from FileServ1 for handling user accounts
-A INPUT -s 172.16.1.104 -m state --state NEW -m tcp -p tcp --dport 6000 -j ACCEPT
# Allow access to my webserver from anywhere within MSU's domain. 
-A INPUT -s 153.90.0.0/16 -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# Allow samba access for Ben
-A INPUT -s 172.16.1.11 -p tcp -m tcp --dport 137 --syn -j ACCEPT
-A INPUT -s 172.16.1.11 -p tcp -m tcp --dport 138 --syn -j ACCEPT
-A INPUT -s 172.16.1.11 -p tcp -m tcp --dport 139 --syn -j ACCEPT
-A INPUT -s 172.16.1.11 -p udp -m udp --dport 137 -j ACCEPT
-A INPUT -s 172.16.1.11 -p udp -m udp --dport 138 -j ACCEPT
-A INPUT -s 172.16.1.11 -p udp -m udp --dport 139 -j ACCEPT
# Allow samba nfs access for Jerry
# This assumes that mountd is running on port 33333 only.  
# (this can be forced by adding "MOUNTD_PORT=33333" just before first occurance of
# MOUNTD_PORT in /etc/init.d/nfs)
-A INPUT  -s 172.16.1.12 -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A INPUT -s 172.16.1.12 -p tcp -m tcp --dport 111 -j ACCEPT
-A INPUT -s 172.16.1.12 -p udp -m udp --dport 111 -j ACCEPT
-A INPUT -p tcp -m tcp -s 172.16.1.12 --dport 2049 -j ACCEPT
-A INPUT -p udp -m udp -s 172.16.1.12 --dport 2049 -j ACCEPT
-A INPUT -s 172.16.1.12 -p tcp -m tcp --dport 33333 -j ACCEPT
-A INPUT -s 172.16.1.12 -p udp -m udp --dport 33333 -j ACCEPT
#
COMMIT







출처 : http://zenhat.org/2011/04/21/how-to-iptables-example/


This is an example script for iptables

#!/bin/sh
#
# IP addresses
SERVER_IP='<your_server_ip>'
DNS1_SERVER_IP='<primary_dns_server_ip>'
SMTP_SERVER_IP='<smtp_server_ip>'
BACKUP_SERVER_IP='<amanda_server_ip>'
MONITOR_SERVER_IP='<zenoss_server_ip>'

# Subnets
LAN_SUBNET='<your_lan_subnet>'

# Flushing all chains
iptables -F
iptables -X

# Setting default filter policy
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP


# Allow unlimited traffic on loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Allow incoming ssh
iptables -A INPUT -p tcp -s 0/0 -d ${SERVER_IP} –sport 513:65535 –dport 22 -m state –state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT -p tcp -s 0/0 -d ${SERVER_IP} –sport 513:65535 –dport 22 -m state –state NEW -m recent –set
iptables -I INPUT -p tcp -s 0/0 -d ${SERVER_IP} –sport 513:65535 –dport 22 -m state –state NEW -m recent –update –seconds 600 –hitcount 3 -j LOG –log-prefix ‘ERR: SSH hitcount exceed: ‘
iptables -I INPUT -p tcp -s 0/0 -d ${SERVER_IP} –sport 513:65535 –dport 22 -m state –state NEW -m recent –update –seconds 600 –hitcount 4 -j DROP
iptables -A OUTPUT -p tcp -s ${SERVER_IP} -d 0/0 –sport 22 –dport 513:65535 -m state –state ESTABLISHED -j ACCEPT

# Allow incoming http/https
iptables -A INPUT -p tcp -s 0/0 -d ${SERVER_IP} –sport 1024:65535 -m multiport –dports 80,443 -m state –state NEW,ESTABLISHED -j ACCEPT

# Allow incoming svn
iptables -A INPUT -p tcp -s 0/0 -d ${SERVER_IP} –sport 1024:65535 –dport 3690 -m state –state NEW,ESTABLISHED -j ACCEPT

# Allow incoming snmp from monitoring server
iptables -A INPUT -p udp -s ${MONITOR_SERVER_IP} -d ${SERVER_IP} –sport 1024:65535 –dport 161 -m state –state NEW,ESTABLISHED -j ACCEPT

# Allow incoming mysql for monitoring(zenoss) and backups(mysql-zrm via socket)
iptables -A INPUT -p tcp -s ${MONITOR_SERVER_IP} -d ${SERVER_IP} –sport 1024:65535 -m multiport –dports 3306,25300 -m state –state NEW,ESTABLISHED -j ACCEPT

# Allow outgoing dns lookups
iptables -A OUTPUT -p udp -s ${SERVER_IP} -d ${DNS1_SERVER_IP} –sport 1024:65535 –dport 53 -j ACCEPT

 # Allow outgoing ntp syncs(only privilege port)
iptables -A OUTPUT -p udp -s ${SERVER_IP} -d 0/0 –sport 123 –dport 123 -m state –state NEW,ESTABLISHED -j ACCEPT

# Allow incoming/outgoing icmp within the subnet
iptables -A OUTPUT -p icmp -s ${SERVER_IP} -d ${LAN_SUBNET} -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp -s ${LAN_SUBNET} -d ${SERVER_IP} -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT

# Allow amanda – amdump, amcheck
iptables -A INPUT -p tcp -s ${BACKUP_SERVER_IP} -d ${SERVER_IP} –dport 10080 -m state –state NEW,ESTABLISHED -j ACCEPT

# Allow amanda – amrecover
iptables -A OUTPUT -p tcp -s ${SERVER_IP} -d ${BACKUP_SERVER_IP} –dport 10080 -m state –state NEW,ESTABLISHED -j ACCEPT

# Allow outgoing ssh within the subnet
iptables -A OUTPUT -p tcp -s ${SERVER_IP} -d ${LAN_SUBNET} –sport 513:65535 –dport 22 -m state –state NEW -j ACCEPT

# Allow outgoing http/s (for yum)
iptables -A OUTPUT -p tcp -s ${SERVER_IP} -d 0/0 –sport 1024:65535 -m multiport –dports 80,443 -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT

# Allow outgoing ftp (for yum)
iptables -A OUTPUT -p tcp -s ${SERVER_IP} -d 0/0 –sport 1024:65535 –dport 21 -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT

# Allow outgoing smtp
iptables -A OUTPUT -p tcp -s ${SERVER_IP} -d ${SMTP_SERVER_IP} –sport 1024:65535 –dport 25 -m state –state NEW,ESTABLISHED -j ACCEPT

# Allow outgoing svn
iptables -A OUTPUT -p tcp -s ${SERVER_IP} -d 0/0 –sport 1024:65535 –dport 3690 -m state –state NEW,ESTABLISHED -j ACCEPT

# Allow all previously established incoming/outgoing connections
iptables -A INPUT -s 0/0 -d ${SERVER_IP} -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -s ${SERVER_IP} -d 0/0 -m state –state ESTABLISHED,RELATED -j ACCEPT

# Make sure nothing comes or goes out
iptables -A INPUT -j LOG –log-level 4 –log-prefix ‘ERR: INPUT drop: ‘
iptables -A INPUT -j DROP
iptables -A OUTPUT -j LOG –log-level 4 –log-prefix ‘ERR: OUTPUT drop: ‘
iptables -A OUTPUT -j DROP

# Save
/sbin/service iptables save

# List rules
iptables -L -v







출처 : http://www.vmadmin.co.uk/linux/44-redhat/159-linuxiptables


###########
## IPTABLES FIREWALL CONFIGURATION
###########

*filter

##ALLOW loopback interface
-A INPUT -i lo -j ACCEPT

##ALLOW connections that originate from this server
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

##Block
-A INPUT -s 61.225.15.0/24 -j DROP
-A INPUT -s 118.167.0.0/16 -j DROP
-A INPUT -s 114.45.0.0/16 -j DROP
-A INPUT -s 121.96.0.0/18 -j DROP

##Restrictions
#-A INPUT -p icmp -m state --state NEW -m recent --update --seconds 60 --hitcount 10 --name ICMP -j LOG  --log-prefix "**IPTABLES**ICMP DENY**"
#-A INPUT -p icmp -m state --state NEW -m recent --update --seconds 60 --hitcount 10 --name ICMP -j DROP
#-A INPUT -p icmp -m state --state NEW -m recent --set --name ICMP -j ACCEPT

#-A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 2 --name SSH -j LOG --log-prefix "**IPTABLES**SSH DENY**"
#-A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 2 --name SSH -j DROP
#-A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH -j ACCEPT

##ALLOW ONLY 192.168.0.0 network to the following ports
-A INPUT -s 192.168.0.0/255.255.0.0 -p tcp --dport 22 -j ACCEPT

##ALLOW ANY to the following ports
#-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -p tcp --dport 25 -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

##ALLOW specific to the following ports
#-A INPUT -s 192.168.5.1 -p tcp --dport 995 -j ACCEPT
-A INPUT -s 192.168.5.1 -p tcp --dport 993 -j ACCEPT
-A INPUT -s 192.168.5.1 -p tcp --dport 3306 -j ACCEPT

##ALLOW icmp
#-A INPUT -p icmp --icmp-type any -j ACCEPT
#-A INPUT -p icmp --icmp-type echo-request -m limit --limit 20/s --limit-burst 5 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type echo-request -j ACCEPT

##LOGGING
#-A INPUT -j LOG --log-tcp-options --log-ip-options

##DEFAULT set DROP as default rule for each chain
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT DROP

COMMIT








출처 : http://controlpanelblog.com/?p=317&upm_export=pdf

Common iptables command, cheatsheet

#!/bin/sh
# File: /etc/rc.d/rc.firewall
# Immediately log and drop any known abusive IPs
iptables -A INPUT -p tcp -s 87.118.104.44 -m limit --limit 1/minute  --limit-burst 10  -j LOG --log-prefix "[DROPPED_NODE]" --log-level 4
iptables -A INPUT -p tcp -s 87.118.104.44 -j DROP

# Allow from any to any on 127.0.0.1/32
iptables -A INPUT -s 127.0.0.1/32 -j ACCEPT
iptables -A OUTPUT -s 127.0.0.1/32 -j ACCEPT

# Track connection state
iptables -A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m state --state NEW,ESTABLISHED -j ACCEPT

# Allow all foreign IPs to access ports 443 and 80
iptables -A INPUT -p TCP --dport 443 -j ACCEPT
iptables -A INPUT -p TCP --dport 80 -j ACCEPT

# Allow access from a specified foreign IP
# to this server's port 8080
iptables -A INPUT -p TCP -s 172.16.88.2/32 --dport 8080 -j ACCEPT

# Allow access from a specified foreign IP
# to any port listening on this server
iptables -A INPUT -p TCP -s 172.13.88.3/32  -j ACCEPT

# Drop incoming UDP packets on port 137 and 138 without logging
iptables -A INPUT -p UDP --dport 137 -j DROP
iptables -A INPUT -p UDP --dport 138 -j DROP

# Accept all other incoming UDP packets
iptables -A INPUT -p UDP -j ACCEPT

# Log and Drop everything else
iptables -A INPUT -j LOG  -m limit --limit 1/minute   --limit-burst 10 --log-prefix "[DROPPED_NODE]" --log-level 4
iptables -A INPUT -j DROP

# View all rules
iptables -L -v

# View INPUT rules
iptables -L INPUT -nv

# View max tracked connections
cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max

# Set max tracked connections
# add the following line to rc.local if sysctl.conf doesn't exist
echo 128000 >  /proc/sys/net/ipv4/netfilter/ip_conntrack_max

# View Current HASHSIZE
cat /proc/sys/net/ipv4/netfilter/ip_conntrack_buckets








출처 : http://networking.ringofsaturn.com/Unix/iptables.php



IPTables Example Config

#flush tables
/usr/sbin/iptables -F

# DUMP
/usr/sbin/iptables -N DUMP > /dev/null
/usr/sbin/iptables -F DUMP
/usr/sbin/iptables -A DUMP -p tcp -j LOG
/usr/sbin/iptables -A DUMP -p udp -j LOG
/usr/sbin/iptables -A DUMP -p tcp -j REJECT --reject-with tcp-reset
/usr/sbin/iptables -A DUMP -p udp -j REJECT --reject-with icmp-port-unreachable
/usr/sbin/iptables -A DUMP -j DROP

# Stateful table
/sbin/iptables -N STATEFUL > /dev/null
/sbin/iptables -F STATEFUL
/sbin/iptables -I STATEFUL -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A STATEFUL -m state --state NEW -i ! eth0 -j ACCEPT
/sbin/iptables -A STATEFUL -j DUMP

# loopback rules
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT

# drop reserved addresses incoming (these are reserved addresses
# but may change soon
/sbin/iptables -A INPUT -i eth0 -s 0.0.0.0/8 -j DUMP
/sbin/iptables -A INPUT -i eth0 -s 1.0.0.0/8 -j DUMP
/sbin/iptables -A INPUT -i eth0 -s 2.0.0.0/8 -j DUMP
/sbin/iptables -A INPUT -i eth0 -s 5.0.0.0/8 -j DUMP
/sbin/iptables -A INPUT -i eth0 -s 7.0.0.0/8 -j DUMP
/sbin/iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j DUMP
/sbin/iptables -A INPUT -i eth0 -s 23.0.0.0/8 -j DUMP
/sbin/iptables -A INPUT -i eth0 -s 27.0.0.0/8 -j DUMP
/sbin/iptables -A INPUT -i eth0 -s 31.0.0.0/8 -j DUMP
/sbin/iptables -A INPUT -i eth0 -s 36.0.0.0/8 -j DUMP
/sbin/iptables -A INPUT -i eth0 -s 39.0.0.0/8 -j DUMP
/sbin/iptables -A INPUT -i eth0 -s 41.0.0.0/8 -j DUMP
/sbin/iptables -A INPUT -i eth0 -s 42.0.0.0/8 -j DUMP
/sbin/iptables -A INPUT -i eth0 -s 58.0.0.0/8 -j DUMP
/sbin/iptables -A INPUT -i eth0 -s 59.0.0.0/8 -j DUMP
/sbin/iptables -A INPUT -i eth0 -s 60.0.0.0/8 -j DUMP
/sbin/iptables -A INPUT -i eth0 -s 127.0.0.0/8 -j DUMP
/sbin/iptables -A INPUT -i eth0 -s 169.254.0.0/16 -j DUMP
/sbin/iptables -A INPUT -i eth0 -s 172.16.0.0/12 -j DUMP
/sbin/iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j DUMP
/sbin/iptables -A INPUT -i eth0 -s 197.0.0.0/8 -j DUMP
/sbin/iptables -A INPUT -i eth0 -s 224.0.0.0/3 -j DUMP
/sbin/iptables -A INPUT -i eth0 -s 240.0.0.0/8 -j DUMP

#set iptables to allow everything from my work network
/usr/sbin/iptables -A INPUT -i eth1 -p all -s 160.86.0.0/16 -j ACCEPT
/usr/sbin/iptables -A INPUT -i eth1 -p all -j DROP

# allow certain inbound ICMP types (ping, traceroute..)
/sbin/iptables -A INPUT -i eth0 -p icmp --icmp-type destination-unreachable -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p icmp --icmp-type time-exceeded -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p icmp --icmp-type echo-reply -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -j ACCEPT

# Drop all packets to port 111 except those from localhost
/usr/sbin/iptables -A INPUT -s !127.0.0.0/8 -p tcp --dport 111 -j DROP

# kill off identd quick 
/sbin/iptables -A INPUT -p tcp -i eth0 --dport 113 -j REJECT --reject-with tcp-reset

# sfs
/sbin/iptables -A INPUT -p tcp -i eth0 --dport 4  -j ACCEPT
# ftp
/sbin/iptables -A INPUT -p tcp -i eth0 --dport 21 -j ACCEPT
/sbin/iptables -A INPUT -p udp -i eth0 --dport 21 -j ACCEPT
# ssh
/sbin/iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -p udp -i eth0 --dport 22 -j ACCEPT
# www
/sbin/iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -p udp -i eth0 --dport 80 -j ACCEPT
# https
/sbin/iptables -A INPUT -p tcp -i eth0 --dport 443 -j ACCEPT
/sbin/iptables -A INPUT -p udp -i eth0 --dport 443 -j ACCEPT

# Don't log route packets coming from routers - too much logging
/sbin/iptables -A INPUT -p udp -i eth0 --dport 520 -j REJECT

# Don't log smb/windows sharing packets - too much logging
/sbin/iptables -A INPUT -p tcp -i eth0 --dport 137:139 -j REJECT
/sbin/iptables -A INPUT -p udp -i eth0 --dport 137:139 -j REJECT





----------------------------------------
////////////////////////////////////////
----------------------------------------



Iptables Cheatsheet
http://www.guyrutenberg.com/2009/02/26/iptables-cheatsheet/


Blocking specific IPs
iptables -I INPUT -s "207.58.140.12" -j DROP

Blocking a range of IPs (IP block)
iptables -I INPUT -s "207.58.140.0/24" -j DROP

Deleting rules
iptables -D INPUT -s "207.58.140.12" -j DROP



CentOS / Redhat Iptables Firewall Configuration Tutorial
http://www.cyberciti.biz/faq/rhel-fedorta-linux-iptables-firewall-configuration-tutorial/


Iptables Config File
/etc/sysconfig/iptables


Display Default Rules
iptables --line-numbers -n -L


Turn On Firewall
chkconfig iptables on
service iptables start



IPTables
http://www.centos.org/docs/5/html/Deployment_Guide-en-US/ch-iptables.html



IPTables를 이용한 VPN 관리자 그룹별 접근 제어
http://croshine.blog.me/50099294534


IPTables
http://wiki.centos.org/HowTos/Network/IPTables



Example iptables firewall
http://www.brandonhutchinson.com/iptables_fw.html



25 Most Frequently Used Linux IPTables Rules Examples
http://www.thegeekstuff.com/2011/06/iptables-rules-examples/




 


 

 

 

2013.2.7 추가함

 

 

iptables 중앙관리 오픈소스

 

예전에 참깐 찾아본바로는 2개정도가 있습니다.

물론 puppet같은 것과 연동하는 방안도 있겠지만, 우리 회사는 경우수가 많을테니...

 

 

1. Firelet, 파이썬 기반

http://www.firelet.net/

아직 정식 릴리즈는 없고 https://github.com/FedericoCeratto/firelet 에서 배포됩니다.

 

 

2. Firewall Builder, GUI제공, GPL 라이센스

http://www.fwbuilder.org/

 

메뉴얼에 보면 정책 배포기능이 있습니다.

14.6.1. Using clusters to manage firewall policies on multiple servers

http://www.fwbuilder.org/4.0/docs/users_guide5/tricks.html#cluster_server_fw_synch



출처 - http://blog.naver.com/PostView.nhn?blogId=junix&logNo=80132536243&redirect=Dlog&widgetTypeCall=true

'System > Linux' 카테고리의 다른 글

linux - RPM(RPM Package Manager)  (0) 2013.06.07
linux - vino-server control  (0) 2013.05.20
linux - webmin  (0) 2013.05.17
fedora - virtualbox installation  (0) 2013.05.02
linux - systemd, runlevel change  (0) 2013.04.30
Posted by linuxism
,

linux - webmin

System/Linux 2013. 5. 17. 07:45


설치 

# rpm -U webmin-1.630-1.noarch.rpm


접속

http://localhost:10000

'System > Linux' 카테고리의 다른 글

linux - vino-server control  (0) 2013.05.20
linux - iptables 예제  (0) 2013.05.17
fedora - virtualbox installation  (0) 2013.05.02
linux - systemd, runlevel change  (0) 2013.04.30
linux - YUM(Yellow dog Updater, Modified)  (0) 2013.04.30
Posted by linuxism
,