달력

05

« 2018/05 »

  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  

리눅스 설치후 커널 TCP 관련 파라미터 수정


root@marasong.net:/proc/sys/net/ipv4# cat tcp_tw_reuse 

0

root@marasong.net:/proc/sys/net/ipv4# echo 1 > tcp_tw_reuse 

root@marasong.net:/proc/sys/net/ipv4# cat tcp_tw_reuse 

1

root@marasong.net:/proc/sys/net/ipv4# cat tcp_syncookies 

1


맨날 다시 찾고 다시 찾고...


참고 : http://tech.kakao.com/2016/04/21/closewait-timewait/

Posted by 멋지다마라송
2017.08.24 14:12

nmap 옵션 Tech/Linux2017.08.24 14:12

nmap -p 1-65535 -T4 -A -v domain

 

 

Posted by 멋지다마라송

FreeTDS - 리눅스에서 MSSQL 접속하기 - tsql


FreeTDS - tsql 설치

# wget http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz (지금은 버전이 0.91 )
# tar -xvzf freetds-stable.tgz
# cd freetds-0.91
# ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --disable-odbc --disable-debug --enable-msdblib
# make -j 4  (CPU core 4개를 사용해서 빠르게 컴파일하기)
# make install


MSSQL 서버설정 추가

/usr/local/freetds/etc/freetds.conf  에 추가.

MSSQL 2005 이상이라면 tds version = 8.0
MSSQL 2005 미만이라면 tds version = 7.0

[123.123.123.123]
   host = 123.123.123.123
   port = 1433
   tds version = 8.0
   client Charset = utf8


캐릭셋때문에 한글/일본어/중국어 등이 깨지면 client charset 부분을 아래중에서 하나로 바꿔본다.

문자가 깨질때 아래와 같은 에러가 뜬다.


Error 2403 (severity 4):
        Some character(s) could not be converted into client's character set.  Unconverted bytes were changed to question marks ('?')


#       locale is "ko_KR.UTF-8"
#       locale charset is "UTF-8"
        # Latin1_General_CI_AS, Korean_Wansung_CI_AS
        #client charset = ko_KR.UTF-8
        #client charset = EUC-KR
        client charset = UTF-8
        #client charset = ANSI_X3.4-1968
        #client charset = MS-ANSI
        #client charset = Korean_Wansung_CI_AS
        #client charset = Latin1_General_CI_AS
        #locale charset = UTF-8
        #locale = ko_KR.UTF-8
        #locale charset = UTF-8


MS-SQL 접속 테스트

   # /usr/local/freetds/bin/tsql -H MSSQL서버아이피 -p MSSQL서버포트 -U 디비계정 -P 디비비밀번호

PHP - mssql 모듈 설치

   # cd /usr/local/src/php-5.2.9/ext/mssql
   # /usr/local/php/bin/phpize
   # ./configure --with-mssql=/usr/local/freetds --with-php-config=/usr/local/php/bin/php-config
   # make -j 4
   # cp .libs/mssql.so /PHP_Extension_디렉토리
   # vi /usr/local/php/lib/php.ini
     extension = mssql.so --> 주석 풀기
   # apache 재기동


모듈 설치 확인
phpinfo - mssql 항목 확인, php -i 옵션으로 확인

   # /usr/local/php/bin/php -i | grep mssql
   mssql
   mssql.allow_persistent => On => On
   mssql.batchsize => 0 => 0
   mssql.charset => no value => no value
   mssql.compatability_mode => Off => Off
   mssql.connect_timeout => 5 => 5
   mssql.datetimeconvert => On => On
   mssql.max_links => Unlimited => Unlimited
   mssql.max_persistent => Unlimited => Unlimited
   mssql.max_procs => Unlimited => Unlimited
   mssql.min_error_severity => 10 => 10
   mssql.min_message_severity => 10 => 10
   mssql.secure_connection => Off => Off
   mssql.textlimit => Server default => Server default
   mssql.textsize => Server default => Server default

   mssql.timeout => 60 => 60


MSSQL 접속 PHP 샘플

<?php
    putenv("FREETDSCONF=/usr/local/freetds/etc/freetds.conf");
    putenv("TDSVER=80");


     $link = mssql_connect('123.123.123.123', '디비계정', '디비비밀번호');
     if (!$link) {
        echo 'DB connection fail.';
     } else {
      echo 'DB connection Success.';

     }
     mssql_close($link);
 ?>

