Ubuntu 18.04 에 NIS 를 구성하여 사용하고 있었음.


설치 및 설정은 아래 링크를 참고.


Ubuntu 18.04 : NIS Server

(01) Configure NIS Server

(02) Configure NIS Client

(03) Configure NIS Slave


나는 Slave 서버는 없고, MERGE_PASSWD 와 MERGE_GROUP 옵션은 뭔지 잘 모르겠어서 하라는대로 하지 않았음.


위 방법으로 1대의 Master 와 여러대의 Client 를 구성하였는데, Client에서 NIS 계정으로 로그인할 경우 SSH 연결을 위해서 20초 가량이 걸리면서 연결이 제대로 안되는 문제가 발생.


ssh -vvv 옵션을 주고 연결을 하면


(생략)

debug1: Entering interactive session.

debug1: pledge: network

(여기서 약 20초 딜레이)

debug3: receive packet: type 80

debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0

(생략)


이렇게 진행이 된다.


/var/log/auth.log 를 보면

sshd[15635]: pam_systemd(sshd:session): Failed to create session: Connection timed out


이런 식의 오류메시지가 남겨져 있음.


찾아보니 systemd-logind 에 IP Sandbox 기능이 있는데 이와 관련한 문제이며 이 기능을 꺼줘야 한다고 한다.

보안상의 문제로 이걸 끄면 대체로 IP 필터를 걸어줘라~ 라는 식으로 적혀 있던데 이 기능 자체가 새로 생긴 것 같아 보이고 필요성을 모르겠어서 그냥 비활성화만 하고 치움.



sudo vi /lib/systemd/system/systemd-logind.service
SystemCallArchitectures=native
LockPersonality=yes
#IPAddressDeny=any
FileDescriptorStoreMax=512


sudo systemctl daemon-reload
sudo systemctl restart systemd-logind


참고

https://github.com/systemd/systemd/issues/9431

https://askubuntu.com/questions/1031022/using-nis-client-in-ubuntu-18-04-crashes-both-gnome-and-unity/1064617#1064617

Win Server 2012 + Hyper-V 조합으로 쓰다가 도저히 불편해서 결국 Host 를 Linux 계열로 밀어버리는 대 공사 진행.


Ubuntu 18.04 + KVM 조합으로 결정했다.

Host 에서는 no GUI 로, SSH를 통해 설치 및 사용하고, KVM 가상머신 생성 및 설정은 X11 forwarding 을 통해 진행함.



KVM 설치

sudo apt install qemu-kvm libvirt-bin bridge-utils ubuntu-vm-builder

# GUI manager
sudo apt install virt-manager



이후 VM 관련 작업을 할때 매번 sudo 를 이용하고 싶지 않다면, 관련 그룹에 계정을 추가해준다.


그냥 설치만 해도 내 사용자 계정이 libvirt 그룹에 자동으로 추가되던데, 다른 계정을 이용했거나 필요에 따라 진행.


보통 libvirt, kvm, libvirtd 3개 그룹에 집어넣던데 환경에 따라... 난 이미 libvirt 그룹엔 속해져있었고 libvirtd 그룹은 생성이 안되어 있어서, kvm 에만 추가해두었다,

sudo adduser $(id -un) libvirt
sudo adduser $(id -un) kvm

# 나의 경우 libvirtd 그룹은 없었음
# sudo adduser $(id -un) libvirtd


가상머신 설치

가상머신 설치용 이미지나, 디스크는 기본적으로 /var/lib/libvirt/images 경로를 참조하고 사용한다. 필요하면 바꿔주면 되겠지만, 난 귀찮아서 그대로 사용, 설치 전 iso 이미지를 저기다가 넣어주었다.


커맨드라인으로 생성하고 관리하는 방법도 있는데, 난 X11 forwarding 을 사용.

ssh 연결시에 -X 옵션을 넣어주고 연결한다.


* Mac 이라면 XQuartz 를 설치해줘야한다.

