Computer/linux2009/05/24 15:24

Bridge Device 생성
]# vi /etc/sysconfig/network-script/ifcfg-br0
DEVICE=br0
ONBOOT=on
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.1.2
NETMASK=255.255.255.0
USRCTL=no

물리 Device 설정
]# vi /etc/sysconfig/network-script/ifcfg-ethx
DEVICE=ethx
ONBOOT=yes
BOOTPROTO=none
BRIDGE=br0
USRCTL=no

ip_forward 설정
]# vi /etc/sysctl.conf
net.ipv4.ip_froward = 1

ipforward 적용
]# sysctl -p

ipforward 적용 확인
]# cat /proc/sys/net/ip_forard
1

network 적용
]# service network restart

Bridge 적용 확인
]# brctl show
bridge name    bridge id                STP enabled    interfaces
br0                 8000.0800271b0b5f    no                   eth1
                                                                         eth0



저작자 표시 비영리 동일 조건 변경 허락
Posted by LEtham
TAG bridge, Linux

댓글을 달아 주세요

Computer/linux2009/05/14 16:39
        테스트 환경
       os : CentOS 5.3


]# iptables -A INPIT -p tcp -m mport --sport 22,80 -j ACCEPT
..... 중략 .............'mport':/lib/iptables/libipt_mport.so: cannot open shared object ........이하 생락......

]# iptables -A INPIT -p tcp -m multiport --sport 22,80 -j ACCEPT
 .......... 정상 작동...........

분명 man 페이지에는 mport 라고 나와있었다.

CentOS 기본 패키지가 문제인줄 알고 커널, iptables 다시 설치할뻔했다 ㅠㅠ

검색만 했음 나왔을 내용인데 주의 부족인듯 싶다;;;;;

mport 는 별로 많이 사용안하는 듯하다.
저작자 표시 비영리 동일 조건 변경 허락
Posted by LEtham

댓글을 달아 주세요

  1. iptables...아웅 귀찮음...

    2009/12/25 10:53 [ ADDR : EDIT/ DEL : REPLY ]

Computer/linux2009/01/07 14:40
 예전에 쓴 글중에 php 로 제작되있는 ssh 불법 접속시도 차단 스크립트를 올린적 있는데.

 모든 서버에 php가 올라가있는것도 아니고  php를 올리는것도 그래서 . bash shell 로 만들어 보았다.

#!/bin/bash

#현재시간에서 10분전 시간을 구한다.
ten_date_ago=`date -d "10 min ago" +"%d %H:%M"`

# ten_date_ago 변수에서 시간만 추출한다.

ten_min=`echo ${ten_date_ago} | awk '{print $2}'`

# ten_date_ago 변수에서 날짜만 추출한다.

ten_day=`echo ${ten_date_ago} | awk '{print $1}'`


# 로그에 입력할 시간을 변수에 입력한다.
now_date=`date +"%D -- %R"`


# awk 를 이용하여 불펍 접속 시도된 아이피를 추출한다.
# centos 5.2 기준으로 시스템에 등록되지 않은 ID 로 접속시도를 할경우 invalid 를 출력하여 예외처리
# 굵게 표시된 10 으로 접속 시도 차단 을 결정한다.
ip_count=`awk '$2=='${ten_day}' && $3 >= "'${ten_min}'" && $6 == "Failed" && $7 == "password" && $NF == "ssh2" {if($9 == "invalid") print $13; else print $11}' /var/log/secure | sort | uniq -c | awk '$1 > 10 {print $2}'`

# 차단 된 IP를 별도의 로그에 저장한다.
if [ "${ip_count}" ]
then
echo "########################
 ## ${now_date} ##
########################" >> /data/log/Illegal_ip.log
echo $ip_count >> /data/seols/log/Illegal_ip.log
fi

# 난 그냥 iptables 를 이용해서 전부 차단해버린다 ㅋㅋ
for i in ${ip_count}
do
      iptables -A INPUT -s ${i} -j DROP
done

exit 0
#끝..............


 추출 부분에서 아직 완벽하지는 않지만 그냥 대충 추출은 가능한것으로 보인다. 월 비교를 하지 않아서 좀 거시기 하지만. syslog 로 어짜피 분활되니깐 그건 신경안쓰기로 하고 별도의 로그에 카운트까지 저장하고 싶지만 한줄 더써주는게 귀찮아서 대충 저래 쓰다가 언젠간 수정해야지......

이글 보시고 수정할점이나 더 좋은 방법이 있으신분은 알려주세요 ^^


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

댓글을 달아 주세요

  1. 오...님 좀 짱인듯...
    배껴감...

    2009/04/10 13:57 [ ADDR : EDIT/ DEL : REPLY ]

