2015년 4월 22일 수요일

ssh tunneling


터널링 1: 로칼포트 포워딩

로칼포트 = 1234
SSH서버 = 192.168.0.99
SSH서버계정 = guest
대상호스트 = TARGET     # SSH서버와 같을 경우 localhost
대상포트 = 5678

로칼포트 1234 에 접근하면,
192.168.0.99 에서 TARGET:5678 에 접근한 것 같이 동작.

즉. 로칼머신에서는 TARGET:5678 에 접근이 안되고
SSH 서버에서는 접근이 될 때, SSH 서버를 Proxy 같이 사용.
 
* command line
$ ssh -f -N -L1234:TARGET:5678 guest@192.168.0.99
-N : 터널링만 하고 명령 실행은 못함
-f: 백그라운드로 동작

* ~/.ssh/config
$ cat ~/.ssh/config
Host server
    HostName 192.168.0.99
    User guest
    LocalForward 1234 TARGET:5678
$ ssh -f -N server

* teraterm
Setup > SSH Forwarding... > Add... >
[*] Forward local port: [1234]
to remote machine [TARGET] port [5678]

File > New connection...
Host [ssh://guest@192.168.0.99]
OK


* putty
Connection
    Data
        Login details
            Auto-login username [guest]
    SSH
        Tunnels
            Source port [1234]
            Destination [TARGET:5678]
            Add
Session
    Host Name [192.168.0.99] Port [22]
    Saved Sessions [SSH 터널 - 로칼포트 포워딩]
    Save
    Open


터널링 2: 리모트 포트 포워딩

SSH서버 포트 = 1234
SSH서버 = 192.168.0.99
SSH서버계정 = guest
대상호스트 = TARGET     # 로칼머신과 같을 경우 localhost
대상포트 = 5678

SSH 서버의 포트 1234 에 접근하면,
로칼머신에서 target의 5678 에 접근한 것 같이 동작.

* comman-line
$ ssh -R 1234:target:5678 -N -f guest@192.168.0.99

* teraterm
Setup > SSH Forwarding... > Add... >
[*] Forward remote server port: [1234]
to local machine [TARGET] port [5678]

File > New connection...
Host [ssh://guest@192.168.0.99]
OK

참고
* http://egloos.zum.com/milines/v/3781525
* http://linux.systemv.pe.kr/ssh-%ED%8F%AC%ED%8A%B8-%ED%8F%AC%EC%9B%8C%EB%94%A9/
* http://www.revsys.com/writings/quicktips/ssh-tunnel.html
* http://qgp9.github.io/blog/2016/03/26/ssh-proxy-jump-host

tftp 서버 설치

# tftpd 는 블록사이즈가 512 바이트로 고정이지만
# tftpd-hpa 는 client 와 협의해서 가능한한 크게 정한다.

* Ubuntu 12.04

$ sudo apt-get install xinetd tftpd-hpa

$ cat /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/work2/tftpboot"           # 원하는 경로로 수정
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
RUN_DAEMON="no"                                  # 추가
 
$ cat /etc/xinetd.d/tftp                             # 추가
service tftp
{
        socket_type = dgram
        protocol = udp
        wait = yes
        user = root
        server = /usr/sbin/in.tftpd
        server_args = -u tftp -t 0 -s /work2/tftpboot    # 위와 같은 경로 지정
        disable = no
}

$ sudo service tftpd-hpa stop
$ sudo service xinetd restart



* CentOS release 6.6 (Final)

$ sudo yum install tftp-server

$ cat /etc/xinetd.d/tftp
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /tftpboot          # 원하는 경로로 수정
        disable                 = no                          # no 로 수정
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

$ sudo service xinetd restart

2015년 4월 21일 화요일

원격 데스크톱으로 ubuntu 12.04 접속

서버 Ubuntu 12.04

$ sudo apt-get install xrdp
$ sudo apt-get install fluxbox
$ echo "LANG=C exec startfluxbox" > ~/.xsession
$ sudo service xrdp restart

클라이언트 Windows 7

1. Win + R
2. mstsc /f
3. 서버 주소
4-1. 연결 > xrdp Login 창
Module: [sesman-Xvnc]
username: [서버 유저명]
password: [패스워드]

4-2 자격 증명을 저장하면 다음부터 자동으로 로그인 된다.
옵션 표시 > 일반 탭 > [*] 자격 증명 저장 허용 > 연결 >
사용자 자격 증명 입력 창 >사용자 이름, 암호 입력 >
[*] 내 자격 증명 기억 > 확인

context 메뉴에 [submenu] 와 [separator] 추가

$ cat ~/.fluxbox/menu
[begin] (fluxbox)
[submenu] (My Menu)
    [exec] (Gnome Terminal) {/usr/bin/gnome-terminal} </usr/share/pixmaps/gnome-terminal.xpm>
    [exec] (FireFox) {firefox}
    [exec] (Chrome) {/opt/google/chrome/chrome}
    [exec] (Meld) {meld}
[end]
[separator]
[include] (/etc/X11/fluxbox/fluxbox-menu)
[end]

2015년 3월 11일 수요일

리눅스 초기 설정

  • change repository & update
$ sudo sed -i 's/[^/]*.ubuntu.com/ftp.daumkakao.net/g' /etc/apt/sources.list
$ sudo apt-get update

  • Update packages
$ sudo apt-get --purge remove vim-tiny
$ sudo apt-get install vim

  • 디폴트 에디터 바꾸기
$ sudo update-alternatives --config editor
    vim or vim.basic 선택 

  • 패스워드 묻지 않고 sudo 를 실행하기 위한 설정
# visudo
username ALL=(ALL:ALL) NOPASSWD: ALL
<사용자> <호스트>=(유저권한) 명령
* 주의: 파일의 마지막에 추가

  • 사용자 추가
# adduser user

2015년 3월 1일 일요일

Building gnu netcat with mingw on cygwin

1. Download
$ wget http://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1.tar.bz2

2. Extract
$ tar jxf netcat-0.7.1.tar.bz2 

3. Patch
$ wget http://sourceforge.net/p/netcat/bugs/_discuss/thread/f8b0bf92/7d08/attachment/netcat-cygwin.patch
$ cd netcat-0.7.1
$ patch -p2 < ../netcat-0.7.1

4. Configure
$ ./configure --build=i686-pc-mingw32

5. Make
$ make
$ cp src/netcat.exe ~/bin/nc.exe

2015년 1월 18일 일요일

동영상 구간 자르기 및 합치기

구간 자르기

MP4Box
MP4Box -info original.mp4
MP4Box -out output.mp4 -splitx <start secs>:<end secs> original.mp4
ex) MP4Box -out output.mp4 -splitx 77:137 original.mp4

mkvtoolnix
mkvinfo original.mkv
mkvmerge -o output.mkv --split parts:<start time>-<end time> original.mkv
ex) mkvmerge -o output.mkv --split parts:1:17-2:17 original.mkv

합치기
MP4Box
MP4Box -cat input1.mp4 -cat input2.mp4 ouput.mp4

비디오, 오디오 합치기
MP4Box
MP4Box -add video.mp4 -add audio.m4a ouput.mp4

자막 합치기
MP4Box -add 자막.srt:hdlr=sbtl:lang=kor input.mp4 -out output.mp4
https://gist.github.com/wmanth/d08fb9fcc87dcf84ee5fd4a1d8b9d91c

2014년 10월 30일 목요일

bash 스크립트 작성할 때 주의점

http://mywiki.wooledge.org/BashPitfalls

프로세스 치환
http://mywiki.wooledge.org/ProcessSubstitution