또한 XQuartz 실행시에 키보드가 한글로 되어 있다면 이후에 계속 키 입력이 이상하게 되니 주의해주자.

그리고 연결 끊고 재연결시엔 독에서 XQuartz 를 직접 끄고 다시 연결해줘야하는 듯...


ssh -X user@host

$ virt-manager



그럼 이런 창이 뜬다. 이 상황에서 가상머신 생성, 설정, 콘솔보기 등을 할 수 있음.


생성은 알아서 하는걸루.. 별거 없다.



네트워크 관련 설정

브릿지 NIC 생성 및 사용하기

기본적으론 virbr0 란 이름으로 NAT NIC 만 생성해준다.


1. br0 인터페이스 생성

Ubuntu 17? 18? 부터 네트워크 인터페이스 관리를 위해 netplan 패키지를 이용한다.

설정 파일 경로는 /etc/netplan/


적당히 60-kvm.yaml 이란 이름으로 만들어서 br0 네트워크 인터페이스를 생성해준다.

eno1 은 브릿지 하려는 NIC 이름. br0 도 필요하다면 이름을 바꿔줄 것.


sudo vi /etc/netplan/60-kvm.yaml
network:
  version: 2
  bridges:
    br0:
      dhcp4: false
      interfaces: [eno1]
# 설정 적용
sudo netplan apply


적당한 경로에 아래 내용을 가진 br0.xml 파일을 만들고 그 밑 명령어로 KVM NIC를 설정해준다.

<network>
        <name>br0</name>
        <forward mode='bridge'/>
        <bridge name='br0'/>
</network>
virsh net-define br0.xml
virsh net-start br0
virsh net-autostart br0


이 후 아래와 같이 확인할 수 있다.

virsh net-list --all
 Name                 State      Autostart     Persistent
----------------------------------------------------------
 br0                  active     yes           yes
 default              active     yes           yes


이제 NIC 설정에 "Virtual network 'br0' : Bridge network 가 나타나서 사용할 수 있다.

virt-manager 로 새 VM을 만들땐 NIC 를 하나밖에 선택을 못할텐데,

마지막 단계에 "Customize configuration before install" 체크박스가 있고, 이걸 체크하면 뜨는 설정 창에서 Add Hardware 를 통해 NIC 를 추가할 수 있다.






NAT 고정 IP 설정하기

기본으로 생성되는 NAT NIC 는 IP 를 DHCP 로 할당한다.


가상머신에서 static ip 를 설정해줘도 되겠지만, host에서 특정 Mac 주소에 대해 고정 IP 를 할당하는 방법



virsh net-edit default
# 처음이라면 에디터를 선택하라고 뜰텐데 편한걸 선택하면 된다. 난 vim basic.

<ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
      <host mac='52:54:00:FF:FF:FF' name='NAME' ip='192.168.122.XXX'/>
    </dhcp>
  </ip>
</network>


dhcp 부분을 찾아서 위와 같이 특정 맥 어드레스에 대해 아이피 주소를 할당해준다.


이 후 아래 명령어를 통해 변경사항 적용.



virsh net-destroy default
virsh net-start default


Docker 의 설치 및 간략 사용법 정리.

UBUNTU 14.04 64bit 에서 작업하였음.


1. docker 설치

$ sudo curl -fsSL https://get.docker.com/ | sh

# apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

# apt-add-repository 'deb https://apt.dockerproject.org/repo ubuntu-xenial main'

# apt-get update

# apt-get install docker-engine


2. (선택)현재 사용자를 docker 그룹에 추가

$ sudo usermod -aG docker $(whoami)


추가한 후엔 로그아웃하고 다시 들어와야, 정상적으로 작동한다.

추가하지 않을 경우 아래 모든 docker 커맨드를 root 권한(sudo)로 실행해야 함.


3. 이미지 받기

docker pull <이미지 이름>:<태그(보통 버전)>

형태로 받을 수 있다.


난 Ubuntu 14.04 를 설치할 예정이므로,

