OS/Linux 16

Ubuntu - repository(저장소) 변경하기

Ubuntu를 통해 Package 를 Update 하다보면 설정되어 있는 저장소(repository) 외에 다운로드 속도등의 문제로 다른 저장소에서 받고 싶을 때가 있다. 자주 사용하는 저장소가 있다면 아래 경로의 저장소 주소를 바로 수정도 가능하다. # /etc/apt/sources.list 하지만 저장소 주소를 항시 외우고 있는 경우가 없기 때문에 이때는 Ubuntu의 "Software & Updates" 에서 제공해 주는 저장소 (repository) 변경 기능을 사용하면 유용하다. 1) 검색을 통해 Software & Updates 를 실행한다. 2) "Ubuntu Software" tab 에서 "Download from:" 의 combobox 를 열고, Other... 항목을 선택한다. 3) 사..

OS/Linux 2019.11.11

Ubuntu - SSH Server 설치 및 접속하기

Ubuntu machine 와의 연결에 ssh 를 사용하기 위해서는 해당 Ubuntu machine에는 SSH Server가 설치되어 있어야 하고, 해당 Server에 접속하려는 PC 에서는 SSH Client 설치가 필요하다. SSH Server의 설치 Ubuntu 에서는 아래와 같이 openssh-server를 설치한다. (Ubuntu 14/16/18 등 버전에 따라 큰 차이가 없음) $ sudo apt install openssh-server user@TechNote:~$ sudo apt install openssh-server Reading package lists... Done Building dependency tree Reading state information... Done The fol..

OS/Linux 2019.11.11

하위 DNS 추가 및 Apache 가상 호스트 생성

1차 도메인 : kr2차 도메인 : technote.kr3차 도메인 : forum.technote.kr DNS 는 가비아나 후이즈와 같은 대행 업체를 통해 구매가 가능하고, 기본적인 설정이 가능하다. 하나의 서버에 여러개의 DNS 주소를 연결하고자 할 때에는 DNS 설정만으로는 불가능하다. 서버 내 가상 호스트를 생성하여 들어 오는 DNS 요청에 따라 적합한 웹으로 연결 시켜 주어야 한다. 전체적인 순서는 다음과 같다. DNS 설정을 통해 연결하기 원하는 주소를 등록(e.g> forum.technote.kr) 하고 해당 주소를 IP 에 mapping 시켜 준다. 해당 IP 주소를 가지는 서버에 웹 서버를 구동하고, 여러개의 DNS 주소를 연결하고자 한다면 웹서버에 가상 호스트를 생성해준다. 1. 가비아나..

OS/Linux 2019.03.18

screen, 자유롭고 안정적인 Linux session의 사용

putty 나 기타 terminal 프로그램을 이용해 server 로 접속해서 console을 사용하는 경우가 종종 있다. 원격으로 접속하다보면 종종 알 수 없는 이유로 연결이 끊어지거나 client 가 절전모드로 들어가서 강제로 끊어지거나 예상치 못한 연결해제가 종종 발생함을 경험할 수 있다. 이 때는 기존 연결시 진행 중이던 작업 또한 session이 닫히면서 강제로 종료되곤 하는데 이럴 때를 위해 강제로 종료되더라도 기존 작업을 그대로 남겨둘 수 있는 screen이라는 가상 session command가 존재한다. 원리는 서버로 바로 연결하여 열어놓은 console session에서 다시 한번 screen 명령어를 이용해 가상 session을 여는 방식이다. client에서 직접 연결한 consol..

OS/Linux 2017.01.21

Linux - iconv - 파일(File) 인코딩(Encoding) 변경

HTML 을 파싱하다보면 HTML이 euc-kr로 되어 있는 경우도 있고, utf-8로 되어 있는 경우도 있다. 개인적으로 보통 linux terminal에서 작업을 하는데 linux terminal 이 보통 utf-8로 되어 있다. 이에 따라 eucKR로 encoing된 html 파일을 받아 내용을 확인해보게 되면 한글이 잔뜩 깨져 있는 것을 볼 수 있다. [euc-kr로 인코딩된 파일을 utf-8 환경에서 열었을 경우] 이에 따라 원활한 작업을 위해서는 euc-kr 파일을 utf-8 인코딩으로 변경해주어야 할 필요가 있다. linux 에서는 iconv 명령어를 이용해 쉽게 변경할 수 있다. iconv 사용법$ iconv -f "현재인코딩포맷" -t "바꿀인코딩포맷" "원본파일이름" > "저장할파일이름..

OS/Linux 2017.01.07

Ubuntu, wpa_supplicant 빌드/컴파일 하기

