RHCS, Error storing oracledb: Duplicate  로그 발생?

RHEL5,6 기반에 RHCS 서비스 데몬을 시작 하면서 아래와 같은 로그가 발생된다?

Error storing oracledb: Duplicate

이유가 뭘까?

이유는 /usr/share/cluster 디렉토리에 있었다.

Link : https://access.redhat.com/solutions/21663

내용을 보면 위 디렉토리에 중복된 스크립트가 포함되어 있어서 발생된 로그다.

ex)

oracledb
oracledb.bak
oracledb.bak.orig

문제된 파일을 삭제하거나 다른곳으로 옮겨야 한다.

ethtool 설정을 지속적으로 ethX, bondX, brX 에 적용 시키려면?

튜닝 혹은??? 여러가지 설정을 할때 ethtool 명령을 사용하게 된다.

그런데… ethtool 옵션에 대하여 rebooting 을 할때? 혹은 network restart 할때도 적용 시키고
싶을땐 어떻게 해야될까?

찾아보니??? 아래와 같은 방법이 있더라는…

우선 network 서비스 스크립트를 확인 해 볼 필요가 있다.

file : /etc/sysconfig/network-scripts/ifup-eth ( CentOS7.2 기준 )

    335 exec /etc/sysconfig/network-scripts/ifup-post ${CONFIG} ${2}

 CentOS7.2 버전의 경우 335번째 라인에 위와 같은 내용이 포함되어 있다.

ifup-post 를 호출하는??? 

그럼 ifup-post 에 어떤 내용이 들어 있을까?

file : /etc/sysconfig/network-scripts/ifup-post ( CentOS7.2 기준 )

    101 # Notify programs that have requested notification
    102 do_netreport
    103 
    104 if [ -x /sbin/ifup-local ]; then
    105     /sbin/ifup-local ${DEVICE}
    106 fi

엇??? Default 로는 ifup-local 파일이 없는뎅?

심지어 실행까지 하네???

여기서 확인해볼 내용은 아래의 Red Hat 문서 되시겠다.

Link : https://access.redhat.com/solutions/8694 ( RHN ID 필요 )

해당 문서에는 이렇게 언급되어 있다.

네트워크가 ifup 되고 스크립트 또는 프로그램을 실행 시키고 싶을땐 어떻게 하나요?

그렇다… ifup-local 파일은 이런 이유로 사용 될 수 있다.

파일의 예제는 아래처럼?

#!/bin/bash
if [ "$1" == "bond0" ]; then
  /sbin/ethtool -G eth0 rx 1024 tx 1024
  /sbin/ethtool -G eth1 rx 1024 tx 1024
fi

위 예제는 bond0 인터페이스의 slave 인터페이스인 eth0, eth1 에 대한 rx, tx  링 버퍼 사이즈 값을
설정 한 예제이다.

여기에 설정을 하면 network 인터페이스가 ifup 되면서 ifup-local 파일도 함께 실행 시켜줄 것이다.

끝.

google URL shortener 를 이용해서 다운로드 사이트를 만들어보자

문득?

이메일로 파일을 전송할때? 파일 사이즈 제한등으로 전달이 안 되는경우가 자주 발생되면서?

뭔가 대안을 고민하게 됨…

 방식은 요렇게?

1. ftp(upload) – 관련자가 파일을 올릴 수 있도록

2. web(download) – 관련자가 파일을 받을 수 있도록

마지막으로  google URL shortener 을 연동

Source :

#!/bin/bash

export indexf="/dir path/index.html"

echo "<table><tr><td colspan=3> <center><h2>Anonymous DownLoad Site </h2></center></h2></center> </td></tr>" > $indexf
echo "<tr><td> FileName </td><td> FileSize(Byte) </td><td> DownLoad Link </td></tr>" >> $indexf

for i in $(find ./down) 
do 
 if [ -f $i ] 
 then 
 export filen=$(echo $i|sed 's/\.\/down\///')
 export filen2="http://example.com/down/$filen"
 export filess=`ls -al $i|awk '{print $5}'`
 export sitea=`/usr/bin/python -c 'import googl; print googl.Googl("AIzaSyBP1sh9r-xxxxxx").shorten("'$filen2'")[u"id"]'`
 echo "<tr>" >> $indexf
 echo " <td> $filen </td><td> $filess </td><td> <a href="$sitea" target="_BLANK">$sitea</a> </td></tr> " >> $indexf
 echo "</tr>" >> $indexf
 fi 
done


echo "</table>" >> $indexf

위 스크립트를 일정 주기로 실행 ( cron )

google URL shortener 은 아래의 사이트에서 참고 하시기 바랍니다.
Link : http://www.commandlinefu.com/commands/view/10820/google-url-shortener

google api key 는 구글링해서 받으시기 바랍니다.

 

160406_cap1

위 스크립트 기반으로 작성된 html 을 웹에서 표시.

[shellscript] Line(줄) 단위로 배열 값 뽑아내기

쉘 환경에서(bash) 특정 Line 에 대한 배열을 뽑아내고 싶을때가 있다.
이런경우??? 어떻게 해야될까 찾아보다가 발견함.