$ docker pull ubuntu:14.04


4. 이후엔 자유.


========================================================


= 명령어 정리 =


$ docker <command>

images: 이미지 목록 출력

ps: 컨테이너 목록 출력

start, stop, restart: 이름 그대로.

attach: 컨테이너 접속

Ctrl+D : 컨테이너 정지 후 빠져나오기

Ctrl+P, Q: 정지하지 않고 빠져나오기

exec: 컨테이너 안에 명령어 실행

rm: 컨테이너 삭제

rmi: 이미지 삭제


$ docker run -i -t --name test ubuntu:14.04 /bin/bash

ubuntu 이미지로 test 이름의 컨테이너를 만들고 bash 실행, 접속

태그를 생략할 경우 latest 이미지를 사용하게 되며, 없을 경우 다운로드 받는다.



참고

Install Docker - https://docs.docker.com/linux/step_one/

Docker 기본 사용법 - http://pyrasis.com/Docker/Docker-HOWTO

twistd 를 daemon 화 하는 방법.

https://github.com/eagafonov/python-twisted-startup-script 의 방법을 이용한다.


1. /etc/python-twistd.d/ 디렉토리를 생성한다.

2. 위 git 에서 python-twisted-web 파일을 받는다. 그리고 파일 이름과 내용을 필요에 따라 수정. 아래부턴 편의상 그냥 python-twisted-web 이라고 쓰겠지만, 알아서 바꾼 이름을 사용하자.

3. git 에서 python-twisted-startup-script 를 위 python-twisted-web 파일과 이름을 똑같이 만들어서 /etc/init.d/ 에 넣는다.

4. $ sudo chmod +x /etc/init.d/python-twisted-web

5. $ sudo update-rc.d python-twisted-web defaults

6. $ service python-twisted-web start

'Linux, Server, Web' 카테고리의 다른 글

Python Asynchronous APNS / GCM Server (Python + Golang)  (2) 2015.12.23
GoCM :: daemon 으로 만들기  (0) 2015.12.23
우분투 시간 동기화  (0) 2015.11.01
MediaWiki URL 설정  (0) 2015.07.30
[Ubuntu] php-apn 설치하기  (0) 2015.07.02

2017.01.16 추가 - Ubuntu 16.04 LTS xl2tpd + strongswan 설치


아래 글은 Ubuntu 12.04 에서 작성 및 테스트하였다.


-------------------------------------------


vpn 의 목적이

1. 학교에서 막힌 곳 뚫기

2. 컴퓨터나 서버와 간단히 연결하기


였는데 openvpn 의 불편함으로 l2tp 뚫어봤음...

3g 에서 l2tp 연결해두고 학교 와이파이 잡으면 정상 사용가능한게 미스터리..ㅋㅋ

와이파이는 연결되있고 인터넷은 3g 이용함...ㅠㅠ



openvpn 은 워낙 헤매서 기억을 더듬어 어느정도 써놨는데

l2tp 는 전혀 기억이 안나므로 과정 대충 베끼다가 설정 파일들은 그냥 다 첨부하겠음 ㅋㅋ


우선 ipsec 설치 / 설정

apt-get install openswan

cp /etc/ipsec.d/examples/l2tp-psk.conf /etc/ipsec.d/l2tp-psk.conf

그리고 저 파일 수정이지만 내 설정을 올리겠으


다음은 /etc/ipsec.conf


virtual_private 는 특정 서브넷을 허용하고, 거부한단건데 사실 잘 모르겠음. 난 그냥 대충 해놨고, 잘 작동함. ㅋ


그리고 /etc/ipsec.secrets 을 열어서

서버주소 %any: PSK "공용 암호키"

를 넣어준다.


그 다음 service ipsec restart



드디어 본론! l2tp 설치/설정


sudo apt-get install xl2tpd ppp


설치 후

/etc/xl2tpd/xl2tpd.conf 를 수정해준다



아이피 주소 같은건 알아서 수정하자.

