2016년 7월 15일 금요일

dns_txt.c:(.text+0x35): undefined reference to `__res_query'

qmail 설치시 에러 발생

gcc -DBIND_8_COMPAT -O2 -o dktest dktest.o -L. -ldomainkeys -lcrypto `cat dns.lib`
./libdomainkeys.a(dns_txt.o): In function `dns_text':
dns_txt.c:(.text+0x35): undefined reference to `__res_query'
dns_txt.c:(.text+0xcf): undefined reference to `__dn_expand'
dns_txt.c:(.text+0x147): undefined reference to `__dn_expand'
collect2: ld returned 1 exit status
해결
yum install bind-libs

2016년 7월 13일 수요일

determining if ip address is already in use for device eth0 centos

determining if ip address is already in use for device eth0

위와 같은 오류가 발생.

아무리 찾아 봐도 원인을 알 수 없다.

ARPCHECK=no 옵션을 주면 에러가 안 난다고 하는데, 왠지 찝찝하다.

해당 옵션이 무엇인지에 대한 설명은 /usr/share/doc/initscripts-9.03.40/sysconfig.txt 에 나와 있다.
    ARPCHECKn=yes|no
If set to 'no', ifup will not try to determine, if requested ip address
is used by other machine in network.
Defaults to 'yes'.

네트워크에 있는 다른 머신에 의해 결정한다는 건데, 이름에서 추측하건데 arp 체크를 통해 서 중복되는 ip를 찾는 것 같다.

근데!!! 중복되는 IP 가 없어~!!!!

arping 을 해 보라는 둥.. tcpdump 를 잡아 보라는 둥.. 전부 해봐도 특별한 이유가 없다..

xenserver로 설치 한 거라서 조금 특별한 원인이 있지 않을 까도 싶다.

결국 그냥 사용하는 걸로..;;

 

참조:https://blog.cles.jp/item/6718




160928 추가.

ip 셋팅이 되어 있는 부분을 command로 다시 설정하면서 꼬이는 것 같다.
ifconfig eth0 down
service network restart

오류가 나는 인터페이스를 다운 시킨 후 네트워크를 재시작하면 없어진다.

원격에서 작업시 매우 주의!!

2016년 7월 4일 월요일

라이선스를 제공할 원격 데스크톱 라이선스 서버가 없으므로 원격 세션 연결 이 끊어졌습니다.

"라이선스를 제공할 원격 데스크톱 라이선스 서버가 없으므로 원격 세션 연결이 끊어졌습니다." 라는 에러 메시지가 나오면서 원격접속이 안된다.

라이선스 서버를 설치하고 그룹정책에서 적용을 해야 되는 데, 적용을 안 해 놔서 생기는 문제였다.

  1. mstsc /admin 명령으로 관리 세션은 연결이 가능 하다.

  2. 아래 사이트에서 자세히 설명해 놓음.
    http://tempdb.tistory.com/105
    http://taesany.tistory.com/105

  3. 원격에서는 regedit 권한 수정이 안된다.http://taesany.tistory.com/105 블로그에서 psexec 툴로 하면 가능 한것 같음. 해보지 않음

2016년 6월 24일 금요일

centos7 netstat

netstat 명령어가 기본적으로 사라지고, ss 명령어가 생겼다.

 

listening sockets  보기.
# ss -l

 

모든 소켓 보기.
# ss - a

 

TCP 소켓 보기.
# ss - t

 

UDP 소켓 보기.
# ss - u

 

소켓 사용하는 프로세스 보기.
# ss - p

 

소켓 사용하는 메모리 보기.
# ss - m

 

 

참조

No default or ui configuration directive found

centos 7 iso 파일로 설치 중 오류.

No default or ui configuration directive found

파일 잘못 받아서 생기는 문제.

iso 파일을 로컬에 받지 않고, 네트워크 드라이브로 연결된 폴더에 넣었더니, 문제가 발생한 것 같음.

다른 파일로 다시 받았더니, 파일 크기 자체가 다름.

2016년 5월 27일 금요일

AppLocker 사용법

administrators 를 제외하고 다른 일반 사용자에 대해서는 프로그램 실행 제한을 하려고 알아보다, AppLocker 란걸로 가능하단 걸 알게 됐다.

원하는 대로 잘 되지 않아 찾아 보니 기본적으로 아래와 같았다.

  1. 규칙이 없으면 해당 파일 형식의 모든 파일을 실행할 수 있다.

  2. 특정 규칙 컬렉션에 대한 AppLocker 규칙이 만들어져 있으면 규칙에서 명시적으로 허용된 파일만 실행할 수 있습니다.


그래서 규칙을 만들 때, 반드시 administrators 는 모든 파일을 사용가능 하게끔 같이 넣어줘야 한다. 그렇지 않으면 정책자체를 수정 할 수 없게 된다.

실행파일규칙에서 우클릭을 하면, 기본규칙 만들기를 클릭하면
Administrators 모든파일, Everyone Windows 폴더 모든파일, Everyone Program Files 폴더 모든 파일'이 생성 된다.

다른 규칙은 문제가 안되는 데, Everyone Windows 폴더 모든파일 규칙을 삭제 하면 원격 접속이 원할하게 되지 않는 다. 아마 다른 문제도 발생 할 것으로 보인다.

실행은 아래와 같다.

1. [시작] → [실행] → gpedit.msc 입력하고 엔터칩니다. 로컬 그룹 정책 편집기가 실행됩니다.
2. [컴퓨터 구성] - [Windows 설정] - [보안 설정] - [응용 프로그램 제어 정책] - [AppLocker]에서 설정하시면 됩니다.

 

최종 적용 설정 캡쳐

20160526154613

 

 

 

 

참조 : AppLocker 규칙 동작 이해

2016년 5월 26일 목요일

윈도우 방화벽 해외 IP 차단.

윈도우 방화벽을 이용해서 한국에서의 접속 IP 만 접근 가능 하도록 파워쉘로 만들었다.


특정 포트를 지정해 줘야 한다. 기존에 allow되어 있던 부분은 사용안함 처리 해야 한다.


 


소스는 아래와 같다.


#get-help about_signing 참조하라는 에러 발생시,
#Set-ExecutionPolicy RemoteSigned  실행.


#############Config#################
$countryCode="KR" #차단을 하지 않을 나라의 CountryCode
$geoIPcsvPath="c:\GeoIPCountryWhoisPaid.csv"
#$geoIPcsvPath="\GeoIPCountryWhois.csv" #ISE에서 실행시 찾지 못함.
$ruleName="allowCountry"
$allowPort="3389,1433"
#############Config#################


$geoData=Import-Csv $geoIPcsvPath -header sIP, eIP, cc |  where-object {$_.cc –eq $countryCode} 
$geoDataTotal=$geoData.Count
$remoteIP=""


######  룰이 있는 지 체크 ########
function ruleExistsChk ($ruleName)
{
    $fw=New-object -comObject HNetCfg.FwPolicy2; # http://blogs.technet.com/b/jamesone/archive/2009/02/18/how-to-manage-the-windows-firewall-settings-with-powershell.aspx 
    $RuleCHK=$fw.rules | where-object {$_.name –eq $ruleName}
    if(!$RuleCHK){
    #$deny_rule_name + " 룰이 생성되어 있지 않습니다."; exit; 
    #허용하는 룰 생성.
    netsh advfirewall firewall add rule name="$ruleName" localport="$allowPort" protocol=TCP localip=any dir=in action=allow profile="any" interfacetype="any"
    }
}
######  룰이 있는 지 체크 ########


$count=1
foreach ($geoIP in $geoData)
{
    #$remoteIP+=@($geoIP.sIP+"-"+$geoIP.eIP+",") #배열로 저장.
     $remoteIP+=$geoIP.sIP+"-"+$geoIP.eIP+","
     try {

        
         #remoteAddr가 한개의 룰에 약 300개 이상이면 등록이 안됨. 안전하게 200으로 설정.
        if(($count%200) -eq 0)
        {
            $makeRuleName=$ruleName+$countryCode+$count
            ruleExistsChk($makeRuleName)
            netsh advfirewall firewall set rule name=$makeRuleName new remoteip="$remoteIP"
            $remoteIP=""
        }elseif($geoDataTotal -eq $count){
            $makeRuleName=$ruleName+$countryCode+$count
            ruleExistsChk($makeRuleName)
            netsh advfirewall firewall set rule name=$makeRuleName new remoteip="$remoteIP"
            $remoteIP=""
        }

    }catch {
      Write-Warning "Error occured: $_"
    }
     $count++

}