워드프레스 Cloudflare 설정후 관리자 페이지 접속 오류

www
워드프레스 속도 및 보안을 위해서 설정을 하였지만, 조금 관리자 페이지에서 문제가 발생하여서, 설정을 변경을 진행 하게 되었습니다. 클라우드플레어에 접속 하여서 Page Rules를 작성하였습니다. 인터넷에 검색을 하면은 Page Rules 메뉴가 정확하지 않은데, 아마 CloudFlare에 변화에 따라서 다른것 같아서 정확한 메뉴 위치는 하시는 순간에 찾아야 정확하게 나올것 같습니다. 일단 저는 워드프레스 성능과, 보안, 캐쉬 모두 비활성화 화여서 관리자 페이지 만큼은 그대로 사용을 위해서 설정을 하였습니다.
Read More

Cloudflare 설정후 홈페이지 접속 문제

www
프록싱을 사용해서 보안이나 속도를 좀 올려 보기 위해서 설정을 하였더니 너무 많은 리다이렉트 기능으로 인해서 접속이 안되는 문제가 있었습니다.해당 문제를 해결하기 위해서 조금 검색을 하다 보니 설정이 있어서 일단은 기록을 합니다. 처음에는 가변형이 되어 있었는데, 자체 SSL 인증서를 사용하기도 하고 하여서 "전체"로 변경을 하고 나서는 접속이 되었습니다.
Read More

Apache Log에 실제 IP 주소가 나오도록하기

Linux
일단 cloudflare 의 글을 참조 하여서 작성되었습니다.참조 주소는 "https://developers.cloudflare.com/support/troubleshooting/restoring-visitor-ips/restoring-original-visitor-ips/" 입니다. 아파치 기능을 활성화 합니다. sudo a2enmod remoteip 비활성화시는 다음과 같은 명령어를 사용 하시면 됩니다. sudo a2dismod remoteip 단일 서버이면 apache 환경설정에 설정하시면 되고, 아닐 경우 각각의 virtualhost에 설정을 하시면 됩니다.아래 내용이 설정할 내용입니다. RemoteIPHeader CF-Connecting-IP 아래는 위 구분을 추가 할 경우에 예시일뿐이니 각자 설정에 맞춰서 설정해 주시기 바랍니다. RemoteIPHeader CF-Connecting-IP ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined 이후에 아파치 환경설정도 변경을 해주시면 됩니다./etc/apache2/apache2.conf 파일에서 LogFormat에서 "%h" 부분을 "%a"로 변경합니다. 아래는 변경하고 난 후의 예시 입니다. LogFormat "%v:%p %a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combinedLogFormat "%a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combinedLogFormat "%a %l %u %t \"%r\" %>s %O" common 그리고 나서 이제 cloudflar의 IP를 허용을 해주어야 하기 때문에 아래의 파일을 수정 합니다.해당 파일이 있을수도 없을수 있으니…
Read More

회사 동일 다수 DB 관리

CSharp, Windows, 프로그램
DB 가 분리되어 있지만 모두 동일한 DB 일 경우에 컬럼을 동일하게 변경하기 위해서 필요함.먼저 대상이 되는 DB를 수집후 테이블 명을 보고 컬럼을 변경을 할수 있습니다. 각 DB에서 테이블 정보를 수집도 가능합니다. 테이블을 추가 할 경우 다수의 DB에서 동일한 작업이 필요할 경우에 추가를 진행하면은 동시에 다수를 작업을 합니다. 테이블을 한곳에 만들어 두거나 혹은 특정 DB에서 필요한 테이블을 복사 혹은 삭제 처리 할수 있습니다. 테이블 내의 컬럼을 추가 하거나 삭제 변경 할수 있습니다. 컬럼의 형식이나 값을 변경할 경우에 나오는 화면입니다. 테이블에 컬럼을 추가 할 경우에 입력 하는 화면 입니다. 데이터를 볼때 정렬이 필요하면은 정렬 기능을 이용해서 정렬을 해서 전체 테이블에 동일 컬럼이나 값이 일치 하지 않는 것을 확인할때 필요합니다. DB 명세서를 만들때 엑셀 파일로 출력이 가능 합니다. 실제 엑셀로 출력 할 때 테스트나 불필요한 테이블을 제외 하고 저장 할 수 있도록 설정을…
Read More

Windows WSL2 자동 시작 설정