참고로 10.~~ 를 사용하지 않고 다른 대역을 사용하려면 ipsec.conf 파일에 virtual_private 를 수정해야할 필요가 있을수도 있음.


다음은 /etc/ppp/options.xl2tpd



이것 역시 dns 정도는 알아서 바꿔주자.


다음으로 /etc/ppp/chap-secrets 파일을 수정해주자.

로그인 정보 파일이며 이거 수정후에 재시작해 줄 필요는 없다.


(아이디        서버이름   비밀번호            할당할 아이피)


이 정보들을 쓰면 된다. 간격은 탭으로 적당히 띄우면 됨.

서버 이름과 할당할 아이피에는 * 을 써도 됨.

ex)

id            l2tpd    password            *



xl2tpd 재시작 해주면 된다. ( service xl2tpd restart )



아 iptables 설정을 해줘야 한다.


iptables -A FORWARD -s 10.7.0.0/24 -j ACCEPT

iptables -t nat -A POSTROUTING -s 10.7.0.0/24 -o eth0 -j MASQUERADE


그리고 네트워크 포워드까지..


echo 1 > /proc/sys/net/ipv4/ip_forward


마지막 iptables 설정이랑 ip_forward 이건 재부팅시 초기화 된다. 매번 재시작시 다시 해주거나 재시작시 자동으로 되게 알아서 하면 됨.



ps. 혹시 안되면 재부팅 해보셔요.. 안되던거 재부팅으로 해결 ㅡㅡ

ps2. 몇번 나눠쓰고 대충 써서 글이 이상하거나 빼먹은거 있을 수 있음.

어차피 나보라고 쓰는거니까 나를 위해 태클걸어주면 감사히 수정하겠습니다~(?) ㅋ

'Linux, Server, Web' 카테고리의 다른 글

phpmyadmin 에러  (2) 2012.11.18
사용해 본 VPS 비교  (2) 2012.11.14
우분투 openVPN 설치/설정법  (0) 2012.09.29
ftp / samba  (0) 2012.01.01
Ubuntu apache2/php5/mysql/mariadb  (0) 2012.01.01

포트 변경의 메리트로 사용하게된 openvpn.

내가 사용할 일 없는 443(원래는 https용)을 vpn 용으로 지정해놓으면 막힐일 거의 없다 ㅋ


단점이라면, 컴퓨터라면 클라이언트를 따로 설치해야 하고,

모바일 기기라면 루팅/탈옥이 꼭 필요하다는 점..ㅠㅠ

안드로이드엔 openvpn 에서 만든 프로그램이 있고

iOS에서는 GuizmOVPN 이라는 유료앱이 있음. 앱스토어에 OpenVPN 앱이 있다. 이거 쓰면 됨.



1. 설치

sudo apt-get install openvpn


2. 키 폴더 만들기

mkdir /etc/openvpn/easy-rsa/

cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/


3. /etc/openvpn/easy-rsa/vars 수정

사실 안해도 되지만 그러면 키 하나 만들때 마다 귀찮음 ㅋ

export KEY_COUNTRY="KR"

export KEY_PROVINCE="NA"

export KEY_CITY="Daegu"

export KEY_ORG="iolate"

export KEY_EMAIL="iolate@me.com"


4. 서버 키 만들기

cd /etc/openvpn/easy-rsa/

source ./vars                        #위에 설정한거 적용

./clean-all                             #키 폴더 비움

./build-dh

./pkitool --initca                     #ca 키 생성

./pkitool --server server         #서버 키 생성


cd keys

#만들어진 키 이동

sudo cp server.crt server.key ca.crt dh1024.pem ../../


하다가 openssl 오류나 2.0 어쩌구 에러나면 easy-ssl 폴더 안에

openssl-1.0.0.cnf -> openssl.cnf 링크 만들어 주면 된다.


5. 서버 설정 (/etc/openvpn/server.conf)

뭐 설정 skel 파일이 있긴한데....



대충 이렇게 쓰면 됨.

