2022. 6. 12 최초작성
1. 저장소 목록을 새로 가져옵니다.
$ sudo apt update |
2. wget을 설치합니다.
$ sudo apt install wget -y |
3. Chrome 패키지를 다운로드합니다.
4. Chrome 패키지를 설치합니다.
$ sudo dpkg -i ./google-chrome-stable_current_amd64.deb |
2022. 6. 12 최초작성
1. 저장소 목록을 새로 가져옵니다.
$ sudo apt update |
2. wget을 설치합니다.
$ sudo apt install wget -y |
3. Chrome 패키지를 다운로드합니다.
4. Chrome 패키지를 설치합니다.
$ sudo dpkg -i ./google-chrome-stable_current_amd64.deb |
다음 명령을 사용하여 deadsnake 저장소를 추가합니다.
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
패키지가 잘 업데이트 됐는지 아래 명령어로 확인해 줍니다.
apt list | grep python3.10
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
idle-python3.10/focal,focal 3.10.10-1+focal1 all
libpython3.10-dbg/focal 3.10.10-1+focal1 amd64
libpython3.10-dev/focal 3.10.10-1+focal1 amd64
libpython3.10-minimal/focal 3.10.10-1+focal1 amd64
libpython3.10-stdlib/focal 3.10.10-1+focal1 amd64
libpython3.10-testsuite/focal,focal 3.10.10-1+focal1 all
libpython3.10/focal 3.10.10-1+focal1 amd64
libqgispython3.10.4/focal 3.10.4+dfsg-1ubuntu2 amd64
python3.10-dbg/focal 3.10.10-1+focal1 amd64
python3.10-dev/focal 3.10.10-1+focal1 amd64
python3.10-distutils/focal,focal 3.10.10-1+focal1 all
python3.10-examples/focal,focal 3.10.10-1+focal1 all
python3.10-full/focal 3.10.10-1+focal1 amd64
python3.10-gdbm-dbg/focal 3.10.10-1+focal1 amd64
python3.10-gdbm/focal 3.10.10-1+focal1 amd64
python3.10-lib2to3/focal,focal 3.10.10-1+focal1 all
python3.10-minimal/focal 3.10.10-1+focal1 amd64
python3.10-tk-dbg/focal 3.10.10-1+focal1 amd64
python3.10-tk/focal 3.10.10-1+focal1 amd64
python3.10-venv/focal 3.10.10-1+focal1 amd64
python3.10/focal 3.10.10-1+focal1 amd64
sudo apt install python3.10
만약 Python 3.10 설치 전 다른 Python3.x 버전을 사용하고 있었다면, update-alternatives를 이용해 관리해준다. 본인은 3.8 버전을 기존해 사용하고 있었다.
$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
update-alternatives: using /usr/bin/python3.8 to provide /usr/bin/python3 (python3) in auto mode
$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2
update-alternatives: using /usr/bin/python3.10 to provide /usr/bin/python3 (python3) in auto mode
$sudo update-alternatives --config python3
There are 2 choices for the alternative python3 (providing /usr/bin/python3).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/python3.10 2 auto mode
1 /usr/bin/python3.10 2 manual mode
2 /usr/bin/python3.8 1 manual mode
Press <enter> to keep the current choice[*], or type selection number: 0
$python3 -V
Python 3.10.10
출처: https://sonseungha.tistory.com/678 [Developer's Delight:티스토리]
우분투 파이썬 설치 (0) | 2024.02.25 |
---|---|
유분투 크롬 설치 (0) | 2024.02.25 |
svn 재시작 (0) | 2023.01.17 |
톰켓 로그 분할 하는 방법 (0) | 2022.08.25 |
리눅스 파일 있으면 복사 없으면 생성하기 (0) | 2022.08.18 |
-startup
plugins/org.eclipse.equinox.launcher_1.5.700.v20200207-2156.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.1200.v20200508-1552
-product
org.eclipse.epp.package.jee.product
-showsplash
org.eclipse.epp.package.common
--launcher.defaultAction
openFile
--launcher.defaultAction
openFile
--launcher.appendVmargs
--launcher.library
C:\app\tth\eclipse\plugins\org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.1200.v20200508-1552
-startup
C:\app\tth\eclipse\plugins\org.eclipse.equinox.launcher_1.5.700.v20200207-2156.jar
-vmargs
-Dfile.encoding=UTF-8
-Dosgi.requiredJavaVersion=1.8
-Dosgi.instance.area.default=@user.home/eclipse-workspace
-XX:+UseG1GC
-XX:+UseStringDeduplication
--add-modules=ALL-SYSTEM
-Dosgi.requiredJavaVersion=1.8
-Dosgi.dataAreaRequiresExplicitInit=true
-Xms256m
-Xmx2048m
--add-modules=ALL-SYSTEM
-javaagent:C:\app\eGovFrameDev-3.10.0-64bit\eclipse\lombok.jar
서비스 확인
ps -ef | grep svn
서비스 확인 후 프로세스 종료
kill -9 svn 프로세스 아이디
서비스 시작
svnserve -d -r /home/svn
서비스 확인
ps -ef | grep svn
netstat -ant | grep 3690
유분투 크롬 설치 (0) | 2024.02.25 |
---|---|
우분투에 파이썬 설치 (0) | 2024.01.02 |
톰켓 로그 분할 하는 방법 (0) | 2022.08.25 |
리눅스 파일 있으면 복사 없으면 생성하기 (0) | 2022.08.18 |
리눅스 특정 폴더 용량 확인하기 (0) | 2022.07.27 |
log4jdbc.drivers=oracle.jdbc.driver.OracleDriver
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0
의미 | ||
jdbc.sqlonly | SQL 쿼리 문장만 로그로 남긴다. PreparedStatement일 경우 관련된 argument 값으로 대체된 SQL문이 보여진다. | |
jdbc.sqltiming | SQL문과 해당 SQL을 실행시키는데 수행된 시간 정보(milliseconds)를 포함한다. | |
jdbc.audit ResultSet | ResultSet을 제외한 모든 JDBC 호출 정보를 로그로 남긴다. 많은 양의 로그가 생성되므로 특별히 JDBC 문제를 추적해야 할 필요가 있는 경우를 제외하고는 사용을 권장하지 않는다. | |
jdbc.resultset | ResultSet을 포함한 모든 JDBC 호출 정보를 로그로 남기므로 매우 방대한 양의 로그가 생성된다. | |
jdbc.resultsettable | SQL 결과 조회된 데이터의 table을 로그로 남긴다 |
(log4j2.xml 예시)
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<!-- <Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%d %5p [%c] %m%n"/>
</Console>
</Appenders> -->
<Appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %5p [%c] %m%n" />
</layout>
</Appender>
<Loggers>
<Logger name="kr.or.sportal" level="INFO" additivity="false">
<AppenderRef ref="console"/>
</Logger>
<Logger name="org.springframework" level="ERROR" additivity="false">
<AppenderRef ref="console"/>
</Logger>
<Logger name="org.mybatis.spring" level="DEBUG" additivity="false">
<AppenderRef ref="console"/>
</Logger>
<Logger name="org.apache.ibatis.io.ResolverUtil" level="OFF" additivity="false">
<AppenderRef ref="console"/>
</Logger>
<Logger name="jdbc.sqltiming" level="WARN" additivity="false">
<AppenderRef ref="console" />
</Logger>
<Logger name="jdbc.sql" level="DEBUG" additivity="false">
<AppenderRef ref="console" />
</Logger>
<Logger name="org.apache.commons" level="OFF" additivity="false">
<AppenderRef ref="console" />
</Logger>
<Logger name="log4jdbc.debug" level="DEBUG" additivity="false">
<AppenderRef ref="console" />
</Logger>
<Root level="DEBUG">
<AppenderRef ref="console"/>
</Root>
</Loggers>
No bean named egovFileIdGnrService is defined 대처법 (0) | 2016.11.10 |
---|---|
전자정부프레임워크 json 설정 (0) | 2016.11.08 |
스프링 한글 깨짐 처리 (0) | 2016.05.15 |
@Aspect Annotation을 이용한 로그인 세션 관리 (0) | 2016.04.29 |
Spring3에서 Tiles2 설정 (0) | 2016.04.21 |
□ 개요
o Apache 소프트웨어 재단은 자사의 Log4j 2에서 발생하는 취약점을 해결한 보안 업데이트 권고[1]
o 공격자는 해당 취약점을 이용하여 악성코드 감염 등의 피해를 발생시킬수 있으므로, 최신 버전으로 업데이트 권고
※ 관련 사항은 참고사이트 [6] 취약점 대응가이드를 참고 바랍니다.
※ 참고 사이트 [4]를 확인하여 해당 제품을 이용 중일 경우, 해당 제조사의 권고에 따라 패치 또는 대응 방안 적용
※ Log4j 취약점을 이용한 침해사고 발생시 한국인터넷진흥원에 신고해 주시기 바랍니다.
□ 주요 내용
o Apache Log4j 2에서 발생하는 원격코드 실행 취약점(CVE-2021-44228)[2]
o Apache Log4j 2에서 발생하는 원격코드 실행 취약점(CVE-2021-45046)[7]
o Apache Log4j 1.x에서 발생하는 원격코드 실행 취약점(CVE-2021-4104)[8]
※ Log4j : 프로그램 작성 중 로그를 남기기 위해 사용되는 자바 기반의 오픈소스 유틸리티
□ 영향을 받는 버전
o CVE-2021-44228
- 2.0-beta9 ~ 2.14.1 이하
※ 취약점이 해결된 버전 제외(Log4j 2.3.1, 2.12.2, 2.12.3 및 이후 업데이트 버전 제외)
o CVE-2021-45046
- 2.0-beta9 ~ 2.15.0 버전
※ 취약점이 해결된 버전 제외(Log4j 2.3.1, 2.12.2, 2.12.3 및 이후 업데이트 버전 제외)
o CVE-2021-4104
- 1.x 버전
※ JMSAppender를 사용하지 않는 경우 취약점 영향 없음
□ 대응방안
o 제조사 홈페이지를 통해 최신버전으로 업데이트 적용 [3]
※ 제조사 홈페이지에 신규버전이 계속 업데이트되고 있어 확인 후 업데이트 적용 필요
- CVE-2021-44228, CVE-2021-45046
· Java 8 이상 : Log4j 2.17.0 이상 버전으로 업데이트
· Java 7 : Log4j 2.12.3 이상 버전으로 업데이트
· Java 6 : Log4j 2.3.1 이상 버전으로 업데이트
※ log4j-core-*.jar 파일 없이 log4j-api-*.jar 파일만 사용하는 경우 위 취약점의 영향을 받지 않음
- CVE-2021-4104
· Java 8 : Log4j 2.17.0 이상 버전으로 업데이트
· Java 7 : Log4j 2.12.3 이상 버전으로 업데이트
· Java 6 : Log4j 2.3.1 이상 버전으로 업데이트
o 신규 업데이트가 불가능할 경우 아래와 같이 조치 적용
- CVE-2021-44228, CVE-2021-45046
· JndiLookup 클래스를 경로에서 제거
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class |
- CVE-2021-4104
· JMSAppender 사용 확인 후 코드 수정 또는 삭제
※ log4j 1.x버전 사용자의 경우 추가적인 업그레이드 지원 중지로 인해 다른 보안위협에 노출될 가능성이 높아 최신버전(2.x) 업데이트 적용 권고
□ 탐지정책
o 참고사이트 [6] 취약점 대응 가이드를 참고하여 탐지정책 적용
※ 본 탐지정책은 내부 시스템 환경에 따라 다르게 동작할 수 있으며, 시스템 운영에 영향을 줄 수 있으므로 충분한 검토 후 적용 바랍니다.
※ 공개된 탐지정책(참고사이트 [5])은 우회가능성이 있으므로 지속적인 업데이트가 필요합니다.
□ 침해사고 신고
o 한국인터넷진흥원 인터넷침해대응센터 종합상황실(02-405-4911~5, certgen@krcert.or.kr)
o 'KISA 인터넷보호나라&KrCERT' 홈페이지(www.boho.or.kr) → 상담및신고 → 해킹 사고
□ 기타 문의사항
o 한국인터넷진흥원 사이버민원센터: 국번없이 118
[참고사이트]
[1] apache 보안업데이트 현황 : https://logging.apache.org/log4j/2.x/security.html
[2] 취약점 정보 : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228
[3] 신규버전 다운로드 : https://logging.apache.org/log4j/2.x/download.html
[4] 제조사별 현황 : https://github.com/NCSC-NL/log4shell/tree/main/software
[5] 탐지정책 : https://rules.emergingthreatspro.com/open/suricata-5.0/rules/emerging-exploit.rules
[6] 취약점 대응 가이드 : https://www.boho.or.kr/data/guideView.do?bulletin_writing_sequence=36390
[7] 취약점 정보 : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-45046
[8] 취약점 정보 : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-4104
스크립트 보안 오류 PSSecurityException 처리 (0) | 2025.03.29 |
---|---|
HTTP trace 제거 (0) | 2019.04.10 |
개인정보보호 보안 가이드 - 행정자치부 (0) | 2015.04.23 |
/tomcat/bin/catalina.sh 수정
if [ "$1" = "-security" ] ; then
if [ $have_tty -eq 1 ]; then
echo "Using Security Manager"
fi
shift
eval $_NOHUP "\"$_RUNJAVA\"" "\"$CATALINA_LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
-D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
-classpath "\"$CLASSPATH\"" \
-Djava.security.manager \
-Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \
-Dcatalina.base="\"$CATALINA_BASE\"" \
-Dcatalina.home="\"$CATALINA_HOME\"" \
-Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
org.apache.catalina.startup.Bootstrap "$@" start \
2>&1 "&" | /usr/local/apache/bin/rotatelogs "$CATALINA_OUT"-%Y.%m.%d 86400 540 & <= 이부분 추가
#>> "$CATALINA_OUT" 2>&1 "&" <= 이부분 주석 처리
else
eval $_NOHUP "\"$_RUNJAVA\"" "\"$CATALINA_LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
-D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
-classpath "\"$CLASSPATH\"" \
-Dcatalina.base="\"$CATALINA_BASE\"" \
-Dcatalina.home="\"$CATALINA_HOME\"" \
-Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
org.apache.catalina.startup.Bootstrap "$@" start \
2>&1 "&" | /usr/local/apache/bin/rotatelogs "$CATALINA_OUT"-%Y.%m.%d 86400 540 & <= 이부분 추가
#>> "$CATALINA_OUT" 2>&1 "&" <= 이부분 주석 처리
fi
우분투에 파이썬 설치 (0) | 2024.01.02 |
---|---|
svn 재시작 (0) | 2023.01.17 |
리눅스 파일 있으면 복사 없으면 생성하기 (0) | 2022.08.18 |
리눅스 특정 폴더 용량 확인하기 (0) | 2022.07.27 |
도커 개념 정리 (0) | 2022.05.24 |
WORK_DIR 은 현재 스크립트 파일 디렉토리
FILE_DIR 은 파일 검색하는 디렉토리
BACK_DIR 은 FILE_DIR 디렉토리 내의 데이터 이동 디렉토리이다.
============================================================================================
WORK_DIR=/B_PBS/ShFiles
FILE_DIR=/B_PBS/SrcFiles/AITAS
BACK_DIR=test
#pbs_daily.prm 파일안에 있는 InputFileName 글자가 있는 라인을 읽는다. 즉, InputFileName=20120101 형식으로 되어 있는 프로퍼티 값을 읽기위한 것이다.
param=`grep InputFileName /B_PBS/BWParam/pbs_daily.prm`
#substrig을 구현하여 프로퍼티의 값을 읽는다.
param=`expr substr $param 16 8`
BACK_DIR=${param}
mkdir ${FILE_DIR}/${BACK_DIR}
#패턴 목록 파일을 라인단위로 읽어 목록을 만든다.
file=${WORK_DIR}/data.txt
while read line
do
#파일이 있는지 몰라 패턴(*)을 이용하여 찾아본다. 있는지 찾아본다는 얘기다. 여기서 놀란 것은 있으면 바로 변수에 정확한 파일명이 들어간다는 것에 놀랬다. 이렇게 편하다. 없으면 파일 존재여부 옵션인 -f 옵션에 의거하여 else 구문을 타게 된다.
filename=${FILE_DIR}/${line}*_${param}
if [ -f ${filename} ]
then
cp ${filename} ${FILE_DIR}/${BACK_DIR}/${line}${param}.dat
else
touch ${FILE_DIR}/${BACK_DIR}/${line}${param}.dat
fi
done < "$file"
svn 재시작 (0) | 2023.01.17 |
---|---|
톰켓 로그 분할 하는 방법 (0) | 2022.08.25 |
리눅스 특정 폴더 용량 확인하기 (0) | 2022.07.27 |
도커 개념 정리 (0) | 2022.05.24 |
리눅스 파일명으로 검색 (0) | 2020.03.12 |