Windows
파워쉘 프로그램 코드 If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { $arguments = "& '" + $myinvocation.mycommand.definition + "'" Start-Process powershell -Verb runAs -ArgumentList $arguments Break } $remoteport = bash.exe -c "ifconfig eth0 | grep 'inet '" $found = $remoteport -match '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'; if ( $found ) { $remoteport = $matches[0]; } else { Write-Output "The Script Exited, the ip address of WSL 2 cannot be found"; exit; } $ports = @(22, 80, 443, 3306); Invoke-Expression "netsh interface portproxy reset"; for ( $i = 0; $i -lt $ports.length; $i++ ) { $port = $ports[$i]; Invoke-Expression "netsh interface portproxy add v4tov4 listenport=$port connectport=$port connectaddress=$remoteport"; } Invoke-Expression "netsh interface portproxy show v4tov4"; 파워쉘 파일을 작업 스케줄러에 등록을 합니다. 저는 c:\wsl_config 폴더 아래에 "wsl_port_forwarding.ps1" 로 만들어서 사용을 합니다. 동작 속성을 다음과 같이 설정을 하시면 됩니다. 프로그램 스크립트…
Read More

폰터 어썸 유료를 내 서버에서 서비스하자

Linux, WWW
※ 자기 서버가 있어야 가능한 기능 입니다. (트래픽주의) 홈페이지를 만들다 보면 사용자에게 주기가 애매한 소스들이 있습니다. 웹이라는 한계성 때문에 어떻게는 사용자가 내용을 알수가 있지만 최대한 주기 싫은 소스에 대해서 내 서버에서 운영을 할 수 있도록 만들어야 하는데 CrossDomain 위반으로 URL Domain이 다를경우에 문제가 생길때가 있습니다. AddType application/font-woff2 .woff2 일단 폰터어썸이 woff2 확장자를 처리를 해야 합니다. 위에 처럼 MIME 을 추가를 해서 처리가 가능하도록 해줘야지만 WEB 서버가 작동을 하게 됩니다. <FilesMatch "\.(ttf|otf|eot|woff|woff2)$"> Header set Access-Control-Allow-Origin "*" </FilesMatch> 위에 처럼 처리를 해줘서 어디서든 불러가서 사용할수 있도록 해주면 일단은 마무리 입니다. 일단 이렇게 사용을 하면은 자기 서버에서 서비스를 할 수 있는것으로 판단은 되지만 잘 작동하지 않을 수도 있지만 저의 입장에서는 현재 그대로 사용을 할 수 있습니다. 이 뿐만 아니라... Javascript를 고객 사이트에 두지 않아도 작동하도록 하는 기능도 작동을 합니다. 원래 이렇게 사용을 하면…
Read More

Ubuntu 20 LTS에 OPEN VPN 설치

Linux
요즘은 서버에 접속하기 위해서 공개된 Port외에는 IP 접근 차단을 당하는경우가 많은 생겨서 이동중에 접속을 하기 위해서 개인서버에 VPN 서버를 구성하였습니다. 공개된 서비스만큼 안정성은 아직 테스트를 해 보아야 하지만 지금은 개인서버이기때문에 이럴다 할 정도로 개인정보가 세어나갈 일이 없기때문에 설치하기로 큰 맘을 먹고 설치를 진행을 하였습니다. 인터넷에 검색을 하니 인터넷에 쉽게 설치를 할 수 있도록 나와 있어서 쉽게 설치를 하였습니다. curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh chmod +x openvpn-install.sh 이후에 서비스를 올리고 나서 포트를 연결하고 나니 순조롭게 사용을 가능하였습니다. sudo systemctl status openvpn #sudo iptables -t nat -I POSTROUTING 1 -s 10.8.0.0/24 -o eth0 -j MASQUERADE #sudo iptables -I INPUT 1 -i tun0 -j ACCEPT #sudo iptables -I FORWARD 1 -i eth0 -o tun0 -j ACCEPT #sudo iptables -I FORWARD 1 -i tun0 -o eth0 -j ACCEPT 이후에 몇개를 나뉘어서 추가를 하려고 하니 위세 설치…
Read More

Apache를 통한 Synology Proxy 설정

Linux
<VirtualHost *:80> ServerAdmin your-email ServerName your-privkey-domain RewriteEngine On RewriteCond %{HTTPS} off RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] ErrorLog ${APACHE_LOG_DIR}/your-privkey-domain.error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/your-privkey-domain.access.log combined #ProxyPass / http://your-privkey-domain:port #ProxyPassReverse / https://your-privkey-domain:port </VirtualHost> <VirtualHost *:443> ServerAdmin your-email ServerName your-privkey-domain ProxyRequests Off SSLProxyEngine on ProxyPreserveHost On AllowEncodedSlashes NoDecode SSLEngine on SSLProxyVerify none SSLProxyCheckPeerCN off SSLProxyCheckPeerName off SSLProxyCheckPeerExpire off SSLCertificateFile "/etc/letsencrypt/live/your-privkey-domain/cert.pem" SSLCertificateKeyFile "/etc/letsencrypt/live/your-privkey-domain/privkey.pem" SSLCertificateChainFile "/etc/letsencrypt/live/your-privkey-domain/chain.pem" ProxyPass / https://your-privkey-domain:port nocanon ProxyPassReverse / https://your-privkey-domain:port RequestHeader set X-Forwarded-Proto "https" RequestHeader set X-Forwarded-Port "443" ErrorLog ${APACHE_LOG_DIR}/your-privkey-domain.error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/your-privkey-domain.access.log combined </VirtualHost>
Read More