길이가 너무 길어져서 주석들은 전부 뺏음 ㅋ


6. vpn 재시작

service openvpn restart



7. 클라이언트 정보 파일 생성

cd /etc/openvpn/easy-rsa/

source ./vars 

./pkitool client


8. 클라이언트 설정 파일 (이름.ovpn 혹은 이름.conf)



난 키 파일을 설정 파일에 다 집어넣는걸 선호해서 저렇게 해놨는데

싫다면  <~> </~> 부분을 제거 후

cert client.crt

key client.key

ca ca.crt

이렇게 각각 적어주고 설정파일(conf 혹은 ovpn)과 함께 배포하면 된다.


9. iptables 설정




openvpn이 다 좋긴 한데 위에 적었듯이 서드파티 앱이 반드시 필요하고

한번 배포한 인증서의 차단이 조금 쉽지 않다는 것이 흠..

'Linux, Server, Web' 카테고리의 다른 글

사용해 본 VPS 비교  (2) 2012.11.14
우분투 L2TP VPN 설치/설정법  (2) 2012.09.29
ftp / samba  (0) 2012.01.01
Ubuntu apache2/php5/mysql/mariadb  (0) 2012.01.01
Ubuntu 초기 LAN 설정 건너뛴 후 인터넷 연결이 안될때  (0) 2011.07.06
FTP
#apt-get install
vsftpd
#vi /etc/vsftpd.conf

anoymous_enable=NO
local_enable=YES
write_enable=YES
local_unmask=022
추가)  file_open_mode=0644

/etc/init.d/  restart 



SAMBA
# smbpasswd -a ID 
mariadb 받을거면 mysql 은 알아서 바꾸자.
걍 복붙하다 귀찮아졌네

1. apache2/php5/mysql
# apt-get install apache2 libapache2-mod-auth-mysql mysql-server mysql-client php5-common php5 libapache2-mod-php5 php5-mysql phpmyadmin 

mariadb

sudo apt-get install python-software-properties

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db

sudo add-apt-repository 'deb http://ftp.kaist.ac.kr/mariadb/repo/5.5/ubuntu precise main'

sudo apt-get update

sudo apt-get install mariadb-server


(setting path)

apache: /etc/apache2/apache2.conf
apache root: /etc/apache2/sites-available/default
VirtualHost - # a2ensite

mysql: /etc/mysql/my.cnf
php: /etc/php5/apache2/php.ini

 
2. (optional) phpmyadmin
# apt-get install phpmyadmin

#vi /etc/apache2/apache2.conf
#Enable PHPMyAdmin 
Include /etc/phpmyadmin/apache.conf

phpmyadmin.mo

한글화 파일
/usr/share/phpmyadmin/locale/ko/LC_MESSAGES



 http://blog.naver.com/jangstargosu?Redirect=Log&logNo=140148388066




Indexes

/etc/apache2/site-available/default
Options Indexes 


VirtualHost
http://uyeong.tistory.com/172 

초기 설치시 LAN 연결을 못하여 설정을 건너뛰었더니 후에 랜을 연결해도 인터넷이 안되는 문제가 발생 하였다.

모니터가 없어서 TV에 연결해 설치를 한 터라 공유기를 하나 더 구해와서 Client Bridge 로 겨우겨우 웹세팅에 들어갔다..

겨우 해결한 것으론 /etc/network/interfaces 가 문제.

처음 설치시 자동으로 설정이 잡히지도 않고, 수동으로 잡아주지도 않고, 건너뛰기를 했다면 설정이 말그대로 전혀 안된채로 남게 된다...

저 위 파일을 열어보면

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

이렇게만 있을 텐데 vi  로 아래에 다음과 같이 입력해 준다

# The primary network interface
auto eth0
iface eth0 inet dhcp



/etc/network/interfaces  전체 내용
 

 
 
만약  수동 아이피로 설정해야 한다면
 

입력해 준 뒤 저장하고

# /etc/init.d/networking restart 

+ Recent posts