IEEE802.11, 즉 Wi-Fi를 linux 에서 공부하다보면 wpa_supplicant code를 보아야 하는 일이 자주 있다. wpa_supplicant를 공부하기 위해서는 wpa_supplicant code에 로그를 넣어 보기도 하고 코드를 내용을 바꿔 보기도 하고 많은 시도를 해보아야 한다. 이를 위해서 기본 코드를 빌드하였을 때 정상적으로 동작하는 상태를 확보해야만 한다. 이에따라 Ubuntu에서 wpa_supplicant를 기본 code상태로 빌드하여 동작을 확인하고자 한다. Ubuntu 14.04.5 LTS wpa_supplicant v2.1 겪었던 시행 착오를 모두 기술하였기에 다소 양이 방대할 수 있다. 핵심적으로 필요한 부분만 확인하고자 한다면 이 글의 제일 마지막 Summary 부..

OS/Linux 2016.12.29

Linux/Ubuntu, Samba 설정하기.

Windows 와 Linux 간에 파일을 공유하기 위해서는 흔히 Samba 를 사용하곤 한다. Linux에서 Samba를 설정하여 Windows 에서 해당 Samba를 사용하는 방법에 대해 UI를 이용한 설정 위주로 정리해 보았다. 대상 OS는 Ubuntu 16.04, Windows 10 를 기준으로 하였지만, 버전이 조금 다르다고 해서 큰 차이는 없다. Samba 의 설정 on [Linux]1. samba, system-config-samba 를 설치 한다. (root 권한 필요) samba를 설치하게 되면 samba의 기본이 되는 smbd를 포함하여 각종 의존성이 걸린 package들을 자동으로 설치하게 된다. # apt-get install samba system-config-samba 는 samb..

OS/Linux 2016.08.04

자기 자신 IP Address C 코드로 확인하기.(SIOCGIFADDR)

현재 해결해야하는 미션은 자기가 쏜 Broadcast packet을 받을 경우 무시하는 코드를 작성해야만 한다. 들어오는 Packet에 대해서는 패킷을 보고 SRC IP Address 확인이 가능한데 나의 IP Address는 어떻게 확인이 가능한가. 위의 사진과 같이 ifconfig 를 통해 확인했을 때 enp0s3 이라는 이름의 interface의 10.0.2.15 라는 IP Address를 코드상으로 받아와야 한다. #include #include #include #include #include int main() { struct ifreq ifr; char ipstr[40]; int s; s = socket(AF_INET, SOCK_DGRAM, 0); strncpy(ifr.ifr_name, "en..

OS/Linux 2016.07.27

Linux 접속 차단하기. (TCP Wrapper)

Ubuntu 14.04 Server에 OpenSSH를 깔아 사용하고 있는데, 몇시간 정도 쓰다 보면 끊어지고, 한동안 연결이 안되고 뭔가 불안정한 모습을 보였다. 그래서 SSH 관련 로그를 좀 찾아보았는데, 여러 로그들을 검토해 보다 생각지도 못한 접속 시도들이 다수 일어나고 있음을 확인할 수 있었다. 검토 대상 로그 파일 : /var/log/auth.log [알수 없는 IP로 부터 root 권한 접속 시도] [알수 없는 IP로 부터 존재하지 않는 계정(orego)으로 접속 시도] 한군데서가 아니라 여러 군데에서 초 단위로 접속 시도를 계속 하고 있었다. 사실 Ubuntu sshd의 기존 Logging 은 AUTH(인증)에 대해서만 남기고 있기 때문에 내가 겪은 끊김이나 한동안 접속 안됨 문제들이 이런 ..

OS/Linux 2016.07.22

Linux/Ubuntu, 용량 큰 파일/디렉토리 찾아내기.

컴퓨터를 사용하다보면 저장 공간이 부족해져 일부 파일을 삭제해야 할 때가 있다. 이왕이면 안쓰고, 크기가 큰 파일을 삭제하고자 하는데 그 큰 크기의 파일을 찾는 방법에 대해 알아보고자 한다. 참고로 만약 VirtualBox를 쓴다면 가상 하드 디스크 자체를 늘리는 방법도 있다. -. VirtualBox, 가상 하드 디스크 용량 조절하기. 리눅스에서 파일 사이즈를 아는 방법은 다양하다. 흔히 사용하는 ls를 사용할 수도 있고, du를 사용하는 방법 또한 있다. 여기서는 du를 사용해 보고자 한다. # du -s # du -sh du -s 를 실행하게 되면 하위 디렉토리 모두 포함한 현재 디렉토리의 전체 크기를 KB(킬로바이트) 크기의 단위로 보여준다. du -sh 와 같이 h 옵션도 붙여주게 되면 huma..

OS/Linux 2016.07.13

Linux/Ubuntu, CD/DVD 를 ISO로 만들기