Computer/linux2008/11/19 16:41
rpm2cpio XXXXX.rpm | cpio -ivd

출처.
http://kldp.org/node/42976
Posted by LEtham
TAG Linux, RPM

댓글을 달아 주세요

  1. 난 이거 때문에 rpm 싫어 하는 거임...뭔가 좀 거시기니 한 듯 한 느낌 이랄까...

    2009/04/10 14:02 [ ADDR : EDIT/ DEL : REPLY ]

Computer/linux2008/10/31 16:26
HIST 변수의 적용은 /etc/profile 파일에 아래와 같은 라인을 추가합니다.

# Add timestamp to .bash_history
HISTTIMEFORMAT="%Y-%m-%d_%H:%M:%S\ "
export HISTTIMEFORMAT

위와 같이 /etc/profile 파일에 추가 후 source /etc/profile 또는 ssh 로 재로그인 후 부터는
history 명령어 입력시 Column 2 에 연/월/일/시/분/초 의 시간 정보를 확인할 수 있습니다.

[root@rootnya root]# history

단, bash-3.0-alpha 이상의 bash 부터 HISTTIMEFORMAT 변수를 지원합니다.
이전 버전의 bash 는 위 이상의 버전으로 업데이트 후 부터 지원이 됩니다.

크리티컬한 분석 또는 시스템 레포팅 작성시 유용한 정보를 하나 더 얻을 수 있는 팁입니다

Posted by LEtham

댓글을 달아 주세요

Computer/linux2008/06/09 13:07

-A PREROUTING -i eth0 -p tcp -m tcp --dport 8908 -j REDIRECT --to-ports 22


내부에서의 포트 포워딩.........

Posted by LEtham

댓글을 달아 주세요

Computer/linux2008/05/16 01:18

RHEL5를 깔았다
리눅스 한글 기본폰트가 별루 맘에 안들어서 영어를 기본언어로 선택해서 설치했는데.
X-window 에서 한글이 깨졌다.
일단 웹은 한글 폰트 (fonts-korean) 패키지 설치로 해결했는데 .
X-Window 자체 에서 한글을 지원 못하는건지... 제목표시줄이 아리따운 네모 표시로 나왔다.
그래서 i18n 파일을 수정하기로 했다.

#vi /etc/sysconfig/i18n
############# 원본 내용 ################
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
#####################################
############# 수정 내용 ###############
LANG="en_US.UTF-8"
SUPPORTED="en_US.UTF-8:en_US:en:ko_KR.UTF-8:ko_KR.eucKR:ko_KR:ko"
# 추가 부분  영어 부분 혹시 몰라서 추가했고 언어셋에 한글한글이란 한글은 모두 넣어버렸다 ;
SYSFONT="latarcyrheb-sun16"
####################################

X-Window 재 시작 ! 한글 정상 작동 확인 완료 ......

내용 끝~!

Posted by LEtham
TAG Linux, 한글

댓글을 달아 주세요

Computer/linux2007/12/27 14:38

 2틀 동안 마운트 하고 복사하고 iso 파일만 죽어라 만들었다 ;;;
처음에는 스크립트 생각은 하지않고 . kldp 에 있는 문서를 보고 만들었었다.
근데 그게 dvd로 만들어지긴하는데 . 부팅까지도 되는데 . 설치가 안되더라 . 그래서 하우투 문서를 중심으로 여기저기 찾아봤는데 . 되는게 없는건지 내가 잘못한건지 안되더라 . 젠장.
여튼 이레저레 해서 . 찾은게 dvd제작 스크립트 . google 상단에 검색되는데 왜 첨부터 못본걸까 !
젠장 ;.;;;;;

처음 참조한 URL http://kldp.org/node/62513
스크립트 URL http://www.brandonhutchinson.com/Creating_a_RHEL_bootable_DVD_ISO.html

소스 내용 보기


실행 방법
# ./mkdvdiso.sh [CD iso 이미지 경로] [DVD iso 만들어질 경로]

%% 참고 %%
cd iso 이미지를 마운트하고 복사를 할때 ~/mkrhdvd 라는 경로로 저장이 된다. 혹시 / 디렉토리에 저장이 공간이 없으면 위 스크립트 내용을 수정하여야 한다.
Posted by LEtham

댓글을 달아 주세요

  1. 비밀댓글 입니다

    2007/12/27 15:24 [ ADDR : EDIT/ DEL : REPLY ]
  2. 배포판 제작 기초 가이드 제작 완성 하였음...

    2009/04/10 14:07 [ ADDR : EDIT/ DEL : REPLY ]