example :

 
#!/bin/bash
while IFS='-' read -r f1 f2 f3 f4 f5 f6 f7
do
	 printf 'f1: %s, f2: %s, f3: %s f4: %s \n' "$f1" "$f2" "$f3" "$f4"
done < "/root/test.txt"

 

manpage :
read [-r] [이름 ...]
표준 입력으로부터 한 줄을 읽어들여 그 첫번째 단어를 첫번째 이름 에 할당하고 두번째  
단어를  두번째  이름  에  할당하고  나머지  남은 단어들을  마지막  이름  에  할당한다.   
IFS 에 있는 단어만을 단어 구분자로 인식한다.  아무런 이름 도 적지 않으면 읽어들인 행을 REPLY
변수에 할당한다.  파일 끝 문자를 만난 경우를 제외하고 반환값은 0 이다.   -r  옵션을  주면  
백슬래쉬-개행  문자  쌍을  무시하지  않고 백슬래쉬를 행의 일부로 인식한다.

 

# cat test.txt
i1-my-me-me2
i2-my-me-me3
i3-my-me-me4
i4-my-me-me5
i5-my-me-me6
i6-my-me-me7
i7-my-me-me8
i8-my-me-mej
i9-my-me-mel
i10-my-me-mek
i11-my-me-mem
i12-my-me-mea
i13-my-me-meb

result :

# ./rr2.sh
f1: i1, f2: my, f3: me f4: me2
f1: i2, f2: my, f3: me f4: me3
f1: i3, f2: my, f3: me f4: me4
f1: i4, f2: my, f3: me f4: me5
f1: i5, f2: my, f3: me f4: me6
f1: i6, f2: my, f3: me f4: me7
f1: i7, f2: my, f3: me f4: me8
f1: i8, f2: my, f3: me f4: mej
f1: i9, f2: my, f3: me f4: mel
f1: i10, f2: my, f3: me f4: mek
f1: i11, f2: my, f3: me f4: mem
f1: i12, f2: my, f3: me f4: mea
f1: i13, f2: my, f3: me f4: meb

 

참고 : http://www.cyberciti.biz/faq/unix-howto-read-line-by-line-from-file/

linux 환경에서 lftp 를 이용한 ftps 접속

의도적으로 테스트를 한건 아니고…
시놀리지 환경에서 ftp 로 공격 시도가 들어오는 문제로 ftp 를 ftps 로 변경 하였다.

사실 ftp 위주로만 쓰다보니 ftps 를 어떻게 쓰는질 모르겠더란.

당연히 filezilla 등의 클라이언트를 사용하면 특별한 문제가 없겠지만.

나는 centos7 환경에서 ftps 관련 command 를 쓰고 싶었다.
ftp command로는 접속이 안 되고…

구글신에게 물어보니… lftp 를 선사해 주셨다.

# lftp
lftp :~> set ftp:ssl-force true
lftp :~> connect example.com
lftp example.com:~> login user_id
Password:

요렇게 접속을 하라고 하는데???
엇???

lftp user_id@example.com:~> ls
ls: Fatal error: Certificate verification: Not trusted

인증서 에러…
또 구글신에게 질문과 자체적으로 찾아본 결과

set ssl:verify-certificate no

요 옵션을 사용 하라고.
다시 시도~!

# lftp
lftp :~> set ssl:verify-certificate no
lftp :~> connect  example.com
lftp example.com:~> login user_id
Password:
lftp user_id@example.com:~> ls
drwxr-xr-x 1 root users 4096 Feb 2 13:12 file01
drwxr-xr-x 1 root users 4096 Feb 10 18:47 directory
drwxr-xr-x 1 root users 4096 Feb 10 01:51 Backup
drwxr-xr-x 1 root users 4096 Mar 5 15:27 double
lftp user_id@example.com:/>

드디어 로그인 성공.

DROWN, CVE-2016-0800 openssl 보안 업데이트 권고

요즘 보안이슈가 하루가 멀다하고 나오는군요.
뭐… 당연한 얘기지만… 

이번엔 DROWN( Decrypting RSA using Obsolete and Weakened eNcryption ) 이슈가 발생 되었습니다.
해당 이슈는 SSLv2 상의 보안 취약점을 이용하여 신규 SSL/TLS 세션에 대한 암호화를 복호화 할 수 있는
보안 취약점 이라고 합니다.

아래의 링크에서 관련 내용 확인 하시고, 보안 조치 하시기 바랍니다.

 

– Debian Linux
https://security-tracker.debian.org/tracker/CVE-2016-0800

– Redhat Linux
https://access.redhat.com/security/vulnerabilities/drown

– Ubuntu Linux
http://people.canonical.com/~ubuntu-security/cve/2016/CVE-2016-0800.html

– Suse Linux
https://www.suse.com/support/update/announcement/2016/suse-su-20160621-1.html

– Amazon AWS
https://aws.amazon.com/ko/security/security-bulletins/cve-2016-0800-advisory/

CVE-2015-7547, glibc 보안 업데이트 권고