CD/DVD를 ISO로 만들기 위해서 꼭 Linux 가 필요한 것은 아니다. 하지만 Windows 에서 만들기 위해서는 BurnAware, ISOMaker, IMGBurn등 쉽게 들어보지 못했던 프로그램들을 설치해야만 하는 문제가 있다. 이 프로그램들을 설치했을 때 내 Windows 에 무엇을 남겨놓을지 몰라서 VirtualBox로 설치해 놓았던 Ubuntu에서 CD/DVD를 ISO로 변환시켰다. 적어도 Linux에서는 기본 명령어로만으로도 가능하기 때문에 별도의 프로그램 설치는 필요가 없다. 목표 : (Bootable한) CD/DVD를 ISO로 만들기 1. CD/DVD의 위치 확인 시스템마다 다를 수 있으므로 현재 CD/DVD가 파일시스템 어느 위치에 있는지 확인해 본다.# lshw -c disk 위 ..

OS/Linux 2016.07.13

terminator, Linux 다중 분할 터미널

Ubuntu를 사용하게되면 기본적으로 아래와 같은 기본 terminal program이 포함되어 있다. 기본 terminal 인 만큼 기본에 충실한데, 하나 불편한 점이 있다. 여러 terminal을 띄우게 되면 이전에 띄운 terminal 들은 뒤로 가려져 보이지 않는다는 것이다. 그래서 찾아낸 것이 terminator 라는 프로그램이다. https://launchpad.net/terminator terminator를 사용하게 되면 이전 창을 가리는 것 없이 아래와 같이 사용이 가능하다. 수직/수평으로 사용자가 마음대로 분할이 가능하다. 설치는 다음과 같다. (root 권한 필요) Ubuntu# apt-get install terminator Fedora/RHEL# yum install terminat..

OS/Linux 2016.07.12

Ubuntu package 검색하기/상세정보보기/설치하기 (apt-cache, apt-get)

Ubuntu에서는 여러가지 package 설치 방법들이 존재한다. "Ubuntu Software"를 통해서 UI로 설치할 수도 있고, apt-get, aptitude, dpkg 등을 통해 CLI를 통해 설치할 수도 있다. 여기서는 apt-get을 통해 package 를 검색하고, 찾은 package의 상세 정보를 확인하고 설치하는 방법에 대해 알아보고자 한다. -. 모든 명령은 root 에서 이루어져야 한다.-. 예제로 'terminator' 라는 package를 설치하였다. 1. package 의 검색# apt-cache search terminator 2. package 의 상세 정보 확인# apt-cache show terminator 3. package 의 설치# apt-get install te..

OS/Linux 2016.07.12

Ubuntu 최신으로 유지하기 (apt-get, aptitude, Ubuntu Software)

Ubuntu 를 최신으로 유지하는 방법에 대해 소개하고자 한다. 이 방법들은 Ubuntu 12.04, 14.04, 16.04 등 특정 버전의 국한되지 않는다. -. Terminal(cmd)을 이용하여 최신으로 유지하는 방법-. UI를 이용하여 최신으로 유지하는 방법 Terminal(cmd)을 이용하여 최신으로 유지하는 방법 1. 아래 명령어를 이용해 /etc/apt/sources.list 에 정의된 서버에서 최신 package list를 받아온다.# apt-get update혹은# aptitude update 2. 아래 명령어를 이용해 현재 system 에 설치된 package들을 최신으로 바꾼다.# apt-get upgrade혹은# aptitude upgrade # 참고용으로 apt-get 의 man ..

OS/Linux 2016.07.12

IPTIME A1000UA, Linux 에서 사용가능한가.

사실 Linux에서 사용하려고 구매했던 것은 아니지만 무선랜카드가 A1000UA 밖에 없는 상황이라 Ubuntu에서 네트워크 사용 할일이 있어 시도해 보았다. 사실 이번에 처음 시도하는 것은 아니고 이전에 사용하기 위해 iptime 홈페이지에서 Linux 용 driver를 제공하는지 알아본 적은 있었다. 다행인지 iptime에서는 A1000UA의 드라이버를 제공하고 있었는데, 좀 더 정확히 말하자면 A1000UA에서 사용하는 Mediatek MT7610U의 가져다가 올려놓은 것까지만 확인했었었다.올려져 있는 파일을 다운받아 README를 보면 아래와 같이 적혀있다. =================== Supporting Kernel: =================== linux kernel 2.4 an..

OS/Linux 2016.07.08

Ubuntu 16.04, 기본 설정에서의 Kernel Compile.

지난 4월 26일자로 Ubuntu 16.04가 release 되었다. 사실 Linux kernel compile에 있어서 Ubuntu 의 버전은 그다지 상관은 없지만, 나온지 얼마되지 않은 Ubuntu 16.04에서 Linux kernel compile할 일이 있어, 설치해야할 package등 정리하면서 작성해 보았다. 시행착오 과정까지 모두 적은지라 결론만 보고 싶으신 분들은 제일 마지막 부분만 참고 하셔도 될 것 같다. Linux kernel compile on Ubuntu 16.04참고로 build에 사용된 Ubuntu 16.04는 Ubuntu.com에서 iso 다운로드 받고서 설치한 직후의 상태라 별다르게 설치된 package는 없는 상황이었다. 현재 사용하고 있는 Ubuntu 16.04와 동일한..

OS/Linux 2016.07.07