728x90

sual Studio Code는 Microsoft에서 개발한 강력한 오픈소스 코드 편집기 Linux, Windows, MacOS등 다양한 플랫폼에서 사용할 수 있다. 코드 디버깅, 작업 실행 및 버전 제어 활성화에 도움이 되는 강력한 도구로, 리팩토링, 구문 강조, 자동 코드 완성, 스니펫 등 다른 코드 편집기와 차별화되는 많은 기능(Extension)이 제공된다. 이 글에서는 Ubuntu 22.04에 Visual Studio Code 설치방법에 대해 알아본다.

Contents:

 

Step 1: 시스템 업데이트 (System Update)

다음 명령어를 실행하여 시스템을 업데이트 한다.

$ sudo apt update && sudo apt upgrade -y

Step 2: 패키지 설치 (Package Install)

시스템이 업데이트 되었으면 Visual Studio Code를 설치하기 전에 설치되어야 하는 패키지들을 설치한다.

$ sudo apt install software-properties-common apt-transport-https wget -y

Step 3: 저장소 가져오기

Visual Studio Code 설치를 위해 Visual Studio Code 리포지토리를 추가한다. 그 전에 설치된 패키지를 인증하기 위해 Microsoft GPG 키를 가져와야 한다.

wget -O- https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor | sudo tee /usr/share/keyrings/vscode.gpg

echo deb [arch=amd64 signed-by=/usr/share/keyrings/vscode.gpg] https://packages.microsoft.com/repos/vscode stable main | sudo tee /etc/apt/sources.list.d/vscode.list

Step 4: 시스템 업데이트 다시

패키지를 설치하고, 저장소를 추가 했으므로, 시스템 업데이트를 다시 수행한다.

Step 5: Visual Studio Code 설치

Visual Studio Code를 설치한다.

설치가 완료되었으면, 검색창에 code를 입력하여 Visual Studio Code가 install 되어 있는지 확인한다.

아래는 설치된 Visual Studio Code를 실행한 화면이다.

참조

https://linuxize.com/post/how-to-install-visual-studio-code-on-ubuntu-20-04/

https://junorionblog.co.kr/

728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

우분투 파이썬 설치  (0) 2024.02.25
유분투 크롬 설치  (0) 2024.02.25
우분투에 파이썬 설치  (0) 2024.01.02
svn 재시작  (0) 2023.01.17
톰켓 로그 분할 하는 방법  (0) 2022.08.25
728x90

Python 3.10은 Ubuntu의 기본 저장소에서 사용할 수 없습니다. 따라서 Python 3.10 설치를 위해 다른 저장소를 추가해야 합니다. deadsnake라는 이름의 launchpad 저장소에서는 Python 패키지에 사용할 수 있습니다.

1. 저장소 추가하기

다음 명령을 사용하여 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

2. Python 3.10 설치하기

sudo apt install python3.10

3. (Option) 다른 Python 버전과 함께 사용하기

만약 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:티스토리]

728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

우분투 비주얼 스튜디오 코드 설치  (0) 2024.02.25
유분투 크롬 설치  (0) 2024.02.25
우분투에 파이썬 설치  (0) 2024.01.02
svn 재시작  (0) 2023.01.17
톰켓 로그 분할 하는 방법  (0) 2022.08.25
728x90

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

 

<출처>https://webnautes.tistory.com/1941

728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

우분투 비주얼 스튜디오 코드 설치  (0) 2024.02.25
우분투 파이썬 설치  (0) 2024.02.25
우분투에 파이썬 설치  (0) 2024.01.02
svn 재시작  (0) 2023.01.17
톰켓 로그 분할 하는 방법  (0) 2022.08.25
728x90

1. 저장소 추가하기

다음 명령을 사용하여 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

2. Python 3.10 설치하기

sudo apt install python3.10

3. (Option) 다른 Python 버전과 함께 사용하기

만약 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:티스토리]

728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

우분투 파이썬 설치  (0) 2024.02.25
유분투 크롬 설치  (0) 2024.02.25
svn 재시작  (0) 2023.01.17
톰켓 로그 분할 하는 방법  (0) 2022.08.25
리눅스 파일 있으면 복사 없으면 생성하기  (0) 2022.08.18
728x90
  1. 서비스 확인
    ps -ef | grep svn

  2. 서비스 확인 후 프로세스 종료
    kill -9 svn 프로세스 아이디

  3. 서비스 시작
    svnserve -d -r /home/svn

  4. 서비스 확인
    ps -ef | grep svn
    netstat -ant | grep 3690

728x90
728x90
  1. log4j2.xml 이 있는 경로에 log4jdbc.log4j2.properties 파일을 추가해준다.

log4jdbc.drivers=oracle.jdbc.driver.OracleDriver
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0

  1. pom.xml에 log4jdbc-log4j2-jdbc4.1 추가해 준다.org.bgee.log4jdbc-log4j2log4jdbc-log4j2-jdbc4.11.16
  2. context-datasource.xml에 driverClassName을 "net.sf.log4jdbc.sql.jdbcapi.DriverSpy"로 지정한다.
  3. log4j2.xml 구성
    의미  
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>

 

 

 

 

728x90
728x90

QnA로 알아보는 log4j 보안취약점 대응 가이드.pdf
0.41MB

□ 개요
 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

728x90

'프로그래밍 > 정보보안' 카테고리의 다른 글

HTTP trace 제거  (0) 2019.04.10
개인정보보호 보안 가이드 - 행정자치부  (0) 2015.04.23
728x90

/tomcat/bin/catalina.sh 수정

apache 서버의 rotatelogs를 활용한다.

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

728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

우분투에 파이썬 설치  (0) 2024.01.02
svn 재시작  (0) 2023.01.17
리눅스 파일 있으면 복사 없으면 생성하기  (0) 2022.08.18
리눅스 특정 폴더 용량 확인하기  (0) 2022.07.27
도커 개념 정리  (0) 2022.05.24

+ Recent posts