좀 늦은감이 있긴 하지만.
최근에 glibc 관련하여 보안 업데이트가 발표 되었습니다.
glibc 의 getaddrinfo 함수에서 발생하는 버퍼 오버플로어 취약점이라고 하네요

얼른 패치 하시기 바랍니다.
관련 내용은 하단 첨부.

참 고  :
KISA – http://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=24023
Red Hat – https://access.redhat.com/security/vulnerabilities/2168451
CentOS – https://www.centos.org/forums/viewforum.php?f=17
Debian –https://security-tracker.debian.org/tracker/CVE-2015-7547
Ubuntu – http://people.canonical.com/~ubuntu-security/cve/2015/CVE-2015-7547.html
SUSE – https://www.suse.com/security/cve/CVE-2015-7547.html

ssh 에 google otp 연동 하기 ( CentOS7, RHEL7 )

ssh 에 보안 강화를 위해서 google otp 를 연동해 볼까 한다.
해당 내용은 CentOS7 버전에서 테스트 한 것으로 RHEL7 과 호환 가능.

 

1. google otp 패키지 설치를 위한 필요 패키지

# yum install pam-devel gcc autoconf automake libtool

2. git 를 이용한 google otp 소스 다운로드

# git clone  https://github.com/google/google-authenticator

3. 컴파일 하기

# cd google-authenticator/libpam
# ./bootstrap.sh
# ./configure –libdir=/lib64
# make
# make install

4. google otp 를 사용할 계정 등록

# google-authenticator –label=$( Override the default label in “otpauth://” URL) \
–issuer=$( Override the default issuer in “otpauth://” URL) 
>> google otp 를 사용할 계정에서 명령어 실행
>> $(home_dir)/.ssh/google_authenticator 파일 생성 여부 확인 필요

ex)
# google-authenticator –label=example.com –issuer=example.com

Your new secret key is: 3GABC6664CO40001
Your verification code is 40043
Your emergency scratch codes are:
30929879
27189619
77773999
80752429
49540559

Do you want me to update your “/root/.google_authenticator” file (y/n) y

Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases
your chances to notice or even prevent man-in-the-middle attacks (y/n) y

By default, tokens are good for 30 seconds and in order to compensate for
possible time-skew between the client and the server, we allow an extra
token before and after the current time. If you experience problems with poor
time synchronization, you can increase the window from its default
size of 1:30min to about 4min. Do you want to do so (y/n) y

If the computer that you are logging into isn’t hardened against brute-force
login attempts, you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting (y/n) y

5. google otp 앱(ios, android) 에서 위에 출력 결과에서 나온 바코드를 등록. ( QR CODE )

6. pam 설정

# vi /etc/pam.d/sshd   ### 첫째줄에 아래 내용 삽입 
#%PAM-1.0
auth required pam_google_authenticator.so nullok 
auth required pam_sepermit.so
auth substack password-auth

>> 모든 사용자가 google otp 를 사용하게 할 경우 “nullok” 를 삭제

7. /etc/ssh/sshd_config 설정

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
### google otp
PasswordAuthentication yes

# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes
### google otp
ChallengeResponseAuthentication yes

# Set this to ‘yes’ to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of “PermitRootLogin without-password”.
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to ‘no’.
# WARNING: ‘UsePAM no’ is not supported in Red Hat Enterprise Linux and may cause several
# problems.
#UsePAM no
### google otp
UsePAM yes

8. sshd 서비스 재 시작

#systemctl restart sshd

9. 접속 테스트

ssh root@example.com ### 원격에서 접속
Verification code:
Password:
>> otp 위와 같이 otp 인증 부분이 추가됨.

*) google otp 를 사용하기 위해선 ntp 동기화가 필수 임 

*) 추가 
160202 : 현재 사용하는 iputty 환경에서 접속을 할 경우 “Using keyboard-interactive authentication.” 
메시지가 출력되는 현상은 iputty 옵션의 Authentication 항목에서 “Keyboard interactive” 를
제일 위로 가도록 설정 하라고 하지만 iputty 에는 해당 항목을 못 찾고 있음.

 

참고 사이트 :
Link : https://www.lesstif.com/pages/viewpage.action?pageId=24444948
Link : http://www.howtogeek.com/121650/how-to-secure-ssh-with-google-authenticators-two-factor-authentication/
Link : http://www.cyberciti.biz/open-source/howto-protect-linux-ssh-login-with-google-authenticator/

 

Kernel Zero-day, CVE-2016-0728 Vulnerability

한동안 조용하다 싶었는데…

zero-day 취약점 발생.
해당 취약점은 “CVE-2016-0728” 공격자가 임의의 코드를 실행시켜 특정 권한을 획득 할 수 있으며 
Kernel version 3.8 이상에 영향이 있다고 합니다.

자세한 내용은 아래의 링크를 참고해 주세요.

Link :

http://blog.alyac.co.kr/514

### Red Hat
https://access.redhat.com/articles/2131021 (Use after free vulnerability in Linux kernel keychain management (CVE-2016-0728))
https://rhn.redhat.com/errata/RHSA-2016-0064.html
https://access.redhat.com/security/cve/cve-2016-0728

 
### SUSE
 
 
### UBUNTU
 
1 2 3 104