code server 세팅 기록

Linux, Tool
외근이 많다보니 IDE 세팅을 일일이 맞추기도 힘들어서 알아보던 도중에 code-server가 존재하는것을 알게 되었습니다. PC에 설치 하지 않고 Server에 설치해서 Webbrowser를 이용해서 IDE를 사용하도록 해주는 Tools 이여서 상당히 끌리게 되어서 제 서버에 설치를 하게 되었습니다. 전 웹서버를 이용할대 Apache를 잘 이용하지만 이번에는 code-server 때문에 nginx 를 이용해서 설치를 하게 되었습니다. code-server만을 이용할때는 상당히 잘 작동을 하고 빠르게 작동을 하여서 만족을 하게 되었습니다. 애초에 nginx가 apache보다 가볍기 때문에 속도가 잘 보장이 되어서 좋은 기능을 사용할 수 있게 되었지만 서버를 code-server 만으로 사용하기에는 자원을 너무 낭비를 하기에 여러가지 올리는 도중에 webdav까지 사용할 수 있도록 설정을 하려고 하다보니 여러가지 설정을 찾아서 헤매게 되었습니다. nginx 설정을 인터넷에 많기 때문에 자료를 정리하려다가 포기하고, apache로 갈아 타게 되었습니다. apache도 code-server 기능을 이용하기 위해서는 인터넷에 찾아보니 여러가지로 돌아 다니지만 참 난관의 연속이였습니다.꼬박 하루를 설정을 가지고 WEB 서버 가동을…
Read More

fail2ban 개인 설정

Linux
개인서버를 운영하다보면은 무단으로 접속하는 사람이 많은 편입니다. 처음에는 SSH 접속만을 차단을 하다가 이제는 웹으로도 접속이 많이 시도를 하게 되어서 fail2ban에 설정을 인용해서 apache도 설정을 추가 해서 사용을 합니다. 공개 서버이지만 무단 접속은 막지 않으면은 결국은 쌓여서 서버의 자원을 소모하게 됩니다. 그래서 특단의 조치로 설정을 하게 되면서 설정 파일을 블로그에 기록을 합니다. 개인적인 설정이다 보니 조금은 개인적인 생각이 가미되어 있을수 있지만은 참조를 해서 사용을 하면 되지 않을까 합니다. [DEFAULT] ## 차단하지 않을 IP #ignoreip = 127.0.0.1/8 192.168.10.0/24 # 접속을 차단할 시간. 600 = 10분 bantime = 10800 # 최대 허용 횟수 maxretry = 3 #아래 시간동안 maxretry횟수만큼 실패시 차단 findtime = 60 # (선택) 메일 알림기능 #destemail = sysadmin@example.com #sender = fail2ban@my-server.com #mta = sendmail #action = %(action_mwl)s [sshd] enabled = true #여러 포트를 사용할 경우 port = ssh,10022 port =…
Read More

gitlab CE 버전 의 설치 및 Apache2 동시 운영 실패

Linux
sudo apt updatesudo apt dist-upgrade sudo apt-get install curl openssh-server ca-certificates postfixcurl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bashsudo apt updatesudo apt install gitlab-cesudo EXTERNAL_URL="http://git.truds.kr" apt-get install gitlab-ce vi /etc/gitlab/gitlab.rb sudo gitlab-ctl reconfigure dpkg-reconfigure tzdata a2enmod rewritea2enmod headersa2enmod ssla2dismod -f autoindexa2enmod proxya2enmod proxy_http 10 5 * * 1 /usr/bin/letsencrypt renew >> /var/log/le-renew.log15 5 * * 1 /usr/bin/gitlab-ctl restart nginx sudo vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml gitlab-ctl restartgitlab-ctl stop ServerName gitlab.truds.krServerSignature OffProxyPreserveHost On <Location /> Order deny,allow Allow from all ProxyPassReverse http://127.0.0.1:8080 ProxyPassReverse http://gitlab.truds.kr/ </Location> RewriteEngine on RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f RewriteRule .* http://127.0.0.1:8080%{REQUEST_URI} [P,QSA] # needed for downloading attachments DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public 그냥 정보를 알려주기보다는 그냥 기록을 남겨보는 정도 입니다. 명령어를 모아 놓아서 보기도 불편합니다. 하지만 실패도 기록이 되기에 남겨서 추후에 제가 잘못한 부분등이 있다면은 수정을 해서 다시 시도해 보기 위해서 기록을 남깁니다.
Read More

