2016년 10월 22일 토요일

selinux disabled

selinux 설정파일 위치는 /etc/sysconfig/selinux 로 알고 있었다.

해당 파일에서 SELINUX=disabled 로 변경 시키고 재부팅을 해도 selinux가 disable 되지 않는다.

확인 해 봤더니, 원래 위치는 /etc/selinux/config이고 /etc/sysconfig/selinux 파일은 링크만 걸려 있는 거다.

어떻게 된 일인지 특정 서버만 링크가 아닌 일반 파일이 /etc/sysconfig/selinux 생성되어 있다.

/etc/selinux/config 에서 설정 변경하니 정상적으로 disabled 된다.

파워쉘로 메일 전송 테스트

$From = "fromaddress@domain.com"
$To = "toaddress@domain.com"
$SMTPServer = "smtp.gmail.com"
$SMTPPort = "587"
$Username = "username@gmail.com"
$Password = "gmailpassword"
$subject = "Email Subject"
$body = "Insert body text here"

$smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort);

$smtp.EnableSSL = $true
$smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
$smtp.Send($From, $To, $subject, $body);

출처

2016년 10월 21일 금요일

파워쉘 실행시 에러

C:\Users\77100606\Downloads\Get-GeoIP.ps1 파일을 로드할 수 없습니다. C:\Users\77100606\Downloads\Get-GeoIP.ps1 파일에 디지털 서명하지 않았습니다. 스크립트가 시스템에서 실행되지 않습니다. 자세한 내용은 "get-help about_signing"을 참조하십시오..
At line:0 char:0

파워쉘 스크립트는 그 권한이 막강하기 때문에 파일마다 디지털 사인은 해야 한다.

그러나 인터넷에 일반사용자 가 사인까지 할리는 만무하다.

해서 그런 스크립트를 싫행 하려면 정책 변경을 해야 한다.
Set-ExecutionPolicy RemoteSigned

Restricted : 파워쉘 실행 정책 기본 값. 명령어 하나씩 실행 가능. 스크립트를 불러와 실행하지 못함
AllSigned : 오직 신뢰된 배포자에 의해 싸인된 스크립트만 실행가능
RemoteSigned : 로컬에서 생성한 스크립트만 실행가능. 다운로드받은 스크립트는 신뢰된 배포자에 의해 싸인된 것만 실행 가능
Unrestricted : 모든 스크립트 실행 가능
ByPass : 아무것도 차단되지 않고 경고나 메시지 없이 실행가능
Undefined : 정책이 적용되지 않음. 기본 정책이 적용됨(Restricted)

출처
출처

2016년 10월 18일 화요일

오라클 접속 안될 시 체크

오라클 클라이언트 설치는 당연한 거겠죠?

 

1.오라클 홈 위치 확인
#윈도우
echo %ORACLE_HOME%

#리눅스
echo $ORACLE_HOME

2.tnsnames.ora 내용 확인(위치 : %ORACLE_HOME%\network\admin\tnsnames.ora)


SERVER_NAME =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = mydomain.com)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)


3.tnsping 체크
tnsping alias
ex>tnsping SERVER_NAME

4. sqlplus로 실제 접속 테스트
sqlplus 아이디/패스워드@ALIAS
EX>sqlplus myid/pass@SERVER_NAME

5.tnsnames.ora 내용으로 sqlplus 테스트(tnsnames.ora 내용에서 alias를 뺀 나머지 부분만 한줄로 만들어서 테스트)
sqlplus myid/pass@"(DESCRIPTION =    (ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = mydomain.com)(PORT = 1521)) ) (C
ONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL) ) )"

MSSQL 에서 오라클로 LINKED SERVER 생성시 오류

MSSQL 에서 오라클로 LINKED SERVER 생성시 오류 발생
연결된 서버 "SERVER_NAME"에 대한 OLE DB 공급자 "OraOLEDB.Oracle"의 인스턴스를 만들 수 없습니다. (Microsoft SQL Server, 오류: 7302)  도움말을 보려면 다음을 클릭하십시오:

이 사이트에서 해결책 확인

