Ubuntu 서버에서 Gitlab 제거

Linux
정말 간단한 내용입니다. Ubuntu 서버에 설치를 하고 나서 지우려고 보니 명령어를 모아 놓은곳이 없어서 일단 정리해를 해 놓습니다. sudo gitlab-ctl cleanse sudo gitlab-ctl uninstall sudo apt remove gitlab-ee sudo apt purge gitlab-ee 별 다른 내용은 없지만 필요하신분이 저처럼 있을 거라고 생각해서 짧게나마 정리를 해 놓습니다.
Read More

SCP 복사

Linux
SCP 복사 기능을 정말 가끔 사용할일이 있는데, 매번 깜빡하고 다시 검색을 해보는 일이 있어서 이렇게 정리를 합니다. scp -i "인증파일경로" -r "복사할파일" ubuntu@ServerIP:"대상경로" 별 다른 내용은 없으며, 해당 기능을 통해서 중간에 내컴퓨터를 경우하지 않아도 이제 복사를 할 수 있다는 생각에 정리를 해 놓는 것입니다.
Read More

우분트 자동시작서비스 등록 실행하기

Linux
해당 기록은 제 개인적으로 기록을 해 놓은 부분입니다. 누군가에게 도움이 될수도 있지만 아마 전혀 쓸모가 없을수도 있습니다. 그렇기에 개인 기록이라는 점을 먼저 밝힙니다. crontab으로 실행하는것에 한개가 있습니다. 재부팅 되면서 실행을 해도 되고, 일정 시간을 체크해서 해도 되지만, 항상 가동해야 되는 부분이 있어서 만들게 된 부분입니다. cp /home/ubuntu/service/serviceCrawer.service /etc/systemd/systemd --------------- [Unit] Description=ServiceCrawer-1 After=network.target [Service] ExecStart=/usr/bin/php /home/ubuntu/service/service.file start ExecStop=/bin/sh /home/ubuntu/service/stop.sh Restart=on-failure [Install] WantedBy=multi-user.target ------------------ sudo chmod 644 serviceCrawer.service sudo systemctl daemon-reload sudo systemctl enable serviceCrawer.service sudo systemctl start serviceCrawer.service sudo systemctl disable serviceCrawer.service 일단 네트워크가 문제가 생기면은 재시작을 할 것이고 아니면은 항시 기동이 되도록 프로그램을 만들었습니다. 통신을 하는 부분이라서 네트워크가 죽으면 살아있어도 쓸모가 없습니다. 항상 정보를 수집하는 부분에서 일정시간마다 아닌, 실시간으로 통신을 해서 정보를 획득하기에 끊기지 않는다는것이 제일 관점있고, 그 이후 데이터를 잘 기록해야되는 부분입니다. 위에 코드는 그냥 서비스에 등록하는 부분만 있습니다.…
Read More

Port번호 사용 영역

Linux, NAS, Windows
0 ~ 1023 : well-known port번호 영역입니다. 이 영역의 port번호는 UNIX/LINUX에서 root 권한으로만 port를 열 수 있습니다. 예약영역이라고 보면 됩니다. 1024 ~ 49151번: 등록된 포트 (registered port) 이 영역은 주로 서버 소켓으로 사용하는 영역입니다. 49152 ~ 65535번 : 동적 포트(dynamic port) 이 영역은 자동으로 할당되는 영역입니다.
Read More

Dnsmasq

Linux
#apt install resolvconf이것을 설정하면은 좀 더 세팅에 편해집니다. #vi /etc/resolvconf/resolv.conf.d/tail # IPv4 nameserversnameserver 1.1.1.1nameserver 8.8.8.8nameserver 1.0.0.1nameserver 8.8.4.4 # IPv6 nameserverosnameserver 2606:4700:4700::1111nameserver 2001:4860:4860::8888nameserver 2606:4700:4700::1001nameserver 2001:4860:4860::8844 #sudo service resolvconf restart #apt-get install dnsmasq # cat /etc/hosts # cat /etc/resolv.confnameserver 172.31.0.2search ap-northeast-2.compute.internal # Google IPv4 nameserversnameserver 8.8.8.8nameserver 8.8.4.4 # Google IPv6 nameserversnameserver 2001:4860:4860::8888nameserver 2001:4860:4860::8844
Read More

홈페이지 이전에 필요한 명령어