Computer/linux2007/11/17 16:44

이 스크립트는 리눅스에서 기본적으로 제공하는 로그를 이용하여 10분 간격으로 로그를 추출하고

20회 이상 Fail Password를 발생시킨 아이피를 Tcp-Wrapper(/etc/hosts.deny)에 등록시켜

더이상 해킹 시도를 방지한다.


Caution : 10분이내에 뚫리면 어찌할 수 없음... =,.=;


ps. 스크립트의 제작의 편리를 위해서 중복 등록확인은 없음... ^^;


기본환경 : 리눅스, PHP Shell Script

작성언어 : PHP


동작원리

1. /var/log/secure 파일에서 10분대의 로그를 추출한다.

  예 : 현재시간이 18:25:00 이라면 추출하는 시간은 18:10~19분을 추출한다.

2. 아이피 별로 갯수를 통계낸다.

3. 한 아이피에서 20회 이상 sshd로 비밀번호가 틀렸다면 /etc/hosts.deny에 "ALL:아이피주소"의

   형태로 등록된다.

4. xinetd 데몬을 재시작한다.

5. 등록한 아이피 목록을 지정된 메일 주소로 발송한다.


실행방법

./secure_analysis.sh sshd


crontab 등록시

*/10 * * * * /경로명/secure_analysis.sh sshd


소스

#!/usr/local/bin/php
<?
// 개요
// secure log 를 분석해서 sshd로 불법적인 접속을 시도하는 IP를 /etc/hosts.deny에 등록하는 작업을 한다.

// Log Example : Jun  5 07:49:18 p1 sshd[1110]: Failed password for root from 211.114.190.196 port 52944 ssh2
// 추출 명령어 : grep "Jun  7 09" secure | grep "sshd" | grep "Failed password" | awk -F "from" '{print $2}' | awk '{print $1}'

// 지정된 입력값을 입력하지 않으면 실행하지 않는다.

if($argc > 1)
{
 $RECEIVE_EMAIL = "수신 메일주소";
 $Hostname = trim(exec("hostname"));

 $Date = date("Y-m-d H:i:s");

 // 10분전 분을 구한다.
 $TenAgo = substr(date("i",mktime (date("H"), date("i")-10, 0, date("m"), date("d"), date("Y"))),0,1);

 if(!file_exists("/service/log_temp"))
 {
  mkdir("/service/log_temp");
 }

    if(!file_exists("/service/log_temp/secure_analysis.log"))
    {
        exec("touch /service/log_temp/secure_analysis.log");
    }

 // 날짜에 따라서 검색어의 공백처리가 틀린 관계로 ... =,.=;
 $DayLength = strlen(date("j"));

 if($DayLength == 2)
 {
  $now = date("M j H:");
 }
 else
 {
  $now = date("M  j H:");
 }

 if($argv[1] == "sshd")
 {
  exec("grep \"$now$TenAgo\" /var/log/secure | grep \"sshd\" | grep \"Failed password\" | awk -F \"from\" '{print \$2}' | awk '{print \$1}' > /service/log_temp/secure_log_".$argv[1]);
 }

 $Fail_IP_File = file("/service/log_temp/secure_log_".$argv[1]);

 for($i=0; $i < count($Fail_IP_File); $i++)
 {
  $Fail_IP_File[$i] = trim($Fail_IP_File[$i]);
 }

 $Fail_Statistics = array_count_values($Fail_IP_File);

 exec("echo \"\" > /service/log_temp/DenyIP.list_".$argv[1]);

 while (list ($Ip, $Count) = each ($Fail_Statistics))
 {

// 여기의 20을 조정하여 등록을 조절할 수 있다.
  if($Count > 20)
  {
   $Now_Time = date("Y년 m월 d일 H시 i분 s초");
   exec("echo \"#Regist $Now_Time\" >> /etc/hosts.deny");
   exec("echo \"ALL : $Ip\" >> /etc/hosts.deny");
   $Restart_Xinetd = 1;
   exec("echo \"$Now_Time | $Ip | $Count 회\" >> /service/log_temp/DenyIP.list_".$argv[1]);
  }
  exec("echo \"$Date\t$Ip\t$Count\" >> /service/log_temp/secure_analysis.log");
 }

 if($Restart_Xinetd)
 {
  exec("killall -HUP xinetd");
  exec("cat \"/service/log_temp/DenyIP.list_".$argv[1]."\" | mail -s \"$Hostname Deny IP List - $Date \" $RECEIVE_EMAIL");
 }
}
else
{
 echo("Missing Argument... Confirm Execute ...\n");
}
?>

Posted by LEtham
TAG Linux, php, SSHD

댓글을 달아 주세요