Posted by 멋지다마라송
2017.04.13 17:11

리눅스 sed 줄바꿈 바꾸기 Tech/Linux2017.04.13 17:11

vi 로 바꾸기

:1,$s/^M//g

이렇게 하면 줄바꿈을 없앰.


:1,$s/abc/abc^M/g

이렇게 하면 abc 를 abc 엔터.로 줄바꿈을 만들게 된다.


파일 읽어서 바꾸기

cat abc.txt | sed 's/^M//g'

abc.txt 파일을 읽어서 줄바꿈을 없앰.


^M = Ctrl+V+M (컨트롤키 누른 상태에서 V 를 누르고, 컨트롤키 놓지 말고 다시 M 을 누른다)


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

nmap 옵션  (0) 2017.08.24
FreeTDS - 리눅스에서 MSSQL 접속하기 - tsql  (0) 2017.05.27
리눅스 sed 줄바꿈 바꾸기  (0) 2017.04.13
Dshield - DDos Defender  (0) 2017.03.17
GoAccess : web log parser - 웹로그 편하게 보기  (0) 2017.03.17
centos nagios 설치  (0) 2017.03.14
TAG sed
Posted by 멋지다마라송
2017.03.17 04:01

Dshield - DDos Defender Tech/Linux2017.03.17 04:01

http://www.ywjt.org/index.php/archives/947

https://github.com/ywjt/Dshield


vi /etc/yum.repos.d/grafana.repo 

and add the content below.

[grafana]
name=grafana
baseurl=https://packagecloud.io/grafana/stable/el/6/$basearch
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt


yum install grafana
service grafana-server start

Dshield-master.zip

wget https://github.com/ywjt/Dshield/archive/master.zip

unzip master.zip cd Dshield-master/ sh install.sh


service grafana-server restart
/usr/local/Dshield/sbin/dshield all start


http://{your_ip}:3000

username: admin password: admin


modified configure file

Open File: /usr/local/Dshield/conf/default.ini

white list

support CIRD format

whitelisted_ips = "10.10.10.0/24,172.16.0.0/16"

whitel_ttl_ips = "10.10.10.0/24,172.16.0.0/16"

monitor interface

mont_interface = "eth0"

monitor port

mont_port = "80,22"

listen mode false means active defense, true means only record IP and ttl but not block

mont_listen = false

monitor interval specified in seconds

rexec_time = 5

block connections this parameter can assign the sensitivity of monitoring, 100 is recommanded

no_of_connections = 100

ip block time support 1d/1h/1m format

block_period_ip = "1m"

monitor protocol it is available for TTL monitor module, tcp-tcp only, udp-udp only, ‘’-all protocols are monitored

mont_protocol = "tcp"

block connections this parameter can assign the sensitivity of monitoring, 20000~100000 is recommanded

no_ttl_connections = 20000

ttl unblock time surpport 1d/1h/1m format

block_period_ttl = "1m"


썬샤인 쿠 라는 분은 중국분인듯 ~ 

잘 만든거 같다.

Posted by 멋지다마라송

GoAccess : web log parser - apache, nginx log viewer 웹로그 편하게 보기


go access 실행하기 전에 웹서버 log 파일을 줄이는게 좋다.


설치

설치는 여러가지를 지원하는데, 크게 깃헙을 통해 설치하는 것과, 소스파일 컴파일로 설치하는 방법 두가지가 있다.


1. 깃헙 설치.

$ git clone https://github.com/allinurl/goaccess.git
$ cd goaccess
$ autoreconf -fiv
$ ./configure --enable-utf8 --enable-geoip=legacy 
$ make
# make install



2. 소스 컴파일로 설치.

$ wget http://tar.goaccess.io/goaccess-1.2.tar.gz

goaccess-1.2.tar.gz


$ tar -xzvf goaccess-1.2.tar.gz $ cd goaccess-1.2/ $ ./configure --enable-utf8 --enable-geoip=legacy $ make # make install


데비안, 우분투인 경우.

$ echo "deb http://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list
$ wget -O - http://deb.goaccess.io/gnugpg.key | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install goaccess



사용방법

콘솔에서 실시간으로 로그 파싱

# tail -f access.log | goaccess -


콘솔에서 로그 파일 파싱

# goaccess access.log access.log.1


웹페이지로 실시간 파싱

# goaccess access.log -o /usr/share/nginx/html/your_site/report.html --real-time-html




 