Linux
홈페이지 이전을 해줄 경우가 생겨서 한번 기록해 놓습니다. 모래사장에서 바늘 찾을 정도로 사용을 하지만, 막상 필요할때 기억이 나지 않아서 간단히 기록을 해놓습니다. # upload 디렉토리 제외해서 압축하기 tar -zcvf public_html.tar.gz ./public_html --exclude="./public_html/uploads" # upload 디렉토리 아래의 디렉토리 구조만 압축하기 tar -zcvf public_html-upload.tar.gz --exclude="*.* ./public_html/upload" # 압축풀기 (2개가 동일 위치에 존재해야함) tar -zxvf public_html.tar.gz tar -zxvf public_html-upload.tar.gz # 소유주 변경하기 chown -R [group].[user] ./public_html --from=[group].[owner] find ./public_html -user "[user]" | xargs chown "nobody"."nobody"
Read More

HTTPS를 HTTP로 리디렉션하는 방법

Linux
SSL 보안서버 인증서가 적용된 상태에서 HTTPS를 HTTP로 리디렉션하고 싶은 경우, 다음 코드를 .htaccess 파일에 추가하면 됩니다. RewriteCond %{HTTPS} on RewriteEngine On RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} 위의 코드가 잘 작동하지 않으면, 다음 코드를 시도해볼 수 있습니다. Options +FollowSymLinks RewriteEngine On RewriteCond %{ENV:HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] .conf 파일을 사용하는 경우: ServerName domain.com RewriteEngine On RewriteCond %{HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} SSLEngine on SSLCertificateFile /etc/apache2/ssl/domain.crt SSLCertificateKeyFile /etc/apache2/ssl/domain.key SSLCACertificateFile /etc/apache2/ssl/domain.crt Siteground에서는 다음과 같은 코드를 제안하네요. (출처: Redirect from HTTPS to HTTP) Redirect HTTPS to HTTP RewriteCond %{HTTP:X-Forwarded-Proto} =https RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 참고로 위의 코드는 모두 유효한 SSL 인증서가 있는 경우에만 작동합니다. 유효한 SSL 인증서가 없는 경우 https://…로 접속하면 보안인증서 오류가 표시되고 http://…로 리디렉션되지 않습니다.
Read More

ssh 접속 이력, 로그인 시도, 해킹 시도 확인

Linux
ssh 로그인 시도(해킹 시도) 확인하는 스크립트 입니다. 이 명령어는 로그인을 시도한 IP 목록만 결과 값으로 출력됩니다. ls /var/log/secure | xargs grep -E "[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+" -o | sort | uniq 이 명령어는 어떤 아이디로 언제 어떤 IP로 로그인을 시도한 결과까지 모두 보여줍니다. last -f /var/log/btmp | more
Read More
[Ubuntu] SSL 인증서 설치

[Ubuntu] SSL 인증서 설치

Linux
 SSL 발급 및 적용 방법 인증서 발급 프로그램을 서버에 설치해야한다. Let’s Encrypt 는 Ubuntu 16.04 LTS 에서 기본패키지로 추가되었다. 따라서 쉽게 설치할 수 있다. 반면 Ubuntu 14.04 LTS 에서는 기본패키지가 아니기 때문에 몇 줄 더 입력해야 한다. 발급, 설치, 적용 방법은 다음과 같다. 모든 단계는 Linux root 계정으로 진행한다. [code shell] # apt-get install letsencrypt # letsencrypt certonly --webroot --webroot-path=/home/myuser3/www -d myuser3.com -d www.myuser3.com [/code] * 명령어 설명 -d 는 도메인명을 지정하면 된다. 최대 100개의 도메인 이름을 지정할 수 있다. (한 인증서가 서로다른 100개의 도메인 인증을 할 수 있음) 일반적으로는 기본도메인과 www 도메인 두개를 지정한다. -webroot 는 웹인증을 받을 것이라는 것이다. 외부 인증프로그램이 -d 에 지정된 도메인 사이트에 접속한다. -webroot-path 는 웹루트의 경로이다. 보통 index 페이지가 위치하는 경로이다. 인증 프로그램이 이 경로에 임시 랜덤 파일을 생성하고, 외부 인증프로그램이 이 파일을…
Read More

[Ubuntu] APM 설치