ShellScript로 원격DB 백업 및 로컬DB 복원 하기

Linux
#!/bin/bash LOCALDB={로컬DB명} REMOTEDB={원격DB명} LOCALDBFILE=/home/databaseBackup/sqlFile/$LOCALDB.sql echo "Backup:: $REMOTEDB > $LOCALDB" /usr/bin/mysqldump -h{원격DB서버주소} -P {원격DB서버포트} -u {원격DB사용자} -p"{원격DB사용자비밀번호}" --add-drop-table $REMOTEDB > $LOCALDBFILE LOCALDBFILESIZE=$(wc -c "$LOCALDBFILE" | awk '{print $1}') echo "FileSize: $LOCALDBFILESIZE" #파일이 일정 용량 있상일경우에만 복원을 시도 if [ $LOCALDBFILESIZE -gt 3000 ];then # 원격서버의 Root권한이 %인것을 로컬에서는 localhost로 문자 치환 echo "Strng replace:: $LOCALDBFILE >> $LOCALDBFILE.bk" /usr/bin/cat $LOCALDBFILE | sed 's/DEFINER=`root`@`%`/DEFINER=`root`@`localhost`/g' > $LOCALDBFILE.bk # 문자치환된 파일을 덮어써서 1개로 만듬 echo "File Move:: $LOCALDBFILE.bk >> $LOCALDBFILE" /usr/bin/mv -f $LOCALDBFILE.bk $LOCALDBFILE # 문자치환된 파일 삭제처리 echo "Tmpfile Remove $LOCALDBFILE.bk" /usr/bin/rm -rf $LOCALDBFILE.bk # 로컬 DB에 파일 복구 echo "Restore:: $LOCALDB < $LOCALDBFILE" /usr/bin/mysql -u{로컬DB사용자} -p"{로컬DB사용자비밀번호}" $LOCALDB < $LOCALDBFILE fi
Read More

Windows10 OneDrive 삭제

Windows
OneDrive를 삭제 하게 될경우에는 기본에 동기화 된게 있으면은 동기화를 해제하고 작업을 해야 합니다. 동기화가 이뤄지는 도중에 작업하면은 동기화 항목중에 바탕화면이나 다른것이 있다면은 함께 지워지게 됩으로 꼭 동기화를 해제하고 삭제 처리 해주시기 바랍니다. @echo off cls set x86="%SYSTEMROOT%\System32\OneDriveSetup.exe" set x64="%SYSTEMROOT%\SysWOW64\OneDriveSetup.exe" echo Closing the OneDrive process. echo. taskkill /f /im OneDrive.exe > NUL 2>&1 ping 127.0.0.1 -n 5 > NUL 2>&1 echo Uninstalling OneDrive... echo. if exist %x64% ( %x64% /uninstall ) else ( %x86% /uninstall ) ping 127.0.0.1 -n 5 > NUL 2>&1 echo Removing OneDrive leftovers... echo. rd "%USERPROFILE%\OneDrive" /Q /S > NUL 2>&1 rd "C:\OneDriveTemp" /Q /S > NUL 2>&1 rd "%LOCALAPPDATA%\Microsoft\OneDrive" /Q /S > NUL 2>&1 rd "%PROGRAMDATA%\Microsoft OneDrive" /Q /S > NUL 2>&1 echo Removing OneDrive from the Windows Explorer Side Panel... echo. REG DELETE "HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" /f…
Read More

PEM 파일을 PPK 파일로 변환후 안될때

Linux
pem 파일을 가지고 ppk 로 변환을 하였는데, 정상적인디 안될때 ppk file의 버전을 3 에서 2로 변경을 하니 정상적으로 ppk 파일을 이용할 수 있었습니다. 정확한 이유는 버전 차이라고 생각이 됩니다. 가끔 PPK파일이 필요하기때문에 미리 미리 만들어서 테스트를 해두면은 나중에 급할때 사용하기에 편리할수 있다는 생각을 합니다. 물론 Key파일에 대해서는 관리를 잘해서 보관을 해야지 유출되면은 바로 접속 권한을 모두 주기 때문에 적절히 잘 관리하여서 처리를 해야 합니다.
Read More