오랫동안 민트 리눅스(Mint Linux) 를 데스크탑 운영체제로 사용해왔다. 정확하게는 데스크탑 PC 를 새로 맞춤과 동시에 설치해서 써왔는데, 이번에 데스크탑 PC 를 교체하게 되면서 민트 리눅스를 재설치해야하는 상황이 되어 그 동안 써왔던 민트 리눅스 설정을 기록으로 남긴다. XFCE 데스크탑 민트 리눅스 데스크탑은 세가지가 존재하는데, 그중에서 XFCE 데스크탑을 사용했다. 이 XFCE 를 만진지도 거의 20년이 넘었다. 솔라리스의 CDE 를 닮아서 쓰기 시작해서 지금까지 쓰고 있다. XFCE 는 가벼우면서도 복잡하지 않는 데스크탑이다. 그러다보니 별로 설정할게 존재하지 않는다. 데스크탑이라는 것이 어짜피 설치하고 나면 쓰는 […]
VIM lightline 플러그인
vim 을 사용할때에 필요한 것이 상태바(Status Bar) 다. 보통은 airline 을 많이 쓰는데, 여러가지 의존성이 필요해서 사용하기에 쉽지가 않다. lightline 은 의존성이 복잡하지 않고 간단하게 사용할 수 있다. 다음과 같이 .vimrc 에 설정을해주면 된다. t_Co=256 설정과 아래 두가지 부분의 설정이 핵심으로 보면 된다.
systemd unit 편집기 바꾸기
systemd 는 이제 리눅스 시스템의 뼈대가 되는 기본운영 방법이 되었다. 기존에는 System V Init 이였지만 RHEL 7, Ubuntu 16.04부터 기본 시스템운영 프로그램이 되었다. systemd 는 ‘ctl’ 로 끝나는 명령어들의 집합으로 제어가 가능하다. systemctl, journalctl, timedatectl, hostnamectl, loginctl 이 대표적이다. systemctl 의 경우에는 systemd unit 파일들에 대한 제어와 설정이 가능하다. systemd unit 파일은 기존의 Systemv V init Script 를 대체하는 것으로 일종의 시스템 데몬 프로그램들이라고 보면 된다. 시스템이 시작될때에 자동으로 시작되게 한다거나 종료하게 한다거나 하는것들을 가능하게 한다. unit 파일은 텍스트 파일이기 […]
DNF 사용하기
CentOS 8 로 넘어오면서 기본 패키지 매니지먼트로 dnf 가 되었다. 여전히 yum 을 지원하지만 앞으로는 dnf 로 쭉 간다고 하니 이참에 배워보자고 생각하지만…. 겁나 빡치는게, 이제 그만 바꿨으면 한다. 뭔 yum 정도로도 충분히 잘 쓰고 있고 괜찮다고 싶다. 무슨 겁나 가볍네, 더 빠르네 어케 좋네… 응 yum 도 그렇게 느리고 그렇게 무겁지도 않아! 도대체 뭘 할때마다 갈아 엎고 이걸 새로 배우라고 하니.. 뭐 어쩌것나.. 그렇게 하겠다는데, 닥치고 배워야지! dnf 햐.. 쓰기도 귀찮다… “DNF is the next upcoming major version of […]
CentOS에서 SNMP 설치 및 설정하기
SNMP(Simple Network Management Protocol) 은 원래 네트워크 장비를 관리하기 위한 통신 규약입니다. 그런데, 이제는 네트워크 장비뿐만아니라 컴퓨터, 전자장비까지 확장해서 사용하고 있습니다. 리눅스 시스템에서도 SNMP를 사용할 수 있습니다. 이를 이용하면 SNMP 를 이용해서 중앙집중식으로 각각의 장비들의 자원, 자원사용량등을 장비에 거의 모든 것을 알 수 있고 가지고 올 수 있습니다. 저의 경우에는 Cacti 라는 시스템 자원 모니터링 시스템에서 원격 시스템의 자원 사용량을 가지고 오기 위해서 각 서버마다 SNMP를 사용합니다. 준비 이 문서는 다음과 같은 환경에서 작성되었습니다. CentOS 7 X86_64 SNMP는 서버/클라언트 구조를 가지고 […]
Nginx 설정.
이 문서는 Nginx 설정에 대한 문서 입니다. 계속적으로 업데이트가 됩니다. 요청 메소드 제한 요청 메소드는 GET, HEAD, POST, PUT, DELETE 등이 있다. 문제는 대부분 웹 서비스는 GET, HEAD, POST 만 필요로한다는 것이다. Nginx 에서 이를 다음과 같이 제한 할 수 있다.
|
1 2 3 4 |
# Only allow GET and HEAD and POST request methods if ($request_method !~ ^(GET|HEAD|POST)$ ) { return 444; } |
GZIP 설정
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# Turns on the gzip compression gzip on; # The minimum size file to compress the files gzip_min_length 1100; # Set the buffer size of gzip, 4 32k is good enough for almost everybody gzip_buffers 4 32k; # This directive let you specify which file types should be compressed gzip_types text/plain application/x-javascript text/xml text/css; # Enable response header of "Vary: Accept-Encoding" gzip_vary on; # Set the compression level gzip_comp_level 9; # Require that client announce HTTP 1.1 to use compression gzip_http_version 1.1; |
Nginx + PHP-FPM + MariaDB 설치 (CentOS 7)
과거에는 APM (Apache + PHP + MySQL)이 인기있는 플랫폼이 였지만 최근에는 Nginx 가 나오고 PHP-FPM 이 나오면서 NPM 으로 많이 대체되고 있는 추세에 있습니다. 이 글은 Nginx,PHP-FPM, MariaDB 설치에 관한 것입니다. 준비 이 글에서 NPM을 설치하는 환경은 다음과 같습니다. CentOS 7.2.1511 X86_64 Selinux Disable 작성시간: 2015. 12. 27 설치하는 방법은 CentOS 7 에서 제공하는 패키지 관리 프로그램인 YUM을 이용하는 것입니다. 다음과 같이 CentOS 7 를 최신 버전으로 만듭니다.
|
1 |
yum update -y |
PHP 설치 다음과같이 YUM 을 이용해서 설치해 줍니다.
|
1 |
yum install php-fpm php-mysql php-cli |
php-mysql […]
DNS amplification DDos attacks (DNS 증폭 DDos 공격)
최근에 관리하는 서버에 트래픽이 몰리는 현상이 발생했다. 웹 서비스 트래픽도 아니기에 뭔가 싶어 봤더니 53 포트를 통한 input 트래픽이였다. 그래서 ngrep 으로 53 포트를 모니터링 하니 대략 다음과 같이 나왔다.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
U 27.102.207.300:53 -> 186.2.161.134:14455 ^............ddos.cat.............*'.1.ns.nic...dnsmaster.knipp.de.w..........,..:...Q...)........ # U 186.2.161.134:12806 -> 27.102.207.300:53 .............ddos.cat.......)#(...... # U 27.102.207.300:53 -> 186.2.161.134:12806 .............ddos.cat.............*'.1.ns.nic...dnsmaster.knipp.de.w..........,..:...Q...)........ # U 186.2.161.134:32940 -> 27.102.207.300:53 .............ddos.cat.......)#(...... # U 27.102.207.300:53 -> 186.2.161.134:32940 .............ddos.cat.............*'.1.ns.nic...dnsmaster.knipp.de.w..........,..:...Q...)........ # U 186.2.161.134:60056 -> 27.102.207.300:53 .............ddos.cat.......)#(...... # U 27.102.207.300:53 -> 186.2.161.134:60056 .............ddos.cat.............*'.1.ns.nic...dnsmaster.knipp.de.w..........,..:...Q...)........ # U 186.2.161.134:44315 -> 27.102.207.300:53 t............ddos.cat.......)#(...... # U 27.102.207.300:53 -> 186.2.161.134:44315 t............ddos.cat.............*'.1.ns.nic...dnsmaster.knipp.de.w..........,..:...Q...)........ |
뭔가 자꾸 DNS 서버에 쿼리(Query)를 보내고 있었고 이로 인해서 트래픽이 발생하는게 분명했다. DNS amplification DDos attacks (DNS 증폭 DDos 공격) ‘DNS amplification DDos Attacks’ 는 DNS 증폭 DDos 공격으로 불리운다. 왜 ‘증폭’ 일까? DDos 는 대량의 트래픽이 필요하다. 초당 수십 Gbps 를 유발시켜야 하는데 이렇게 할려면 많은 장비가 필요하다. […]
gitlab 패스워드 리셋하기
gitlab 패스워드 리셋하기 Gitlab 을 사용하다가 갑자기 패스워드를 잊어버리는 경우가 생길 수 있습니다. 이럴때 보통 Web 에서 ‘Fogot your password’ 링크를 클릭하고 리셋될 패스워드를 가입할때 적어놓은 E-mail 로 발송을 해줍니다. 그런데, E-mail 주소가 없는 거라면 패스워드를 리셋할 수가 없어서 로그인을 못하게 됩니다. 이럴때는 Gitlab 서버에 터미널로 로그인을 해서 gitlab-rails console을 실행하고 패스워드를 바꿀 수 있습니다. 먼저 gitlab-rails console로 접속을 합니다.
|
1 2 3 4 |
]# gitlab-rails console Loading production environment (Rails 4.2.4) irb(main):001:0> irb(main):002:0* |
여기서 만일 E-mail 주소를 정확하게 알고 있다면 다음과 같이 user 객체를 지정할 수 있습니다.
|
1 2 |
irb(main):005:0* user = User.find_by(email: 'admin@local.host') => nil |
그런데 위와같이 ‘nil’ 로 나오면 […]