Linux
]# sudo apt-get install php ]# sudo apt-get install apache2 ]# sudo apt-get install mariadb-server ]# sudo apt-get install libapache2-mod-php7.0 ]# sudo mysql > SET PASSWORD FOR root@localhost = PASSWORD('원하는 패스워드 입력'); > quit; ]# sudo /usr/bin/mysql_secure_installation /* 이미 암호는 앞에서 지정했기 때문에 첫 번째 패스워드를 변경하겠냐는 질문에는 n을 나머지는 (이 설정에 대해서 잘 모르는 분이라면) 엔터키를 끝날 때까지 눌러 주세요. */ ]# sudo mysql > USE mysql; > UPDATE user SET plugin='' WHERE user='root'; > FLUSH privileges; > quit; ]# sudo apt-get install php-mysql INSERT INTO mysql.user (host,user,password) VALUES ('%','root',password('CAFE8848')); GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; FLUSH PRIVILEGES; ]# sudo vi /etc/php/7.0/apache2/php.ini ]# sudo vi /etc/php/7.0/cli/php.ini /*** default_charset="UTF-8" data.timezone=”Asia/Seoul” mbstring.language = Korean mbstring.internal_encoding = UTF-8 mbstring.http_input = UTF-8 mbstring.http_output = pass mbstring.encoding_translation = On mbstring.detected_order = UTF-8 mbstring.substitute_charcter…
Read More

[Linux] Crontab에 프로세스 정지와 실행을 등록

Linux
[Linux] Crontab에 프로세스 정지와 실행을 등록 #!/bin/sh count=0 cd /opt/monitoring for line in `ps -ef | grep "monitoring" | grep -v grep | awk '{ printf("%s\n", $2); }'` do if [ $line -ge 1 ]; then #echo $line #프로세스 죽이기는 아래것중 아무것나 사용하면 됩니다. #kill -TERM $line kill -9 $line fi #echo $count if [ $count -eq 0 ]; then rm -rf /opt/monitoring/*.out /usr/bin/nohup /opt/monitoring/device.php & #echo bakgroundstart count=$(($count+1)) fi done
Read More

리눅스 로그 파일 정리

Linux
일단 사이즈가 가장 큰 것부터 정리하는 것이 좋겠죠.. . 보통은 messages 파일을 정리하시면 좋습니다. 지우지는 마시고 다음과 같이 하세요. cat /dev/null > /var/log/messages.2 cat /dev/null > /var/log/messages.1 messages 파일도 열어서 오래된 내용들은 삭제하셔도 됩니다. dmesg는 부팅시 기록되는 정보들인데 특별한 경우를 제외하고는 별로 필요가 없습니다. cat /dev/null > dmesg cron은 주기적으로 실행시킨 명령들에 대한 정보인데 해킹을 당한 경우가 아니라면 별로 필요 없습니다. cat /dev/null > cron.3 cat /dev/null > cron.2 cat /dev/null > cron.1 vsftp.log는 ftp를 통해 주고 받은 파일들에 대한 정보, ftp 서버에 로그인했던 사용자에 대한 정보들이 있는데 역시 별로 필요없습니다. cat vsftp.log.1 cat vsftp.log.2 cat vsftp.log.3 maillog는 메일서버와 관련된 로그입니다. 필요없으시면 이 역시 마찬가지로 작업.. secure는 접속 기록과 su 명령과 관련된 기록입니다. 필요없으시면 이 역시 마찬가지로 작업.. 이 정도면 대충 정리될 것 같은데요.. 일단 사이즈가 가장 큰 것부터 정리하는…
Read More

[Ubuntu] UFW 방화벽 사용하기

Linux
[Ubunto] UFW 방화벽 사용하기 설치 $ sudo apt-get install ufw 기본 정책 설정 (들어오는 패킷은 차단, 나가는 패킷은 허용) $ sudo ufw default deny incoming $ sudo ufw default allow outgoing ssh, http, https 허용 (ssh 포트를 변경해서 사용한다면 반드시 직접 포트를 입력하자) $ sudo ufw allow ssh $ sudo ufw allow http $ sudo ufw allow https 포트를 변경해 사용하거나 특정 포트를 허용 $ sudo ufw allow 8080 방화벽 ON! $ sudo ufw enable 위의 명령을 실행하면 "현재 ssh 연결에 문제가 생길 수 있습니다. 적용하시겠습니까?" 뭐 이런 질문이 나온다. ssh 포트는 허용으로 변경했으니 "y" 를 입력해 진행할 수 있다. $ sudo ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 22 ALLOW IN Anywhere…
Read More