오라클 클라이언트 설치 후 SQLSERVER 재시작 해야됨.;;

2016년 10월 12일 수요일

vpopmail(pop3) brute force 공격 차단

qmail vpopmail 을 쓰고 있다.

서버 점검 중 pop3로 접속시도를 하는 로그를 발견했다.

없는 아이디로 계속 시도하는 것과 계정은 있지만 패스워드를 계속 틀리게 입력하는 유형 2가지.
Oct 11 11:27:54 mail vpopmail[27836]: vchkpw-pop3: vpopmail user not found admin12@domain.com:109.104.203.62

Oct 11 15:02:11 mail vpopmail[15277]: vchkpw-pop3: password fail (pass: 'e603f6c507b3993651f0439553584c50') acount@domain.com:110.70.15.59

한두개가 아니라 같은 아이피가 계정만 바꿔서 계속 시도하고 있다.
fail2ban으로 vpopmail 차단을설정하면 좋은데, 실 운영서버라 fail2ban 설치하기가 쉽지 않다.

그래서 스크립트 작성.
#/bin/bash


help()
{
echo ""
echo "/var/log/maillog is default"
echo "iptable apply is not default"
echo "banCount 100 is default"
echo "-a : iptable applied"
echo "-f : maillog FILE PATH"
echo "-c : ban count"
echo ""
echo "Usae : $0 -a -c 100 -f /var/log/maillog "
exit 0
}


ignoreIPs=("222.222.222.222" "111.111.111.111")
maillog="/var/log/maillog"
banCount=100
fw=false


while getopts ac:f: opt
do
case $opt in
a)
fw=true
;;
c)
banCount=$OPTARG
;;
f)
maillog=$OPTARG
;;
*)
help
exit 0
;;
esac
done


banIPs=`grep -E 'user not found|password fail' ${maillog} | awk -F: '{print $NF}' | sort | uniq -dc | awk '{if ($1 > '"${banCount}"') print $NF}'`

for banIP in $banIPs
do
for ignoreIP in ${ignoreIPs[@]}
do
if [ $ignoreIP == $banIP ]
then
# echo "ignore IP: ${ignoreIP}"
# echo "ban IP : $banIP"
break
fi
done

echo "ban IP : $banIP ,whois : $(geoiplookup $banIP)"
if [ $fw = true ] ; then
iptables -A INPUT -s ${banIP}/24 -j DROP
fi

done


if [ $fw = true ] ; then
#remove duplicate iptables rules
#http://www.krazyworks.com/remove-duplicate-iptables-rules/
/sbin/service iptables save
/sbin/iptables-save | awk '!x[$0]++' > /tmp/iptables.conf
/sbin/iptables -F
/sbin/iptables-restore < /tmp/iptables.conf
/sbin/service iptables save
/sbin/service iptables restart
if [ -f /tmp/iptables.conf ] ; then /bin/rm -f /tmp/iptables.conf ; fi
fi


 

1. banCount 는 같은 IP가 해당 값이상일 경우만 가져온다.
실제사용자가 실패할 경우도 있기 때문에 100정도면 적당한 것 같다.

2. ignoreIPs는 차단하지 않을 IP를 적어준다.

3. iptable에 적용하는 데, 중복으로 계속 적용된다.
마지막 부분이 중복을 없애고 다시 설정하는 부분이다.

maillog 파일의 생성을 살펴보면 매일 오전 4시 마다 rotate 되고 있다
cron으로 4시 30분 부터 실행되게끔 걸어주면 되겠다.

2016년 10월 5일 수요일

catalina.out파일에서 system.out.print 내용 확인이 안될 때...

centos7 에서 yum 을 이용해 tomcat을 설치하고

'systemctl stop tomcat.service' 명령어를 이용하여 톰캣을 실행하였다.

catalina.out 파일에서 system.out.print 내용이 쌓이지 않는 것을 확인하였다.

catalina.$DATE.log 파일에도 역시 쌓이지 않는다.

/var/log/messages에 해당 내용이 쌓인다.

명령어는 아래와 같이 사용하면 된다.
journalctl -u tomcat -f
or
tail -f /var/log/messages

참조1
참조2