Posted by 멋지다마라송
2017.03.14 20:43

centos nagios 설치 Tech/Linux2017.03.14 20:43

chcon -R -t httpd_sys_content_t /usr/local/nagios


원문 : http://gentooboy.tistory.com/191


1. rpmforge를 repository에 추가

# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm

# rpm -Uvh rpmforge-release-0.5.2-2.el6.rf.i686.rpm

          or

# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

# rpm -Uvh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm


* 운영체제에 맞춰서 설치

x86(32bit) -> i686

amd64(64bit) -> x86_64


2. 설치

# yum install nagios nagios-plugins nagios-plugins-nrpe


3. apache에 nagios설정

# vi /etc/httpd/conf/httpd.conf


파일의 끝부분 Include 부분 주석 해제 (# 제거)

# Include /etc/httpd/conf.d/nagios.conf => Include /etc/httpd/conf.d/nagios.conf


4. apache의 nagios인증 설정

# htpasswd -c /etc/nagios/htpasswd.users nagiosadmin


5. nagios 설정 검사

# nagios -v /etc/nagios/nagios.cfg


6. nagios 시작, apache 재시작

# service nagios start

# service apache restart


7. 웹페이지 접속

http://localhost/nagios






-- trouble shooting --



+ service nagios start 했을 때 아래와 같은 문제가 발생할 경우 +

nagios is stopped
Configuration validation failed                            [FAILED]


A. selinux를 disable or permissive로 설정해야 한다.

일시적으로 바꾸기

# setenforce 0

         or

# setenforce permissive


잘 바뀌었는지 확인하기

# getenforce


재부팅 되도 설정 적용되게 하기

# vi /etc/sysconfig/selinux

SELINUX=disabled

          or

SELINUX=permissive

# reboot


-----

또 다른 게시글

원문 : http://koeiking11.tistory.com/302


Nagios Core 설치 하기


--사용자 계정 만들기

useradd nagios

passwd nagios

--sudo 권한 부여

/etc/sudoers

whatap  ALL=(ALL)  NOPASSWD: ALL

--그룹 만들기

/usr/sbin/groupadd nagcmd

/usr/sbin/usermod -a -G nagcmd nagios

/usr/sbin/usermod -a -G nagcmd apache

-- 필수 유틸 설치 (apache, php, gcc compiler, GD development libraries)      

sudo yum install httpd php 

sudo yum install gcc glibc glibc-common                                                                                                                      sudo yum install gd gd-devel

-- 다운로드 폴더 생성

mkdir /home/nagios/core

cd /home/nagios/core

-- 소스 다운로드

wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.1.1.tar.gz

wget http://www.nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz

-- 압출 풀기

cd /home/nagios/core

tar xzf nagios-4.1.1.tar.gz

cd /home/nagios/core/nagios-4.1.1

-- 컴파일

./configure --with-command-group=nagcmd

-- make

make all

make install

make install-init

make install-config

make install-commandmode

-- 구성 정의

vi /usr/local/nagios/etc/objects/contacts.cfg

-- Apache nagios.conf 파일 만들기

make install-webconf

-- 사용자 인증 추가

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

-- Apache 재시작

service httpd restart

-- 플러그 인 설치

cd /home/nagios/core

tar xzf nagios-plugins-2.1.1.tar.gz

cd nagios-plugins-2.1.1

-- 플러그 인 컴파일

./configure --with-nagios-user=nagios --with-nagios-group=nagios

make

make install

-- 시작에 포함

chkconfig --add nagios

chkconfig nagios on

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

-- nagios 재시작

service nagios restart

-- SELinux 설정

getenforce

setenforce 0

chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/

chcon -R -t httpd_sys_content_t /usr/local/nagios/share/

-- 사이트 확인

http://localhost/nagios/


*********      기타   *****************

**************************************

-- 아파치 위치

/etc/httpd

-- 아파치 로그

/var/log/httpd

-- Nagios core 파일 위치

/usr/local/nagios/share




https://www.monitoring-plugins.org/doc/man/check_nt.html


Posted by 멋지다마라송

$ vi test.sh


#!/bin/bash

work_file="${1}" # sh 실행파일 뒤에 적는 값을 변수로 사용하기
work_date=`date +%Y%m%d"."%H%M` # 날짜 함수. 순서대로 연월일.시분. 초는 %S
echo "${work_file}/${work_date}"

query_result="result.${work_date}.txt"
MYSQL_CONN="/usr/local/mysq/bin/mysql -udb_user_id -pdb_password "


if [ $# -eq 1 ] # 매개변수 갯수가 1개일때에만 실행.
then
        # 실행할 코드 작성.
        for id in `cat ${work_file}`
                sql="sElect user_id from DB_NAME.TABLE_NAME where user_id='${id}';"

                ${MYSQL_CONN} -s -q -N -e "${sql}" >> ${query_result}
        done

else
        # 매개변수 갯수가 1개가 아닐때.
        echo "Usage : ./test.sh [work_file_name]"
        exit
fi


$ chmod +x test.sh

$ ./test.sh aaa.txt <- 이런식으로 실행.

$ ./test.sh <- 매개변수 없음. 에러.

$ ./test.sh aaa.txt bb <- 매개변수가 2개. 에러.


Posted by 멋지다마라송
2017.02.28 13:03

Nagios - WeChat 연동 Tech/Linux2017.02.28 13:03

나기오스 - 위챗 연동.


Nagios 整合微信订阅号报警

环境:rhel6.5 selinux 和 iptables 关闭。要求能上外网的(虚拟机亲测可用)
以下是nagios服务与微信订阅号的整合过程,最终实现当服务或主机出现故障,自动调用微信报警。
重点讲述如何配置微信公众平台私有接口,至于nagios服务的配置请大家参照nagios官方文档进行,此处不再赘述。(www.nagios.org

1. 下载微信公众平台私有接口
# yum install -y git
# git clone https://github.com/lealife/WeiXin-Private-API

2. 修改微信公众平台私有接口代码,以配合nagios报警

# cp -r WeiXin-Private-API /usr/local/nagios/libexec/weixin
# chown -R nagios.nagios /usr/local/nagios/libexec/weixin
# cd /usr/local/nagios/libexec/weixin

修改config.php文件:

$G_CONFIG["weiXin"] = array(

        'account' => '微信公众平台登录帐号',#填写你注册的微信订阅号的帐号和密码

        'password' => '微信公众平台登录密码',

修改test.php文件,只保留如下几行即可:

<?php
require "config.php";
require "include/WeiXin.php";

$weiXin = new WeiXin($G_CONFIG['weiXin']);

$testFakeId = "$argv[1]";#微信好友ID号,这里通过nagios传入

$msg = `cat /usr/local/nagios/var/nagios.msg`;#要发送的报警信息,由nagios传入

print_r($weiXin->send($testFakeId, "$msg"));#给微信好友发送信息

3. 整合nagios和微信公共平台私有接口

1) 增加微信报警选项: templates.cfg

修改 /usr/local/nagios/etc/objects/templates.cfg

在 define contact{...} 部分,将以下两行:
host_notification_commands notify-host-by-email
service_notification_commands notify-service-by-email

改为:

host_notification_commands notify-host-by-email,notify-host-by-weixin
service_notification_commands notify-service-by-email,notify-service-by-weixin


2) 增加调用命令: commands.cfg

修改 /usr/local/nagios/etc/objects/commands.cfg

在该文件的最后增加以下部分:

##### notify-host-by-weixin command definition
define command{
command_name notify-host-by-weixin
command_line
/usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" > /usr/local/nagios/var/nagios.msg && /usr/bin/php /usr/local/nagios/libexec/weixin/test.php $CONTACTADDRESS1$  &>/dev/null
}

##### notify-service-by-weixin command definition
define command{
command_name notify-service-by-weixin
command_line
/usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" > /usr/local/nagios/var/nagios.msg && /usr/bin/php /usr/local/nagios/libexec/weixin/test.php $CONTACTADDRESS1$  &> /dev/null

3) 修改联系人选项: contact.cfg

修改 /usr/local/nagios/etc/objects/contact.cfg
在 define contact{...} 部分增加如下一行

address     11206***#微信好友ID,登录微信公众平台网页版,在用户管理中点击你要发微信的好友,此时在地址上显示的fakeid就是微信好友的ID。

4) 重载nagios配置

# service nagios reload


Posted by 멋지다마라송
2017.02.20 12:19

리눅스 구버전 php 다운로드 Tech/Linux2017.02.20 12:19

리눅스 php 구버전 다운로드

http://www.php.net/get/php-5.4.32.tar.bz2/from/a/mirror

이런식으로 버전을 적으면 된다.



Posted by 멋지다마라송


티스토리 툴바