LinuxをL2TP/IPsecクライアント兼NATルータにする

LinuxマシンをどこぞのVPNサーバーに接続したくてこれをやった。CentOS6用なのでCentOS7以降の場合はiptablesのくだりやネットワークサービス再起動のくだりが変わってくるかと。 基本情報 OS CentOS release 6.8 (Final) IPSecソフトウェア Libreswan 3.15 (netkey) on 2.6.32-642.el6.i686 L2TPソフトウェア xl2tpd-1.3.8 VPN接続情報 Target 接続先IP PSK 事前共有鍵 Account01 L2TPユーザー名 Password01 L2TPユーザーに対応するパスワード ソフトウェアインストール ipsecコンフィグ調整 既存コンフィグバックアップ IPSecコンフィグ修正(以下2行のみ記述) IPSec事前共有鍵設定修正 IPSec接続設定修正 IPSec接続設定内容(2行目(authby行)以下は行頭にタブが必要) L2TP関連コンフィグ修正・新規作成 既存コンフィグバックアップ 既存コンフィグ削除&新規コンフィグ作成 新規コンフィグ内容 PPP接続設定ファイル作成 PPP接続設定ファイル内容 PPP接続用認証ファイル作成 Linuxのネットワーク設定修正 ルーティングの有効化 ここまできたらL2TP over IPsec クライアントとしての設定はほぼ完成。ここで、VPNクライアント兼NATルータになるLinuxのデフォルトルートを削除しておく。なぜならLinuxがVPN接続した後のLinuxとしてのデフォルトルートをVPN接続先にしておきたいから。 デフォルトゲートウェイ削除 ネットワークアダプタのコンフィグ修正 ネットワークサービス再起動 VPN接続用スクリプト作成 スクリプト内容 VPN切断用スクリプト作成 スクリプト内容 iptables全開放 設定ファイル修正 設定ファイル内容 サービス再起動 … Read more

CentOS7をNTPサーバーにする

CentOS7のchronyを使ってNTPサーバーにするための設定。 設定ファイル編集 chronyサービス再起動 動作確認 MS列にそれぞれ^*などと表示されいれば上位NTPサーバとローカルホストが時刻同期できている。下位NTPクライアントがローカルホストと同期できているかどうかは下位クライアント側で確認する必要がある。 

LinuxのNTPクライアント設定

LinuxのシステムクロックをNTPサーバーと動機する設定。CentOS6系用。 現在のシステムクロックを確認 現在のハードウェアクロックを確認 NTP daemonの状態確認 そもそも止まってるかインストールされていない可能性もある。 NTP daemon停止 そもそも止まってたりインストールされてなかったら無視。 シストテムクロックをNICTの時刻と同期させる NTP設定の修正 NTP daemon起動 NTP daemon 状態確認 行頭に*または+がつくと同期完了。 サービス自動起動設定 確認は以下 ハードウェアクロックをシステムクロックに同期 以上。

任意の文字列を含むファイルを検索

Linuxコマンド「grep」への理解を深めるためにメモ。 grepのオプション -r recursiveの頭文字。サブディレクトリがあれば再帰的に検索する。 -n 検索文字列がマッチした行番号を出力する。 -w 文字列全体にマッチする場合。 -l ファイル名だけ出力する。 使用法1 index.html というファイルから「css」という文字列を含む行をすべて抽出し、行番号を付与する。 使用法2 カレントディレクトリ配下すべてのファイルから「css」という文字列を含む行を抽出し、行番号を付与する。

awkとipコマンドでアドレスを抽出

プレフィクスなどを除いた、自身のIPアドレスのみを表示したい場合、こうする。 環境:CentOs6.8 条件:IPアドレスの一部がわかっている。 ip a | grep “192.168.hoge” | awk ‘{print $2}’ | awk -F/ ‘{print$1}’

syslogをslackに転送

あちこちのネットワーク機器からシスログサー(Linux/rsyslog)に転送されてくるメッセージを、slackにも飛ばす方法。 slack token 取得 “Legacy tokens | Slack” にて “Legacy token generator” を使用してtokenを控える。 いまはレガシートークンの使用ができない、というかセキュリティ的に危険なのでボットトークンを使うべき。 “xoxp-” で始まる文字列がそれ。 名前つきパイプを作成 ログ出力先をパイプに指定する vi /etc/rsyslog.conf rsyslog 再起動 slack転送スクリプトを作成 vi /root/logpost.sh slackに転送用チャンネルを作成 上記スクリプトでcurl コマンドの-dオプションで指定したチャンネル名をslack側にて作成する。存在しないチャンネルにはポストできないので。 スクリプトを実行 以上。 他に考慮すべき点 実行環境がシャットダウン or 再起動したらスクリプト処理が終了してしまうので、再度スクリプトを実行するように工夫する必要はある。

Linux nginx アクセスログからDNS逆引きscript

ふと思いつきで、nginxのアクセスログからアクセス元をDNS逆引きしたくなり、とっさにシェルスクリプトを書いた。 動作環境 CentOS 6.8 GNU bash, version 4.1.2(1)-release (i386-redhat-linux-gnu) ログ形式 スクリプト これ、活用する日はあるのだろうか。。。 もっとスマートな方法があればご指摘頂ければと思う。

FTPサーバーをサクッと構築する

CentOS6系でFTPサーバをサクっと構築する方法。 FTPはプレーンテキストでの通信という点だけご留意頂ますようお願い致します(絶句)。 必要なパッケージをインストール 念の為–downloadonlyオプションでローカルにrpmファイルを保存しておく。 デフォルトコンフィグコピー コンフィグ編集 /etc/vsfstpd/vsftpd.conf を vi エディタ等で編集して以下内容にする。 anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES idle_session_timeout=300 data_connection_timeout=30 ascii_upload_enable=YES ascii_download_enable=YES ftpd_banner=Welcome to FTP service. chroot_list_enable=YES listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES xferlog_std_format=NO log_ftp_protocol=YES use_localtime=YES pasv_promiscuous=YES pasv_min_port=50000 pasv_max_port=50030 SELINUX無効化 /etc/selinux/config を vi エディタ等で編集して「SELINUX=enforcing」部分を「SELINUX=disabled」にして保存。 そして reboot 等でOS再起動。 「私はSELINUXマスターなんだ!」という人は無効化しなくてもなんとかできるかもしれない。 hosts.allow修正 /etc/hosts.allow に下記追記。最下行などでOK。 vsftpd : 127.0.0.1 [アクセスを許可するネットワーク] アクセスを許可するネットワークの記法としては、例えば「192.168.0.0/24」を許可したいなら「192.168.0.」とすればOK。 hosts.deny修正 … Read more

rootでのsshを拒否する方法

CentOSで、rootユーザアカウントでのsshログインうぃ拒否する設定方法。  バックアップ取得 設定変更 ここでもまたsedの置換で編集する。 差分チェク 構文チェック エラーメッセージが出力されなければOK。 サービス再起動        /etc/init.d/sshd restart

NICファイル量産

とあるプロジェクトでRHEL7の仮想マシンを何個も構築することになり、NIC(ネットワークアダプタ)の設定を変更するのに簡単な方法はないものかと思案したのでここにメモする。 ※RHEL7:Red Hat Enterprise Linux 7 手順 オリジナルNICファイルをコピー OSインストール直後に存在している(最低限の設定を記述したNIC設定ファイル(ifcfg~)をコピー する。 下記例では、もともとeth0というNICが存在していたケース。 NICファイルを編集 sedによる置換を駆使して編集。 再起動 rebootコマンドなどで、OSを再起動する。